5

Androidメディアプレーヤーを使用してrtspリンクを再生している小さなAndroidアプリケーションを開発しています。Android 16 API未満で適切に動作しています。しかし、問題は、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);

以下はいくつかのテストケースです

  1. ZTE N860 – ラジオの再生を開始するには、約 4 ~ 5 分かかります。
  2. Samsung Galaxy S4 – オーディオがまったく機能しません。メソッド内で start メソッドを呼び出していますonprepareが、音声がありません。
  3. Samsung SCH1415 - ラジオの再生を開始するのに約 8 分かかります
  4. HTC V5 – オーディオが常に機能しません。再生を開始しますが、音声がありません。行動に一貫性がなく、それがさらなるフラストレーションを引き起こしています。
4

1 に答える 1

3

rtspリンクを再生するsdrPlayer.prepareAsync();には、代わりに使用する必要があります

sdrPlayer.prepare();

ドキュメントが言うので

プレーヤーを非同期で再生できるように準備します。データソースと表示面を設定したら、prepare()またはを呼び出す必要がありますprepareAsync()ストリームの場合、prepareAsync()十分なデータがバッファリングされるまでブロックするのではなく、すぐに戻る を呼び出す必要があります。

于 2013-06-19T04:08:52.460 に答える