2012-03-02 9 views
1

ストリーミングオーディオを開始するだけです...再生を開始し、バッファが先に進みますが、突然停止します。曲がバッファまでキャッチすると、音楽は停止します。 nextを押すと、ネストの曲に進みますが、同じことが起こります。何か案が?オーディオがしばらくしてからストリーミングを停止する

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. 

コールのMediaPlayerのOnPreparedListener()onPrepared()でそれが解決しない場合はmediaplayer.start()

を使用呼び出す試すことができますどのようなonCompleteonError()のように、メディアプレーヤーのすべてのリスナーを実装して、突然メディアプレーヤーが再生を停止したときに呼び出されるものを確認してください

希望します。

関連する問題