Qt播放WAV格式音频文件的两种方法
2016-04-23 09:03
597 查看
这两种方法都需要在.pro文件中加入multimedia模块。
方法一、使用QAudioOutput
注意这里采样率、通道数和采样大小的设置,本例只能用来播放无损的WAV。网上很多代码将采样率设置成8000、通道数设置为1、采样大小设置为8,这样虽然也能播放WAV,但是没有任何其他说明,也没提供播放所用的WAV文件,导致很多童鞋在网上找个WAV,播放时出现“嗡嗡”声,根本听不清。
“什么是无损”参考:http://blog.csdn.net/caoshangpa/article/details/51218597
“如何下载和制作无损WAV”参考:http://blog.csdn.net/caoshangpa/article/details/51218994
方法二、使用QSoundEffect
方法一、使用QAudioOutput
#include <QApplication> #include <QFile> #include <QAudioFormat> #include <QAudioOutput> int main(int argc, char *argv[]) { QApplication a(argc, argv); QFile inputFile; inputFile.setFileName("test.wav"); inputFile.open(QIODevice::ReadOnly); //设置采样格式 QAudioFormat audioFormat; //设置采样率 audioFormat.setSampleRate(44100); //设置通道数 audioFormat.setChannelCount(2); //设置采样大小,一般为8位或16位 audioFormat.setSampleSize(16); //设置编码方式 audioFormat.setCodec("audio/pcm"); //设置字节序 audioFormat.setByteOrder(QAudioFormat::LittleEndian); //设置样本数据类型 audioFormat.setSampleType(QAudioFormat::UnSignedInt); QAudioOutput *audio = new QAudioOutput( audioFormat, 0); audio->start(&inputFile); return a.exec(); }
注意这里采样率、通道数和采样大小的设置,本例只能用来播放无损的WAV。网上很多代码将采样率设置成8000、通道数设置为1、采样大小设置为8,这样虽然也能播放WAV,但是没有任何其他说明,也没提供播放所用的WAV文件,导致很多童鞋在网上找个WAV,播放时出现“嗡嗡”声,根本听不清。
“什么是无损”参考:http://blog.csdn.net/caoshangpa/article/details/51218597
“如何下载和制作无损WAV”参考:http://blog.csdn.net/caoshangpa/article/details/51218994
方法二、使用QSoundEffect
#include <QApplication> #include <QSoundEffect> int main(int argc, char *argv[]) { QApplication a(argc, argv); QSoundEffect effect; effect.setSource(QUrl::fromLocalFile("test.wav")); //循环播放 effect.setLoopCount(QSoundEffect::Infinite); //设置音量,0-1 effect.setVolume(0.8f); effect.play(); return a.exec(); }
相关文章推荐
- Qt(一)--- QSS的语法
- 第5课 Qt Creator工程介绍
- QTableWidget的使用和美工总结
- QT教程1:QT如何写类
- QT画图教程7:QT实现透明度匹配及渐变等功能
- QTableWidget表格合并若干问题及解决方法
- 在QtOpenglWidget中使用原生函数写FBO时,应注意的
- 【Qt】StackedWidget
- 【Qt】QDockWidget
- QT中QWidget、QDialog及QMainWindow的区别
- 【Qt】splitter
- QT 自定义函数 自定义信号和槽
- Qt——动态库的创建和使用
- 第4课 Hello QT
- Qt5.3.2移植到到开发板上触摸屏不可用的问题,望指教.
- QT 程序自定义插件
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)good
- QT new模态对话框
- QT QLabel新创建时显示中文乱码
- qt编译参数