Экспорт MP3 с AVAssetExportSession - PullRequest
       35

Экспорт MP3 с AVAssetExportSession

0 голосов
/ 20 сентября 2019

Теперь у меня есть этот фрагмент кода Swift в приложении iOS, который позволяет мне перенести некоторый аудио элемент из библиотеки iTunes моего устройства в каталог документов моего собственного приложения.

let exportSession = AVAssetExportSession(asset: AVAsset(url: url), 
                                         presetName: AVAssetExportPresetAppleM4A)
exportSession?.shouldOptimizeForNetworkUse = true
exportSession?.outputFileType = AVFileType.m4a
exportSession?.outputURL = newFileURL

exportSession?.exportAsynchronously(completionHandler: {[weak self]
    () -> Void in
    if exportSession!.status == AVAssetExportSession.Status.completed  {
        // All is working fine!!
        .... some useful code ....
    }
}

Itотлично работает с медиа-элементом типа .m4a, но, к сожалению, не с медиа-типом .mp3.

Я, конечно, пробовал варианты этого кода, но ни один из них не работал.

Было бы замечательно, если бы у кого-то был совет, как заставить это работать.

1 Ответ

0 голосов
/ 21 сентября 2019

В случае, если кто-то еще сталкивается с тем же вопросом;вот что в итоге сработало для меня.

Кажется, что это не единственно возможное решение, но я не пробовал другого.

let exportSession = AVAssetExportSession(asset: AVAsset(url: url), 
                                         presetName: AVAssetExportPresetPassthrough)
exportSession?.shouldOptimizeForNetworkUse = true
exportSession?.outputFileType = AVFileType.caf
exportSession?.outputURL = newFileURL // File with a .caf extention.

exportSession?.exportAsynchronously(completionHandler: {[weak self]
    () -> Void in
    if exportSession!.status == AVAssetExportSession.Status.completed  {
        // All is working fine!!
        .... some useful code ....
    }
}
...