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

Qt:解决player->duration()第一次获取媒体时长为0的问题

前言

最近想做一个白噪声播放器,中间就用到了QMediaplayer这个类,其中遇到两个问题,一个是未初始化好就调用player->state()导致程序异常崩溃的问题(这个问题留到下一个文章去说);还有一个就是调用player->duration()第一次获取媒体时长为0的问题。

正文

这里我就不演示获取的值为0的代码了,就说下原因,这是因为我们通常设置完媒体后,即

player->setMedia(QUrl::fromLocalFile(path));

媒体资源虽然能正常播放,但是媒体资源并未完全加载完成,所以我们获取不到此时媒体的时长。

解决办法

通过QMediaPlayer::durationChanged信号,构建一个信号和槽,当媒体时间变化的时候我们第一时间去获取这个时间,具体操作如下

connect(player,&QMediaPlayer::durationChanged,[this](int duration) {int temp = player->duration();if (temp != 0) {// 将毫秒转化成秒 currentMusicAllTime = temp / 1000;// 你的代码......}});

小结

如果能解决请不要吝啬你的赞,你的赞将是我持续更新的动力!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在 CentOS 中永久关闭防火墙的步骤
  • mybatis 查询Not Found TableInfoCache
  • Ajax实现一个简单的文件上传进度条
  • 如何将西瓜视频保存到本地(方法)
  • 企业会议室预约管理系统
  • 边缘检测运用
  • 基于单片机实现的的多点分布室内环境监测系统
  • ORA-24067: exceeded maximum number of subscribers for queue ADMIN.SMS_MT_QUEUE
  • 代码随想录 第九章 动态规划part03 01背包问题 二维
  • 力扣100题——栈和堆
  • 【GNSS】PPPH软件操作手册翻译
  • CATH标识符解读
  • 记录近期iOS开发几个报错及解决方案
  • sql中的APPLY 和 LATERAL
  • 生成式人工智能在新加坡的发展现状和地位
  • Angular Elements 及其运作原理
  • Asm.js的简单介绍
  • canvas 高仿 Apple Watch 表盘
  • ES6系统学习----从Apollo Client看解构赋值
  • Git同步原始仓库到Fork仓库中
  • Hibernate【inverse和cascade属性】知识要点
  • Invalidate和postInvalidate的区别
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java8-模拟hadoop
  • Javascript基础之Array数组API
  • JavaScript设计模式与开发实践系列之策略模式
  • Mysql5.6主从复制
  • python3 使用 asyncio 代替线程
  • unity如何实现一个固定宽度的orthagraphic相机
  • Yeoman_Bower_Grunt
  • 关于字符编码你应该知道的事情
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 手机端车牌号码键盘的vue组件
  • 用 Swift 编写面向协议的视图
  • 云大使推广中的常见热门问题
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • # 达梦数据库知识点
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (vue)页面文件上传获取:action地址
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (自用)gtest单元测试
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .Net 8.0 新的变化
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core Redis 使用有序集合实现延迟队列
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net Web窗口页属性
  • .NET 事件模型教程(二)
  • .net 提取注释生成API文档 帮助文档
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】