Qt 采集音频
来源:互联网 发布:传奇世界怪物数据库 编辑:程序博客网 时间:2024/06/08 00:23
1、13年的时候做过一个网络摄像机的Mac客户端,当时就是用Qt做的,通过继承QIODevice,重写writeData来保存PCM音频数据,一切都正常。
2、现如今(17年)在Windows上也写一个同样的客户端,拿着以前音频采集代码移植过来,却发现直接保存的PCM数据不正常,全是噪音。这就郁闷了,难道Windows系统上有做什么特殊的处理吗?波形如下:
3、想破脑袋也没想到是什么原因,开始怀疑人生了,刚开始是用 FILE的fwrite接口来写文件的,于是尝试用QFile来写,看看有没有什么不一样的,意外的是,QFile写的PCM文件播放竟然是正常的。于是开始查阅Qt的相关源代码:QFile、QFileDevice、QIODevice,终于看到这么一段特别的,Windows与Linux的换行符是不一样的,这里有特殊处理,将 '\n' 替换成'\r\n':
4、既然发现了这个特点,那就我也把 '\n' 替换成'\r\n'试试咯,竟然还真正常了,只不过还是有小杂音,波形如下图,我们能看出波形中有一条条的竖线:
5、于是干脆把 '\n'只换成 '\r'试下,竟然真的正常了,这些小竖线都消失了。
6、就这么个换行符,把我整得快趴了。以后如果大家也有碰到类似的,建议直接将 '\n' 替换成 '\r' 试下。
7、以上全是自己的心得笔记,写得不好,大神勿喷。
阅读全文
0 0
- Qt 采集音频
- Android 音频采集---原始音频
- DirectShow音频采集
- jmf 音频采集
- DirectShow 音频采集
- waveIn音频采集
- wave 音频采集
- linux音频采集技术
- C#音频采集代码
- Android音频采集
- alsa 麦克风采集音频
- Android的音频采集
- linux音频采集
- Audio Capture 音频采集
- 音频采集封装
- WebRTC原生音频采集
- wave音频采集
- waveIn音频采集
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):问题解决
- 动态规划-描述与代码
- 重构第8章8.1-8.10
- Redis 它是什么?它用来做什么?它的优势与短板如何?
- python编程练习
- Qt 采集音频
- 菜鸟JAVA路
- MySql_5.7解压版本安装心得
- BZOJ 1531: [POI2005]Bank notes 多重背包
- Windows10操作系统下hosts文件的修改和常见问题
- Linux POSIX线程实现wait_group功能
- HDU
- 控制寄存器(CR0,CR1,CR2,CR3,CR4)
- U盘启动盘制作及win8系统重装