我有30-31 個按鈕,我希望一次播放一個按鈕,所以如果我單擊一個按鈕,它就會播放,然後當我單擊另一個按鈕時,無論是哪個按鈕,它都會停止,這是程式碼範例基本上都是這樣並重複,但只是數字發生變化,因此1,2,3,4 等等:
public void Button1Text(View view) { Media1 = MediaPlayer.create(QuranJ30MA.this, R.raw.hannaba); Media1.start(); } public void Button1Text2(View view) { Button1p = MediaPlayer.create(QuranJ30MA.this, R.raw.mannaba); Button1p.start(); }
我確實嘗試看看其他人也想做同樣的事情,但由於我對java不太擅長,所以我不明白如何將它應用到我的機器上,如果要求不太多,我只是想解釋一下它是如何運作的學習一下,謝謝:)
您永遠不應該創建多個mediaplayer,它們是重量級物件並佔用大量資源。相反,製作一個媒體播放器,並使用 setdatasource 更改其設定播放的聲音(當然,您需要先停止原始聲音)。
接下來要改變的是建立資料。創建 ids 到聲音的映射:
map<int, int> sounds = new hashmap(); sounds.put(button1id, r.raw.hannaba); sounds.put(button2id, r.raw.mannaba); ...
然後就可以擁有點選功能了:
public void buttonClick(View view) { mediaPlayer.stop() mediaPlayer.setDataSource(sounds.get(view.getId()) mediaPlayer.start() }
將其設定為您想要執行的所有按鈕的 onclicklistener,並且只需編寫一次。
以上是如何在另一個音訊開始時使音訊停止(大量音訊)的詳細內容。更多資訊請關注PHP中文網其他相關文章!