Python Som ( "Bell")

votos
45

Eu gostaria de ter um programa de python alertar-me quando ele completou sua tarefa, fazendo um ruído sonoro. Atualmente, eu uso import ose, em seguida, usar um programa de linha de discurso comando para dizer processo completo. Eu prefiro que seja um simples sino.

Eu sei que há uma função que pode ser usado em aplicativos de cacau, NSBeep, mas eu não acho que tenha qualquer coisa a ver com isso.

Eu também tentei print(\a), mas que não funcionou.

Eu estou usando um Mac, se você não podia contar com meu comentário cacau, de modo que pode ajudar.

Obrigado!

Publicado 17/08/2008 em 22:33
fonte usuário
Em outras línguas...                            


5 respostas

votos
61

Você tentou :

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

Isso funciona para mim aqui no Mac OS 10.5

Na verdade, acho que sua tentativa original funciona também com uma pequena modificação:

print('\a')

(Você só precisa as aspas simples ao redor do seqüência de caracteres).

Respondeu 17/08/2008 em 22:46
fonte usuário

votos
10

Se você tem PyObjC (o Python - Objective-C ponte) instalado ou estão em execução no OS X 10.5 do python sistema (que vem com o PyObjC), você pode fazer

from AppKit import NSBeep
NSBeep()

para jogar o alerta do sistema.

Respondeu 29/08/2008 em 16:47
fonte usuário

votos
6

Eu tentei o misturador do módulo pygame, e funciona bem. Primeiro instale o módulo:

$ sudo apt-get install python-pygame

Em seguida, no programa, escreva o seguinte:

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

Com pygame você tem um monte de opções de personalização, que você pode ainda experimentar.

Respondeu 24/05/2011 em 13:14
fonte usuário

votos
5

Eu tive que desligar a opção "Silence terminal de sino" no meu perfil Terminal ativo na iTerm para print('\a')trabalhar. Ele pareceu funcionar bem por padrão no Terminal.

Você também pode usar o módulo de Mac Carbon.Sndpara jogar o sinal sonoro do sistema:

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

Os módulos de Carbono não tem qualquer documentação, então eu tive que usar help(Carbon.Snd)para ver o que funções estavam disponíveis. Parece ser uma interface direta para carbono, assim a documentação no Apple Developer Connection provavelmente ajudar.

Respondeu 17/08/2008 em 22:56
fonte usuário

votos
1

Com base na resposta de Barry Wark ... NSBeep()de AppKit funciona bem, mas também faz com que o ícone de terminal / app no salto barra de tarefas. Algumas linhas extras com NSSound()evita que e dá a oportunidade de usar um outro som:

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()

Arquivos de som padrão podem ser encontrados via linha de comando locate /System/Library/Sounds/*.aiff O arquivo usado pelo NSBeep()parece ser'/System/Library/Sounds/Funk.aiff'

Respondeu 14/10/2017 em 09:37
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more