【问题标题】:Generate system sounds in linux through c/c++ program在linux中通过c/c++程序生成系统声音
【发布时间】:2014-03-09 04:23:33
【问题描述】:

我在 while(1) 循环中以每秒 1 帧的速率从相机捕获帧。

while(1) 循环内满足特定条件时,我想每次在我的 C 程序中生成持续时间为 100 毫秒的哔声。

我尝试使用aplay shell 命令播放单音 .wav 文件,但它会降低程序的速度。

有没有更省时的替代方法?

有没有办法使用 C/C++ 程序产生系统声音(例如,当我们在终端中按右箭头键时播放的声音)?

已编辑: 我可以使用两种方法通过内部 pc 扬声器发出哔声:

方法一:通过开启pcspeaker使用beep命令:

sudo modprobe pcspkr

sudo beep

方法二:使用命令:xkbbell -force

但除了aplaypaplay 命令之外,我没有找到任何解决方案。当我尝试使用这些命令播放声音文件时,播放声音文件并在 shell 中将控制权返回给用户后会有一些延迟。

【问题讨论】:

  • 你有硬件PC speaker吗?如果没有,你需要模仿它
  • 答案 print("\a");作品。它在 Windows 上模拟 PC 扬声器,在 Linux 上肯定会做同样的事情(虽然没有确认)
  • 我正在使用外部扬声器。此外, printf("\a") 不起作用。

标签: c++ c linux beep system-sounds


【解决方案1】:

例如,您可以打印出 ASCII 响铃字符以获得哔声。

printf("\a");

【讨论】:

  • 它不工作。外部/内部扬声器没有声音。程序只是安静地退出。
  • 我认为必须激活哔声(参见superuser.com/questions/22767/enable-system-beep-in-ubuntu for Ubuntu)。
  • 我已经激活它,现在可以通过内部电脑扬声器产生声音。但我希望通过外部扬声器发出声音。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多