首页 / 知识

关于macOS:Python声音(“钟声”)

2023-04-12 09:14:00

关于macOS:Python声音(“钟声”)

Python Sound (“Bell”)

我想让一个python程序通过发出哔哔声来提醒我。 当前,我使用import os,然后使用命令行语音程序说"处理完成"。 我宁愿它是一个简单的"钟"。

我知道有一个可用于Cocoa应用程序的功能NSBeep,但是我认为这与该功能没有任何关系。

我也尝试过

1
print('\a')

但这没用。

我使用的是Mac,如果您无法通过我的可可粉评论得知,则可能会有所帮助。


你有没有尝试过 :

1
2
3
import sys
sys.stdout.write('\a')
sys.stdout.flush()

在Mac OS 10.5上适合我

实际上,我认为您的原始尝试也可以进行一些修改:

1
print('\a')

(您只需要在字符序列周围加上单引号)。


如果您已安装PyObjC(Python-Objective-C桥)或在OS X 10.5的系统python(PyObjC随附)上运行,则可以执行

1
2
from AppKit import NSBeep
NSBeep()

播放系统警报。


我从pygame模块尝试了混音器,它工作正常。首先安装模块:

1
$ sudo apt-get install python-pygame

然后在程序中编写以下代码:

1
2
3
4
from pygame import mixer
mixer.init() #you must initialize the mixer
alert=mixer.Sound('bell.wav')
alert.play()

使用pygame,您可以使用很多自定义选项,还可以尝试这些自定义选项。


我必须在iTerm的活动终端配置文件中关闭"静音终端铃声"选项,以使print('\a')正常工作。默认情况下,它在Terminal中似乎可以正常工作。

您还可以使用Mac模块Carbon.Snd播放系统提示音:

1
2
3
>>> import Carbon.Snd
>>> Carbon.Snd.SysBeep(1)
>>>

Carbon模块没有任何文档,因此我不得不使用help(Carbon.Snd)来查看可用的功能。它似乎是Carbon的直接接口,因此Apple Developer Connection上的文档可能会有所帮助。


建立在Barry Wark的答案上...
AppKit中的NSBeep()工作正常,但也会使任务栏中的终端/应用程序图标跳转。
NSSound()的一些额外行避免了这种情况,并提供了使用另一种声音的机会:

1
2
3
4
5
6
7
from AppKit import NSSound
#prepare sound:
sound = NSSound.alloc()
sound.initWithContentsOfFile_byReference_('/System/Library/Sounds/Ping.aiff', True)
#rewind and play whenever you need it:
sound.stop() #rewind
sound.play()

可以通过命令行locate /System/Library/Sounds/*.aiff找到标准声音文件
NSBeep()使用的文件似乎是'/System/Library/Sounds/Funk.aiff'


语音命令行应用程序钟声

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢