Воспроизведение без промежутков с AVQueuePlayer/AVPlayer - возможно ли это?

Я играл с AVPlayer и его подкласс AVQueuePlayer (и массив MPMediaItems) и обнаружили, что последний лучше справляется с альбомами без пауз, но, похоже, ни один из них не достигает цели в полной мере.

Есть очень заметная пауза между текущей и следующей дорожкой при использовании AVPlayer"s replaceCurrentItemWithPlayerItem метод. Но с AVQueuePlayer"s advanceToNextItem В методе этот разрыв гораздо более узкий.

Единственными вариантами являются эти два класса, так как я имею дело с AVPlayerItemкоторые содержат URL-адреса активов из элементов в музыкальной библиотеке iTunes. Тогда возникает вопрос, возможно ли вообще добиться безостановочного воспроизведения с помощью iOS SDK?

2 ответа

Решение

Вы можете использовать API-интерфейс AVAssetReader или Extended Audio File Services для чтения данных из аудиофайлов, а затем передавать несжатые аудиоданные в микшер Audio Unit с любым желаемым разрывом, без пропусков, с перекрытием или даже с микшированием. Правильное использование всех этих API-интерфейсов нетривиально.

Вы пытались использовать https://github.com/tumtumtum/StreamingKit framework для воспроизведения без пауз? Я пытаюсь исследовать эту тему самостоятельно.

Другие вопросы по тегам