[英]Android MediaPlayer.stop() pauses instead of stopping
我为android.media.mediaplayer编写了两个类包装器。
如果我使用工厂MediaPlayer.Create()中的对象。 然后媒体播放器对象在调用方法停止时停止播放歌曲(这样,当我调用play()时停止播放歌曲,它从歌曲的开头开始)。 但是如果我使用默认构造函数,stop()的行为就像pause()保持歌曲中的前一个位置(除了它真的处于停止状态)。
我必须在prepare()和stop()之后使用seekTo(0)来做我想要的,但这不是文档所说的。
public void start()从:API Level 1
开始或恢复播放。 如果先前已暂停播放,则播放将从暂停的位置继续播放。 如果播放已停止或之前从未开始播放,则播放将从头开始播放。
所以,如果我在停止时调用start(),它应该从头开始。
这是来自我的类的stopSong方法的代码:
public void stopSong() {
if(mpPrepared){
mp.stop();
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.seekTo(0);
}
}
有人能告诉我为什么会这样吗? 谢谢!
if(mp.isPlaying){
try {
mp.stop();
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
希望这个帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.