Einkaufsliste zum Beitrag
Für das ALSA-Soundsystem kann das vorinstallierte Python-Modul pygame herangezogen werden. Leider unterstützt es nur die eingebaute Soundkarte. Um einen USB-Soundadapter mit Python anzusprechen, kann man Linux-Befehle für den SoX-Player oder arecord aufrufen. Über den Lunk am Ende der Seite kann man auch eine kleine Python-Klasse DoSound herunterladen, die einem sogenannten Wrapper für die Systemkommandos bildet.Damit kann die Soundkarte softwaremässig ausgewählt werden.
Das folgende Beispiel zeigt, wie das Abspielen einer Sounddatei von Python aus erfolgt:
#!/usr/bin/env python
import time
from dosound import DoSound
# Device mit ID 1 verwenden (USB audio adapter)
player = DoSound(1)
player.play("/home/pi/humptataa.mp3", 0.5) # volume = 0.5
print "isPlaying:", player.isPlaying()
print "stop"
player.stopPlaying()
print "isPlaying:", player.isPlaying()
Oft werden nur bestimmte Signaltöne benötigt, wozu die internen Soundkarte ausreicht. Die Klasse DoSound verwendet playTone(), um einen Ton mit der vorgegebener Frequenz und Dauer abzuspielen. Im folgenden Beispiel werden erst drei Töne nacheinander und dann alle zusammen abgespielt.
#!/usr/bin/env python
from dosound import DoSound
import time
dev = 0 # interner Soundadapter
DoSound.playTone(440, 0.3, dev)
DoSound.playTone(550, 0.3, dev)
DoSound.playTone(660, 0.3, dev)
time.sleep(1)
DoSound.playTone([440, 550, 660], 3, dev)
DoSound.stopPlaying()