是否可以实时播放AudioQueue的音频?

时间:2012-05-10 02:38:34

标签: objective-c ios networking tcp audioqueue

我需要从麦克风获取音频并使用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。其他的事情是如何连续获取音频,当所有缓冲区都满了,我不再接收数据了,我只想清理缓冲区。

欢迎任何想法,谢谢!

0 个答案:

没有答案