我正在开发一个应用程序,该应用程序涉及在一台设备上录制音频并在另一台通过套接字连接连接的设备上播放。
我正在使用 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");
}
}
此外,我已经检查了 packet->mVoiceData 有大约 44Kbytes 的数据(尽管不确定它是否是有意义的数据)并且 packet->msizeInBytes 反映了这个数字。
任何帮助表示赞赏。谢谢!