您好,StackOverFlow社区,我最近遇到了这个问题,我创建了一个Whack A Mole游戏,然后有时声音自行停止播放,并且只显示此错误,我在互联网上搜索并说使用{{1} }对于MediaPlayer,我尚不知道它是如何工作的
E / MediaPlayerNative:在状态0,mPlayer(0x7897fe1440)\
下停止调用
或
E / MediaPlayerNative:错误(-38,0)
这是我的GameActivity
box-none
答案 0 :(得分:0)
使用 mPlayerShot.prepare(); 之前 mPlayerShot.start();
答案 1 :(得分:0)
这是我注意到的几个问题。
发布后必须再次创建mediaplayer
// first check null
if (mPlayerMiss != null && mPlayerMiss.isPlaying()) {
mPlayerMiss.stop()
mPlayerMiss.reset();
mPlayerMiss.release();
}
//creating media player again here
mPlayerMiss= MediaPlayer.create(getApplicationContext(), R.raw.playermissfilename);
mPlayerMiss.start();
在onPause方法中,您正在调用mediaPlayer.stop();
方法。检查null和更好的呼叫mediaPlayer.release()
而不是停止。
您正在mediaPlayer.stop()
内部呼叫onPause()
,因此无需在onStop()
中再次呼叫
如果仍然遇到问题(不是最好的方法),请在停止和重置播放器时使用try / catch
if (mPlayerMiss.isPlaying() && mPlayerMiss != null) {
try {
mPlayerMiss.stop();
mPlayerMiss.reset();
mPlayerMiss.release();
} catch (Exception e) {
e.printStackTrace();
}
}