为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2021-07-09 14:00:18
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();             }         }这段代码无法运行,我不确定是什么原因造成的,感谢您的帮助!
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

当mp玩的不是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();

    }

}


查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 280 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信