Ich habe eine Audiodatei auf WSL generiert und wollte sie über einen Befehl abspielen. Es war übertrieben, den Soundserver auszuführen, deshalb habe ich ein einfaches Programm in Python auf der Windows-Seite erstellt und es über einen Wrapper aufgerufen.
Im nächsten Artikel finden Sie viele Python-Soundbibliotheken.
Dieses Mal werden wir PlaySound verwenden. Installieren Sie mit pip auf Python auf der Windows-Seite.
Bibliotheksinstallation
py.exe -m pip install playsound
Py.exe
befindet sich im Pfad ( C: \ WINDOWS
) auf der Windows-Seite, sodass Sie es von der WSL aus aufrufen können, indem Sie .exe
hinzufügen.PlaySound ist einfach zu verwenden, indem Sie einfach den Dateinamen importieren und übergeben.
Die Funktion zum Anzeigen des Namens der wiedergegebenen Datei wurde hinzugefügt, indem mehrere Dateien angegeben wurden. (-P
Option)
winplay.py
import sys, playsound
if len(sys.argv) < 2:
print("usage: %s [-p] sound [...]" % sys.argv[0])
print(" -p: show file name")
exit(1)
argp = 2 if sys.argv[1] == "-p" else 1
args = sys.argv[argp:]
argl = len(args)
format = "[%%%dd/%%d] %%s" % len(str(argl))
for i, arg in enumerate(args):
if argp > 1: print(format % (i + 1, argl, arg))
playsound.playsound(arg)
WSL
Platzieren Sie wintts.py an einer für Windows sichtbaren Stelle. Schreiben Sie einen einfachen Wrapper wie den folgenden, platzieren Sie ihn an einer beliebigen Stelle in der WSL und fügen Sie das Attribut execute hinzu.
winplay
#!/bin/sh
py.exe 'C:\Skriptspeicherung\winplay.py' "$@"
Sie können es jetzt wie einen WSL-Befehl verwenden.
Anwendungsbeispiel
winplay test.wav
winplay -p *.wav
MP3
MP3 kann vorerst auch abgespielt werden, aber in meiner Umgebung sind einige Phänomene wie eine Unterbrechung der Wiedergabe aufgetreten.
Ich habe das Präfix win- hinzugefügt, um anzuzeigen, dass es auf der Windows-Seite funktioniert.
Eigentlich habe ich zuerst versucht, die Bibliothek so zu benennen, wie sie abgespielt wird, aber ich habe sie abgebrochen, weil ich vom Import abhängig war.
Ähnliche Meinungen zu dieser Methode werden geschrieben.
Wenn Sie jedoch darüber nachdenken, können Sie Windows exe auch über wsl ausführen. Wenn Sie also eine exe haben, die WAV-Dateien abspielen kann, können Sie sie klingen lassen.
Wie dort erwähnt, gibt es eine Möglichkeit, den Soundserver zum Laufen zu bringen.
Recommended Posts