1

rtsp-stream (MediaPlayer クラスと SurfaceView クラスを使用) からのビデオデータを表示するだけの小さなアプリを作成しました。Rtsp-stream は vlc 2.0.0 で作成されます。

正常に動作しますが、1 分後に再生が終了します。

logcat で、次の行を見つけました。

// ...

E/Overlay (138): オーバーレイはバッファをキューに入れる準備ができていません

I/MyHandler( 138): トラック インデックス 0 で BYE を受信しました

E/OMX-VDEC-720P( 138): Rxd i/p EOS、EOS に達したことをドライバーに通知

E/OMX-VDEC-720P( 138): 出力 EOS に達しました

E/OMX-VDEC-720P(138): Rxd OMX_COMPONENT_GENERATE_EOS_DONE

D/XXX (10485): onCompletion() が呼び出されました

// ...

(デコーダー?) バッファーがいっぱいで、再生が終了したようです。新しいデータを受信できるように、これらのバッファを処理できますか?

今回は onCompletion-Event が MediaPlayer をリセット/再起動するのを待つことで解決しましたが、それは実際にはこれを行う方法ではありませんよね?

誰かがこれに対する解決策/アイデアを持っていますか?

ご挨拶 + 事前に感謝します ...

4

2 に答える 2

1

おそらく、セッション タイムアウトに達しています。PLAYリクエストで返されたヘッダーをチェックして、timeout=指示が与えられているかどうかを確認できます!

そのヘッダーの値で示されるように、数秒ごとにリクエストを作成する必要があるGET_PARAMETER場合、サーバーはセッションを強制終了します。

また、そのような RTSP Ping はありますか?も参照してください。

他に何か必要な場合はお知らせください。

于 2012-12-12T15:15:15.387 に答える
0

まだコメントできないので。asyncTaskに配置してみましたか?または、バッファリングが完了すると再生されますか?

また、AsyncTaskで実行できることは、OnProgressUpdate()を変更して、特定のバッファーに到達したときに再生するか、バッファーが完了したときに完全に再生できるようにすることです。

于 2012-06-25T19:02:23.060 に答える