2011-02-14 6 views
0

私は以下のコードを使ってサーバーから曲を再生しています。MediaPlayerでストリーミングを制御する

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

そして、public void onPrepared(MediaPlayer mp)メソッドからstartメソッドを呼び出しています。 しかし、時には5〜6%のバッファリングがあり、再生を開始することがあり、40〜60%、時には80%をバッファリングすることもあります。 そして、私はprepareAsync()を使用してプレーヤーを準備しています。だから、私が5〜6%後に曲を演奏できる方法はありますか?

thankx

答えて

0

更新バッファリスナーを設定しようとすると、一定の割合の後にビデオを再生します。
編集:

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フラグの値を処理するようにしてください。

これがうまくいくかどうかはわからないんだけど、多分あなたはヒントとしてそれを使用することができます。がんばろう!

+0

私はこれを試しましたが、プレイヤーが準備されていない場合はエラーが発生します。 mp.prepareAsync前 – Hitendra

+0

まあ@Hitendra、私が書いたように、私はこれが働くだろうわからないんだけど、あなただけの場合は、ブロック – mdelolmo

+0

別を追加することができます(mp.resetを必要とし)()私が思う...ところでわかりません...コールバックの流れは私にはかなりミスチルですが、それは完全にドキュメントに従っていないようです... –

関連する問題