Поиск в потоках AAC на Android - PullRequest
       26

Поиск в потоках AAC на Android

2 голосов
/ 14 октября 2010

Я получаю поток AAC с HTTP-сервера и использую его в качестве источника данных для MediaPlayer в Android.
Играет отлично, но когда я пытаюсь выполнить mediaPlayer.seekTo(int position), я получаю следующие ошибки около миллиона раз:
WARN/AACDecoder(13889): AAC decoder returned error -1, substituting silence<br> WARN/AACDecoder(13889): AAC decoder returned error 10, substituting silence<br> WARN/AACDecoder(13889): AAC decoder returned error 1, substituting silence

Эта ошибка возникает в Android 2.2, но, похоже, она не работает и в более ранних версиях. Поддержка поиска необходима в моем приложении, и я хотел бы, чтобы она работала на Android 1.5 - 2.2.

Есть ли хорошее решение о том, как искать в потоках AAC?

1 Ответ

1 голос
/ 28 декабря 2012

Вы не можете искать обслуживаемый поток. Как сервер может справиться с этим?

Даже если вы сохраняете байты, необработанные потоки AAC недоступны для поиска (они не содержат информации о поиске). Некоторые медиа-плееры обходят это, анализируя весь файл и индексируя его на лету каждый раз, когда загружают его. Лучшее решение - переупаковать поток в контейнер, такой как MP4. Вот пример использования MP4Box :

MP4Box -add raw_stream.aac -new output_file.mp4
...