Управление потоковой передачей с помощью MediaPlayer - PullRequest
0 голосов
/ 14 февраля 2011

Я использую приведенный ниже код для воспроизведения песни с сервера.

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(playUrl);

И я вызываю метод запуска из public void onPrepared(MediaPlayer mp) метода. Но иногда случается так, что он буферизует от 5 до 6% и начинает играть, а иногда буферизует 40 или 60, а иногда и 80%. И я использую prepareAsync () для подготовки игрока. Итак, есть ли способ воспроизвести песню через 5 или 6%?

Thankx

1 Ответ

0 голосов
/ 14 февраля 2011

попробуйте установить прослушиватель буфера обновления и воспроизвести видео после определенного процента.
Отредактировано:

    boolean mediaPrepared = false;
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnBufferingUpdateListener(){
      void onPrepared(MediaPlayer mp){
        mediaPrepared = true;
      }
    });
mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener(){
  public void onBufferingUpdate(MediaPlayer mp, int percent){
    if (!mediaPrepared){
      mp.prepareAsync();
    }
    if (percent > 5){
      mp.start();
    }
  }
});

И убедитесь, что правильно обрабатывает значения флага mediaPrepared.

Я не уверен, сработает ли это, но, возможно, вы можете использовать это как подсказку. Удачи!

...