首页 > 其他分享 >使用QMediaPlayer播放音频

使用QMediaPlayer播放音频

时间:2024-12-07 12:32:41浏览次数:4  
标签:输出设备 音频 QMediaPlayer player outputDevices 播放

测试扬声器的实现

主要播放设备:我们使用的是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();

标签:输出设备,音频,QMediaPlayer,player,outputDevices,播放
From: https://www.cnblogs.com/wuhaiqiong/p/18591997

相关文章

  • 基于Java+SSM+HTML5音乐播放器系统(源码+LW+调试文档+讲解等)/音乐播放器/音乐播放系
    博主介绍......
  • 无插件H5播放器EasyPlayer.js网页直播/点播播放器应该怎么使用JavaScript初始化?
    JavaScript可以用来控制播放器的基本功能,如播放、暂停、停止、快进、快退等。通过监听播放器的事件,JavaScript可以响应用户的操作,实现交互式控制。使用JavaScript,开发者可以创建自定义的播放器界面,而不是使用浏览器默认的控件。这可以通过操作DOM来实现,比如显示播放进度条、音量控......
  • 无插件直播流媒体音视频播放器EasyPlayer.js视频流媒体播放器container的用法
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。那么播放器中container应该怎么使用呢?container类型:DOMorstri......
  • android手机能同时播放两个video音频吗?
    一般来说,Android手机不能同时播放两个视频的音频。Android系统的音频焦点机制通常只允许一个应用同时控制音频输出。如果第二个视频开始播放,第一个视频的音频通常会被暂停。然而,有一些方法可以实现类似的效果,但都需要一些额外的技巧或限制:混合音频:前端可以使用WebAudio......
  • 皮带运行状态识别智慧矿山一体机皮带危险区域人员违规闯入识别:安防视频监控中音频的编
    在探讨音频编码技术的多样性和复杂性时,我们不得不提到它们在安防监控系统中的应用。音频编码不仅影响着声音的质量,还直接关系到数据传输的效率和存储的成本。本文将带您了解各种音频编码标准及其技术细节,特别是那些在安防领域中频繁使用的编码格式。同时,我们将介绍皮带运行状态识......
  • 大的音视屏文件播放思路
    在前端播放一个大小为10GB的视频时,直接下载整个视频文件然后播放显然是不切实际的,因为这样会导致极大的延迟和带宽消耗。为了尽快开始播放大文件,可以采用以下几种技术来优化视频播放体验。1.视频流式传输(Streaming)流式传输允许前端在不下载完整文件的情况下,就能开始播放视......
  • RTSP播放器EasyPlayer.js报错The play() request was interrupted because video-only
    随着技术的发展,越来越多的H5流媒体播放器开始支持H.265编码格式。例如,EasyPlayer.jsH5播放器能够支持H.264、H.265等多种音视频编码格式,这使得播放器能够适应不同的视频内容和网络环境。那么为什么会出现Theplay()requestwasinterruptedbecausevideo-onlybackgroundmed......
  • 如何处理微信小程序视频播放过程中的互动事件?
    如何处理微信小程序视频播放过程中的互动事件?在微信小程序中处理视频播放过程中的互动事件,主要是通过监听视频组件的相关事件来实现的。以下是一些常见的互动事件及其处理方法:1.播放事件(play)当视频开始播放时触发。可以在组件标签上绑定bindplay属性,或者在JS文件中使用wx.c......
  • 如何快速实现在网页端播放RTSP流?3个工具轻松实现
    RTSP是一种用于实时传输音视频数据的网络协议。虽然RTSP在摄像头应用中得到广泛应用,但它在主流浏览器中无法直接播放。那么,有没有一种快速又简单的方式,让RTSP流在网页上播放呢?这里我们推荐3个方案,每个方案都很快捷,均能满足用户的RTSP流播放需求。一、使用EasyCVR操作流程如下:1......
  • 井底车场人员进入识别智慧矿山一体机行人不行车违章识别:安防网络摄像机的音频码流是如
    在安防监控领域,音频码流的计算对于优化存储和传输效率至关重要。本文将首先解释安防网络摄像机音频码流的计算方法,然后探讨这些原理如何应用于智慧矿山一体机,这款专为矿山安全监控设计的智能化设备。通过深入分析音频码流的计算和压缩技术,可以更好地理解智慧矿山一体机如何提升矿......