将摩尔斯电码重现为声音的示例源代码在 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
:
加载电脑扬声器的驱动程序:
sudo modprobe pcspkr
检查
alsamixer
电脑扬声器/蜂鸣器是否未静音且音量是否调高。切换到
tty1
:CTRL++ALT并F1测试蜂鸣声:echo -e '\a'
如果有效的话,您可以从 tty 运行您的程序。
为了X
:
蜂鸣X
声由 X 处理,pulseaudio 应该会为其产生声音,但有些终端不会产生声音,因此请尝试一下xterm
以确保它是否不起作用。