当另一个声音播放时停止播放先前的声音
我在活动中播放声音时遇到问题,我有闹钟管理器,并且我使用媒体播放器播放声音,现在当我尝试设置两个闹钟时(假设这两个闹钟与他们的时间只有1分钟的差别),当第一次闹铃响起时,我没有关闭该活动,然后等待另一分钟另一个活动弹出,然后播放声音,所以有两个声音在后台播放。当另一个声音播放时停止播放先前的声音
我要打上一个活动的声音停止时,在前面
另一个警报在你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
。 这只是从头开始,您必须根据自己的需求进行调整。
这也会覆盖以前的活动吗?所以以前的活动会被丢失并被新的活动改变吗? –
我想我误解了你的回答,以为你是在说如果我在一个活动中分配了媒体播放器的声音(这意味着分配在同一个活动中),所以通过这种方式,这不适用于我,因为下一个闹钟没有出现 –
请显示代码的一部分,你卡住了我认为我们是通过对方说话:) – Opiatefuchs
它是一样的活动吗?如果是的话,将属性“singleTop”放入你的清单中,并且只要在媒体播放器开始播放之前请求播放器即可。 – Opiatefuchs
@Opiatefuchs如果我们有多个活动,该怎么办?我有一个以上的活动。 – deejay
临时解决方案..您可以使用1或不到1分钟的声音剪辑。所以它会在第二次闹铃开始前结束。 – deejay