Как мне разрешить MediaPlayer: ошибка (1, -19) - PullRequest
0 голосов
/ 05 сентября 2018

Я играю медиаплеер не в классе активности, при частом воспроизведении аудиоклипа возникает проблема, из-за которой медиаплеер выдает MediaPlayer: Ошибка (1, -19). Как только эта ошибка произошла, медиаплеер не воспроизводится вообще. Я прошел через некоторые ссылки , но я не нашел никакого решения. Любая помощь будет точной.

 handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                delayInExecution = false;
                if (!mLeftOpen && !mRightOpen) {
                    System.out.println("Eyes are closed man....");
                    try {
                        if (!player.isPlaying()) {
                            player = MediaPlayer.create(EyeDetectionApplication.getInstance(), R.raw.beep);
                            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
                            player.setLooping(false);
                            player.setOnErrorListener(new MediaPlayer.OnErrorListener() {
                                @Override
                                public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {

                                    System.out.println("setOnErrorListener ....");
                                    MediaPlayer mediaPlayer1 = MediaPlayer.create(EyeDetectionApplication.getInstance(), R.raw.beep);
                                    mediaPlayer1.setAudioStreamType(AudioManager.STREAM_MUSIC);
                                    mediaPlayer1.setLooping(false);
                                    mediaPlayer1.start();
                                    player = mediaPlayer;
                                    return false;
                                }
                            });
                            player.start();
                        }
                    } catch (Exception e) {
                        System.out.println("Exception came....");
                        player = MediaPlayer.create(EyeDetectionApplication.getInstance(), R.raw.beep);
                        player.setAudioStreamType(AudioManager.STREAM_MUSIC);
                        //   player.setOnPreparedListener(EyeDetectionApplication.getInstance());
                        player.setLooping(false);
                        player.start();
                    }
                } else {
                    if (mLeftOpen && mRightOpen && player.isPlaying()) {
                        player.release();
                    }
                }

            }
        }, 1500);

1 Ответ

0 голосов
/ 05 сентября 2018

добавьте OnCompletionListener в ваш медиаплеер и отпустите его.

player.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
    mp.release();
};
});

переместить эту строку из обработчика внутрь

 player = MediaPlayer.create(EyeDetectionApplication.getInstance(), R.raw.beep);
  handler.postDelayed(new Runnable() {
        @Override
        public void run() {//other code
        }
         })
...