gpt4 book ai didi

ios - AVAudioPlayer 的 NSOSStatusErrorDomain Code=-54

转载 作者:行者123 更新时间:2023-11-29 01:19:27 30 4
gpt4 key购买 nike

AVAudioPlayer 在某些本地 MP3 文件上出现以下错误:

Error Domain=NSOSStatusErrorDomain Code=-54 "(null)"  

我正在将 zip 文件下载到 Documents 目录,然后使用名为 SSZipArchive 的库解压缩.

在 Documents 目录中,将创建一个文件夹来包含解压缩的文件。

我能够毫无问题地播放整张专辑。在我开始下载某些文件之前,一切都很顺利。

我已经寻找过类似的问题 (osx),可能是说这是一个权限错误,但我还没有设法让它工作。

有人知道这个错误是什么吗?它似乎也没有出现在任何文档中。

例如

let fileManager = NSFileManager.defaultManager()
var docDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]

func showContentsOfSubDirectories() {
do {
let files = try fileManager.contentsOfDirectoryAtPath(docDirectory)
print("----")
for file in files {
print("> \(file)")
do {
var rsrc: AnyObject?
let possibleDir = NSURL(fileURLWithPath: docDirectory + "/" + file)
try possibleDir.getResourceValue(&rsrc, forKey: NSURLIsDirectoryKey)
if let isDirectory = rsrc as? NSNumber {
if Bool(isDirectory) {
let subFiles = try fileManager.contentsOfDirectoryAtPath(docDirectory + "/" + file)
for subFile in subFiles {
print(" >> \(subFile)")
}
}
}
} catch let error as NSError {
print(error)
}
}
print("----")
} catch let error as NSError {
print(error)
}
}

我使用上面的代码来检查目录。这将使我能够进行调试:

ALBUM NAME

SONG1.mp3

SONG2.mp3

SONG3.mp3

SONG4.mp3

所以它存在。

let filePath = docDirectory + "/" + ALBUM_NAME + "/SONG1.mp3"
// ~/Library/Developer/CoreSimulator/Devices/XXX/data/Containers/Data/Application/XXX/
// Same issue happens on actual device too

do {
try player = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: filePath!))
} catch let error as NSError {
}

这对某些人有效,但对另一些人无效。

最佳答案

我遇到了同样的错误,我可以确认这是(至少在我的情况下)权限错误。具体来说,与NSFileProtectionKey有关。

NSFileProtectionKey 设置为 NSFileProtectionNone 即可解决。

关于ios - AVAudioPlayer 的 NSOSStatusErrorDomain Code=-54,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34782100/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com