Gibt es für cursesmenu etwas wie "noecho"?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Brot
User
Beiträge: 5
Registriert: Freitag 13. Mai 2016, 18:11

Guten Tag,

Ich programmiere gerade mit curses-menu(http://curses-menu.readthedocs.io/en/latest/index.html). Ich benutze das FunctionItem um einen Soundeffekt mit pyDub aufzurufen. Man sollte während der Sound läuft bereits wieder andere Dinge machen können. Doch man muss warten bis pyDub seinen Effekt zu Ende gespielt hat bis man wieder etwas anderes machen kann ( in dieser Zeit sieht man die Informationen von ffmpeg).

Meine Frage ist nun, ob es so etwas wie noecho für cursesmenu (nicht curses) gibt mit der man meine Wünsche erfüllen könnte.

Hier noch der Code

Code: Alles auswählen

from pydub import *
from pydub.playback import play
from curses import *
from cursesmenu import *
from cursesmenu.items import *

menu = CursesMenu("Programm", "Das ist ein Untertitel")
song = AudioSegment.from_mp3("Musik/Adam_Snow_-_Meghans_Theme.mp3")
playsong = FunctionItem("Starte Soundeffekt", play, [song])
menu.append_item(playsong)
menu.show()
Liebe Grüsse Brot
Zuletzt geändert von Anonymous am Samstag 21. Mai 2016, 12:25, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Brot: Was hat das mit `noecho()` zu tun? Das ist eine Curses-Funktion die ausschaltet das *Eingaben vom Benutzer* auf dem Terminal auch gleich wieder ausgegeben werden.

Wenn die Musik asynchron abgespielt werden soll, dann müsstest Du dafür mit dem `threading`-Modul das Abspielen nebenläufig starten. Von ``ffplay`` sollten eigentlich keine Ausgaben kommen, falls doch sieht `pydub` offenbar keine weiteren Argumente an die `play()`-Funktion vor mit denen man das verhindern könnte. Du könntest versuchen PyAudio zu installieren, das wird beim abspielen bevorzugt. ``ffplay`` ist nur die Fallback-Lösung.

Du solltest dringend die ganzen Sternchen-Importe sein lassen. Das führt irgendwann zu Namenskollisionen, speziell wenn man das so exzessiv betreibt.
Antworten