摩尔斯电码在 Ubuntu 中不起作用

摩尔斯电码在 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)。您能给我一些建议吗?

答案1

为一个tty

  1. 加载电脑扬声器的驱动程序:

    sudo modprobe pcspkr
    
  2. 检查alsamixer电脑扬声器/蜂鸣器是否未静音且音量是否调高。

  3. 切换到tty1CTRL++ALTF1测试蜂鸣声:

    echo -e '\a'
    

如果有效的话,您可以从 tty 运行您的程序。

为了X

蜂鸣X声由 X 处理,pulseaudio 应该会为其产生声音,但有些终端不会产生声音,因此请尝试一下xterm以确保它是否不起作用。

相关内容