如何从缓冲区而不是音频文件中获取耳机插孔音频



我正在开发一个应用程序,在该应用程序中,我想将原始数据(文本数据)发送到耳机插孔,而不是发送到音频文件。我想我可以通过使用AudioQueue框架来做到这一点。但是我不知道该怎么做。我的应用程序应该以与squareup.com应用程序相同的方式运行。

音频播放的路由取决于您如何设置音频会话:

    UInt32 category = kAudioSessionCategory_PlayAndRecord;  
    error = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);

您有五个类别可供选择。一旦您选择了一个类别,iOS将根据硬件自动路由音频信号。例如,你可以插入耳机,它会停止扬声器播放,而不是将信号路由到耳机输出。

要选择最佳类别,请参阅:音频会话编程指南-选择最佳类别。

关于AudioQueue,是的,它将以字节格式播放原始音频数据。您启动队列,它会定期请求更多数据。请查看SpeakHere示例项目。具体来说,看看AQPlayer.mm中的AQBufferCallback

要从缓冲区而不是文件中获取音频数据,请查看我对SpeakHere示例项目其他问题的回答:

实时音频队列记录回放

如何为AudioQueue提供音频缓冲区以播放音频?

相关内容

  • 没有找到相关文章

最新更新