最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt使用QSoundEffect類實現(xiàn)播放音效或音樂

 更新時間:2024年12月27日 11:23:34   作者:小灰灰搞電子  
這篇文章主要為大家詳細(xì)介紹了Qt如何使用QSoundEffect類實現(xiàn)播放音效或音樂功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下

一、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語言實現(xiàn)手機電話簿管理系統(tǒng)

    C語言實現(xiàn)手機電話簿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)手機電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Qt 實現(xiàn)畫線筆鋒效果詳細(xì)原理及示例代碼

    Qt 實現(xiàn)畫線筆鋒效果詳細(xì)原理及示例代碼

    這篇文章主要介紹了Qt 實現(xiàn)畫線筆鋒效果詳細(xì)原理及示例代碼。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • C++?哈希表的基本用法及說明

    C++?哈希表的基本用法及說明

    這篇文章主要介紹了C++?哈希表的基本用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • C++ OpenGL實現(xiàn)三角形的繪制

    C++ OpenGL實現(xiàn)三角形的繪制

    這篇文章主要主要為大家詳細(xì)介紹了如何利用C++和OpenGL實現(xiàn)三角形的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-06-06
  • Qt服務(wù)應(yīng)用操作之JSON文件操作方法

    Qt服務(wù)應(yīng)用操作之JSON文件操作方法

    在Qt框架中,處理JSON數(shù)據(jù)包括解析、生成、保存和讀取文件等操作,本文詳細(xì)介紹了這些操作的關(guān)鍵類和方法,如QJsonDocument、QJsonObject、QJsonArray等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換

    C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換

    這篇文章介紹了C++使用boost::lexical_cast進(jìn)行數(shù)值轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++ auto和decltype的用法和區(qū)別全解析

    C++ auto和decltype的用法和區(qū)別全解析

    這篇文章介紹了C++11和C++14中auto和decltype關(guān)鍵字的用法和區(qū)別,auto用于自動類型推導(dǎo),適用于變量聲明,簡化代碼并提高可維護(hù)性,decltype用于查詢表達(dá)式的類型,保留表達(dá)式的完整類型信息,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • C語言數(shù)據(jù)類型和變量使用及說明

    C語言數(shù)據(jù)類型和變量使用及說明

    本文介紹了C語言中的數(shù)據(jù)類型、變量、算術(shù)和賦值操作符、單目操作符、強制類型轉(zhuǎn)換以及輸入輸出函數(shù)printf和scanf的使用
    2026-01-01
  • C語言實現(xiàn)隨機發(fā)牌

    C語言實現(xiàn)隨機發(fā)牌

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)隨機發(fā)牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Qt側(cè)邊欄布局的實現(xiàn)示例

    Qt側(cè)邊欄布局的實現(xiàn)示例

    現(xiàn)在的很多桌面端軟件或后端管理系統(tǒng)等都有側(cè)邊導(dǎo)航欄,本文就來詳細(xì)的介紹一下Qt側(cè)邊欄布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03

最新評論

长汀县| 凤山县| 德州市| 马鞍山市| 龙门县| 田东县| 苏尼特左旗| 金湖县| 荔波县| 右玉县| 安徽省| 双桥区| 阿合奇县| 临西县| 当阳市| 新化县| 南郑县| 共和县| 旬阳县| 鄂托克旗| 黄山市| 绥芬河市| 鄱阳县| 唐河县| 明光市| 武安市| 木里| 自治县| 特克斯县| 申扎县| 蓬安县| 胶州市| 克什克腾旗| 桂东县| 新昌县| 翁牛特旗| 保定市| 那坡县| 托克托县| 清涧县| 金湖县|