Как сделать аппаратный звуковой сигнал в Mac OS X 10.6


Я просто хочу, чтобы Mac OS X 10.6 делал аппаратный звуковой сигнал, как в open suse и других дистрибутивах. Я пробовал следующие подходы

терминал - > beep = - bash: beep: команда не найдена

терминал - > say beep = голос говорит звуковой сигнал (не аппаратный звуковой сигнал, но удивительный ;))

applescript - > beep = Macintosh bell (я хочу аппаратный звуковой сигнал!)

кто-нибудь знает, как сделать аппаратный звуковой сигнал в bin/bash или applescript?

16 142

16 ответов:

в macOS нет" аппаратного звукового сигнала".

функциональность, о которой вы думаете, является артефактом очень старого (до 1990-х годов) IBM PC-совместимого оборудования. До того, как большинство компьютеров имели звуковые карты, Большинство машин имели небольшой динамик или пьезо зуммер, подключенный к одному из каналов чипа таймера. Это может быть использовано для создания простых тонов или звуковых сигналов. Даже после того, как многие компьютеры интегрировали звуковые карты, это оставалось обычным в течение довольно долгого времени для компьютеров, чтобы направить этот выход на a отдельный внутренний динамик. В последнее время многие компьютеры, особенно ноутбуки, интегрировали эту функцию в встроенную звуковую карту.

(Если вам интересно узнать о технических деталях работы интерфейса динамиков ПК,здесь больше деталей.)

Это оборудование никогда не существовало в компьютерах Apple. Единственный аудиовыход доступен через звуковую карту, и единственный системный звуковой сигнал в macOS-это звуковой сигнал пользователя.

tput bel работает в большинстве снарядов.

в OS X, эта (и любая другая команда, которая делает колокол гаснет) также получает жетон, если команда выполняется, когда терминал не был на переднем плане:

печати \a У меня не всегда получалось (MBA, 10.7.4). Я использую это вместо:

say "beep"

действительно, следующее эффективно и несколько мелодично:

say -v Bells "dong dong dong"

[обновление] к сожалению, колокола больше не включены в последнюю версию OS X. попробуйте:

say -v Victoria Do your homework!

используйте следующее, чтобы исследовать голоса:

say -v \?

написать echo ^G в bash. чтобы создать ^G пресс ctrl+v а то ctrl+g.

В тип терминала :

echo -e "\a"

параметр-e сообщает echo для обработки экранированных символов. Поскольку \n-это символ новой строки, \a-это колокол (то же самое, что Ctrl+G).

это будет цикл через все голоса (работает на Yosemite):

say -v '?' | awk '{print }' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done
printf "\a"

если вы посмотрите на man printf, это дает вам список экранированных символов, в том числе \a:

\a      Write a <bell> character.

в терминалах OS X выполните команду:osascript -e 'beep'

используя технологию OSA (Open Script Architecture), чтобы сообщить AppleScript выполнить команду beep.

воспроизведение произвольного звукового сигнала с помощью afplay

Я удивлен, что никто не упомянул afplay: это программа командной строки, которая воспроизводит произвольные звуковые файлы. Это было вокруг, так как оригинальные выпуски OS X (и NeXTSTEP, если ваша память так долго).

например, вы можете запустить это из командной строки или поместить его в скрипт:

$ afplay /System/Library/Sounds/Ping.aiff

вы не ограничены системными звуками; одно из преимуществ использования afplay это то, что вы можете выбрать свой собственный звуковой файл в качестве предупреждения. Например, вы можете скачать один из этих звуковых файлов и выбрать свой любимый.

(дополнительные очки, если вы можете найти запись телетайпа модель 33 колокол!)

printf "\a" также работает в терминале и будет воспроизводить установленный звуковой сигнал.

Если вам что-то нужно, это звучит как "важно"

можно использовать

tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s

:)

на MacOS X, опция" звуковое предупреждение " (терминал/настройки) должна быть активирована, чтобы получить звук.

Если у вас установлен XCODE, вы можете сделать звуковой сигнал/звонок. Я не понял, что я могу сделать printf "\a" характер работы в с.

есть один способ заставить тон работать при запуске программы, запустить XCODE, выпадающее меню под XCODE, предпочтения, поведение, установите первый флажок воспроизведение звука, выберите из списка или добавьте звук.

Это один из способов сделать это, но только как программа работает, я верю.

osascript-e 'tell application" System Events "to beep'

Эхо \07, Эхо \Х7, е \7, эхо \с, Выход бел, все работают.