gpt4 book ai didi

ios - 使用 AVAudioPlayer 播放音频

转载 作者:行者123 更新时间:2023-12-01 21:58:35 26 4
gpt4 key购买 nike

我目前正在从 Firebase 下载音频文件,将它们保存在本地并在表格 View 中列出。我得到这样的本地目录:

file:///var/mobile/Containers/Data/Application/6C72433F-4DF0-4976-BBDE-36F6B5C23E6D/Documents/nJNJwVNMrmUGj9uszManQmMOZf52_NO:1.m4a

当我尝试使用 AVAudioPLayer 播放音频文件时,出现错误:

错误域 = NSOSStatusErrorDomain 代码 = 2003334207 “(空)”

我已经坚持了三天,非常感谢有人指出我正确的方向。如果需要任何进一步的代码来帮助解决这个问题,请告诉我。谢谢。

这是我播放音频的代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//Access the cell tapped on and the path to the recording the user wants to listen to
let path = findDirectory(filename:userID + "_NO:" + String(recordingNumber)).appendingPathComponent("\(indexPath.row + 1).m4a")

do {
self.audioPlayer = try AVAudioPlayer(contentsOf: path)
self.audioPlayer.play()
} catch let error as NSError {
print(error.description)
}
}

我查找目录的代码在这里:
func findDirectory(filename:String) -> URL {
let fileManager = FileManager.default
let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
let docDirectory = urls[0] as URL
let soundURL = docDirectory.appendingPathComponent("\(filename).m4a")
print(soundURL)
return soundURL
}

最佳答案

如果您下载的文件保存为nJNJwVNMrmUGj9uszManQmMOZf52_NO:1.m4a你为什么要在它上面附加:.appendingPathComponent("\(indexPath.row + 1).m4a")这个值<row_value + 1>.m4a在您的桌面 View 中?

就像现在您正在尝试查找另存为的文件:nJNJwVNMrmUGj9uszManQmMOZf52_NO:1.m4a<row_value + 1>.m4a .

这里<row_value + 1>是我在此答案中使用的占位符以向您展示其含义,但在实际代码中将被替换为 1 之类的值, 2 ……

为了更好地解释它,让我们分析一下:

let path = findDirectory(filename:userID + "_NO:" + String(recordingNumber)).appendingPathComponent("\(indexPath.row + 1).m4a")
  • userID + "_NO:"将产生类似:nJNJwVNMrmUGj9uszManQmMOZf52_NO:
  • String(recordingNumber)将产生类似:1 (例如)
  • findDirectory(filename: ...)用上面的会给你回nJNJwVNMrmUGj9uszManQmMOZf52_NO:1.m4a从行 let soundURL = docDirectory.appendingPathComponent("\(filename).m4a")
  • 现在在它上面,你做.appendingPathComponent("\(indexPath.row + 1).m4a")它将更多内容附加到您看起来已经完成的路径

  • 您可能希望修改逻辑以更好地匹配您期望路径与 tableview 一起使用的方式,以便为文件编写正确的路径(也许这意味着在您的情况下删除您在步骤 4 中执行的额外附加)

    关于ios - 使用 AVAudioPlayer 播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791254/

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