Python Sound ( "Bell")

stemmer
47

Jeg vil gjerne ha en pytonslange programmet varsle meg når den har fullført sin oppgave ved å lage en pipelyd. Foreløpig bruker jeg import osog deretter bruke en kommandolinje tale-program til å si Process fullført. Jeg vil mye heller det være en enkel bell.

Jeg vet at det er en funksjon som kan brukes i Cocoa apps, NSBeep, men jeg tror ikke det har mye annet å gjøre med dette.

Jeg har også prøvd print(\a), men det fungerte ikke.

Jeg bruker en Mac, hvis du ikke kunne fortelle av min Cocoa kommentar, så det kan hjelpe.

Takk!

Publisert på 17/08/2008 klokken 21:33
kilden bruker
På andre språk...                            


5 svar

stemmer
63

Har du prøvd :

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

Som fungerer for meg her på Mac OS 10.5

Egentlig tror jeg det opprinnelige forsøket fungerer også med en liten modifikasjon:

print('\a')

(Du trenger bare enkeltanførselstegn rundt tegnsekvens).

Svarte 17/08/2008 kl. 21:46
kilden bruker

stemmer
10

Hvis du har PyObjC (Python - Objective-C bro) installert eller kjører på OS X 10.5 system python (som leveres med PyObjC), kan du gjøre

from AppKit import NSBeep
NSBeep()

å spille systemet varselet.

Svarte 29/08/2008 kl. 15:47
kilden bruker

stemmer
7

Jeg prøvde mikseren fra pygame modul, og det fungerer fint. Først installerer modulen:

$ sudo apt-get install python-pygame

Så i programmet, skriver dette:

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

Med pygame har du en rekke tilpasningsmuligheter, som du kan i tillegg eksperimentere med.

Svarte 24/05/2011 kl. 12:14
kilden bruker

stemmer
5

Jeg måtte slå av "Silence terminalen bell" alternativet i min aktive Terminal profil i iTerm for print('\a')å fungere. Det så ut til å fungere fint som standard i Terminal.

Du kan også bruke Mac-modulen Carbon.Sndfor å spille system pip:

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

Karbon modulene ikke har noen dokumentasjon, så jeg måtte bruke help(Carbon.Snd)for å se hvilke funksjoner var tilgjengelig. Det synes å være en direkte grensesnitt mot Carbon, så docs på Apple Developer Connection trolig hjelpe.

Svarte 17/08/2008 kl. 21:56
kilden bruker

stemmer
1

Bygger på Barry Wark svar ... NSBeep()fra AppKit fungerer fint, men også gjør terminal / app ikonet på oppgavelinjen hopp. Et par ekstra linjer med NSSound()unngår det, og gir muligheten til å bruke en annen lyd:

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

Standard lydfiler kan finnes via kommando locate /System/Library/Sounds/*.aiff Filen brukes av NSBeep()synes å være'/System/Library/Sounds/Funk.aiff'

Svarte 14/10/2017 kl. 09:37
kilden bruker

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