0

次のことを前提とします。

  1. アプリは、MediaPlayer データ ソースをリモート URL に設定します。(http://example.com/podcast.mp3)。
  2. MediaPlayer が 3G 経由で mp3 のストリーミングを開始します。バッファリングのための一時停止がないように、再生中よりも少し多くのデータをバッファリングします。
  3. デバイスの接続が短時間失われます。MediaPlayer はファイルの 40% をストリーミングし、50% をバッファリングしました。
  4. デバイスは、WIFI または 3G を介して接続を回復します。
  5. MediaPlayer はこの時点では動作しません。私の知る限り、mp3 のバッファリングを続けます。
  6. mediaplayer が 50% に達すると、停止します。

残念ながら、プロキシを使用しないと、MP3 のダウンロードとストリーミングを同時に行うことはできません (そうですか?)。そうは言っても、一度停止ポイントに到達すると、新しい接続で mp3 を再生し続けることは可能ですか (可能であれば、シームレスに?)。mp3 がどれだけバッファリングされたかを確認することはできますか? 接続が再確立されたら、新しい MediaPlayer 接続を作成し、最初の接続から次の接続に再生を「ハンドオフ」することは可能ですか?

4

1 に答える 1

1

すべての質問にお答えすることはできませんが、私が知っていると思うことをここに記載します。

mp3 がどれだけバッファリングされたかを確認することはできますか?

setOnBufferingUpdateListener リスナーを追加すると、このメソッドでバッファリングされている割合を知ることができます。

public void onBufferingUpdate(MediaPlayer mp, int percent) {
    Log.i(TAG, "onBufferingUpdate - percent=" + percent);

}

上記は、一部のストリームでは機能しますが、他のストリームでは機能しません。私はまだ理由を理解しようとしています。

于 2012-09-26T02:06:01.080 に答える