【发布时间】:2014-04-03 21:24:32
【问题描述】:
我正在为 OSX 开发一个 VoIP 应用程序,并且我想在通话时支持除我之外的所有其他应用程序的音频闪避。
对于 iOS,AVAudioSession 可以很好地处理这个问题,但我似乎无法为 OSX 找到一个优雅的解决方案。现在,我正在使用 AudioQueue 来渲染音频,它与来自所有其他正在运行的应用程序的音频混合在一起。理想情况下,我想降低所有其他音频,直到挂断电话,然后再提高所有其他音频。
【问题讨论】:
-
我认为这在 OS X 上是不可行的;没有一种好的方法可以控制从其他应用进入设备的音频
-
我也找不到答案,但我知道这是可能的,因为 Skype 正在这样做。随着 iTunes 的播放,我拨打了一个 Skype 测试电话,iTunes 音乐很好地降低了音量,直到通话结束。
-
我认为 Skype 实际上使用 AppleScript 或其他方法来控制 iTunes 的音量。我用其他音频播放器(Vox、Decibel)进行了测试,它们的音量保持不变。
-
我认为你是对的。这一次,我一边打电话一边看 iTunes,看到它的音量滑块降到了 0,然后播放器暂停了。当我挂断时,它启动了播放器并恢复了音量。谢谢。
标签: macos audio core-audio