【问题标题】:AudioFileStreamParseBytes returns "pty?" on streamed, recorded dataAudioFileStreamParseBytes 返回“pty?”在流式传输的记录数据上
【发布时间】:2012-02-06 10:15:35
【问题描述】:

我正在开发一个应用程序,该应用程序涉及在一台设备上录制音频并在另一台通过套接字连接连接的设备上播放。

我正在使用 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 反映了这个数字。

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

【问题讨论】:

  • kAudioFileUnsupportedPropertyError 'pty?'不支持该属性。适用于 iOS 2.0 及更高版本。
  • 谢谢,但我能够弄清楚“pty”是什么?代表,但我需要知道的是一个修复它。哪个物业?它是从哪里得到的?对这些一无所知。
  • 如果有可理解的回溯,您可能会从错误发出信号的确切位置获得线索。
  • 抱歉,我不确定我是否关注您的评论。它在第一次调用时被调用,并接收到前几个字节的音频数据。

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


【解决方案1】:

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

还证明,对于这种情况,根本不需要使用 AudioFileStreams。只需使用 AudioQueues 就足够了。

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

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2022-10-24
    • 2021-12-04
    相关资源
    最近更新 更多