68

ビープ音を鳴らしてタスクが完了したときに、Pythonプログラムにアラートを表示させたいのですが。現在、import osコマンドライン音声プログラムを使用して「処理が完了しました」と言っています。私はむしろそれは単純な「ベル」です。

Cocoaアプリで使える機能があることは知っていNSBeepますが、それはあまり関係ないと思います。

私も試しました

print(\a)

しかし、それはうまくいきませんでした。

私のCocoaコメントでわからない場合は、Macを使用しているので、それが役立つかもしれません。

4

6 に答える 6

84

やってみました :

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

それはここMacOS10.5で私のために働きます

実際、あなたの最初の試みは少し変更を加えてもうまくいくと思います。

print('\a')

(文字シーケンスを一重引用符で囲む必要があります)。

于 2008-08-17T21:46:02.533 に答える
12

PyObjC (Python - Objective-C ブリッジ) がインストールされているか、OS X 10.5 のシステム python (PyObjC に付属) で実行されている場合は、次のことができます。

from AppKit import NSBeep
NSBeep()

システムアラートを再生します。

于 2008-08-29T15:47:05.843 に答える
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を使用すると、多くのカスタマイズオプションがあり、さらに実験することができます。

于 2011-05-24T12:14:54.530 に答える
7

動作させるには、iTermのアクティブなターミナルプロファイルで[サイレンスターミナルベル]オプションをオフにする必要がありましprint('\a')た。ターミナルではデフォルトで正常に動作しているようです。

MacモジュールCarbon.Sndを使用して、システムのビープ音を鳴らすこともできます。

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

Carbonモジュールにはドキュメントがないため、使用help(Carbon.Snd)可能な機能を確認するために使用する必要がありました。これはCarbonへの直接のインターフェースのようですので、AppleDeveloperConnectionのドキュメントがおそらく役に立ちます。

于 2008-08-17T21:56:10.750 に答える
3

Barry Warkの答えに基づいて構築しています... NSBeep()AppKitからは正常に動作しますが、タスクバーのターミナル/アプリアイコンもジャンプします。いくつかの余分な行でそれを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/*.aiff コマンドラインから標準のサウンドファイルを見つけることができNSBeep()ます'/System/Library/Sounds/Funk.aiff'

于 2017-10-14T09:37:20.923 に答える