gpt4 book ai didi

Android MediaPlayer.stop() 暂停而不是停止

转载 作者:太空狗 更新时间:2023-10-29 15:19:53 34 4
gpt4 key购买 nike

我已经为 android.media.mediaplayer 编写了两个类包装器。

如果我使用来自工厂 MediaPlayer.Create() 的对象。然后 mediaplayer 对象在它的方法 stop 被调用时停止播放歌曲(这就是停止播放歌曲,所以当我调用 play() 时,它从歌曲的开头开始播放)。但是,如果我使用默认构造函数,stop() 的行为与 pause() 完全一样,保持歌曲中的先前位置(除了它确实处于停止状态)。

我不得不在 prepare() 和 stop() 之后使用 seekTo(0) 来做我想做的事,但这不是文档所说的。

public void start () Since: API Level 1

Starts or resumes playback. If playback had previously been paused, playback will continue from where it was paused. If playback had been stopped, or never started before, playback will start at the beginning.

因此,如果我在它停止时调用 start(),它应该从头开始。

这是我类(class)的 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();
}}

希望对你有帮助

关于Android MediaPlayer.stop() 暂停而不是停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970546/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com