2015-11-16 4 views
-3

Я использую MediaPlayer для воспроизведения аудиофайлов формата .WAV. Когда я отлаживаю приложение, я могу играть в файл, но когда я запускаю файл приложения, он не воспроизводится.Медиаплеер работает только в режиме отладки

Существует similar issue относительно этого, но решения не предоставляются.

Ниже приведен код, который я использую

MediaPlayer mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mMediaPlayer.setDataSource(mContext, fileUri);// uri of the audio file 
mMediaPlayer.prepare(); 
mMediaPlayer.setOnCompletionListener(this);  
mMediaPlayer.start();// to start the playback of the audio file 

Этот код работает только в режиме отладки, а не в обычном режиме.

Благодаря

+0

Вам нужно добавить 'mMediaPlayer.start();' в 'onPreparedListener()' из MediaPlayer'. – activesince93

+0

Вы начинаете «MediaPlayer» перед его подготовкой. – activesince93

+0

И лучше использовать 'mMediaPlayer.prepareAsync();' а не 'mMediaPlayer.prepare();'. – activesince93

ответ

0

Это то, что я говорю:

btn_next.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 

     try { 
      mp.reset(); 
      mp.setDataSource(url.toString()); 
      mp.setOnErrorListener(this); 
      mp.setOnPreparedListener(this); 
      mp.setOnCompletionListener(this); 
     } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
     } catch (SecurityException e) { 
      Log.e(TAG, "SecurityException"); 
     } catch (IllegalStateException e) { 
      Log.e(TAG, "IllegalStateException"); 
     } catch (IOException e) { 
      Log.e(TAG, "IOException"); 
     } 
     mp.prepareAsync(); 
    } 
}); 

Теперь override метод onPrepared().

@Override 
public void onPrepared(MediaPlayer mp) { 
    // TODO Auto-generated method stub 
    mp.start(); 
} 

Комментарий ниже, если у вас возникнут какие-либо проблемы.

+0

Это не работает. Есть ли другой способ воспроизведения звука в режиме запуска? – anddev

Смежные вопросы