哪位大神熟悉QMediaPlayer的positionChanged消息发送频率

Rubber峰 2018-02-01 02:00:24
问题是这样的,用QMediaPlayer做一个播放器,在播放时根据positionChanged消息改变我做的滚动条位置,但是不知道为什么我的槽运行是每一秒运行一次,谁知道这个消息的机制吗,也不知道是这个消息的发送频率就是这样还是qt的消息队列有什么机制。代码很简单我贴一下
连接函数(player就是QMediaPlayer类型的)

connect(player,SIGNAL(positionChanged(qint64)),this,SLOT(updateTimeLine(qint64)));//播放控制线移动

槽函数

void Widget::updateTimeLine(qint64 postion){
qDebug()<<"1111111111"<<endl;
this->timeLine->setCurrentTime(postion);
setSliderLinePostion(&this->playLine,timeLine->frameForTime(postion));
}

这个打印播放后每一秒打印一次
...全文
1358 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
u014084638 2019-01-18
  • 打赏
  • 举报
回复
博主你好能问一下你那个 国外手写英文数字识别集 的资源有名字吗
Rubber峰 2018-07-16
  • 打赏
  • 举报
回复
引用 4 楼 qq_32295823 的回复:
void setNotifyInterval(int milliSeconds); 可以设置信号发送频率

楼上正解,qt学艺不精没发现这个函数,比我那个科学多了,谢谢
pinocchi 2018-06-29
  • 打赏
  • 举报
回复
void setNotifyInterval(int milliSeconds); 可以设置信号发送频率
Rubber峰 2018-02-01
  • 打赏
  • 举报
回复
m_nTimerId =startTimer(20);
    void Widget::timerEvent(QTimerEvent *event){
        updateTimeLine(player->position());  //直接调用槽函数
    }
Rubber峰 2018-02-01
  • 打赏
  • 举报
回复
问题解决了,我采用的方法是用timeEvent或者QTimer类,做个相应的类似监听的函数这样就没问题了
Rubber峰 2018-02-01
  • 打赏
  • 举报
回复
救命啊谁来救救我

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧