- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Xcode/Cocoa 和 ExtAudioFile API,我尝试存储 AudioBufferList* 对象以供以后使用,但我在重新访问数据时遇到了麻烦。这些对象来自重复的 ExtAudioFileRead 调用。
我意识到我不能只是将这些 AudioBufferList* 对象填充到 NSArray 中,但我的印象是 NSPointerArray 可以用于此目的。然而,当在 NSPointerArray 中存储音频缓冲区列表后尝试访问 audioBufferList->mBuffers[0].mData 时,它们只是归零。
我正在将audioBufferLists内存复制到新的audioBufferList对象,因为我为每个ExtAudioFileRead调用重复使用相同的音频缓冲区列表。不过,我不确定这是否足够,并且 memcpying void* audioBufferList->mBuffers[0].mData 对象也没有帮助。
存储这些 AudioBufferList* 对象的最简单方法是什么?我走在正确的道路上吗?
最佳答案
AudioBufferLists 将其数据保存在 audioBufferList.mBuffers[i].mData
中。mData
是 void*
值的实际类型由您指定的输出格式决定。
示例:
如果您定义了kAudioFormatFlagsCanonical
,kAudioFormatLinearPCM
,mBitsPerChannel = 32
和mFramesPerPacket = 1
作为输出格式,mData 数组包含 AudioSampleType
类型的值(这是 Float32
的 typedef)
如果您选择了其他格式,该数组可能包含 SInt16 值或其他值。
因此,当您想要复制 mData 的内容时,您必须了解您的输出类型。
如果您知道格式,您可以简单地创建一个 c 数组
dataCopy = calloc(dataSize, sizeof(Float32));
并 memcpy audioBufferList.mBuffers[i].mData 到其中。
如果你想使用 cocoa NSMutableArray,你必须将 float 包装到 NSNumber 对象中。
关于cocoa - 存储来自 ExtAudioFile API 的 AudioBufferList 供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1866000/
我正在使用 ExtAudioFileWriteAsync 将音频内容写入 m4a 文件,它运行良好。但是,我还想将元数据添加到导出的文件中。 这有可能吗?如果是这样,如何? 如有任何帮助,我们将不胜感
我正在使用 Core Audio SDK 文档中提供的 EXTAudioFileReadTest 应用程序,我正在尝试从 mData 缓冲区中获取所有浮点值,以便我可以用它们绘制波形。 目前,我正在打
我在 Swift 3 中有这段代码,大多数时候我的输出是 0.0 零,我很少看到 e^-50 的非常小的数字 fileURL是一个recording.caf,里面有声音。 有人知道吗? func re
我目前正在使用 OpenAL 播放游戏音乐。它工作正常,除了它不适用于原始 WAV 文件之外的任何东西。这意味着我最终得到了大约 9mb 的配乐。 我是 OpenAL 的新手,我直接使用来自 Appl
使用 Xcode/Cocoa 和 ExtAudioFile API,我尝试存储 AudioBufferList* 对象以供以后使用,但我在重新访问数据时遇到了麻烦。这些对象来自重复的 ExtAudio
我需要在 iOS 上将 WAVE 文件转换为 AAC 编码的 M4A 文件。我知道旧设备或模拟器不支持 AAC 编码。我在运行代码之前正在测试它。但我仍然无法让它工作。 我查看了 Apple 自己的
我是一名优秀的程序员,十分优秀!