我录制并保存了一个音频文件,这可以在预期的应用中播放和播放.但是,在录制之后,我尝试加载它,这样我就可以将音频传递给JSON对象,但无法打开它.
我收到以下错误:
Run Code Online (Sandbox Code Playgroud)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
}
Run Code Online (Sandbox Code Playgroud)
有关如何从base64编码中的文件加载音频数据的任何想法?
谢谢
您没有解释如何保存文件,因此我只能假设(根据文件扩展名),您没有将其保存为base64字符串.请参考这个问题的第一个答案.检查是否正确保存音频文件为base64字符串.但你仍然可以使用其他方式.首先加载数据:
let audioData = try Data(contentsOf: audioURL!)
Run Code Online (Sandbox Code Playgroud)
然后将其转换为base64字符串:
let encodedString = audioData.base64EncodedString()
Run Code Online (Sandbox Code Playgroud)
问题是您使用了错误的方法。音频数据不是字符串,而是字节集合(UInt8 数组)。要读取您的音频数据,您需要使用数据初始值设定项Data(contentsOf: audioURL)并使用数据实例方法 base64EncodedString 将此数据转换为 base64 字符串。
if let base64String = try? Data(contentsOf: audioURL).base64EncodedString() {
print(base64String)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |