当前位置: 首页 > news >正文

qmediaplayer进度_QMediaPlayer的duration问题

遇到了一个坑QMediaPlayer::duration的坑.

这个坑是当你setMedia之后, 直接使用duration获取播放时长会得到0, 出错时候的代码片段如下:

void MainWindow::slotPlayAudio(const QString &audioFilePath)

{

currentAudioFilePath_ = audioFilePath;

player_->setMedia(QUrl::fromLocalFile(audioFilePath));

player_->setVolume(50);

horizontalSliderMusic->setMinimum(0);

horizontalSliderMusic->setMaximum(player_->duration()); //这里的duration返回是0, 从而导致之后处理进度的时候出错

player_->play();

pushButtonPlay->setText("pause");

}针对这个问题文档中对此描述是"The value may change across the

life time of the QMediaPlayer object andmay not be available when initial playback begins"

要解决这个问题可以在响应durationChanged信号的槽中获取duration, 这个时候duration是正确的, 如此可以使用诸如下面的代码进行处理:

connect(player_, &QMediaPlayer::positionChanged, [this](qint64 position){

if(player_->duration() != horizontalSliderMusic->maximum())

{

horizontalSliderMusic->setMaximum(player_->duration());

}

horizontalSliderMusic->setValue(position);

});

相关文章:

  • java timer定时执行一次_Java Timer(定时调用、实现固定时间执行)
  • java字串数组_java字符串数组
  • java swing 拖拽文件夹_Java Swing 鼠标拖放文件 代码1
  • java treemap 降序排序_Java TreeMap 升序|降序排列
  • java 流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
  • java 多层结构故障_多层构架在实践中一些问题
  • java项目提高安全性_Java线程安全与程序性能
  • mysql 获取真是执行计划_Oracle 从缓存里面查找真实的执行计划
  • mysql 越文_mysql数据库乱码之保存越南文乱码解决方法_MySQL
  • java发布_java项目发布的方式
  • python分享的代码怎么写_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...
  • android js调用java_如何在Android平台上使用JS直接调用Java方法
  • python实现并发和并行的方式有哪些_Python中的并行和并发是什么
  • java a a=null_面试题((A)null).fun()——java中null值的强转
  • java获取hashcode_java identityHashCode 和 hashCode
  • 2017-09-12 前端日报
  • Android Studio:GIT提交项目到远程仓库
  • C++类的相互关联
  • iOS小技巧之UIImagePickerController实现头像选择
  • leetcode98. Validate Binary Search Tree
  • Median of Two Sorted Arrays
  • Vue实战(四)登录/注册页的实现
  • Vue--数据传输
  • Web标准制定过程
  • 小程序开发之路(一)
  • 译有关态射的一切
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 2017年360最后一道编程题
  • # 计算机视觉入门
  • ${ }的特别功能
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 指南:抽象化实现的基类
  • .NET 中创建支持集合初始化器的类型
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • @Autowired 与@Resource的区别
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [COI2007] Sabor
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [ffmpeg] aac 音频编码
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页
  • [IE技巧] IE 中打开Office文件的设置
  • [LeetCode][138]【学习日记】深拷贝带有随机指针的链表
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • [Oh My C++ Diary]内联函数
  • [Python进阶] 正则表达式介绍
  • [SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类