gpt4 book ai didi

iphone - 如何在录制时将背景音频静音(使用音频队列服务)

转载 作者:行者123 更新时间:2023-12-03 20:56:35 25 4
gpt4 key购买 nike

我有一个使用音频队列来记录用户语音输入的应用程序。这种情况只会在短时间内发生,并且仅在用户按下按钮时发生。

我希望允许用户的背景音乐继续播放,除非在实际录制时将其静音或以低得多的音量播放(以避免录制扬声器中播放的音频)。

对于我的录制队列,我使用 PlayAndRecord 类别,并且将 OverrideCategoryMixWithOthers 属性设置为 true。

最佳答案

当 iOS4+ 添加了 AudioSessionSetActiveWithFlags API 和 kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation 标志后,这个问题就不再是问题了。

要在录制时暂停背景音乐,您需要调用 AudioSessionSetActive(false),这将停用您的 Audio Session ,然后将类别切换到 PlayAndRecord 模式,并将 OverrideCategoryMixWithOthers 属性设置为 false。

现在,使用 AudioSessionSetActive(true) 并使用这些设置重新激活您的 session ,iPod/Pandora/等的 Audio Session 将被中断、淡出和暂停。

然后,当您的录制完成后,使用

再次停用您的 session

AudioSessionSetActiveWithFlags(false, kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation);

这将通知背景音乐应用程序其 session 不再中断并且可以开始播放音乐。

最后,您可以使用 MediaPlayback(或等效)模式再次设置 Audio Session ,并将 OverrideCategoryMixWithOthers 属性再次设置为 true。

关于iphone - 如何在录制时将背景音频静音(使用音频队列服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833490/

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