单击按钮重复播放声音的次数

时间:2013-08-22 21:32:21

标签: java android android-mediaplayer

我有以下代码:

    if (someId.matches("A") || someId.matches("a")) {
        tvLetCap.setText("A");
        tvLetLow.setText("a");
        ivLetterIcon.setImageResource(R.drawable.apple);
        btnDisplayWord.setText("A is for APPLE");
        mpSound = MediaPlayer.create(this, R.raw.sound);
        mpSound.setLooping(false);
        btnPlay.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                /*try {
                    Uri uri = Uri.parse("android.resource://com.mypack.testing/" + R.raw.sound);
                    mpSound.setDataSource(getApplicationContext(),uri);
                    mpSound.prepare();
                    */
                    mpSound.start();
                    btnPlay.setVisibility(View.GONE);
                    btnStop.setVisibility(View.VISIBLE);
                    btnStop.setOnClickListener(stopSound);
                /*}
                catch (IOException e){
                    Log.e("REPLAYING", "prepare() failed");
                }*/
            }
        });
        mpSound.setOnCompletionListener(new OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                mpSound.release();
                btnPlay.setVisibility(View.VISIBLE);
                btnStop.setVisibility(View.GONE);
            }
        });
    }

使用已注释掉的代码可以正常播放,但每当我尝试重播文件时我的应用FC。声音文件位于res/raw/sound.mp3

如何修改代码,使其播放的次数与按下btnPlay的次数相同。

2 个答案:

答案 0 :(得分:1)

你已经发布了媒体播放器。如果您想重复使用它,请不要这样做。

答案 1 :(得分:1)

媒体播放器有一些方法...... http://developer.android.com/reference/android/media/MediaPlayer.html

也许你需要在onClick方法中使用mpSound.reset()按钮(前一段时间我有这样的错误:p)? :)