Python声音(“钟声”)

python macos audio terminal

55567 观看

5回复

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

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

我也尝试过

print('\a')

但这没用。

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

作者: stalepretzel 的来源 发布者: 2019 年 10 月 22 日

回应 (5)


69

决定

你有没有尝试过 :

import sys
sys.stdout.write('\a')
sys.stdout.flush()

在Mac OS 10.5上适合我

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

print('\a')

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

作者: gbc 发布者: 17.08.2008 09:46

10

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

from AppKit import NSBeep
NSBeep()

播放系统警报。

作者: Barry Wark 发布者: 29.08.2008 03:47

9

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

$ sudo apt-get install python-pygame

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

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

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

作者: Abhranil Das 发布者: 24.05.2011 12:14

5

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

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

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

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

作者: markpasc 发布者: 17.08.2008 09:56

2

NSBeep()AppKit 上建立Barry Wark的答案... 效果很好,但也会使任务栏中的终端/应用程序图标跳转。一些额外的行NSSound()可以避免这种情况,并提供使用其他声音的机会:

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/*.aiffNSBeep()似乎使用的文件是'/System/Library/Sounds/Funk.aiff'

作者: Martin Müller 发布者: 14.10.2017 09:37
32x32