2

MediaPlayerHTTPサーバーからAACストリームを取得し、それをAndroidのデータソースとして使用しています。
完全に正常に再生されますが、実行しようとするmediaPlayer.seekTo(int position)と、次のエラーが約100万回発生します。
WARN/AACDecoder(13889): AAC decoder returned error -1, substituting silence
WARN/AACDecoder(13889): AAC decoder returned error 10, substituting silence
WARN/AACDecoder(13889): AAC decoder returned error 1, substituting silence

このエラーはAndroid2.2で発生しますが、以前のバージョンでも機能しないようです。私のアプリケーションではシークのサポートが必須であり、Android1.5〜2.2でも機能するようにしたいと思います。

AACストリームを探す方法について何か良い解決策はありますか?

4

1 に答える 1

1

提供されたストリームをシークすることはできません。サーバーはこれをどのように処理できますか?

バイトを保存しても、生の AAC ストリームはシークできません (シーク情報は含まれません)。一部のメディア プレーヤーは、ファイル全体を解析し、ロードするたびにその場でインデックスを作成することで、これを回避しています。より良い解決策は、ストリームを MP4 などのコンテナーに再パッケージ化することです。MP4Boxを使用した例を次に示します。

MP4Box -add raw_stream.aac -new output_file.mp4
于 2012-12-28T19:38:29.547 に答える