创建一个播放器类,继承QLabel,在播放器类中起一个线程用ffmpeg取流解码,将解码后的图像保存到队列,在gui线程中调用update()刷新显示。
当ffmpeg打开视频流失败后调用update()将qlabel刷新为黑色,有一定概率会使得qlabel界面假死,此时切换到其它界面再返回到当前界面,qlabel恢复显示。
禁用取流解码线程中调用的update()后,则不会再出现假死的现象。
chatgpt回答
这是因为 Qt 的 GUI 库不是线程安全的,所有的 GUI 操作都必须在主线程中执行。
如果你尝试在不同的线程中调用
update(),可能会导致不可预知的行为和崩溃。

![【踩坑日记】【教程】嵌入式 Linux 通过 nfs 下载出现 T T T T [Retry count exceeded: starting again]](https://i-blog.csdnimg.cn/direct/5c9623b1560c451398d05f9a98a6dbfd.png)

















