我只是希望 Mac OS X 10.6 能发出像 open suse 和其他发行版中那样的硬件蜂鸣声。我尝试了以下方法
终端 -> 嘟嘟声 = -bash:嘟嘟声:找不到命令
终端 -> 发出嘟嘟声 = 语音发出嘟嘟声(不是硬件嘟嘟声,但很棒;))
applescript -> 蜂鸣声 = Macintosh 铃声(我想要硬件蜂鸣声!)
有人知道如何在 bin/bash 或 applescript 中使硬件发出蜂鸣声吗?
tput bel
适用于大多数 shell。
在 OS X 中,如果在终端不在前台时执行该命令,此命令(以及任何其他使铃声响起的命令)也会为您带来徽章:
打印
\a
并不总是对我有用(MBA,10.7.4)。我用这个代替:
say "beep"
确实,以下内容有效且有些旋律:
say -v Bells "dong dong dong"
[更新] 不幸的是,最新的 OS X 中不再包含 Bells。尝试:
say -v Victoria Do your homework!
使用以下内容探索声音:
say -v \?
在 bash 中写入
echo ^G
。要创建 ^G
,请按 ctrl+v
,然后按 ctrl+g
。
afplay
我很惊讶没有人提到
afplay
:这是播放任意声音文件的命令行程序。它自从 OS X 最初发布以来就已经存在了(还有 NeXTSTEP,如果你还记得那么久的话)。
例如,您可以从命令行运行它或将其放入脚本中:
$ afplay /System/Library/Sounds/Ping.aiff
您不仅限于系统声音;使用
afplay
的优点之一是您可以选择自己的声音文件作为警报。例如,您可以下载其中一个声音文件并选择您最喜欢的。
(如果您能找到 Teletype Model 33 电铃的录音,可加分!)
这将循环播放所有声音(适用于优胜美地):
say -v '?' | awk '{print $1}' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done
macOS 中没有“硬件蜂鸣声”。
您正在考虑的功能是非常古老(20 世纪 90 年代之前)IBM PC 兼容硬件的产物。在大多数计算机配备声卡之前,大多数机器都有一个小型扬声器或压电蜂鸣器连接到定时器芯片的通道之一。这可用于生成简单的音调或蜂鸣声。即使在许多计算机集成了声卡之后,在相当长的一段时间内,计算机将此输出路由到单独的内部扬声器仍然很常见。最近,许多计算机,尤其是笔记本电脑,已将此功能集成到板载声卡中。
(如果您对 PC 扬声器接口如何工作的技术细节感到好奇,这里有更多详细信息。)
苹果电脑中从未存在过这种硬件。唯一可用的音频输出是通过声卡,macOS 中唯一的系统蜂鸣声是用户的警报声。
在终端中输入:
回声-e“”
-e 参数告诉 echo 处理转义字符。作为 是换行符, 是铃声字符(与 Ctrl+G 相同)。
在 OS X 终端下,执行命令:
osascript -e 'beep'
使用OSA(开放脚本架构)技术告诉AppleScript执行命令
beep
。
printf "\a"
如果您查看
man printf
,它会为您提供转义字符列表,包括 \a
:
\a Write a <bell> character.
如果你需要某样东西,听起来就像“重要”
你可以使用
tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s
:)
这对我有用(mac os 10.14.6)
echo "\x07"
printf "\a"
也适用于终端并会播放设置的警报声音。
在 MacOS X 上,必须激活“声音警告”选项(终端/首选项)才能发出声音。
osascript -e 'tell application "System Events"
发出嘟嘟声'
如果您安装了 Xcode,您可以发出蜂鸣声/响铃。我还没想到我可以让
printf "\a"
角色在 C 中工作。
有一种方法可以让声音在程序运行时工作,启动 Xcode,在 Xcode、首选项、行为下的下拉菜单中,选中第一个框“播放声音”,从列表中选择或添加声音。
这是一种方法,但我相信只有在程序运行时才可以。
更多选择,聆听并选择
ls /System/Library/Sounds/ | awk '{print $1}' | while read sound; do printf "using $sound...\n"; afplay /System/Library/Sounds/$voice; sleep 0.5; done
ls /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/ | awk '{print $1}' | while read sound; do printf "using $voice...\n"; afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/$sound; sleep 0.5; done