gpt4 book ai didi

iOS:使用蓝牙音频输出(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput)AudioSession

转载 作者:可可西里 更新时间:2023-11-01 03:40:04 26 4
gpt4 key购买 nike

我对与几个蓝牙任务相关的 CoreAudio AudioSession 框架有几个问题,我希望有人可以帮助我解决这些问题,或者至少可以确认我的最新发现。用例是一个导航应用程序,它想要连接支持 HFP 和 A2DP 的蓝牙 radio 。我已经阅读了整个 AudioSession 编程指南,但我仍然有一些 Unresolved 问题,尤其是通过蓝牙使用音频输出。

  1. 蓝牙 HFP 音频输出 (kAudioSessionOutputRoute_BluetoothHFP) 仅在设置了 AudioSession kAudioSessionCategory_PlayAndRecord 并且您正在覆盖以下属性的情况下才有可能:kAudioSessionProperty_OverrideCategoryEnableBluetoothInput。这是真的?如果没有,我如何将 MediaPlayback session 作为示例路由到 kAudioSessionOutputRoute_BluetoothHFP 路由。

  2. 类别 kAudioSessionCategory_PlayAndRecord 无法在背景模式下输出音频。因此,如果我在后台,我无法通过蓝牙 HFP 路由播放声音。这是真的?有没有办法在应用程序在后台的情况下通过蓝牙 HFP 协议(protocol)发送音频?

  3. 如果有支持 A2DP 的设备可用,我的音频路由将始终自动切换到 kAudioSessionOutputRoute_BluetoothA2DP 路由。我怎样才能防止这条路线改变?另外我如何指定我现在想要的输出路线。使用 iOS5,可以通过 kAudioSessionProperty_AudioRouteDescription 标志查询所有这些路由目的地,但我不知道如何设置它,因为我想要它。是否有可能以某种方式实现这一目标?

我希望你们中的一些人能帮助我解决这些问题。它确实有助于我全面了解 CoreAudio,尤其是 AudioSession 框架。

最佳答案

AudioSession 是一项棘手的工作。

1.Bluetooth HFP audio output (kAudioSessionOutputRoute_BluetoothHFP) is only possible in case of AudioSession kAudioSessionCategory_PlayAndRecord is set and you are overriding the following property: kAudioSessionProperty_OverrideCategoryEnableBluetoothInput. Is this true? If not, how I can route as an example with the MediaPlayback session to kAudioSessionOutputRoute_BluetoothHFP route.

如果你连接了蓝牙耳机,那就对了。您需要同时设置 kAudioSessionCategory_PlayAndRecord Audio Session 集和 kAudioSessionProperty_OverrideCategoryEnableBluetoothInput 集才能让蓝牙耳机播放音频。 EnableBluetoothInput 根据 this 影响输入和输出。 .另请记住,由于蓝牙输入设备的限制,音频将以 8000 Hz 的频率播放。对于支持 A2DP 的已连接设备,您可以将其保留在 Audio Session kAudioSessionCategoryMediaPlayback,它将以 44100 Hz 采样率播放。

2.Audio output in background mode is not possible with the category kAudioSessionCategory_PlayAndRecord. Therefore I can not play sound through an bluetooth HFP route if I am in background. Is this true? Is there a way how to send audio through the Bluetooth HFP protocol if app is in the background?

只要您在应用程序列表中设置了背景音频模式 key ,就可以在后台通过蓝牙 HFP 播放音频。查看更多here .

3.If there is an A2DP enabled device available my audio route will always switch automatically to the kAudioSessionOutputRoute_BluetoothA2DP route. How can I prevent this route change? In addition how can I specify the output route I wanna have at the moment. With iOS5 it is possible to query all those route destination through the kAudioSessionProperty_AudioRouteDescription flag, but I have no idea how I can set it as I wanna have it. Is it somehow possible to achieve this?

您希望音频转到哪里?您可以尝试将 Audio Session 设置为 PlayAndRecord 以防止它转到 A2DP。虽然这可能不受您的控制,但 Audio Session 将使用它认为对用户来说直观的内容。如果他们只是连接了一个 A2DP 设备而你只是输出音频,那么将使用 A2DP 设备。

关于iOS:使用蓝牙音频输出(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput)AudioSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com