在 ruby​​ 中检索系统音量和静音状态

Posted

技术标签:

【中文标题】在 ruby​​ 中检索系统音量和静音状态【英文标题】:Retrieve system volume and mute status in ruby 【发布时间】:2015-07-25 16:01:00 【问题描述】:

有没有一种干净的方法来检测默认输出设备(在 Mac OS X 上)是否正在通过 ruby​​ 程序静音?

我知道我可以对 applescript 进行系统调用,或者使用 Objective-c 可可调用将某些东西组合在一起。但我想要一些内置的或久经考验的宝石。

【问题讨论】:

【参考方案1】:

有几个 Ruby 到 AppleScript 的 gem:

Appscript RubyOSA

根据Avoiding AppleScript through Ruby: rb-appscript or rubyosa?,Appscript 更胜一筹,但对我来说都不能干净地编译(OSX 10.10.2、Ruby 2.2.2),这是一个非常简单的用例,所以我会自己调用发送到osascript。从 Ruby went this direction 和 AppleScript sound controls 控制 iTunes 的 RubyTunes gem 很简单:

osascript -e "output muted of (get volume settings)"
false

【讨论】:

我想避免使用 applescript,因为它会调用耗电量大的 launchservicesd。我想一分钟打这个电话很多次,而applescript版本正在耗尽我的电池。

以上是关于在 ruby​​ 中检索系统音量和静音状态的主要内容,如果未能解决你的问题,请参考以下文章

在 lync sdk 2013 中检测音频设备并控制其音量

如何检测音量上下是不是被按下

音量问题 - AVAudioPlayer 与 AudioServices 系统声音混合

如何检测音量是不是设置为静音?

在 Media Foundation 中检测音量或静音

iOS 声音播放音量不考虑音量变化或静音