如何正确停止媒体播放器,android

Sun*_*hoo 7 android android-mediaplayer

我已经创建了一个歌曲列表,点击了我能够使用MedaiPlayer播放歌曲的歌曲.当一首歌正在播放时,如果用户点击另一首歌,那么我将停止媒体播放器并再次启动播放器.但我在reset()中遇到非法的例外情况.这是我得到异常的代码.如何正确阻止玩家?也为什么我得到这个例外.怎么避免呢?

public void stopPlayer() {
        try {
            if (player != null) {
                // Log.e("Trying to Stop "," Player ");
                player.stop();
                player.release();

                player.reset();// causes IllegalstateException

                player = null;

            }

        } catch (Exception e) {
            player = null;
            playerStatus = false;
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

Paw*_*wan 9

试试这个 :

player.reset();
player.release();
Run Code Online (Sandbox Code Playgroud)

并且还看一下媒体播放器状态图.


Ram*_*ula 6

如果你想再次玩,那么使用player.reset(), player.release()意味着它释放了玩家对象,所以你必须重新初始化玩家.所以首先你使用reset()然后release().release()当你的玩家对象不再工作时使用.当你的活动破坏release()了用于良好练习的方法时.

每当你想要阻止它时:

if(player!=null)
{
   if(player.isPlaying())
      player.stop();

   player.reset();//It requires again setDataSource for player object.

}
Run Code Online (Sandbox Code Playgroud)

每当您的玩家不再需要时:

if(player!=null)
{
   if(player.isPlaying())
      player.stop();

   player.reset();//It requires again setDataSource for player object.
   player.release();
   player=null; // fixed typo.

}
Run Code Online (Sandbox Code Playgroud)