QAudioOutput 是 Qt 音频输出组件,它提供了一种简单的方式来播放音频数据。它通常用于播放 WAV、MP3 等格式的音乐文件。
使用 QAudioOutput 播放音频需要以下步骤:
- 创建一个 QIODevice 对象,用于读取音频数据。
- 创建一个 QAudioFormat 对象,设置音频的格式信息,例如采样率、声道数、采样位数等。
- 创建一个 QAudioOutput 对象,并将 QIODevice 和 QAudioFormat 传递给它。
- 调用 QAudioOutput 的 start() 函数开始播放音频。
- 调用 QAudioOutput 的 stop() 函数停止播放音频。
下面是一个使用 QAudioOutput 播放音频的示例代码:
#include <QtMultimedia/QAudioOutput>
#include <QtMultimedia/QAudioFormat>
#include <QtCore/QIODevice>
#include <QtCore/QFile>
int main(int argc, char *argv[])
{
QFile file("music.wav");
// 打开音频文件
if (!file.open(QIODevice::ReadOnly)) {
return -1;
}
// 创建音频格式对象
QAudioFormat format;
format.setSampleRate(44100);
format.setChannelCount(2);
format.setSampleSize(16);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::SignedInt);
// 创建音频输出对象
QAudioOutput *audio = new QAudioOutput(format);
// 打开音频设备
audio->start(&file);
// 等待播放结束
while (audio->state() == QAudio::ActiveState) {
QCoreApplication::processEvents();
}
// 关闭音频设备
audio->stop();
return 0;
}
在上面的示例代码中,我们首先打开了一个 WAV 格式的音频文件,然后创建了一个 QAudioFormat 对象,并设置了它的参数。接着,我们创建了一个 QAudioOutput 对象,并将 QAudioFormat 和 QIODevice 传递给它。最后,调用 start() 函数开始播放音频,等待播放结束后再调用 stop() 函数停止播放。