使用QMediaPlayer播放音频

测试扬声器的实现

主要播放设备:我们使用的是QMediaPlayer来实现播放音频。

实现步骤

  1. 使用QMediaDevices::audioOutputs()方法来获取电脑上的所有音频输出设备。并存放到QList<QAudioDevice> outputDevices中;默认使用系统默认的输出即耳机,下标为0的outputDevices中;
  2. 我们初始化的输出设备的下标为0,然后从QList中去获取输出设备:QAudioDevice selectedDevice = outputDevices[currentAudioOutputDeviceIndex];
  3. 创建一个QMediaPlayer对象并指定当前类为其父类对象;
  4. 使用选择的输出设备,创建一个QAudioOutput对象:QAudioOutput *audioOutput = new QAudioOutput(selectedDevice, this);
  5. 设置QMediaPlayer的输出对象: player->setAudioOutput(audioOutput);
  6. 设置音频文件并播放音频:player->setSource(QUrl("qrc:/resources/gaisidewenrou.mp3")); player->play();

流程图解

[选择输出设置] ---(生成)--->[输出设备对象(QAudioOutput)]------>[创建QMediaPlayer]------> [绑定输出对象]------> [设置音频文件]------> [播放]

代码实现

outputDevices = QMediaDevices::audioOutputs();
    QString deviceName;
    for (const QAudioDevice &device : outputDevices) {
        deviceName = device.description();
        speakerDevice->addItem(deviceName);
    }

 if (outputDevices.isEmpty()) {
        qDebug() << "No audio output devices available!";
        return;
    }
    QAudioDevice selectedDevice = outputDevices[currentAudioOutputDeviceIndex];
    QAudioOutput *audioOutput = new QAudioOutput(selectedDevice, this);
    //audioOutput->setVolume(1.0);

    // 设置音频输出
    player = new QMediaPlayer(this);
    player->setAudioOutput(audioOutput);
    player->setSource(QUrl("qrc:/resources/gaisidewenrou.mp3"));
    player->play();
posted @   吴海琼  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示