objective-c – 如何用 – [NSSound setVolume:]设置绝对音量?与系统容量无关?

objective-c – 如何用 – [NSSound setVolume:]设置绝对音量?与系统容量无关?,第1张

概述我有一个警报声.我从不希望它“大声”和惊人,所以我通过[NSSound setVolume]将它减少到一个不大声的可听音量. 但似乎音量是相对于当前系统音量设置的.因此,如果我针对max-system-volume的情况减少它,我在低系统容量的情况下听不到它. 如果我使用:[sound setVolume:0.1]; 当系统设置为满音量时听起来很棒.但如果系统音量为1/3,则根本听不见. 基本上我 我有一个警报声.我从不希望它“大声”和惊人,所以我通过[NSSound setVolume]将它减少到一个不大声的可听音量.

但似乎音量是相对于当前系统音量设置的.因此,如果我针对max-system-volume的情况减少它,我在低系统容量的情况下听不到它.

如果我使用:[sound setVolume:0.1];

当系统设置为满音量时听起来很棒.但如果系统音量为1/3,则根本听不见.

基本上我想为声音设置最大音量.如果系统音量高于该音量,它将以我预设的最大音量播放.但是,如果系统容量低于系统容量,则会根据系统容量降低系统容量.

像这样:

系统= 1
 -Sound = .3

系统= .7
 -Sound = .3

系统= .3
 -Sound = .3

系统= .2
 -Sound = .2

唯一的方法是手动检查系统音量并相应地设置我的声音吗?

解决方法 NSSound的音量对应于您在QuickTime播放器,iTunes等中看到的音量滑块.它是特定声音的音量,与系统音量相关的和(如您所见)分开.

您可以通过查询Audio HarDWare API来获取当前系统卷.获取默认声音输出设备,然后获取其音量.然后,您可以查看它是否高于或低于您想要的音量级别.

(值得注意的是,实际上没有一个全局“系统卷”.有两个默认输出设备和任意数量的具体输出设备,每个都有自己的卷.“系统卷”通常是指默认输出设备的音量.)

但请注意,这不是系统上任何其他应用程序的工作方式,因此这种行为对用户来说似乎是不可预测的.预计错误报告的行为“当系统音量超过一定水平时,音量滑块不起作用”.

总结

以上是内存溢出为你收集整理的objective-c – 如何用 – [NSSound setVolume:]设置绝对音量?与系统容量无关?全部内容,希望文章能够帮你解决objective-c – 如何用 – [NSSound setVolume:]设置绝对音量?与系统容量无关?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/999080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存