coreaudio:如何获取/设置系统警报音量而不是设备音量

use*_*026 6 macos cocoa core-audio

我一直在搜索文档,邮件列表打开和关闭几天,但似乎无法找到答案.

我有一个OS X应用程序,除其他外,使用kAudioDevicePropertyVolumeScalar和朋友查询可用的硬件设备及其当前卷.

我想要做的是获取并设置由kAudioHardwarePropertyDefaultSystemOutputDevice而不是该设备卷表示的系统输出设备的-alert-volume(?).

为了澄清我的有限理解,这是用户可以在"播放音效通过"下的系统偏好设置中调整的音量设置.

在搜索coreaudio-api列表时,我已经设法收集到这个卷设置不是设备属性,而是某种派生值,但我很难过这里的位置.

我们将非常感激地提供任何帮助.

Nan*_*ali 1

我不确定您是否真的需要通过 CoreAudio 来阅读它,但以下内容就可以了:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults addSuiteNamed:@"com.apple.systemsound"];        
NSLog(@"%f", [defaults floatForKey:@"com.apple.sound.beep.volume"]);
Run Code Online (Sandbox Code Playgroud)

尽管这可能会随着操作系统更新而改变,因为设置存储在~/Library/Preferences/com.apple.systemsound.plist.