AVAudioPlayer中的错误域= NSOSStatusErrorDomain代码= -54“(空)”

时间:2018-10-29 11:23:44

标签: ios swift avfoundation

我一直在为这个错误而苦苦挣扎,我不知道它是从哪里来的。我正在从我的应用程序中的“文件”应用程序中选择一个文件。它返回正确的URL(file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/sound.mp3)。

但是,当尝试使用AVAudioPlayer播放它时,出现错误域= NSOSStatusErrorDomain代码= -54“(null)”。 我怀疑这与权限有关,但是我找不到解决方法。将文件添加到项目中的资产时,它可以正常播放。

有任何线索吗?

我正在使用的代码如下:

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    guard controller.documentPickerMode == .open, let url = urls.first, url.startAccessingSecurityScopedResource() else {
        return
    }
    defer {
        url.stopAccessingSecurityScopedResource()
    }
    do {
        print("Playing \(url)")
        try audioPlayer = AVAudioPlayer(contentsOf: url)
        print("preparing...")
        audioPlayer?.prepareToPlay()
        print("playing...")
        audioPlayer?.play()
    } catch {
        print(error)
    }
    controller.dismiss(animated: true, completion: nil)
}

此外,我已经添加了iCloud文档权利...

0 个答案:

没有答案