一、前言
如果采用的vlc句柄模式,如果鼠标停留在句柄控件中会发现在打开后鼠标打圈圈,mpv句柄模式是在关闭后鼠标打圈圈,这两者真是一前一后,这种给人的体验其实很不友好的,播放开始后或者播放完成后鼠标指针居然变成了繁忙,但是当你将鼠标位置从句柄控件中移到外面的时候,他又会自动恢复,所以需要有个机制主动恢复鼠标形状,一开始想的办法是模拟移动鼠标位置移来移去,当有几十个上百个通道的时候,这样移来移去看起来就是很傻的感觉,后面想了个办法用系统的api强制将鼠标指针恢复,测试下来还是有点怪怪的,后面发现Qt本身就内置了鼠标指针复位的函数先 qApp->setOverrideCursor(Qt::ArrowCursor) 后 qApp->restoreOverrideCursor(),就用它了。
思路这下子就清晰了,在播放打开和完成的信号中,执行两行代码就行,为了使用起来更简便,单独开辟了一个VideoTask线程处理这个事情,这样可以过滤频繁的触发,比如64个通道同时打开,其实只需要最后那个打开完成复位下就行,并不需要执行64次,而且线程中还可以控制延时执行,比如传入某个指令延时300ms再去执行,测试过程中也是这个情况,立即执行很可能还是不会生效,而是要延时一段时间执行才能完美生效。
二、效果图
三、体验地址
- 国内站点: