2

我在我的项目中使用 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 **),它可能会解决我的问题,但我不知道该怎么做。

任何帮助表示赞赏。

4

1 回答 1

0

尝试这个:

float *buffer = (float*)bufferList->mBuffers[0].mData;
于 2015-07-10T21:01:24.663 回答