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

时间:2012-01-23 10:59:21

标签: android android-mediaplayer

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

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

我必须在prepare()之后使用seekTo(0)并使用stop()来执行我想要的操作,但这不是文档所说的。

  

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);
    }
}

有人能告诉我为什么会这样吗?谢谢!

1 个答案:

答案 0 :(得分: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();
        }}

希望这个帮助