MediaPlayer
HTTP URL からストリーミングするときに回復力を得るのに苦労しています。
ファイルの再生を開始した後、接続を切断すると (機内モードなど)、 がMediaPlayer#OnErrorListener
生成されwhat=1, extra=-17
、その後すぐにwhat=-38, extra=0
.
これが何を意味するかについて API で確認できるドキュメントはありませんが、extra は「通常は実装依存」です。私は HTC Hero を使っています (まあ、それは T-Mobile UK の G2 Touch です)。
他の人も同じ値を取得しますか?これらの値を、接続が失われたことを意味するものとして捉えても安全ですか?
接続が再表示されたときに再開するにはどうすればよいですか? (現在のシークを設定に保存し、5 秒ごとに再試行しますか?)
デバイスがバッファリングしているものの再生を開始することを決定したことをどのように知ることができますか? (ポーリング以外にisPlaying()
) コールバックはありますか?
さらに、何onBufferingUpdate
が提供されるのか完全にはわかりません。私は 40 分のポッドキャストを使用していますMP3 (64kbps bitrate)
- バッファリングは 1%、2%、3% になります。約 30 分をシークすると 75% が表示され、最初に戻って 5% に戻ると、キャッシュされているものをおおよそ表示する以外に、このコールバックのポイントは何ですか?
最後に、ストリーミングされたものを にパイプする方法はありますMP3
か?