首頁  >  文章  >  如何在另一個音訊開始時使音訊停止(大量音訊)

如何在另一個音訊開始時使音訊停止(大量音訊)

PHPz
PHPz轉載
2024-02-12 14:06:05568瀏覽

問題內容

我有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中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除