Forum: Mikrocontroller und Digitale Elektronik Python Sound ausgabe


von Darth V. (darth-vader)


Lesenswert?

Hallo zusammen,

kurze Frage, gibt es in Python eine Library die Sounds zur gleichen Zeit 
abspielen kann... playsound und der andere Kram kann man leider nicht 
zusammen abspielen lassen, daher dass das Programm immer darauf wartet 
bis der Sound zu Ende gespielt ist.

von DerEinzigeBernd (Gast)


Lesenswert?

man threads

von Ein T. (ein_typ)


Lesenswert?

Darth V. schrieb:
> kurze Frage, gibt es in Python eine Library die Sounds zur gleichen Zeit
> abspielen kann... playsound und der andere Kram kann man leider nicht
> zusammen abspielen lassen, daher dass das Programm immer darauf wartet
> bis der Sound zu Ende gespielt ist.

Python unterstützt Multiprocessing und Multithreading mithilfe der 
Module "multiprocessing" respektive "threading", die in jeder 
Standardinstallation vorhanden sein sollten. Ausführlichere Einführungen 
dazu findest Du unter [1] und [2], die Dokumentationen der Module unter 
[3] und [4]. Es empfiehlt sich, beide Module anzuschauen und die 
Dokumentationen von beiden bis zum Ende zu lesen.

Außerdem gibt es mit dem Standardmodul concurrent und dessen Untermodul 
concurrent.futures noch eine weitere Möglichkeit, aber das ist für 
Deinen Anwendungsfall vermutlich weniger gut geeignet.

Eine dritte Möglichkeit bietet das ebenfalls standardmäßig installierte 
Modul subprocess, mit dem Du einen externen Audioplayer wie zum Beispiel 
mpg321(1) oder mp3blaster starten könntest.

Am Ende unterstützt Python natürlich den klassischen UNIX-Weg zum Start 
neuer Prozesse mit den Systemfunktionen fork(2) und execve(2) und den 
darauf aufbauenden Library-Funktionen der exec-Familie. Sowohl fork() 
als auch die Funktionen der exec-Familie finden sich im Standardmodul 
os, das ebenfalls in jeder Python-Installation vorhanden sein sollte. 
Inwieweit diese Funktionen unter Windows vorhanden sind und 
funktionieren, kann ich allerdings nicht sagen.

Da ein Vorredner bereits auf eine Manpage verwiesen hat sei daran 
erinnert, daß das Kommando zur Anzeige von Python-Dokumentation nicht 
man(1) ist, sondern natürlich pydoc(1). Auch das sollte in jeder 
Standardinstallation vorhanden sein.

[1] https://realpython.com/intro-to-python-threading/
[2] https://realpython.com/python-concurrency/
[3] https://docs.python.org/3/library/threading.html
[4] https://docs.python.org/3/library/multiprocessing.html

von Norbert (Gast)


Lesenswert?

Darth V. schrieb:
> kurze Frage, gibt es in Python eine Library die Sounds zur gleichen Zeit
> abspielen kann... playsound und der andere Kram kann man leider nicht
> zusammen abspielen lassen, daher dass das Programm immer darauf wartet
> bis der Sound zu Ende gespielt ist.

Lies es (playsound) mal durch und überdenke deine Aussage. ;-)

von Εrnst B. (ernst)


Lesenswert?

Darth V. schrieb:
> kurze Frage, gibt es in Python eine Library die Sounds zur gleichen Zeit
> abspielen kann...

Evtl. mit Kanonen auf Spatzen, aber es gibt SDL-Bindings für Python.
Ist eigentlich für Spiele u.Ä., und bringt deshalb auch 
Grafik&Animations-Zeug mit, aber eben auch einen Sound-Teil.

https://pysdl2.readthedocs.io/en/latest/modules/sdl2_sdlmixer.html

: Bearbeitet durch User
von Ein T. (ein_typ)


Lesenswert?

Εrnst B. schrieb:
> Evtl. mit Kanonen auf Spatzen, aber es gibt SDL-Bindings für Python.
> Ist eigentlich für Spiele u.Ä., und bringt deshalb auch
> Grafik&Animations-Zeug mit, aber eben auch einen Sound-Teil.
>
> https://pysdl2.readthedocs.io/en/latest/modules/sdl2_sdlmixer.html

Stimmt, gute Idee. Angelegentlich sei auch PyGame erwähnt: [1].

[1] https://www.pygame.org/news

von 🐧 DPA 🐧 (Gast)


Lesenswert?

Eventuell mit PyOpenAL?

von Norbert (Gast)


Lesenswert?

Leute! Ernsthaft?

›playsound‹ hat ein block=True bzw. block=False im Angebot. Ohne 
Aufpreis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.