Заставить динамик ПК издавать звуковой сигнал

Заставить динамик ПК издавать звуковой сигнал

За эти годы было много написано о том, как получить звуковой сигнал из релизов Ubuntu. Пример:исправление звукового сигнала

Мои потребности немного отличаются, поскольку я не хочу, чтобы звуковые сигналы звуковой карты работали. Вместо этого я хочу звуковые сигналы динамика ПК, которые издает оригинальный встроенный динамик, поскольку я считаю, что они будут создавать меньшую нагрузку на процессор. Я убедился, что на моем компьютере есть динамик ПК, отключив внешние динамики и выключив Ubuntu. В какой-то момент в процессе выключения и перезагрузки раздается звуковой сигнал, хотя внешние динамики отключены.

Я попробовал следующее:

В /etc/modprobe.d/blacklist.conf, превратите эти строки в комментарии:

#blacklist snd_pcsp
#blacklist pcspkr

В.bashrc

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

Включите в терминале gnome: Правка > Настройки профиля > Общие > Звонок терминала

Убедитесь, что в следующих вкладках: Система > Настройки > Звук > различные вкладки не выбрано «отключить звук» (снимите все флажки).

Выберите «Включить звуки окон и кнопок» в: Система > Настройки > Звук > Звуковые эффекты

В gconf-editorразделе «Рабочий стол» > «GNOME» > «Звук» установите три флажка «Звук».

В gconf-editorразделе «Приложения» > «Metacity» > «Общие» установите audible bellфлажок.

Я по-прежнему не слышу звуковых сигналов динамика ПК, когда отправляю код 7 на консоль через мою программу Java или использую

echo -e '\a'

или эквивалентно

echo -e "\a"

в командной строке bash. (Опция -e означает включение интерпретации escape-последовательности.) Что еще мне следует попробовать?

ОбновлятьПоскольку моя цель — минимизировать нагрузку на ЦП, вот сравнение затраченного времени. Каждый тест — 100 000 итераций. Каждый вариант был выполнен три раза, поэтому для каждого из них представлены три результата.

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

Эти запуски были сделаны в Eclipse, поэтому умножьте на некоторое значение меньше 1 для автономного выполнения. К сожалению, звуковой сигнал Toolkit на моем компьютере не слышен, как и код 7. Утилита звукового сигнала работает, но она самая затратная.

решение1

На моей системе Oneiric мне пришлось сделать следующее, чтобы XBell/XkbBell снова заработали:

  1. Загрузите модуль pcspkr(как вы уже сделали через /etc/modprobe.d/blacklist.conf)
  2. Удалить пакет pulseaudio-module-x11(который, похоже, поглощает все события XBell)
  3. Вставьте (вам options snd-hda-intel beep_mode=2нужно /etc/modprobe.d/enable-beep.confтолько в том случае, если у вас есть система со звуковым чипом Intel, как у меня Latitude E6420). После этого включите звук динамика в alsamixer.

Некоторые терминалы (например, konsole, см. ошибку)Ошибка 177861) игнорировать символ звонка. Хороший способ проверить системный сигнал — использовать команду xkbbell.

После того, как я все это сделал, вызов Java Toolkit.getDefaultToolkit().beep()работает нормально.

решение2

В версии 14.04.3 LTS теперь, похоже, достаточно отредактировать /etc/modprobe.d/blacklist.confи включить, pcspkrзакомментировав строку черного списка.

#blacklist pcspkr

Превращает #строку в комментарий.

Убедитесь, что Терминал ( gnome-terminal) разрешает звонок консоли на вкладке настроек.

Это было проверено с помощью backspace на пустой строке терминала. Это также было проверено с помощью beepутилиты (предполагается, что вы ее установили). Вместо этого вы можете сделать программный сигнал через объект java.awt.Toolkit: java.awt.Toolkit.getDefaultToolkit().beep().

Объект Toolkit более эффективен, чем beepутилита.

Кстати,некоторым людям не нравится динамик ПК.

решение3

Убеждатьсяваш терминал и тема не поглощают событие.

Внешние инструментыработа, говорите вы. Вы могли бы погрузиться в их код.Этотможет помочь.

решение4

ИспользоватьbeepпрограммаЯ скомпилировал версию 1.3, поскольку версия 1.2.2 в репозиториях Lucid не работает.

  • вам нужно запустить его с помощьюsudo
  • модуль pcspkr должен быть загружен, как вы уже сделали

Связанный контент