簡體   English   中英

我每次使用Android Studio按下按鈕時如何使1個按鈕播放隨機聲音

[英]How do i make 1 button play random sounds each time i press the button using android studio

public class MainActivity extends AppCompatActivity { 
MediaPlayer mp; 
ImageButton soundbutton; 

//這是要添加的聲音

int[] sounds ={R.raw.yeet1, R.raw.yeet2, R.raw.yeet3, R.raw.yeet4, R.raw.yeet5, R.raw.yeet6, R.raw.yeet7, R.raw.yeet8, R.raw.yeet9, R.raw.yeet10, R.raw.yeet11, R.raw.yeet12, R.raw.yeet13}; 
Random r = new Random(); 
int Low = 0; 
int High= 13; 
int rndm = r.nextInt(High-Low) + Low; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);

//創建Mediaplayer

    soundbutton = (ImageButton) this.findViewById(R.id.button_view); 
    mp = MediaPlayer.create(getApplicationContext(),sounds[rndm]); 
    soundbutton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
            try { 
                if (mp.isPlaying()) { 
                    mp.stop(); 
                    mp.release(); 
                    rndm = r.nextInt(High - Low) + Low; 
                    mp = MediaPlayer.create(getApplicationContext(), sounds[rndm]); 
                } 
                mp.start(); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        }

此代碼無法運行,我不確定是什么原因導致的!感謝您的幫助!

如果mp沒有播放, if不會執行if塊。
更改為此:

@Override
public void onClick(View view) {
    try {
        if (mp.isPlaying()) {
            mp.stop();
            mp.release();
        }
        rndm = r.nextInt(High - Low) + Low;
        mp = MediaPlayer.create(getApplicationContext(), sounds[rndm]);
        mp.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM