测试扬声器的实现
主要播放设备:我们使用的是QMediaPlayer
来实现播放音频。
实现步骤
- 使用
QMediaDevices::audioOutputs()
方法来获取电脑上的所有音频输出设备。并存放到QList<QAudioDevice> 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();
标签:输出设备,音频,QMediaPlayer,player,outputDevices,播放
From: https://www.cnblogs.com/wuhaiqiong/p/18591997