我在MediaPlayer
中使用了Activity
。
当我点击后退按钮时,我收到此错误:
09-20 19:44:16.540: E/MediaPlayer(1822): pause called in state 64
09-20 19:44:16.540: E/MediaPlayer(1822): error (-38, 0)
代码
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (mp!= null && mp.isPlaying()) {
mp.stop();
}
Intent intentstart = new Intent(X.this, Y.class);
intentstart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intentstart);
}
return super.onKeyDown(keyCode, event);
}
如果我使用mp.pause()
,它的工作正常。为什么呢?
答案 0 :(得分:12)
我使用了pause和seekto方法来重置播放器。
player.pause();
player.seekTo(0);
答案 1 :(得分:7)
暂停已停止的MediaPlayer
是非法的,并且根据该错误消息听起来与您正在做的完全一样。
我建议更改您的onPause
,使其不会尝试暂停已停止的MediaPlayer
。
也许: <击> 撞击>
if(mp!= null) { if(mp.isPlaying()) mp.pause(); }
实际上不要这样做,我只是在文档中找到了这个:
请注意,从START状态到Paused状态的转换(反之亦然)在播放器引擎中异步发生。在调用isPlaying(),
之前更新状态可能需要一些时间
您应该在本地维护一个变量,以检查您是否已停止MediaPlayer
,然后测试是否应该调用pause()
。
答案 2 :(得分:6)
我来这里寻找答案,虽然上面的回答在其他方面很有用,但它们并没有解决我的问题......
但是......我设法解决了这个问题:
变化
mediaPlayer.stop();
到
mediaPlayer.reset();
帮我摆脱了error( -38 , 0 )
再次感谢指出问题:)
答案 3 :(得分:1)
在停止播放媒体播放器后遇到问题,
我有一个例外,mp是一个能够重新开始,
然后用mp.stop()
替换mp.reset()
时
它运作得很好。
答案 4 :(得分:1)
即使我遇到了同样错误的类似问题。
我使用mplayer.pause()
代替mplayer.stop()