使用(AVFoundation?)使用正弦波进行音频合成

时间:2019-03-14 21:26:45

标签: ios swift avfoundation

假设我有一个正弦波的Y值数组。 (假设X是时间)

在Python中,您可以将其写入Wav文件:

wav.write("file.wav", <sample rate>, <waveform>)

是否可以使用AVFoundation在Swift中执行此操作?如果可以,怎么办?如果没有,我应该使用哪个库? (我现在正尝试避免使用AudioKit。)

谢谢, 查尔斯

1 个答案:

答案 0 :(得分:0)

在AVFoundation中有AVAudioFile,但是您必须以AVAudioPCMBuffer的形式提供数据,这会将数据保存在AudioBufferList中,而AudioBuffer由{{1 }}这些元素非常复杂,因为它们的设计目标显然是能够处理所有可能的音频格式(包括压缩,VBR等)。因此,AVAudioFile可能只是将一些合成样本写入WAV文件中而已。

或者,有音频文件服务C-API。它提供了AudioFileCreateWithURLAudioFileWriteBytesAudioFileClose,它们可能会完成您的任务。 最复杂的部分可能是AudioStreamBasicDescription所需的AudioFileCreateWithURL。为解决此问题,存在实用程序功能:FillOutASBDForLPCM