Swift 3 – 将以前保存的音频文件加载为base64字符串

我录制并保存了一个音频文件,这可以在预期的应用程序中播放和播放。 但是,在录制之后,我尝试加载它,这样我就可以将音频传递给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编码中的文件加载音频数据的任何想法?

谢谢

您没有解释如何保存文件,因此我只能假设(根据文件扩展名),您没有将其保存为base64字符串。 请参考这个问题的第一个答案。 检查是否正确保存音频文件为base64字符串。 但你仍然可以用其他方式。 首先加载数据:

 let audioData = try Data(contentsOf: audioURL!) 

然后将其转换为base64字符串:

 let encodedString = audioData.base64EncodedString() 

问题是你使用的是错误的方法。 音频数据不是字符串,而是字节的集合(UInt8的数组)。 要读取音频数据,您需要使用数据初始化程序Data(contentsOf: audioURL)并使用数据实例方法base64EncodedString将此数据转换为base64字符串。

 if let base64String = try? Data(contentsOf: audioURL).base64EncodedString() { print(base64String) }