gpt4 book ai didi

ios - 初始化 AUGraph 后的 AVAudioSession 属性

转载 作者:行者123 更新时间:2023-11-29 12:23:23 24 4
gpt4 key购买 nike

要开始通话,我们的 VOIP 应用会设置一个 AVAudioSession,然后构建、初始化并运行一个 AUGraph。

在通话期间,我们允许用户使用以下代码在扬声器模式之间来回切换:

avSession = [AVAudioSession sharedInstance];
AVAudioSessionCategoryOptions categoryOptions = [avSession categoryOptions];
categoryOptions |= AVAudioSessionCategoryOptionDefaultToSpeaker;
NSLog(@"AudioService:setSpeaker:setProperty:DefaultToSpeaker=1 categoryOptions = %lx", (unsigned long)categoryOptions);
BOOL success = [avSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:categoryOptions error:&error];

效果很好。但是如果我们在 AUGraph 初始化之后尝试某些 AVAudioSession 查询,例如:

    AVAudioSessionDataSourceDescription *myInputDataSource = [avSession inputDataSource];

结果为空。在我们执行 AUGraphInitialize 之前运行同一行代码会给出正确的非空结果。谁能解释这里发生了什么以及如何在使用 AUGraph 时正确访问 AVAudioSession 属性/方法?

最佳答案

这是 developer 的预期行为文档中,如果无法切换源,inputDataSource 应返回 nil。所以 Apple 确实不会让任何不好的事情通过错误配置发生,但是 nil 源也可能给出错误的想法。希望这会有所帮助。

Discussion
The value of this property is nil if switching between multiple input
sources is not currently possible. This feature is supported only on
certain devices and peripherals–for example, on an iPhone equipped with
both front- and rear-facing microphones.

关于ios - 初始化 AUGraph 后的 AVAudioSession 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29927047/

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