私はアンドロイドメディアプレーヤーを使用してrtspリンクを再生している小さなアンドロイドアプリケーションを開発しています。アンドロイド16 api以下で正しく動作しています。しかし、問題は、私はAndroidの16で実行したときに、それが再生するために多くの時間がかかるということで、それもplay.followingていないいくつかの時間は、私は以下のandroid-16で再生中にストリーミングオーディオの遅延が発生しましたか?
sdrPlayer = new MediaPlayer();
sdrPlayer.setDataSource(url);
sdrPlayer.prepare();
sdrPlayer.setOnCompletionListener(video.this);
sdrPlayer.setOnPreparedListener(video.this);
sdrPlayer.setOnBufferingUpdateListener(video.this);
sdrPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
を使用していたコードである
いくつかのテストケースです- ZTE N860 - ラジオの再生を開始するのに約4〜5分かかります。
- Samsung Galaxy S4 - 音声がまったく機能しません。
onprepare
方法で メソッドを起動しますが、音声はありません。 - Samsung SCH1415 - ラジオの再生を開始するのに約8分かかります。
- HTC V5 - オーディオは常に動作しません。それは再生を開始しますが、 オーディオはありません。この動作は矛盾しており、それはより多くの欲求不満を引き起こします。 ドキュメントは、それは非同期で、再生用のプレーヤーを準備
を言うので、あなたが
sdrPlayer.prepareAsync();
代わりのsdrPlayer.prepare();
を使用する必要がありRTSPリンクを再生するための
Nitin、2つのRTSP交換が可能で、比較できるならば、サーバーへのトラフィックを盗聴することをお勧めします。一部のAndroidバージョンでRTSP実装のアップデートが多くの既存のアプリケーションを壊してしまったことをお読みください。その場合、RTSP交換でいくつかの違いが見られるはずです。 – Ralf
まずは@Ralfのコメントに感謝しますが、アンドロイド16はリンクを読み込んで最初にリンクを読み込んだり、何らかの機会にrandomly.Alsoメディアプレーヤーのメソッドを再生してtrue.so私は進捗状況を示すことができます。しかし、時には正しく動作します。サーバーが常に最初といくつかの時間にいくつかの破損ビットを送信する可能性があります。 – Nitin
待機時間は、オーディオバッファサイズによって発生します。私はサイズがアンドロイド16 +で増加したと信じています。あなたの質問は何ですか?バッファサイズを制御することはできないので、MediaPlayerを使いたい場合は不運です。私のアプリケーションはFFmpegベースのプレイヤーを使用しているので、バッファーサイズを制御することができます。 –