Spielen Sie über das Bash-Skript den Ton über die internen Lautsprecher ab, während Sie sie sonst deaktiviert lassen

374
palidin

Ich habe früher eine ähnliche Frage gestellt, aber Kamil Maciorowski hat richtig und klug darauf hingewiesen, dass es nicht wirklich das einzige Problem war, das es schien, sondern eine Amalgam von 3. Also habe ich das defekte System und die Frage gelöscht. Ich fange mit einer Neuinstallation von Lubuntu an, der aktuellen. Wenn ich Bluetooth-Kopfhörer einschalte, wird der Ton über sie und nicht über die internen Lautsprecher wiedergegeben. Wenn ich die Kopfhörer ausschalte, wird der Ton automatisch über die Lautsprecher wiedergegeben.

Ich würde es vorziehen, niemals einen Ton an die Lautsprecher senden zu lassen, es sei denn, ich gebe ausdrücklich die Ausgabe eines bestimmten Befehls an sie weiter. Wie Pseudocode: aplay /path/fire-alarm.wav -o speakersund wenn alle anderen Sounds über die Kopfhörer abgespielt werden, sonst einfach nicht.

Wenn es keine direkte Bestimmung für diese Art von Richtlinien gibt, frage ich mich, ob es einen Weg gibt, das System dazu zu bringen, / dev / null als ständig funktionierende und stets verfügbare Audio-Senke zu sehen, die nach den Kopfhörern an zweiter Stelle steht der internen Lautsprecher. Dies sollte in Verbindung mit einem "Play this sound through the speaker" -Befehl erfolgen.

Wenn beides nicht möglich ist, würden Befehle zum Deaktivieren und Aktivieren der Lautsprecher ohne Beeinträchtigung der Kopfhörerfunktion und ohne erneute Protokollierung fast ebenso gut funktionieren, vorausgesetzt, etwas in der byzantinischen Linux-Soundarchitektur entscheidet nicht spontan "Oh, Ihre Lautsprecher sind es." ausgeschaltet, werde ich das für Sie reparieren. "

Dies ist nicht das Gleiche, als würde man einfach sagen, der Bluetooth-Kopfhörer sollte die Standardeinstellung sein. So ist es jetzt. Wenn ich sehe, wie "Debbie Does Dubai" aussieht, wie die Kopfhörer außer Reichweite sind oder der Saft ausgeht, oder ich einfach nur mit dem Finger fummle, während sie versuchen, ihre physische Position anzupassen, möchte ich nicht, dass sich der Klang automatisch ändert, um zu erscheinen der Lautsprecher.

Was ich suche, ist eine Richtlinie, die nichts an die Sprecher sendet, es sei denn, ich sage ausdrücklich, dass sie einen bestimmten Stream dorthin senden soll, und sendet dann nur die oder, falls dies nicht der Fall ist, eine skriptfähige Methode zum Deaktivieren und Aktivieren der Lautsprecher ohne erneute Protokollierung.

0

1 Antwort auf die Frage

0
TheCompWiz

PULSE_SINK = <sink_name> ein Programm

Eine Liste der verfügbaren "sink_name" finden Sie unter:

LANG=C pactl list | grep -A2 'Sink #' | grep Name: | cut -d" " -f2 
Großartig. Inzwischen habe ich Befehle gefunden, um nur die Lautsprecher stummzuschalten und die Stummschaltung aufzuheben: `pactl set-sink-mute 0 1` &` pactl set-sink-mute 0 0`. Ich werde sie in einem Start-Skript stummschalten und im Skript möchte ich durch SPRKs spielen, ich werde die Stummschaltung aufheben, Ihren Befehl verwenden und das Remute ausführen. Nicht genau das, wonach ich gesucht hatte, aber nahe genug. In meinem konkreten Anwendungsfall ist der Unterschied selten von Bedeutung. Vielen Dank. palidin vor 6 Jahren 0