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

关于Qt音乐播放器进度条拖拽无用的问题解决方案

在使用Qt编写音乐播放器的时候,进度条关联播放音乐基本是必须的。那么在设计的过程中你可能会碰到一个奇怪的问题就是拖拽进度条的时候,可能会报错如下:

 然后音乐就卡着不动了。。。

connect(ui->volume_toolButton,&VolumeToolBtn::volumeChange,this,[this](const int value) {// 将值转换为0.0到1.0之间const float volume = static_cast<float>(value) / 100;this->m_audioOutput->setVolume(volume); // 设置音量
});connect(this->m_player.get(), &QMediaPlayer::positionChanged,this, &KuGouApp::updatePositionLab);connect(this->m_player.get(), &QMediaPlayer::durationChanged, this, &KuGouApp::updateSliderRange);connect(ui->progressSlider,&QSlider::sliderReleased,
this,&KuGouApp::updateSliderPosition);
******************************void KuGouApp::updatePositionLab(int position) {if(ui->progressSlider->isSliderDown())return;ui->position_label->setText(QTime::fromMSecsSinceStartOfDay(position).toString("mm:ss"));
}void KuGouApp::updateSliderRange(int duration) {ui->progressSlider->setMaximum(duration);//一旦加上这一行就无法拖动进度条ui->duration_label->setText(QTime::fromMSecsSinceStartOfDay(duration).toString("mm:ss"));
}void KuGouApp::updateSliderPosition() {//播放列表为空时,设置无法拖动,留待之后解决this->m_player->setPosition(this->m_player->duration()*ui->progressSlider->value()/100);this->m_player->play();
}

 是不是想不明白为什么自己明明已经设置了在sliderReleased的时候让播放器setPosition。但却没有反应。。。

 

那是因为你的总时长被你修改了!!!注释掉即可。是不是很无语。是不是想抽自己两个耳巴子 


http://www.mrgr.cn/news/44792.html

相关文章:

  • Vue2电商项目(七)、订单与支付
  • MongoDB基础
  • Nginx04-核心配置文件
  • 【Java基础】用Scanner类获取控制台输入
  • 深度学习速通系列:如何使用bert和crf进行法律文书脱敏
  • 基于FPGA的多路视频缓存
  • Python酷库之旅-第三方库Pandas(134)
  • OBOO鸥柏丨数字化展厅液晶拼接屏联动展馆触摸屏查询一体机信息化
  • 前端模块化进化史:从全局 function 到 ES Modules
  • Linux终端管理效率:深入学习Screen
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-2
  • Pr小白也能玩转的神器助你高效剪辑~
  • Python + Selenium,分分钟搭建 Web 自动化测试框架!
  • 杭电合集小tips
  • 国产游戏技术:迈向全球引领者的征途
  • ARM(5)内存管理单元MMU
  • 探索深度学习的奥秘:从理论到实践的奇幻之旅
  • 雪花算法相关面试题
  • LeetCode hot100---双指针专题(C++语言)
  • 笔记整理—linux进程部分(8)线程与进程