AudioFileStreamParseBytes返回“pty?”关于流式传输的记录数据

时间:2012-01-09 22:11:44

标签: ios core-audio audio-streaming audio-recording audioqueueservices

我正在制作一个应用程序,它涉及在一台设备上录制音频并在另一台与套接字连接相连的设备上播放。

我正在使用Audioqueues在一个对等设备上记录数据,并将数据流传输到OTA,如SpeakHere示例中所示。

我正在尝试使用另一端的AudioFileStream和AudioQueue在接收设备上播放该数据以进行播放,如Matt Gallagher的AudioStreamer示例中那样。

对AudioFileStreamParseBytes的调用是返回“pty?”错误。因此,与此调用相关的回调(对于属性和音频数据包)都不会被调用。

有很多用于在线流式传输mp3和HTTP流等的示例代码。但是,如果我想流式传输使用AudioQueue录制的音频,我可能会遗漏一些东西吗?可能与AudioQueue属性有关的东西?

有人还可以建议一种方法来检查我收到的数据是否实际上是合理的音频数据?

小段代码:

void AQPlayer::StreamDataAvailable(MediaPacket* packet)
{
    OSStatus err = 0;
    err = AudioFileStreamParseBytes(mAudioFileStream, packet->msizeInBytes, packet->mVoiceData, 0);
    if (err) 
    { 
        NSLog(@"AudioFileStreamParseBytes Error");
    }
} 

此外,我已经检查过包 - > mVoiceData有大约44K字节的数据(虽然不确定它是否是合理数据),而packet-> msizeInBytes反映了这个数字。

任何帮助表示赞赏。 谢谢!

1 个答案:

答案 0 :(得分:0)

看起来AudioFileStreams不支持LPCM格式。这似乎是我收到此错误的原因。我的猜测是,因为LPCM是原始数据而不需要解析。

事实证明,在这种情况下根本不需要使用AudioFileStreams。只需使用AudioQueues即可。

我已经能够单独使用AudioQueues录制,传输和发送数据。