Ошибка домена = NSOSStatusErrorDomain Code = -54 "(null)" в AVAudioPlayer - PullRequest
0 голосов
/ 29 октября 2018

Я боролся с этой ошибкой и не могу понять, откуда она. Я выбираю файл из приложения Файлы в моем приложении. Он возвращает правильный URL (файл: ///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/sound.mp3).

Однако при попытке воспроизвести его с помощью AVAudioPlayer выдается код ошибки Domain = NSOSStatusErrorDomain Code = -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 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...