使用 AVAssetExportSession 导出 MP3
Exporting MP3 with AVAssetExportSession
我现在在 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 类型的媒体。
我当然尝试过此代码的变体,但 none 成功了。
如果有人能提供使它起作用的提示,那就太好了。
以防其他人遇到同样的问题;这是为我工作的结果。
似乎这不是唯一可能的解决方案,但我没有尝试任何其他解决方案。
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 ....
}
}
我现在在 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 类型的媒体。
我当然尝试过此代码的变体,但 none 成功了。
如果有人能提供使它起作用的提示,那就太好了。
以防其他人遇到同样的问题;这是为我工作的结果。
似乎这不是唯一可能的解决方案,但我没有尝试任何其他解决方案。
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 ....
}
}