使用QMediaPlayer播放音频

使用QMediaPlayer播放音频

测试扬声器的实现

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

实现步骤

使用QMediaDevices::audioOutputs()方法来获取电脑上的所有音频输出设备。并存放到QList outputDevices中;默认使用系统默认的输出即耳机,下标为0的outputDevices中;

我们初始化的输出设备的下标为0,然后从QList中去获取输出设备:QAudioDevice selectedDevice = outputDevices[currentAudioOutputDeviceIndex];;

创建一个QMediaPlayer对象并指定当前类为其父类对象;

使用选择的输出设备,创建一个QAudioOutput对象:QAudioOutput *audioOutput = new QAudioOutput(selectedDevice, this);;

设置QMediaPlayer的输出对象: player->setAudioOutput(audioOutput);;

设置音频文件并播放音频: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();

相关推荐

男性身高183标准体重是多少
365bet体育在线备用

男性身高183标准体重是多少

📅 08-06 👁️ 7822
OPPOA57和OPPOA37对比评测 买哪款手机最合适
世界杯365bet

OPPOA57和OPPOA37对比评测 买哪款手机最合适

📅 09-16 👁️ 6758
松竹梅白壁藏 澪MIO 氣泡清酒 750ML
世界杯365bet

松竹梅白壁藏 澪MIO 氣泡清酒 750ML

📅 08-01 👁️ 1217