关于android 中RingtoneManager点击多个铃声多个铃声一起响 5C
      RingtoneManager rm=new RingtoneManager(AlarmClock_setting.this);
                rm.setType(RingtoneManager.TYPE_ALARM);
                rm.getCursor();
                rm.getRingtone(position-1).play();

运行后,点击listview中的相应的铃声,点击多个,这几个铃声一直响。除非杀掉程序才行。请问怎样才能实现点击一个铃声时,stop上一个铃声再开始响这个铃声?

2个回答

点击listview的时候首先判断rm是不是正在播放,正在播放的话,就让rm停掉,播放另外 铃声,否则就让他播放

u013517445
moranliyuyu 能具体源码吗?
5 年多之前 回复

定义一个 MediaPlayer

``` MediaPlayer myPlaryer = new MediaPlayer();

然后在listview的onItemClick中
我这里封装了一个播放的函数,直接放到activity中或放到包里面都是可以的
主要就是判断是否正在播放,播放就先stop,

audio_play(myPlaryer, Ring_Url);



protected void audio_play(MediaPlayer myPlaryer, Uri play_ring_Url) {
// TODO Auto-generated method stub
if (myPlaryer.isPlaying()) {
myPlaryer.stop();
}
try {
myPlaryer.reset();
myPlaryer.setDataSource(ChoiceRingSource2.this, play_ring_Url);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
myPlaryer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myPlaryer.start();
}








Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐