首頁 > Java > 主體

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

PHPz
發布: 2024-02-12 14:06:05
轉載
540 人瀏覽過

問題內容

我有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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!