【问题标题】:Exporting MP3 with AVAssetExportSession使用 AVAssetExportSession 导出 MP3
【发布时间】: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 类型的媒体。

我当然尝试过这段代码的变体,但都没有奏效。

如果有人知道如何让它发挥作用,那就太好了。

【问题讨论】:

    标签: ios swift mp3 avassetexportsession mpmediapickercontroller


    【解决方案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 只是我必须在代码中事先设置的变量。
    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多