2017-01-21 34 views
0

美好的一天, 我有一個小應用程序,它有一個按鈕。 每當我按下按鈕,它使用MediaPlayer發出聲音。 的問題是,我無法找到如何使同樣的媒體播放器播放其他聲音,用動態文件餵食MediaPlayer

例如: 我有10周的聲音列表,每當我在我的按鈕,單擊它隨機選擇從1數到10,之後它會採取相應的聲音,其中隨機生成的數字是列表中的位置並播放它。

問題是我應該在大膽的區域使用MediaPlayer嗎? MediaPlayer mpfn = MediaPlayer.create(getActivity(),R.raw.number1); MediaPlayer mpfn = MediaPlayer.create(getActivity(),R.raw.number1);

我是新來的機器人,並提前抱歉萬一我的問題傷害你的感情。 在此先感謝。

+0

媒體文件位於何處? – OBX

+0

同樣的例子,原始文件夾,它們已經存在於項目中(本地) –

回答

1

假設媒體文件存儲在原始文件夾,您可以在隨機這種方式播放歌曲:

首先使用Math.random()生成隨機數。然後播放相應的音樂,這種方式:

Random ran = new Random(); 
    int x = ran.nextInt(3); 
    if(x==0) 
    { 
     mPlayer = MediaPlayer.create(this,R.raw.fst); 
    } 
    else if(x==1) 
    { 
     mPlayer = MediaPlayer.create(this,R.raw.sec); 
    } 
    else if(x==2) 
    { 
     mPlayer = MediaPlayer.create(this,R.raw.thd); 
    } 
    length = 0; 
    try{mPlayer.prepare();}catch (Exception e){} 

這表明如何從3個媒體文件隨機播放,10個文件的過程是沒有什麼不同。一旦準備就緒,你可以使用它:mPlayer.start();

+0

謝謝,我會盡力 –

+0

它的工作,謝謝。我想知道是否有辦法用變量替換媒體文件? –

+0

你是指'R.raw.thd'的變量? – OBX

0

最後我可以自己回答這個問題。 這是非常簡單的實現,我做了字符串數組,並按我自己的順序存儲了我的所有聲音。所以,每當我得到我的隨機數,我只是選擇這個數字,並將其用作字符串數組中的項目索引。