我有一个listview(3项)
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch (arg2) {
case 0:
LoadMp3(getUrl[0]);
break;
case 1:
LoadMp3(getUrl[1]);
break;
case 2:
LoadMp3(getUrl[2]);
break;
case 3:
LoadMp3(getUrl[3]);
break;
我想点击项目时播放音乐(例如:item1),并在点击不同项目(第2项)时暂停第1项的音乐,并在第2项播放音乐。请帮帮我!
public void LoadMp3(String name) {
try {
m = new MediaPlayer();
AssetFileDescriptor descriptor = MainActivity.this.getAssets()
.openFd(name);
m.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.start();
m.setLooping(false);
} catch (Exception e) {
// handle error here..
}
}
答案 0 :(得分:0)
选中创建另一个按钮clickListener
,将条件写为isplaying()
然后pause();
if(m.isPlaying()){
m.pause();
}
答案 1 :(得分:0)
试试这个:
if(null==m){
m = new MediaPlayer();
}else if(m.isPlaying()){
m.pause();
}
答案 2 :(得分:0)
尝试以下代码
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
LoadMp3(getUrl[arg2]);
}
}
public void LoadMp3(String name) {
try {
if(m!=null){
if(m.isPlaying()){
m.stop();
m=null;
}
}
m = new MediaPlayer();
AssetFileDescriptor descriptor = MainActivity.this.getAssets()
.openFd(name);
m.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.start();
m.setLooping(false);
} catch (Exception e) {
// handle error here..
}
}
答案 3 :(得分:0)
创建MediaPlayer的全局实例
if(m.Playing()){
m.Pause();
LoadMp3(nameofFile);
}