AudioBufferList to float ** 转换 EZAudio EZMicrophone for Visual Plotting

Posted

技术标签:

【中文标题】AudioBufferList to float ** 转换 EZAudio EZMicrophone for Visual Plotting【英文标题】:AudioBufferList to float ** conversion EZAudio EZMicrophone for Visual Plotting 【发布时间】:2015-06-01 12:05:57 【问题描述】:

我在我的项目中使用 EZAudio 从麦克风读取音频数据。 EZAudio 有 2 种麦克风方法:

- (void)microphone:(EZMicrophone *)microphone hasBufferList:(AudioBufferList *)bufferList withBufferSize:(UInt32)bufferSize withNumberOfChannels:(UInt32)numberOfChannels 

-(void)microphone:(EZMicrophone *)microphone hasAudioReceived:(float **)buffer withBufferSize:(UInt32)bufferSize withNumberOfChannels:(UInt32)numberOfChannels 

我使用 AudioBufferList 的第一种方法来获取音频数据并通过 wifi 发送它们。它运作良好。但是当我想绘制它们时,据我所知,EZAudio 只接受使用 float ** 进行绘制的第二种方法的输出。我似乎被困在这里。我无法让 EZOutput 播放 float **,因此我可以使用第二种麦克风方法进行绘图和播放。而且我无法从第一种绘图方法中传入 AudioBufferList。

如果我可以设法将一个转换为另一个(AudioBufferList float **),它可能会解决我的问题,但我不知道该怎么做。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

试试这个:

float *buffer = (float*)bufferList->mBuffers[0].mData;

【讨论】:

以上是关于AudioBufferList to float ** 转换 EZAudio EZMicrophone for Visual Plotting的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:AudioBufferList 初始化和释放

将 AudioBufferList 转换为 CMSampleBuffer 会产生意外结果

AudioBufferList 的 AurioTouch 用途

如何在渲染回调中交错非交错的 AudioBufferList?

AudioUnit inputCallback 与 AudioUnitRender -> audioBufferList.mBuffers[0].mDataByteSize 之间不匹配!= in

aurioTouch2 录音问题。我需要将数据从一个 AudioBufferList 添加到另一个