2012-03-02 2 views
1

Просто начните воспроизведение аудио ... начнет играть, буфер идет вперед, но внезапно останавливается. Когда песня доходит до буфера, музыка останавливается. Нажатие следующего идет к песням гнезда, но то же самое происходит. Есть идеи?Аудио перестает потоковое воспроизведение через некоторое время

private void startPlay(String file, String name) 
    { 
     Log.i("Selected: ", file); 

     tv_selelctedFile.setText(name); 

     //progressControlSeekbar.setProgress(0); 

     int maxVolume = mediaPlayer.getDuration(); 
     int curVolume = mediaPlayer.getCurrentPosition(); 

     progressControlSeekbar.setMax(maxVolume); 
     progressControlSeekbar.setProgress(curVolume); 
     progressControlSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

      public void onStopTrackingTouch(SeekBar seekBar) 
      { 
       isMoveingSeekBar = false; 
      } 
      public void onStartTrackingTouch(SeekBar seekBar) 
      { 
       isMoveingSeekBar = true; 
      } 
      public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) 
      { 
       if(isMoveingSeekBar) 
       { 
        mediaPlayer.seekTo(progress); 
        Log.i("OnSeekBarChangeListener","onProgressChanged"); 
       } 
      } 
     });  

     mediaPlayer.stop(); 
     mediaPlayer.reset(); 

     try { 
      mediaPlayer.setDataSource(file); 
      mediaPlayer.prepare(); 
      mediaPlayer.start(); 
     } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     progressControlSeekbar.setMax(mediaPlayer.getDuration()); 
     playButton.setImageResource(android.R.drawable.ic_media_pause); 

     updatePosition(); 

     isStarted = true; 
    } 

ответ

0

Что вы можете попытаться сделать это использовать слушателей вместо прямого вызова

mediaPlayer.prepare();//use preapareAsync() 
mediaPlayer.start(); // dont call it here. 

Вызовите OnPreparedListener() из медиаплеера и onPrepared() использовать mediaplayer.start()

, если это не поможет , просто выполните все прослушиватели для Media Player, например onCompleteonError() и проверьте, какой из них вызывается, когда внезапно проигрыватель мультимедиа перестает играть

Надеюсь, это поможет.

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