objective-c - 如何在iOS中检索和遍历声音数据 block ?

标签 objective-c ios audio core-audio aiff

给定一个音频文件“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/

相关文章:

algorithm - 哪种音频编解码器 G.722 或 G.726 提供更高的稳定性和更低的延迟?

iphone - AppDelegate 属性在 viewController 之间被重置

iphone - 游戏中心在完整版和精简版之间

iphone - 如何获取 UIImage 的 alpha

ios - 在 xcode ui 测试执行过程中关闭设备的 wifi

html - HTML5音频控件在Android上不起作用

ios - 如何将 Objc 文件导入到我的自定义 cocoapods 框架中的 Swift 文件中?

ios - iAD 未按预期工作

ios - 允许 MPMoviePlayerViewController 横向播放,同时保留呈现 View Controller 的方向

android - (Android) 从音频线路输入而不是手机麦克风获取音频信号