2016-10-10 200 views
0

我在活動中播放聲音時遇到問題,我有鬧鐘管理器,並且我使用媒體播放器播放聲音,現在當我嘗試設置兩個鬧鐘時(假設這兩個鬧鐘與他們的時間只有1分鐘的差別),當第一次鬧鈴響起時,我沒有關閉該活動,然後等待另一分鐘另一個活動彈出,然後播放聲音,所以有兩個聲音在後臺播放。當另一個聲音播放時停止播放先前的聲音

我要打上一個活動的聲音停止時,在前面

+0

它是一樣的活動嗎?如果是的話,將屬性「singleTop」放入你的清單中,並且只要在媒體播放器開始播放之前請求播放器即可。 – Opiatefuchs

+0

@Opiatefuchs如果我們有多個活動,該怎麼辦?我有一個以上的活動。 – deejay

+0

臨時解決方案..您可以使用1或不到1分鐘的聲音剪輯。所以它會在第二次鬧鈴開始前結束。 – deejay

回答

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。 這只是從頭開始,您必須根據自己的需求進行調整。

+0

這也會覆蓋以前的活動嗎?所以以前的活動會被丟失並被新的活動改變嗎? –

+0

我想我誤解了你的回答,以爲你是在說如果我在一個活動中分配了媒體播放器的聲音(這意味着分配在同一個活動中),所以通過這種方式,這不適用於我,因爲下一個鬧鐘沒有出現 –

+0

請顯示代碼的一部分,你卡住了我認爲我們是通過對方說話:) – Opiatefuchs