【发布时间】:2018-11-21 09:06:29
【问题描述】:
我的代码如下所示:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource( "http://.../abc.mp3" );
mp.setOnPreparedListener( ... mp.start(); ... );
mp.prepareAsync();
实际代码在开始之前检查了mp 是否已准备好。大多数情况下它工作正常。但有时(如果连接较弱)它仍然会遇到这个错误:
MediaPlayer: Error (-38,0)
MediaPlayerNative: start called in state 0, mPlayer(0x7424863b40)
所以,我决定抓住它:
try {
mp.start();
} catch (IllegalStateException e) {
Toast.makeText(...).show();
} catch (Throwable e) {
Toast.makeText(...).show();
}
但是这段代码不起作用,我无法捕获任何异常,并且该错误仍然显示在 log cat 中。
【问题讨论】:
-
"并且那个错误仍然显示在 log cat 中" 异常是因为那个错误而被抛出的,而不是相反。所以你不会通过捕获异常来摆脱错误日志。
-
@Michael 但我仍然无法捕捉到那个错误
标签: android android-mediaplayer