使用 AVAssetExportSession 导出 MP3
Posted
技术标签:
【中文标题】使用 AVAssetExportSession 导出 MP3【英文标题】:Exporting MP3 with AVAssetExportSession 【发布时间】:2019-09-20 08:58:29 【问题描述】:我现在在一个 ios 应用程序中拥有这段 Swift 代码,它允许我将一些音频项目从我的设备的 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 ....
它适用于 .m4a 类型的媒体项目,但不幸的是不适用于 .mp3 类型的媒体。
我当然尝试过这段代码的变体,但都没有奏效。
如果有人知道如何让它发挥作用,那就太好了。
【问题讨论】:
【参考方案1】:如果其他人面临同样的问题;这就是为我工作的结果。
似乎这不是唯一可能的解决方案,但我没有尝试其他任何解决方案。
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 ....
【讨论】:
你好,你能解释一下newFileURL是什么吗?我不明白。 什么是 .caf 扩展名?它不是 .mp3 这是很久以前的事了,但据我所知,.caf 是一种不同的音频文件格式。我认为它可以与 .mp3 相媲美,但没有许可证问题。 newFileURL 只是我必须在代码中事先设置的变量。以上是关于使用 AVAssetExportSession 导出 MP3的主要内容,如果未能解决你的问题,请参考以下文章
使用 AVAssetExportSession 导出 MP3
AVAssetExportSession - 如何从视频持续时间中修剪毫秒