同じアクティビティで複数のビデオビューで rtsp ストリームを再生するためにビデオビュー (または MediaPlayer) を使用すると、互換性の問題が発生します。
ここでこの問題に関する別の質問を開きましたが、異なる電話で同じソフトウェアをテストして動作するため、それが私のコードではないことがわかりました。
RTSP セットアップの logcat Info メッセージを表示すると、各電話で stagefright (Android マルチメディア フレームワーク) の実装が異なることがわかります。
(A) I/RTSPEngine(147): User-Agent: Player/LG Player 1.0 for Android(stagefright alternative)
(B) I/ARTSPConnection(2252): User-Agent: stagefright/1.2 (Linux;Android 4.2.1)
(C) I/ARTSPConnection(10345): User-Agent: ALCATEL ONE TOUCH 997D-SVN/02001 (Linux;Android 4.1.1)
(D) W/ARTSPConnection(1948): User-Agent: User-Agent: Samsung GT-I9300 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
A is Lg l9 - android 4.1.2
B is Chinese jiayu g4 - Android 4.2.1
C is ALCATEL ONE TOUCH 997D - Android 4.1.1
D is Samsung galaxy S3 - Android 4.3
ここで異なる android バージョンと異なる stagefright があることがわかりますが、複数の rtsp は Lg でのみ失敗します (エラーhereを参照)。もう 1 つの興味深い点は、Lg のみが RtspEngine を使用し、その他は ARTSPConnection を使用することです。
アプリケーションにネイティブ stagefright の使用を強制する方法はありますか (デバイス上に存在する場合) ?
アプリケーションはこの互換性の問題をどのように管理できますか? 一部のブランドの携帯電話と互換性のないアプリを開発することは合理的ではありません