c/c++ 实现录取linux 的 系统声音
实现录取系统内部的声音比如音乐播放器播放的声音,而不是从麦克风来的声音
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
c/c++ 获取linux 的 系统声音
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 社区专家-Monster-XH 2023-11-18 12:35关注
#include <stdio.h> #include <string.h> #include <pulse/simple.h> #include <pulse/error.h> #define BUFSIZE 1024 int main(int argc, char *argv[]) { // PulseAudio 的一些变量 pa_simple *s = NULL; pa_sample_spec ss; int ret = 1; int error; // 设置音频格式 ss.format = PA_SAMPLE_S16LE; ss.rate = 44100; ss.channels = 2; // 创建一个新的播放流 if (!(s = pa_simple_new(NULL, "RecordApp", PA_STREAM_RECORD, NULL, "record", &ss, NULL, NULL, &error))) { fprintf(stderr, __FILE__": pa_simple_new() 失败: %s\n", pa_strerror(error)); goto finish; } // 循环录音并写入文件 for (;;) { uint8_t buf[BUFSIZE]; ssize_t r; // 读取数据 if (pa_simple_read(s, buf, sizeof(buf), &error) < 0) { fprintf(stderr, __FILE__": pa_simple_read() 失败: %s\n", pa_strerror(error)); goto finish; } // 将数据写入标准输出 if (write(STDOUT_FILENO, buf, sizeof(buf)) != sizeof(buf)) { fprintf(stderr, __FILE__": 写入失败\n"); goto finish; } } ret = 0; finish: if (s) pa_simple_free(s); return ret; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
- ¥15 hive直连数据库模式插入mysql表数据失败(相关搜索:数据库)
- ¥30 不会,学习,有偿解答
- ¥15 SQL查询语句报错(检查)
- ¥15 此表中公式应该怎么写
- ¥15 求HI-TECH PICC 9.50 PL3安装包
- ¥15 下载ctorch报错,求解
- ¥15 如何入门学习c语言,单片机
- ¥15 idea 编辑语言的选择
- ¥15 Windows下部署Asmjit