我录制并保存音频文件,这可以在应用中按预期播放和播放。 但是,在录制之后,我尝试加载它,这样我就可以将音频传递给JSON对象,但无法打开它。
我收到以下错误:
The file “audio.m4a” couldn’t be opened because the text encoding of its contents can’t be determined.
这是我正在制作的电话:
do {
let audioData = try NSData(contentsOfFile: String(contentsOf: audioURL!))
} catch {
print error
}
有关如何从base64编码中的文件加载音频数据的任何想法吗?
由于
答案 0 :(得分:6)
您没有解释如何保存文件,所以我只能假设(根据文件扩展名),您没有将其保存为base64字符串。 请参阅this问题的第一个答案。检查是否正确保存音频文件为base64字符串。 但你仍然可以使用其他方式。首先加载数据:
let audioData = try Data(contentsOf: audioURL!)
然后将其转换为base64字符串:
let encodedString = audioData.base64EncodedString()
答案 1 :(得分:4)
问题是你使用的是错误的方法。音频数据不是字符串,而是字节的集合(UInt8的数组)。要读取音频数据,您需要使用数据初始值设定项Data(contentsOf: audioURL)
,并使用数据实例方法base64EncodedString将此数据转换为base64字符串。
if let base64String = try? Data(contentsOf: audioURL).base64EncodedString() {
print(base64String)
}