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

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

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

一、QSoundEffect類介紹

QSoundEffect是一個用于播放音效的Qt類。它提供了一種簡單的方式來加載和播放音效文件。

QSoundEffect的用法非常簡單。首先,通過調(diào)用setSource()方法,你可以指定要播放的音效文件的路徑。然后,通過調(diào)用play()方法,你可以開始播放音效。你還可以通過設置其他屬性來控制音效的音量、循環(huán)播放、音效音調(diào)、音效速度等。

QSoundEffect支持多種音頻格式,包括WAV、MP3、OGG等。

QSoundEffect還提供了一些方法,如pause()、stop()、isPlaying()等,以便你可以進一步控制音效的播放。

總之,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)

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

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

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

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

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

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

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

    Qt服務應用操作之JSON文件操作方法

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

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

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

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

    這篇文章介紹了C++11和C++14中auto和decltype關(guān)鍵字的用法和區(qū)別,auto用于自動類型推導,適用于變量聲明,簡化代碼并提高可維護性,decltype用于查詢表達式的類型,保留表達式的完整類型信息,感興趣的朋友跟隨小編一起看看吧
    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ā)牌

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

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

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

最新評論

库车县| 额济纳旗| 汽车| 巩义市| 资兴市| 黄梅县| 资兴市| 云霄县| 固镇县| 兰西县| 施秉县| 定结县| 池州市| 浪卡子县| 汉沽区| 江华| 石泉县| 搜索| 上林县| 临城县| 左云县| 都匀市| 个旧市| 仁布县| 布尔津县| 乌苏市| 洞头县| 闵行区| 双牌县| 定远县| 靖江市| 兴海县| 顺平县| 临澧县| 葵青区| 玉山县| 河东区| 水富县| 新绛县| 临澧县| 新和县|