0

我有以下代码:

    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按下时一样多。

4

2 回答 2

1

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

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

于 2013-08-22T22:10:55.827 回答
1

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

于 2013-08-22T21:36:53.503 回答