假设我有一个正弦波的Y值数组。 (假设X是时间)
在Python中,您可以将其写入Wav文件:
wav.write("file.wav", <sample rate>, <waveform>)
是否可以使用AVFoundation在Swift中执行此操作?如果可以,怎么办?如果没有,我应该使用哪个库? (我现在正尝试避免使用AudioKit。)
谢谢, 查尔斯
答案 0 :(得分:0)
在AVFoundation中有AVAudioFile
,但是您必须以AVAudioPCMBuffer
的形式提供数据,这会将数据保存在AudioBufferList
中,而AudioBuffer
由{{1 }}这些元素非常复杂,因为它们的设计目标显然是能够处理所有可能的音频格式(包括压缩,VBR等)。因此,AVAudioFile
可能只是将一些合成样本写入WAV文件中而已。
或者,有音频文件服务C-API。它提供了AudioFileCreateWithURL
,AudioFileWriteBytes
和AudioFileClose
,它们可能会完成您的任务。
最复杂的部分可能是AudioStreamBasicDescription
所需的AudioFileCreateWithURL
。为解决此问题,存在实用程序功能:FillOutASBDForLPCM
。