我需要从麦克风获取音频并使用tcp连接传递给其他设备。 我不确定是否可以从AudioQueue播放AudioBuffer。
目前我使用以下代码获取缓冲区:
void AudioInputCallback(
void *inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
const AudioTimeStamp *inStartTime,
UInt32 inNumberPacketDescriptions,
const AudioStreamPacketDescription *inPacketDescs)
{
AudioRecorder *self = (AudioRecorder *)inUserData;
if(!self.recordState.recording)
{
NSLog(@"[ AudioRecorder ] AudioInputCallback not recording");
return;
}
if(inNumberPacketDescriptions > 0)
{
NSData *data = [[NSData alloc] initWithBytes:inBuffer->mAudioData length:inBuffer->mAudioDataByteSize * 2];
[self.delegate didReceivedAudioData:data];
[data release];
}
}
这个块只是将mAudioData推送到NSData,NSData是在设备之间传输数据的关键数据类型。
现在我不知道如何在其他设备中运行这个mAudioData。其他的事情是如何连续获取音频,当所有缓冲区都满了,我不再接收数据了,我只想清理缓冲区。
欢迎任何想法,谢谢!