播放另一个声音时停止播放上一个声音

时间:2016-10-10 13:35:03

标签: java android audio alarmmanager

我有关于在活动中播放声音的问题,我有报警管理器,我使用媒体播放器播放声音,现在当我尝试设置两个闹钟时(假设这两个闹钟与他们的时间只有1分钟的差异)当第一个警报报警并且我没有关闭该活动然后等待另一个分钟时,另一个活动弹出然后播放声音,所以在后台播放两个声音。

我想在前面的另一个闹钟

时让前一个活动的声音停止

1 个答案:

答案 0 :(得分:0)

manifest中将此属性放入activity

<activity
    android:name=".YourActivity"
    android:launchMode="singleTop">

launchMode的含义以及可能出现的状态,请参阅文档中的https://developer.android.com/guide/topics/manifest/activity-element.html

然后您的活动将只开始一次。如果它已经启动,它只是前景而没有第二个出现。对于MediaPlayer:

if(mediaPlayer!=null){

   if(mediaPlayer.isPlaying()){

         mediaPlayer.stop();
         mediaPlayer.release();
    }


     mediaPlayer = MediaPlayer.create(this, R.raw.your_sound);
     mediaPlayer.start();
}

如果您之前已发布mediaPlayer.isPlaying(),请务必不要致电mediaPlayer。这将抛出illegalStateException。 这只是从头开始,你必须根据自己的需要进行调整。