Начните воспроизведение .mp3 на полпути с помощью AVAudioPlayer

Хорошо, это непростой вопрос (по крайней мере, пока).

У меня AVAudioPlayer прекрасно работает: я загружаю mp3 с помощью NSURLConnection, а затем воспроизводю эти данные с помощью AVAudioPlayer. У меня вопрос, как я могу запустить AVAudioPlayer в произвольном месте в mp3?

Я могу начать загрузку в произвольном месте, установив заголовки HTTP, без проблем. Первые два пакета загрузки mp3 выглядят как информация заголовка, и кажется, что AVAudioPlayer нуждается в них для правильного воспроизведения. Точно так же, если я беру непрерывный mp3 и вырезаю часть данных на полпути, AVAudioPlayer это не устраивает.

Есть ли способ заглянуть внутрь кодировки mp3, чтобы без проблем сшить последнюю четверть файла в заголовок? Или что-нибудь более очевидное?


person 1ts    schedule 07.12.2009    source источник
comment
Просто чтобы уточнить: я хочу перейти к той части mp3, которая еще не была загружена. Например. загрузите первые 10 000 байт, затем пропустите и начните загрузку с 60 000-го байта и играйте оттуда.   -  person 1ts    schedule 07.12.2009


Ответы (2)


Не используйте AVAudioPlayer. Используйте Core Audio. У вас гораздо больше контроля над звуком и вы можете заставить его воспроизводить любой бит файла по вашему выбору.

AVAudioPlayer - очень простой класс, который не дает вам особого контроля.

person Jay    schedule 09.12.2009
comment
Спасибо за подсказку, проверю. - person 1ts; 09.12.2009

Проверить: http://cocoawithlove.com/2009/06/revisiting-old-post-streaming-and.html - Здесь вы узнаете, как настроить потоковый MP3-плеер, который, я думаю, близок к тому, что вам нужно.

person David Smith    schedule 07.12.2009
comment
Я знаком с этим постом, и у меня уже есть потоковый MP3-плеер, но я нигде не могу найти никого, кто реализовал бы функцию, которую я ищу. - person 1ts; 08.12.2009