QT设置音效QSoundEffect播放音频文件wav

2023-10-20 04:50

本文主要是介绍QT设置音效QSoundEffect播放音频文件wav,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QT设置音效QSoundEffect播放wav

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSoundEffect>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);effect=new QSoundEffect(this);// effect->setSource(QUrl::fromLocalFile("../mysoundeffect/test2.wav"));effect->setSource(QUrl::fromLocalFile("../test2a.wav"));effect->setVolume(0.25f);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_play_clicked()
{effect->play();
}void MainWindow::on_pushButton_stop_clicked()
{effect->stop();
}void MainWindow::on_spinBox_valueChanged(int arg1)
{effect->setLoopCount(arg1);
}

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表明无限重复。

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

这篇关于QT设置音效QSoundEffect播放音频文件wav的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/244763

相关文章

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的