В течение последних нескольких дней я пытался реализовать функцию, которая дает пользователю возможность записать часть звука, который он слушает.В частности:
В моем приложении у меня есть AVPlayer
, который воспроизводит удаленные аудиофайлы.Во время воспроизведения звука пользователь может удерживать кнопку, и, пока кнопка удерживается, воспроизводимое аудио сохраняется.
Моя проблема с AVPlayer
заключается в том, что, насколько я исследовал, кажется,что нет способа получить доступ к аудиобуферу, если базовый AVAsset
является удаленным аудиофайлом.
С другой стороны, я мог бы использовать AVAudioEngine
, где я мог бы легко получить доступ кбуфер, но движок (и базовый AudioNodes
) не поддерживают удаленные аудиофайлы из коробки.
Я надеялся, что смогу обойтись без написания всего сетевого кода и пограничных случаев для потоковой передачи звука.
Мои вопросы:
- Есть ли способ получить доступ к аудиобуферу
AVPlayer
или AVAudioEngine
(или к какому-либо другому объекту) без написания всего кода для аудиопотоковая передача? - Или есть ли другой способ захвата воспроизводимого в данный момент звука (в том же приложении, которое воспроизводит звук)?