gpt4 book ai didi

ios - 将音频重新路由到蓝牙扬声器

转载 作者:IT王子 更新时间:2023-10-29 05:53:54 28 4
gpt4 key购买 nike

我正在创建一个视频和音频捕获应用程序。每次我开始录音时,蓝牙扬声器中播放的音乐都会在手机扬声器中播放。当我退出该应用程序时,音乐又会在蓝牙扬声器上播放。

我第一次尝试解决这个问题是为 audioSession 提供必要的选项,如下所示:

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: [AVAudioSessionCategoryOptions.MixWithOthers, AVAudioSessionCategoryOptions.AllowBluetooth])

但这没有用。所以我想的第二个解决方案是将音乐输出重新路由到蓝牙扬声器。

我对此进行了研究并找到了这个函数:audioSession.setOutputDataSource

我真的不知道要传递到那里的参数。

而且我不太确定在我开始视频录制的那一刻,电话/或我的代码是否禁用了蓝牙连接,或者它只是将播放重新路由到电话的扬声器。

更新:我评论了这一行://try audioSession.setMode(AVAudioSessionModeMoviePlayback) 音乐暂停了一下,然后再次在蓝牙扬声器上播放。但是这里的问题是捕获的视频没有音频。

更新 2:如果我向您提供我的代码,这个问题会有解决方案吗?

最佳答案

我会继续尝试回答最初的问题。来自苹果s 文档我去这个:

func setOutputDataSource(_ dataSource: AVAudioSessionDataSourceDescription?)throws

Parameters dataSource

The data source for the audio session’s output.

outError On input, a pointer to an error object. If an error occurs, the pointer is set to an NSError object that describes the error. If you do not want error information, pass in nil. here

此页面应该可以帮助您弄清楚 AV session 数据源描述的作用/返回的内容,但总的来说:

You obtain data source descriptions from the shared AVAudioSession object or the AVAudioSessionPortDescription objects corresponding to its input and output ports. Only built-in microphone ports on certain devices support the location, orientation, and polar pattern properties; if a port does not support these features, the value of its dataSources property is nil. here

您是要将音乐从您的应用传送到扬声器(正在播放音乐吗?)还是音乐来自另一个应用,并且您想要双输出?

对于错误检查,您可以确保扬声器仍然可用,使用类似 output data source 的东西.如果它返回 nill (null.),则表示您无法在数据源之间切换。

可能还值得注意的是,用户必须授予您录音权限,但我怀疑这是问题所在,因为您似乎已经在某一时刻录音,就在通过电话播放时,而不是通过扬声器播放时

关于ios - 将音频重新路由到蓝牙扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39012851/

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