繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM