让Macbook的喇叭在公司自动静音

news/2024/11/9 1:54:23/

(题图无关,卢塞恩·狮子纪念碑)

没想好写啥,水一篇,周末愉快。

- 1 -

可能有些同学遇到了类似的困扰:

  • 晚上把 macbook 带回家用,开了外放听音乐;

  • 第二天到公司忘了关,但戴着蓝牙耳机没注意到;

  • 因为一些事情离开电脑(蓝牙断开)再回来的时候,发现电脑正在疯狂输出,影响到了周围的同学。

这时候只好迅速把喇叭调成静音,然后一脸镇定假装什么也没发生。

痛定思痛,我琢磨着,是不是能整个工具,在公司自动把喇叭给静音了。


- 2 -

要整这么个工具,主要是得解决两个问题:

(1)如何判断自己在公司

可行方案很多,比如通过 SSID 或者 IP 都可以。

我是通过这个命令获取SSID的:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | grep ' SSID:'

(2)如何将喇叭设置为静音

我在 github 上找到了一个现成的工具 device-volume-adjuster [1],可以指定一个设备的音量。

比如我的喇叭是“MacBook Pro Speakers”:

那么通过以下命令就可以让它静音:

$ AdjustVolume -s 0 -n "MacBook Pro Speakers"

- 3 -

将上述两个工具整合起来,就能达到我们的目的了:

ByteDanceSSID="YOUR SSID"
YourDevice="MacBook Pro Speakers"ssid=`/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | grep ' SSID:' | awk -FSSID:\  '{print $2}'`if [ "$ssid" == "$ByteDanceSSID" ]; thenAdjustVolume -s 0 -n "$YourDevice"
fi

最后将这个脚本放到 crontab 里:

*/5 * * * * /path/to/wifi_muter.sh

更完整的版本参见这个 gist - wifi_muter.sh [2]。

需要注意的是,貌似 mac 的 crond 没有完整的环境变量,所以该脚本里有一行 "source /etc/profile" ,用于保证环境变量正常可用。

~ 完 ~



参考:

1. device-volume-adjuster

https://github.com/jonomuller/device-volume-adjuster

2. wifi_muter.sh

https://gist.github.com/felix021/2454c596a7af46f617b2595c726f2a44


http://www.ppmy.cn/news/752876.html

相关文章

如何打开Mac电脑的静音模式?如何开启 Apple Watch 静音模式?

在公众安静的场所使用Mac电脑时,我们需要电脑保持安静,这时候可以打开Mac电脑的静音模式,下面分享打开Mac电脑静音模式的操作步骤。 1、在Mac电脑中打开系统偏好设置, 2、进入偏好设置界面,点击“声音”; …

脱敏工具类

import org.apache.commons.lang.StringUtils;手机脱敏 public static String mobilePhoneDes(String mobile) {if (StringUtils.isBlank(mobile)) {return "";}return StringUtils.left(mobile, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils…

鼠标和蓝牙耳机的融合(外观专利)

这项外观专利创新点在于将鼠标和蓝牙耳机充电仓融合在一起,采用了一种全新的设计理念。传统的鼠标只能作为输入设备,而无法为其他设备提供充电功能,而该专利发明则不仅可以作为鼠标,还具有蓝牙耳机充电功能。 该专利发明的特点在于…

Android 判断是否有耳机连接 (蓝牙 有线)

话不多说 直接上代码 import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothHeadset; import android.bluetooth.BluetoothProfile; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; i…

android实现蓝牙耳机的连接及列表的管理

随着物联网的发展,现在蓝牙设备越来越多了,像蓝牙耳机、蓝牙音箱等,那么怎样去连接管理这些设备呢,本文将通过蓝牙耳机做实例,来实现蓝牙的开关、搜索、配对、连接、设备蓝牙的可见性、获取蓝牙信息等; 先…

Android 蓝牙( Bluetooth)耳机连接分析及实现

Android 实现了对Headset 和Handsfree 两种profile 的支持。其实现核心是BluetoothHeadsetService,在PhoneApp 创建的时候会启动它。if (getSystemService(Context.BLUETOOTH_SERVICE) ! null) {mBtHandsfree new BluetoothHandsfree(this, phone);startService(ne…

Logitech Flow 罗技鼠标在两设备之间连接不上的解决方法

Logitech Flow 罗技鼠标在两设备之间连接不上的解决方法 问题描述 自己有一个笔记本,加上公司的台式,需要两个键盘两个鼠标才能操作,为了简化操作,购买了logic的flow系列鼠标M590,据描述说是可以在多设备之间切换。但…

Android连接蓝牙打开SCO,实现蓝牙耳机输入

在很多应用中,都存在使用蓝牙进行录音。 首先我们写一个BroadcastReceiver,进行监听蓝牙状态改变。 public class BluetoothStatusRec extends BroadcastReceiver{private String TAG "BluetoothStatusRec";public static AudioManager mAu…