В AVAssetExportSession отсутствует звуковая дорожка при экспорте на устройство

Я запускаю экспорт на симуляторе, и все отлично работает. Я запускаю его на устройстве, и видео экспортируется, но звука нет. Это заставляет меня поверить, что я должен использовать аудиоформат, который не поддерживает устройство, но поддерживает OS X, поскольку симулятор использует то, что использует OS X. Я пробовал m4a, aiff и aifc, и мне не повезло! Любые идеи??


person Andrew Carter    schedule 06.02.2011    source источник


Ответы (1)


У меня очень похожая проблема. Похоже, это не связано с кодеками, так как я сделал отдельный тестовый пример, который отлично работает с тем же видео. Есть связанный вопрос, в котором говорится, что проблема может заключаться в воспроизведении одних и тех же ресурсов с использованием MPMoviePlayerController. Это привело меня на правильный путь (вроде).

В моем случае проблема связана с использованием ресурсов в AVPlayer во время экспорта. Мне не удалось найти точную комбинацию, из-за которой при экспорте пропадает звуковая дорожка — в отдельном тестовом проекте экспорт выполняется нормально, хотя актив одновременно воспроизводится в AVPlayer. После нескольких часов попыток найти точную причину я сдался и просто вытащил ассет из плеера, используя replaceCurrentItemWithPlayerItem:nil во время экспорта. Это хак, но он работает.

AVFoundation — очень мощный фреймворк, но, Боже, я бы хотел, чтобы он не был таким привередливым или, по крайней мере, регистрировал больше ошибок вместо того, чтобы молча производить мусор.

person zoul    schedule 21.06.2011