Qt使用QAudioOutput/QSoundEffect播放WAV

这两种方法都需要在.pro文件中加入multimedia模块。
方法一、使用QAudioOutput

//方法一、使用QAudioOutput

 #include <QApplication>
    #include <QFile>
    #include <QAudioFormat>
    #include <QAudioOutput>
     
    int main(int argc, char *argv[])
    {
    
    
        QApplication a(argc, argv);
        QFile inputFile;
        inputFile.setFileName("test.wav");
        inputFile.open(QIODevice::ReadOnly);
     
        //设置采样格式
        QAudioFormat audioFormat;
        //设置采样率
        audioFormat.setSampleRate(44100);
        //设置通道数
        audioFormat.setChannelCount(2);
        //设置采样大小,一般为8位或16位
        audioFormat.setSampleSize(16);
        //设置编码方式
        audioFormat.setCodec("audio/pcm");
        //设置字节序
        audioFormat.setByteOrder(QAudioFormat::LittleEndian);
        //设置样本数据类型
        audioFormat.setSampleType(QAudioFormat::UnSignedInt);
     
        QAudioOutput *audio = new QAudioOutput( audioFormat, 0);
        audio->start(&inputFile);
        return a.exec();
    }

//方法二、使用QSoundEffect

  #include <QApplication>
    #include <QSoundEffect>
    int main(int argc, char *argv[])
    {
    
    
        QApplication a(argc, argv);
        QSoundEffect effect;
        effect.setSource(QUrl::fromLocalFile("test.wav"));
        //循环播放
        effect.setLoopCount(QSoundEffect::Infinite);
        //设置音量,0-1
        effect.setVolume(0.8f);
        effect.play();
        return a.exec();
    }

————————————————
版权声明:本文为CSDN博主「草上爬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/caoshangpa/article/details/51224587

猜你喜欢

转载自blog.csdn.net/W_s_j/article/details/120770039