每次使用android studio按下按钮时,如何让1个按钮播放随机声音

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);

//创建媒体播放器


    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(); 

            } 

        }

这段代码无法运行,我不确定是什么原因造成的,感谢您的帮助!


慕的地6264312
浏览 281回答 1
1回答

jeck猫

当mp玩的不是if块不执行。改成这样:@Overridepublic 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();    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java