Iphone 尝试从.wav文件中提取样本
我试图从.wav文件中获取样本并将它们存储在数组中(使用objective c) 有人知道一个好办法吗 到目前为止,它看起来像libsndfile(http://www.mega-nerd.com/libsndfile/)可能是我需要实现的,但我不确定从哪里开始(我对这方面比较陌生)Iphone 尝试从.wav文件中提取样本,iphone,arrays,sample,wav,Iphone,Arrays,Sample,Wav,我试图从.wav文件中获取样本并将它们存储在数组中(使用objective c) 有人知道一个好办法吗 到目前为止,它看起来像libsndfile(http://www.mega-nerd.com/libsndfile/)可能是我需要实现的,但我不确定从哪里开始(我对这方面比较陌生) 谢谢;) AudioToolbox.framework中的ExtAudioFile和AudioFileAPI将为您完成此操作。AQOfflineRenderTest可能是一个很好的示例。如果您已经知道波形文件的类型
谢谢;) AudioToolbox.framework中的
ExtAudioFile
和AudioFile
API将为您完成此操作。AQOfflineRenderTest可能是一个很好的示例。如果您已经知道波形文件的类型…例如,以48 KHz的频率进行16位单声道采样,那么最简单的方法就是简单地将波形文件作为二进制文件打开,移过标题,然后开始解析示例字节
如果您熟悉C结构,并且如果不熟悉,有大量的在线字节对字节引用,那么wave头就是这样的
类型定义结构
{
char chunkID[4];
UINT32 chunkSize;//只需计算此字段
字符格式[4];
char subchunk1ID[4];
UINT32次弹簧尺寸;
UINT16音频格式;
UINT16个数字通道;
UINT32采样器;
UINT32字节;
UINT16块对齐;
UINT16位样本;
char subchunk2ID[4];
UINT32 subchunk2Size;//需要计算此字段
}波头
这一点之后的样品是有序的。如果是单声道,则有一个采样;如果是立体声,则有一个声道,然后是该时间位置的下一个声道
当然,如果您还不知道wave文件的类型和/或大小,那么您总是可以简单地解析头文件