如何在 Linux (Ubuntu) 中输出频率 1kHz 和功率/音量 = 60%?
我需要 C/C++ 中的示例代码。谢谢!
看看 portaudio 库。http://www.portaudio.com/
它非常易于使用,跨平台,并带有许多小示例程序。除其他外,您会发现一种合成和播放正弦波的功能。
改变频率和音量是微不足道的。如果我没记错的话,这个例子只是一页代码,包括初始化和一切。
以下是如何输出用户定义的频率(赫兹)和长度(毫秒)的哔声。如何设置音量,我不确定。请注意,这个 C 程序只是对“echo -e”进行了 system() 调用,所以从技术上讲,你甚至不需要 C,但你问了,所以我给了。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
long freq;
long len;
char cmd[60];
if (argc != 3)
{
printf("Usage: %s freq_hz length_ms\n", argv[0]);
return 1;
}
freq = strtol(argv[1],(char**)NULL,10);
len = strtol(argv[2],(char**)NULL,10);
sprintf(cmd,"echo -e \"\33[10;%ld]\33[11;%ld]\a\33[10]\33[11]\"",freq,len);
system(cmd);
return 0;
}