ライブラジオストリームをAndroidで動作させるのに苦労しています。 MediaPlayer
クラスを使用して、URLを設定して再生しています。それはほとんどの部分でうまく機能しますが、5〜30分後に必然的に死にます。 2.1電話(より具体的にはヒーロー)では、このログ出力が表示されます
W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1 extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)
ここで、MediaStreamService
はMediaPlayer
を含む私のサービスであり、出力はOnInfoListener
からのものです。
2.2の電話では、OnInfoListener
コールバックを取得できません。ストリームが停止するだけです。しかし、私はlogcatでこれを見ます
E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed
常にlogcatスパムが送信されているにもかかわらず、1.6の電話で問題なく動作するようです
E/PlayerDriver( 82): Invalid percentage value <big growing number>
私の質問は、エラーコード(1、26)はどういう意味ですか? mediaPlayerがクラッシュする原因は何ですか? 2.1の問題は2.2の問題と関連していますか?ありがとう、ネイサン
編集:OnInfoListener
のソースコードを調べていたところ、public static final int MEDIA_INFO_UNKNOWN = 1;
が見つかりました。正確にはわかりません。また、これらの追加情報がどこに保存されているかもわかりません。メディア情報不明とはどういう意味ですか?または、この26が何を表すかが非常に高く評価されます。
私の質問は、エラーコード(1、26)はどういう意味ですか?
エラーは-11で、これはPVMFErrTimeoutを意味します。ここで定義ファイルをチェックアウトできます リンクテキスト
たぶんRDSデータ?バッファサイズを手動で設定しますか?
再生を開始するには、start()を呼び出す必要があります。 start()が正常に戻ると、MediaPlayerオブジェクトはStarted状態になります。 isPlaying()を呼び出して、MediaPlayerオブジェクトが開始状態にあるかどうかをテストできます。
Started状態では、OnBufferingUpdateListenerがsetOnBufferingUpdateListener(OnBufferingUpdateListener)を介して事前に登録されている場合、内部プレーヤーエンジンがユーザー指定のOnBufferingUpdateListener.onBufferingUpdate()コールバックメソッドを呼び出します。このコールバックにより、アプリケーションはオーディオ/ビデオのストリーミング中にバッファリングステータスを追跡できます。
Start()を呼び出しても、すでに開始状態にあるMediaPlayerオブジェクトには影響しません。
多分それは応答の一部です。