LibQQt系列之十二《QQtAudioManager》

工作机制

LibQQt提供QQtWavAudioManager,对wav文件进行读写。
用户只负责获取到音频帧进行处理。读取播放、编码、转换、重新采样、修改、添加效果等等都可以进行,然后如果需要可以保存起来或者使用QQtAudioManager将混合的声音指定设备播放出来。
QQtAudioManager则对QAudioInput和QAudioOutput进行封装,方便用户选择输入、输出设备。
使用原理和QQtWavAudioManager一样,都是把音频帧采集到,随意用户处理,然后播放,或者用QQtWavAudioManager保存起来。
这个地方有个注意,无论什么格式的音频,处理音频帧的时候都已经变成了pcm格式。 留意通道、采样率、采样位宽和其他信息就可以按照目的进行处理。

wav解析之路

LibQQt内部编写了QQtWavAudioInput和QQtWavAudioOutput,提供对Wav文件的读和写。
提供QQtWavAudioManager,对输入、输出Wav文件进行集成读写。
注:QQtWavAudioInput里面和QQtWavAudioOutput里面都有对wav header的处理。不需要用户参与,只要设置pcm必备信息即可。

效果器

LibQQt提供QQtWavSoundEffect帮助用户播放wav效果文件。
特点在于可以自主设定播放设备。

pcm音频知识

pcm音频格式转换 这个其实就是重采样。涉及采样率、声道、位宽转换。

QtAudio QtMultiMedia的现存问题

Qt音视频Library现在很混乱。
QtPhonon不好用,而且在嵌入式linux上根本就是崩溃的,很少有人会用。
QtMultimedia只能支持Qt5。而且在嵌入式linux和android上还不清楚情况。QtAV则总想替换掉这个模块,但是QtAV的编译问题真严重。
QAudioDecoder现在解析不了audio/x-wav,QSoundEffect却可以。
QtSoundEffect、QtSound只能支持默认播放设备,不能选择输出设备,而且只能支持wav文件。
QQtAudio系列类将解决音频的这些问题。
Qt音视频模块真难用啊。2017.
LibQQt对音频模块进行了整理和功能补充,已经满足专业用户的音频输入、输出需求。

你可能感兴趣的:(Qt,QQt)