Воспроизведение звукового сигнала в C++ (Linux)

Возможный дубликат:
звуковой сигнал в Linux на C

Я искал способ воспроизвести простой звуковой сигнал в Linux, но все, что я нашел, не работает.

Я пробовал \a, \b\7, но кто-нибудь проигрывает звуковой сигнал.

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

Как я уже сказал, я использую Linux (именно LMDE), поэтому самый простой способ Windows (включая windows.h и Beep()) не может быть использован.

Итак, как я мог реализовать это? Системный вызов или что-то в этом роде.

РЕДАКТИРОВАТЬ: я закончил делать это на Java, и у меня это уже работает.


person Community    schedule 16.10.2012    source источник
comment
Вы уверены, что ваш звуковой сигнал работает в консоли, которую вы используете? В настоящее время он обычно мигает окном консоли или, что еще лучше, вообще ничего не делает.   -  person slaphappy    schedule 16.10.2012
comment
Теперь, когда вы это сказали, я просто включил звук предупреждения и попытался, например, вернуться назад, ничего не удаляя, и он также не воспроизводит звуковой сигнал.   -  person    schedule 16.10.2012
comment
toot — это кроссплатформенный файл C, который пытается вызвать несколько звуковых генераторов для воспроизведения звукового сигнала. github.com/vareille/toot   -  person renataflow    schedule 11.11.2017


Ответы (2)


Попробуйте включить ncurses.h

#include <ncurses.h>

beep();

скомпилировать с флагом -lncurses

Ссылка: http://invisible-island.net/ncurses/man/curs_beep.3x.html

Также этот вопрос: издавать звуки (звуковой сигнал) с помощью c++

Изменить:

попробуй эту командную строку

sudo sh -c "echo -e '\a' > /dev/console"

Также попробуйте код, указанный на http://www.linuxplayer.org/2010/04/beep-your-pc-speaker-in-linux

int ms = 5000;
int freq = 440;
ioctl(fd, KDMKTONE, (ms<<16 | 1193180/freq));
person Amitd    schedule 16.10.2012
comment
Ничего.. никак. Но сам звуковой сигнал работает, потому что в терминале я запускаю звуковой сигнал, и он звучит. - person ; 17.10.2012
comment
@Elemenophee Я добавил еще несколько решений после редактирования .. попробуйте и их тоже. - person Amitd; 17.10.2012
comment
Спасибо за помощь, но, как я сказал в редактировании, я переключился на Java и сделал это уже с использованием звуковых библиотек, поэтому я пропустил шаг использования звукового сигнала для тестирования. - person ; 17.10.2012
comment
последняя ссылка мертва - person Luke_; 17.02.2021

Вы пробовали echo -e "\a"?
Вы также можете попробовать: echo -ne '\007'

Также существует инструмент командной строки beep, который вы сможете установить с помощью системы управления пакетами вашего дистрибутива.

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

person Chimera    schedule 16.10.2012
comment
Возможно, вы захотите проверить конфигурацию звуков и убедиться, что у вас настроены звуки уведомлений. - person Chimera; 16.10.2012
comment
Вы делаете это в терминале оболочки? - person Chimera; 16.10.2012