【问题标题】:How to source headphone jack audio from a buffer rather than an audio file?如何从缓冲区而不是音频文件中获取耳机插孔音频?
【发布时间】:2012-01-18 22:55:39
【问题描述】:

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

【问题讨论】:

    标签: iphone objective-c ios audioqueue


    【解决方案1】:

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

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

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

    要选择最佳类别,请查看:Audio Session Programming Guide - Choosing the Best Category

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

    要从缓冲区而不是文件中获取音频数据 - 我认为你的意思是 - 请查看我对有关 SpeakHere 示例项目的其他问题的回答:

    Realtime AudioQueue Record-Playback

    How to provide audio buffer to AudioQueue to play audio?

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 2012-04-26
      • 2013-05-27
      • 2012-12-22
      • 2014-09-06
      • 2011-11-02
      • 2014-11-14
      • 2023-04-08
      • 2012-05-16
      相关资源
      最近更新 更多