[英]How can i stop playing a song when another song start playing in Android
大家好,列表视图中有项目。 当您单击一个项目时,您会听到一首歌,但是如果您单击另一个项目,第一首歌曲不会停止它同时播放两首歌曲,如果我单击第二首歌曲或停止第二首歌曲,我如何停止第一首歌曲如果我点击第一首歌
我的代码
private MediaPlayer mp;
final ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new CustomListAdapter(this, image_details));
// When the user clicks on the ListItem
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = listView.getItemAtPosition(position);
final Songs titel = (titel) o;
// get the club song from the arraylist
mp = MediaPlayer.create(a.getContext(), titel.getClubLied());
mp.start();
mp.stop();
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
mp.stop();
return true;
}
});
我怎样才能解决这个问题,我使用了开始和停止,所以当其他歌曲开始时它会停止,但这不起作用
您可以检查 MediaPlayer 是否正在播放,然后先停止或释放它,然后像这样播放新歌
if (mp.isPlaying()) {
mp.stop();
mp.reset();
mp.release();
}
mp = MediaPlayer.create(a.getContext(), titel.getClubLied());
mp.start();
希望它的工作;
您可以将MediaPlayer
声明为静态,以便一次仅运行 1 个项目。
你必须release
你的媒体播放器来停止媒体播放器,如下所示:
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = listView.getItemAtPosition(position);
final Songs titel = (titel) o;
if (mp != null) {
mp.stop();
mp.reset();
mp.release();
}
mp = MediaPlayer.create(a.getContext(), titel.getClubLied());
mp.start();
});
您正在 setOnItemClickListener 上创建媒体播放器,因此每当您单击项目时,它都会创建新的媒体播放器,因此前一个播放器会继续播放,因此在 setOnItemClickListener 之外创建媒体播放器,而不是仅传递歌曲数据。
private MediaPlayer mp;
final ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new CustomListAdapter(this, image_details));
mp = new MediaPlayer();
// When the user clicks on the ListItem
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = listView.getItemAtPosition(position);
final Songs titel = (titel) o;
// get the club song from the arraylist
mp.reset()
mp.setDataSource(a.getContext(), uri);
mp.prepare();
mp.start();
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
mp.stop();
return true;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.