Android Media Player - PullRequest
       31

Android Media Player

0 голосов
/ 22 декабря 2011

Я пытаюсь воспроизвести звук, используя объект MediaPlayer, но я не могу заставить его работать, несмотря на все мои усилия. Звук просто отказывается играть.

Это короткий звук, который должен воспроизводиться при прикосновении к экрану, что означает, что его придется повторять много раз без слишком большой задержки. Зная это, я следовал диаграмме состояний: http://developer.android.com/reference/android/media/MediaPlayer.html. Кажется, я не вижу, что именно не так с моей последовательностью вызовов методов.

MediaPlayer mp = MediaPlayer.create(this.getContext(), R.raw.select2);
try {
    mp.prepare();
    mp.start();                 
    Log.e("debug","sound played");
    }
catch(Exception e) {}
mp.stop();

Ответы [ 2 ]

0 голосов
/ 21 июля 2015
MediaPlayer player = MediaPlayer.create(this.getContext(), R.raw.select2);

мы настраиваем музыкальный проигрыватель, устанавливая некоторые его свойства, как показано ниже

player.setWakeMode(getApplicationContext()PowerManager.PARTIAL_WAKE_LOCK);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setOnPreparedListener(this);
player.setOnCompletionListener(this);
player.setOnErrorListener(this);
try {
   player.prepare();
   player.start();                 
   Log.e("debug","sound played");
}  catch(Exception e) {}
  player.stop();
0 голосов
/ 22 декабря 2011

Вы вызываете prepare() в медиаплеере, но используемый вами вызов create () автоматически подготавливает плеер, это вызывает IllegalStateException, когда вы пытаетесь снова вызвать prepare(), и выотправлено на ваш catch() (вы заметили бы это, если бы каким-то образом обработали исключение, то есть распечатали трассировку стека).

...