给定一个音频文件“coolsound.aif”,我该如何处理检索声音数据块(SSND块)并对其进行迭代以执行一些任意处理的任务?我希望能够实现以下目标:
/*
* Pseudocode of what I'd like to do
*/
// get SSND chunks out of audio file somehow
Array soundDatachunks = getSSNDChunksFromSoundFile("coolsound.aif");
// iterate over each chunk
foreach(soundDataChunks as chunk){
// Now iterate over each element in the waveForm data array
foreach(chunk.waveForm as w){
//Just log it to debug console for now
Log(w);
}
}
其他信息:
-我的目标是使用波形数据以图形方式可视化音频文件。
-使用AudioToolbox in this manner记录了音频文件。
-SSND块具有此source中显示的结构:
typedef struct {
ID chunkID;
long chunkSize;
unsigned long offset;
unsigned long blockSize;
unsigned char WaveformData[];
} SoundDataChunk;
最佳答案
您可以使用几种不同的API,这些都取决于您想要多少控制权以及您打算如何处理音频数据。 ExtendedAudioFile API用于基本操作,例如获取音频数据和绘制数据。
似乎需要很多代码才能实现这一点,就像您必须创建一个AudioStreamBasicDescription对象并对其进行正确配置一样,但是它允许您非常快速地读取整个音频文件并访问所有示例以进行绘制。
毛重
关于objective-c - 如何在iOS中检索和遍历声音数据 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998923/