我的QT Creator学习笔记(二十六)——播放音频QMediaPlayer和QSoundEffect

参考文献:《Qt Creator 快速入门》第三版 霍亚飞编著

Qt5使用全新Qt Multimedia模块来实现多媒体的应用。该模块分别提供了一组QML类型和一组C++类来处理多媒体内容。使用多媒体模块内容要在.pro项目文件中加如下代码

QT += multimedia

一、播放压缩音频

QMediaPlayer被设计用来进行媒体播放,可以播放音频、视频和网络广播等。使用其播放音频文件(如mp3文件)例子工程如下

新建Qt Widgets应用mediaplayer,保持默认选项,在项目文件中添加QT += multimedia

在mainwindow.h中添加类的前置声明

class QMediaPlayer;

再添加一个私有成员

QMediaPlayer* player;

        在构造文件中初始化player,并设置要播放的音频文件

   player=new QMediaPlayer;
    player->setMedia(QUrl::fromLocalFile("C:/Users/Administrator/Music/周深 - 大鱼.mp3"));

往界面文件中拖入两个pushbutton,分别控制播放音乐(play()接口)和停止播放音乐(stop()接口),其clicked函数实现如下。

void MainWindow::on_pushButton_clicked()
{
     player->play();
}

void MainWindow::on_pushButton_2_clicked()
{
    player->stop();
}

 不要忘记添加头文件

#include <QMediaPlayer>
#include <QUrl>

 

 

二、低延迟声音效果

QSoundEffect类可以使用一种低延迟方式来播放未压缩的音频文件,如WAV文件,它非常适合用来播放与用户交互的音频,如弹出提示框音、虚拟键盘按键音、游戏音效等。

继续在上述工程中添加代码,mainwindow.h头文件中添加QSoundEffect类的前置声明,以及该指针类型的私有成员变量

class QSoundEffect;
 QSoundEffect* effect;

mainwindow.cpp中添加头文件包含

#include <QSoundEffect>

构造函数中,实列化effect,并设置播放源文件以及音量

 effect=new QSoundEffect(this);
    effect->setSource(QUrl::fromLocalFile("C:/Windows/Media/Ring01.wav"));
    effect->setVolume(0.25f);

setVolume接口设置播放音量,参数取值范围0.0~1.0。

往ui文件中拖放两个pushbutton以及一个spin box,分别控制播放、停止以及循环播放次数代码如下

void MainWindow::on_pushButton_3_clicked()
{
    effect->play();
}

void MainWindow::on_pushButton_4_clicked()
{
    effect->stop();
}

void MainWindow::on_spinBox_valueChanged(int arg1)
{
    effect->setLoopCount(arg1);
}

setLoopCount()接口设置播放次数,0和1时表明只播放一次QSoundEffect::Infinite表明无限重复

连续点击播放按钮,会发现新的点击会被及时响应,上一次的播放被打断。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值