如何在 Mac OS X 10.6 中发出硬件哔声
Posted
技术标签:
【中文标题】如何在 Mac OS X 10.6 中发出硬件哔声【英文标题】:How to make the hardware beep sound in Mac OS X 10.6 【发布时间】:2011-03-08 20:44:51 【问题描述】:我只希望 Mac OS X 10.6 在 open suse 和其他发行版中发出硬件哔声。我尝试了以下方法
终端 -> beep = -bash: beep: command not found
终端 -> say beep = 声音发出哔声(不是硬件哔声,但很棒;))
applescript -> beep = Macintosh 铃声(我想要一个硬件哔声!)
有人知道如何在 bin/bash 或 applescript 中使硬件发出哔哔声吗?
【问题讨论】:
@elhombre,是什么让你认为 Mac OS X 甚至可以做这样的事情? 试试:如果你没有找到任何东西,说“哔”,我能想到的最接近。 @Patrik - +1,很好。printf "\a"
会发出提示音,如果有帮助的话。
@Carsten:Mac 是 PC。 PC = 个人电脑。它只是不是 IBM(兼容)PC。
基于 Intel 的 MAC是与 IBM 兼容的 PC
【参考方案1】:
tput bel
适用于大多数 shell。
在 OS X 中,如果在终端不在前台时执行该命令(以及任何其他使铃声响起的命令),则该命令也会为您提供徽章:
【讨论】:
当你的终端在后台时有一个铃声响起的令人敬畏的副作用(至少在 Lion 终端中)是文档上的图标跳动,你会看到一个红色的指示器说那里已经完成了一些事情。试试这个:“sleep 5; tput bel”运行该命令,然后在终端上跳出标签,当铃声响起时,您会收到警报。正是我想要的! Iterm 用户:这确实会发出哔哔声,但不会创建警报徽章:( @EricHu -iTerm2 现在支持这个 - github.com/gnachman/iTerm2/commit/…tput
是 lots of options 的一个很好的命令。此命令也适用于 Linux。
echo -e "\a"
也适用于 OS X 并且可能更便携【参考方案2】:
打印\a
并不总是适合我(MBA,10.7.4)。我改用这个:
say "beep"
【讨论】:
对我有用的唯一方法(OSX 10.8)。 echo -e "\a" 和 printf "\a" 都不起作用。 哇——你可以在里面放任何东西,例如:说“构建完成” 我在Little Snitch 中看到的最佳用法 - 当我运行全屏应用程序并且没有看到常规的 LS 弹出警告时,它say
s 我他们(仅在全屏时),即试图连接到某个主机的应用程序已被阻止。非常好。前段时间我需要在一天中跟踪网站上的变化,所以我没有坐在我的屏幕前,而是使用say
让我知道发生了什么(显然只有有意义的文字——那些是销售广告)。
@RandyHoward 这真的很有趣,谢谢!如果有人感兴趣,这里是其他选项的列表:pastebin.com/raw.php?i=czJ8MVW3
哈哈。您可以通过将两个声音叠加在一起让人们怀疑他们是否听到了声音:连续运行 say "Pay attention to me" &
和 say -v Whisper "I own you" &
。【参考方案3】:
的确,以下是有效的,有些旋律:
say -v Bells "dong dong dong"
[更新] 不幸的是,Bells 不再包含在最新的 OS X 中。试试:
say -v Victoria Do your homework!
使用以下方法探索声音:
say -v \?
【讨论】:
say -v Daniel harry potter harry potter 或者只是:say -v Bells "beep"
。
我最新的 macos 上没有 Beels 的声音。
是的,Bells 似乎已被移除。使用say -v '?'
列出所有声音。使用say -v '?' | egrep `echo $LANG | sed "s/\..*//"`
列出您当前语言的声音。
可以通过系统偏好设置重新添加铃铛,一直到 Big Sur!系统偏好设置 > 辅助功能 > 语音内容 > 系统语音 > 自定义【参考方案4】:
在 bash 中写入 echo ^G
。要创建^G
,请按ctrl+v
,然后按ctrl+g
。
【讨论】:
/usr/bin/printf "\a"
和 osascript -e "beep 1"
也很好用
谁能解释echo ^G
在做什么(即,这个命令用外行的话来说是什么意思)?这是对 OSX 发出哔哔声的特殊字符吗?还有其他相关的特殊字符吗? @mxhaack @wongo888
@EricJones ^G
是一个“控制字符”,即一个不可打印的字符,用于/用于引起某种效果,例如触发铃声/哔哔声。看看this wikipedia article【参考方案5】:
这将循环播放所有声音(适用于优胜美地):
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
【讨论】:
搞笑,好宝! :D【参考方案6】:使用afplay
播放任意提示音
我很惊讶没有人提到afplay
:这是播放任意声音文件的命令行程序。它从 OS X 的原始版本(和 NeXTSTEP,如果你的记忆有那么长的话)就已经存在了。
例如,您可以从命令行运行它或将其放入脚本中:
$ afplay /System/Library/Sounds/Ping.aiff
您不仅限于系统声音;使用afplay
的一个优点是您可以选择自己的声音文件作为警报。例如,您可以下载one of these sound files 并选择您喜欢的。
(如果您能找到 Teletype 33 型铃铛的录音,则加分!)
【讨论】:
Typewriter bell 可能已经足够接近了。【参考方案7】:macOS 中没有“硬件哔声”。
您正在考虑的功能是非常古老的(1990 年代之前)IBM PC 兼容硬件的产物。在大多数计算机有声卡之前,大多数机器都有一个小型扬声器或压电蜂鸣器,连接到定时器芯片的一个通道。这可用于生成简单的音调或哔哔声。即使在许多计算机集成了声卡之后,计算机将此输出路由到单独的内部扬声器仍然很常见。最近,许多计算机,尤其是笔记本电脑,已将此功能集成到板载声卡中。
(如果您对 PC 扬声器接口如何工作的技术细节感到好奇,there are more details here。)
Apple 电脑中从未有过这种硬件。唯一可用的音频输出是通过声卡,macOS 中唯一的系统哔声是用户的警报声。
【讨论】:
7年后,搜索结束了^^谢谢你在互联网上的狗。但我仍然喜欢人们回答问题的所有创造性方式,所以请继续关注! 这是一个有趣的琐事,但它并不能真正回答问题...... @IanDunn 确实如此——仔细阅读第一段和最后一段。问题是要求一些不存在的东西。 啊,你说得对,我没有仔细阅读OP的问题和cmets,并认为他们只是想要声音本身,无论它是通过软件还是硬件来的。我的错。 终端铃声比 90 年代的 PC 早了将近 100 年:en.wikipedia.org/wiki/Bell_character【参考方案8】:在终端类型中:
echo -e "\a"
-e 参数告诉 echo 处理转义字符。因为 \n 是换行符,所以 \a 是响铃(与 Ctrl+G 相同)。
【讨论】:
这种方法的一个好处是它也适用于 Linux(和其他?)。如其他地方所述,您也可以尝试printf "\a"
对于那些喜欢铃铛但懒得引用的人来说,echo -e \\a
也可以。【参考方案9】:
在OS X终端下,执行命令:osascript -e 'beep'
使用 OSA(开放脚本架构)技术告诉 AppleScript 执行命令beep
。
【讨论】:
【参考方案10】:printf "\a"
如果您查看man printf
,它会为您提供转义字符列表,包括\a
:
\a Write a <bell> character.
【讨论】:
【参考方案11】:如果你需要什么,那听起来很“重要”
你可以使用
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
:)
【讨论】:
【参考方案12】:printf "\a"
也可以在终端中使用,并且会播放设置的提示音。
【讨论】:
【参考方案13】:在 MacOS X 上,必须激活“声音警告”选项(终端/首选项)才能获得声音。
【讨论】:
其实它叫“响铃”。它在设置/高级中。【参考方案14】:这对我有用(mac os 10.14.6)
echo "\x07"
【讨论】:
这对音频和视觉警报都很有效,因为它还会闪烁屏幕,这样您就不会在关闭声音时错过通知。它还向终端应用程序添加了一个徽章,并在发布它的选项卡中显示一个铃铛图标。我认为这就是全部 - 绰绰有余!【参考方案15】:如果您安装了 XCODE,您可以发出哔声/铃声。我还没有想到我可以让printf "\a"
字符在 C 中工作。
有一种方法可以在程序运行时使音调起作用,启动 XCODE,在 XCODE、首选项、行为下的下拉菜单中,选中第一个框 PLAY SOUND,从列表中选择或添加声音。
这是一种方法,但我相信只有在程序运行时。
【讨论】:
Xcode“行为”只有在Xcode中发生相应事件时才会执行。它们不适用于系统中的其他地方。【参考方案16】:osascript -e 'tell application "System Events"
发出哔哔声'
【讨论】:
beep
是 AppleScript 中 Standard Additions 的一部分,因此您不需要也不应该使用 系统事件,只需osascript -e 'beep'
即可。但是,OP 已经表示他们尝试过 beep
并没有产生想要的结果!【参考方案17】:
更多选项,请听并挑选
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
【讨论】:
以上是关于如何在 Mac OS X 10.6 中发出硬件哔声的主要内容,如果未能解决你的问题,请参考以下文章
Mac OS X >= 10.6 上的 Finder 文件图标标记(图标覆盖)
在Mac OS X 10.6上的Python中,无法在Matplotlib中将字体更改为Helvetica