Qt使用QSoundEffect類實現(xiàn)播放音效或音樂
一、QSoundEffect類介紹
QSoundEffect是一個用于播放音效的Qt類。它提供了一種簡單的方式來加載和播放音效文件。
QSoundEffect的用法非常簡單。首先,通過調(diào)用setSource()方法,你可以指定要播放的音效文件的路徑。然后,通過調(diào)用play()方法,你可以開始播放音效。你還可以通過設(shè)置其他屬性來控制音效的音量、循環(huán)播放、音效音調(diào)、音效速度等。
QSoundEffect支持多種音頻格式,包括WAV、MP3、OGG等。
QSoundEffect還提供了一些方法,如pause()、stop()、isPlaying()等,以便你可以進(jìn)一步控制音效的播放。
總之,QSoundEffect是一個簡單易用的Qt類,用于播放音效。它提供了一種方便的方式來加載和播放音效文件,并提供了一些屬性和方法來控制音效的播放。
二、QSoundEffect單例類封裝
.hpp
#ifndef SOUNDEFFECTHELPER_H #define SOUNDEFFECTHELPER_H #include <QObject> #include <QSoundEffect> #include <QUrl> #include <QDebug> class SoundEffectHelper : public QObject { Q_OBJECT private: explicit SoundEffectHelper(QObject *parent = nullptr); SoundEffectHelper(const SoundEffectHelper&) = delete; SoundEffectHelper operator=(const SoundEffectHelper &) = delete; public: typedef enum { musicKeyPress, musicFailed, musicSuccess, musicToast, musicMax, }music; static SoundEffectHelper *getInstance() { if(instance == nullptr) instance = new SoundEffectHelper(); return instance; } void play(music m); private: void valueInit(); private: static SoundEffectHelper *instance; QSoundEffect soundEffectBuf[musicMax]; }; #endif // SOUNDEFFECTHELPER_H
.cpp
#include "soundEffectHelper.h" SoundEffectHelper *SoundEffectHelper::instance = nullptr; SoundEffectHelper::SoundEffectHelper(QObject *parent) : QObject{parent} { this->valueInit(); qDebug()<<"dsfsdfsd"; } void SoundEffectHelper::valueInit() { soundEffectBuf[musicKeyPress].setSource(QUrl::fromLocalFile(":/music/music/button.wav")); soundEffectBuf[musicKeyPress].setLoopCount(1);// 音頻循環(huán)的次數(shù) soundEffectBuf[musicKeyPress].setVolume(1.0f);// 音量 soundEffectBuf[musicFailed].setSource(QUrl::fromLocalFile(":/music/music/failed.wav")); soundEffectBuf[musicFailed].setLoopCount(1);// 音頻循環(huán)的次數(shù) soundEffectBuf[musicFailed].setVolume(1.0f);// 音量 soundEffectBuf[musicSuccess].setSource(QUrl::fromLocalFile(":/music/music/success.wav")); soundEffectBuf[musicSuccess].setLoopCount(1);// 音頻循環(huán)的次數(shù) soundEffectBuf[musicSuccess].setVolume(1.0f);// 音量 soundEffectBuf[musicToast].setSource(QUrl::fromLocalFile(":/music/music/toast.wav")); soundEffectBuf[musicToast].setLoopCount(1);// 音頻循環(huán)的次數(shù) soundEffectBuf[musicToast].setVolume(1.0f);// 音量 } void SoundEffectHelper::play(music m) { if(m > musicMax) { qWarning()<<"invalid music value!"; return; } soundEffectBuf[m].play(); }
到此這篇關(guān)于Qt使用QSoundEffect類實現(xiàn)播放音效或音樂的文章就介紹到這了,更多相關(guān)Qt QSoundEffect播放音樂內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析
這篇文章主要介紹了C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析,有助于讀者更好的理解文本文件與二進(jìn)制文件的原理,需要的朋友可以參考下2014-07-07與ASCII碼相關(guān)的C語言字符串操作函數(shù)
這篇文章主要介紹了與ASCII碼相關(guān)的C語言字符串操作函數(shù),分別是將字符轉(zhuǎn)換為ASCII碼的toascii()函數(shù)和根據(jù)ASCII碼進(jìn)行字符串比較的strcoll()函數(shù),需要的朋友可以參考下2015-08-08淺談C++中thread庫join和detach的區(qū)別
這篇文章主要為大家介紹了C++中thread庫join和detach的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11數(shù)據(jù)結(jié)構(gòu)之位圖(bitmap)詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之位圖詳解,本文講解了位圖的基本知識、位圖的實現(xiàn)方法、位圖的應(yīng)用等內(nèi)容,需要的朋友可以參考下2014-08-08C語言實現(xiàn)將彩色bmp圖像轉(zhuǎn)化為灰圖、灰度圖像反色
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)將彩色bmp圖像轉(zhuǎn)化為灰圖、灰度圖像反色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10C語言基礎(chǔ)之C語言格式化輸出函數(shù)printf詳解
這篇文章主要介紹了C語言格式化輸出函數(shù)printf詳解,printf函數(shù)中用到的格式字符與printf函數(shù)中用到的格式修飾符,感興趣的小伙伴可以借鑒一下2023-03-03解決C++ 無法從void 轉(zhuǎn)換為LRESULT的方法詳解
本篇文章是對C++中無法從void轉(zhuǎn)換為LRESULT的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05