使用QMediaPlayer播放音频
测试扬声器的实现
主要播放设备:我们使用的是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();
分类:
c/c++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!