【问题标题】:How to Play and Save AudioFile from filePath iOS Swift如何从文件路径 iOS Swift 播放和保存音频文件
【发布时间】:2021-09-05 07:09:03
【问题描述】:

我正在从文件夹中选择音频文件并在此委托函数中获取 URL

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    print("url", url)
    self.filePickedBlock?(url)
}

网址看起来像这样

file:///private/var/mobile/Containers/Data/Application/8012C1BB-43E3-4E0C-9167-B7B5A49824A1/tmp/com.ios.PrankYourFriends-Inbox/AUDIO1.m4a

我正在将此 URL 作为字符串保存在 Realm 数据库中,并在我想玩时获取它。

我面临的问题

当我在选择后立即播放此音频时,它可以正常播放。但是,如果我转到任何其他 ViewController 并再次返回并按下播放按钮,它就不会播放音频。

我正在播放这样的音频:

self.avPlayer = AVPlayer.init(url: filePath)
self.avPlayer?.play()

请让我知道我做错了什么。

【问题讨论】:

    标签: ios swift avfoundation avplayer avkit


    【解决方案1】:

    它在 tmp 文件夹中

    /tmp/com.ios.PrankYourFriends-Inbox/AUDIO1.m4a
    

    复制它说文档/库,然后随时使用它

    【讨论】:

    • 你能帮我写代码吗?如何将它复制到文档/库?
    • 为目的地创建 url,然后将其用于复制 *.com/a/48444782/5820010
    • 为目的地创建 url 你的意思是:fileManager.urls(for: .documentDirectory, in: .userDomainMask)
    • yes in: .userDomainMask).first! 并从 src url 追加最后一个路径组件
    • Awesomeee.... 实际上我正在做这件事,但我做错的唯一一件事就是没有删除文件。但是那个扩展工作......非常感谢:)