Представление азбуки Морзе не работает в Ubuntu

Пример исходного кода для воспроизведения азбуки Морзе как звука не работает в Ubuntu:

#include <iostream> 
#include <string> 
#include <ctime> 

using namespace std;

const string S_DOT = "\a";
const string S_BAR = "\a\a\a";

inline void timeSleep(clock_t sec)
{
    clock_t start_time = clock();
    clock_t end_time = sec * 1000 + start_time;
    while(clock() != end_time);
}//timeSleep

inline void shortPause()
{
    timeSleep(1);
}//shordPause

inline void longPause()
{
    timeSleep(2);
}//longPause


int main()
{
    // SOS in Morse code
    cout << S_DOT;
    shortPause();
    cout << S_DOT;
    shortPause();
    cout << S_DOT;
    shortPause();
    cout << S_BAR;
    shortPause();
    cout << S_DOT;
    shortPause();
    cout << S_DOT;
    shortPause();
    cout << S_DOT;
    shortPause();

    return 0;
}

Мои настройки звука должны быть в порядке, так как я могу открывать и слушать музыку (например, с YouTube). Не могли бы вы посоветовать?

0
задан 12 January 2014 в 15:21

1 ответ

Для tty:

  1. Загрузите драйвер для динамика ПК:

    sudo modprobe pcspkr
    
  2. Проверьте в alsamixer, что динамик / звуковой сигнал ПК не приглушен, а громкость увеличена.

  3. Переключитесь на tty1: CTRL + ALT + F1 и проверьте звуковой сигнал:

    echo -e '\a'
    

Если это работает, вы можете запустить вашу программу из tty.

Для X:

В X звуковой сигнал обрабатывается X, и pulseaudio должен издавать для него звук, но некоторые терминалы не воспроизводят звук, поэтому попробуйте его xterm чтобы убедиться, что он не работает.

0
ответ дан 12 January 2014 в 15:21

Другие вопросы по тегам:

Похожие вопросы: