Android媒体播放器错误(-19,0)

f8rj6qna  于 2023-03-06  发布在  Android
关注(0)|答案(4)|浏览(207)

我试图在点击按钮时重放声音,但得到错误(-19,0)(这到底是什么意思^^)
我的代码:

final Button xxx = (Button)findViewById(R.id.xxx);

        xxx.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.plop); 
                mp.start();
            }
        });

我错在哪里?

kwvwclae

kwvwclae1#

我遇到了同样的问题,我通过添加以下代码解决了它:

mp1 = MediaPlayer.create(sound.this, R.raw.pan1);
mp1.start();
    mp1.setOnCompletionListener(new OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
        mp.release();

        };
    });
laawzig2

laawzig22#

启动新媒体播放器之前,您需要释放以前的媒体播放器。
MediaPlayer声明为示例变量,然后:

mp = null;
final Button xxx = (Button)findViewById(R.id.xxx);

        xxx.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (mp != null) {
                  mp.stop();
                  mp.release();
                }

                mp = MediaPlayer.create(getApplicationContext(), R.raw.plop); 
                mp.start();
            }
        });

或者,在您的情况下,由于您总是播放相同的声音,您不需要释放播放器并创建一个新的,只需重复使用旧的。

final MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.plop);
mp.prepare(); // Blocking method. Consider to use prepareAsync

final Button xxx = (Button)findViewById(R.id.xxx);

        xxx.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mp.stop();
                mp.start();
            }
        });
5n0oy7gb

5n0oy7gb3#

MediaPlayer audiokredit;
void kredit() {
    if (audiokredit != null) {
        audiokredit.stop();
        audiokredit.release();
    }
    audiokredit = MediaPlayer.create(getApplicationContext(),R.raw.kredit);
    audiokredit.start();
}
eoigrqb6

eoigrqb64#

我解决这个问题的代码:

public static void playSound() {
    mMediaPlayer = new MediaPlayer();
    try {
        AssetFileDescriptor afd = context.getAssets().openFd("type.mp3");
        mMediaPlayer.setDataSource(afd.getFileDescriptor(),
                afd.getStartOffset(), afd.getLength());
        mMediaPlayer.prepare();
        mMediaPlayer.start();
        mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer arg0) {
                // TODO Auto-generated method stub
                arg0.release();
            }
        });
    } catch (IllegalArgumentException | IllegalStateException | IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我希望能帮助你。

相关问题