我在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();
}
}
请检查我的代码,让我知道我做错了什么。
答案 0 :(得分:4)
每次用户点击您查看时,您都构建了一个新 MediaPlayer对象
怎么可能处于运行状态!!!
在MediaPlayer对象上调用release()
方法,它处于thre End 状态
一旦MediaPlayer对象处于End状态,就无法再使用它,也无法将其恢复到任何其他状态。
但是如果你想重用MediaPlayer对象,你应该调用 以相同的顺序调用以下方法
reset() 使mediaPlayer进入空闲状态
setDataSource() 设置您的数据源注释:媒体播放器应处于空闲状态