如何阻止已经运行的mediaPlayer,并创建新的mediaPlayer?

时间:2011-09-10 07:33:32

标签: android

我在android工作。我正在创建一个运行音频文件的mediaPlayer。我有10个按钮。我为每个按钮分配了不同的URL。因此,当我按下按钮1时,关于按钮1的URL的歌曲正在播放。然后我点击第二个按钮,然后按钮2的歌曲也在播放歌曲1.但是当我按下按钮2时我想要停止按钮1的歌曲。

这是我用于此功能的代码: -

  public void onClick(View v)
 {

        MediaPlayer mediaPlayer=new MediaPlayer();

        if (mediaPlayer.isPlaying()) 
        {
            mediaPlayer.stop();
            mediaPlayer.release();

        } 

        int i = Integer.parseInt((v.getTag()).toString());
        String str=urls[i];
        try {




                mediaPlayer.setDataSource(str);
        mediaPlayer.prepare();
        mediaPlayer.start();

         } catch (Exception e)
               {
                e.printStackTrace();
        }

    }

请检查我的代码,让我知道我做错了什么。

1 个答案:

答案 0 :(得分:4)

每次用户点击您查看时,您都构建了一个 MediaPlayer对象

怎么可能处于运行状态!!!

在MediaPlayer对象上调用release()方法,它处于thre End 状态 一旦MediaPlayer对象处于End状态,就无法再使用它,也无法将其恢复到任何其他状态。

但是如果你想重用MediaPlayer对象,你应该调用 以相同的顺序调用以下方法

reset() 使mediaPlayer进入空闲状态

setDataSource()  设置您的数据源注释:媒体播放器应处于空闲状态

prepare()

start()

相关问题