播放音频
要使用多媒体音频功能,需要先引入multimedia模块
在camke中,加入如下语句:
find_package(Qt6 COMPONENTS Network REQUIRED)
target_link_libraries(your_target_name PRIVATE Qt6::multimedia)
播放音频主要涉及到三个类:
QAudioOutput,音频输出类,和**QMediaPlayer**搭配使用
| 方法 | 功能 |
|---|---|
setVolume |
设置音量 |
QMediaPlayer,媒体播放器,主要用于长音频输出
| 方法 | 功能 |
|---|---|
setAudioOutput |
设置音频输出 |
setSource |
设置资源文件 |
play |
开始播放 |
pause |
暂停播放,恢复播放时,从暂停的地方继续 |
stop |
停止播放,恢复播放时,从头开始播放 |
QSoundEffct,声音播放器,主要用于短音频输出。其不需要搭配QAudioOutput使用
| 方法 | 功能 |
|---|---|
setSource |
设置资源文件 |
play |
开始播放 |
setVolume |
设置音量 |
例如,可以实现一个简单的音乐播放器,包含如下功能
- 从本地选择歌曲
- 播放/暂停歌曲
- 显示歌曲播放进度
- 点击进度条,实现快进
Widget:
// widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QMediaPlayer>
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget {
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
void on_toolButton_clicked();
void updateProgressBar(qint64 position);
void updateSong(int percent);
private:
Ui::Widget *ui;
QMediaPlayer *player_ = nullptr;
};
#endif // WIDGET_H
// widget.cpp
#include "widget.h"
#include <QAudioOutput>
#include <QDebug>
#include <QFileDialog>
#include <QMessageBox>
#include <thread>
#include "./ui_widget.h"
#include "progressbar.h"
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this);
// 创建音频输出
QAudioOutput *audio_output = new QAudioOutput(

129

被折叠的 条评论
为什么被折叠?



