Den PC-Lautsprecher zum Piepen bringen

Den PC-Lautsprecher zum Piepen bringen

Im Laufe der Jahre wurde viel darüber geschrieben, wie man den Piepton in Ubuntu-Versionen erhält. Beispiel:Behebung des Pieptons

Meine Anforderungen sind etwas anders, da ich nicht sicherstellen möchte, dass die Pieptöne der Soundkarte funktionieren. Stattdessen möchte ich Pieptöne aus dem PC-Lautsprecher, wie sie vom original eingebauten Lautsprecher erzeugt werden, da ich glaube, dass sie die CPU-Last verringern. Ich habe bestätigt, dass mein Computer über den PC-Lautsprecher verfügt, indem ich die externen Lautsprecher abgezogen und Ubuntu heruntergefahren habe. Irgendwann während des Herunterfahrens und Neustartens ist ein Piepton zu hören, obwohl die externen Lautsprecher keinen Strom haben.

Ich habe Folgendes versucht:

/etc/modprobe.d/blacklist.confWandeln Sie in diese Zeilen in Kommentare um :

#blacklist snd_pcsp
#blacklist pcspkr

In.bashrc

/usr/bin/xset b on
/usr/bin/xset b 100

Aktivieren Sie im Gnome-Terminal: Bearbeiten > Profileinstellungen > Allgemein > Terminalklingel

Stellen Sie sicher, dass unter „System“ > „Einstellungen“ > „Ton“ > „Verschiedene Registerkarten“ keine „Stumm“-Auswahlen vorhanden sind (deaktivieren Sie alle).

Wählen Sie „Fenster- und Tastentöne aktivieren“ unter: System > Einstellungen > Ton > Soundeffekte

Aktivieren Sie unter gconf-editor„Desktop > Gnome > Sound“ die drei Sound-Kontrollkästchen.

Aktivieren Sie unter gconf-editorApps > Metacity > Allgemein das audible bellKontrollkästchen.

Ich bekomme immer noch keine PC-Lautsprecher-Pieptöne, wenn ich Code 7 über mein Java-Programm an die Konsole sende oder benutze

echo -e '\a'

oder gleichwertig

echo -e "\a"

in der Bash-Befehlszeile. (Die Option -e bedeutet, dass die Interpretation von Escape-Sequenzen aktiviert wird.) Was sollte ich sonst noch versuchen?

AktualisierenDa mein Ziel darin besteht, die CPU-Belastung zu minimieren, folgt hier ein Vergleich der verstrichenen Zeiten. Jeder Test umfasst 100.000 Iterationen. Jede Variante wurde dreimal ausgeführt, daher werden für jede drei Ergebnisse angezeigt.

printwriter.format("%c", 7); 
// 1.3 seconds, 1.5 seconds, 1.5 seconds

Toolkit.getDefaultToolkit().beep(); 
// 0.8 seconds, 0.3 seconds, 0.5 seconds

try { Runtime.getRuntime().exec("beep"); } catch (IOException e) { } 
// 10.3 seconds, 16.3 seconds, 11.4 seconds

Diese Läufe wurden in Eclipse durchgeführt, also multiplizieren Sie sie mit einem Wert kleiner als 1 für die eigenständige Ausführung. Leider ist der Piepton des Toolkits auf meinem Computer stumm, ebenso wie Code 7. Das Piep-Dienstprogramm funktioniert, ist aber am teuersten.

Antwort1

Auf meinem Oneiric-System musste ich Folgendes tun, um XBell/XkbBell wieder zum Laufen zu bringen:

  1. Laden Sie das Modul pcspkr(wie Sie es bereits über getan haben /etc/modprobe.d/blacklist.conf)
  2. Entfernen Sie das Paket pulseaudio-module-x11(das alle XBell-Ereignisse zu absorbieren scheint)
  3. Setzen Sie options snd-hda-intel beep_mode=2es ein /etc/modprobe.d/enable-beep.conf(Sie brauchen das nur, wenn Sie ein System mit einem Intel-Soundchip besitzen, wie mein Latitude E6420). Schalten Sie danach den Lautsprecher in Alsamixer stumm.

Einige Terminals (wie Konsole, siehe BugFehler 177861) ignorieren Sie das Klingelzeichen. Eine gute Möglichkeit, den Systemton zu testen, ist der xkbbellBefehl.

Nachdem ich das alles getan habe, Toolkit.getDefaultToolkit().beep()funktioniert der Java-Aufruf einwandfrei.

Antwort2

Unter 14.04.3 LTS scheint es nun ausreichend zu sein, die Blacklist-Zeile zu bearbeiten /etc/modprobe.d/blacklist.confund pcspkrdurch Auskommentieren zu aktivieren.

#blacklist pcspkr

Dadurch #wird die Zeile in einen Kommentar umgewandelt.

Stellen Sie sicher, dass das Terminal ( gnome-terminal) auf der Registerkarte „Einstellungen“ die Konsolenklingel zulässt.

Dies wurde mit der Rücktaste in einer leeren Terminalzeile getestet. Dies wurde auch mit dem beepDienstprogramm getestet (vorausgesetzt, Sie haben es installiert). Stattdessen können Sie programmgesteuertes Piepen über das Objekt java.awt.Toolkit ausführen: java.awt.Toolkit.getDefaultToolkit().beep().

Das Toolkit-Objekt ist effizienter als das beepDienstprogramm.

Übrigens,Manche Leute mögen den PC-Lautsprecher nicht.

Antwort3

Stellen Sie sicherIhr Terminal und Ihr Thema beeinträchtigen das Ereignis nicht.

Externe ToolsArbeit, sagst du. Du könntest in ihren Code eintauchen.Daskönnte helfen.

Antwort4

Verwenden Sie diebeepProgramm. Ich habe v1.3 kompiliert, weil die Version 1.2.2 in den Lucid-Repositories nicht funktioniert.

  • Sie müssen es ausführen mitsudo
  • das pcspkr-Modul muss geladen werden, wie Sie es bereits getan haben

verwandte Informationen