1、用Qlabel播放视频
从解码后的数据中提取单个视频帧,并转换为 RGB 格式以便在 QLabel 上显示。使用了 QTimer 来控制帧的播放;
在 VideoInfo 类中,QTimer 用于定时触发视频帧的解码和渲染。QTimer 的工作机制是通过设定一个时间间隔(以毫秒为单位),然后周期性地发出 timeout() 信号。在每次 timeout() 信号触发时,执行特定的槽函数来处理视频解码和帧显示。
开始和停止播放
void VideoInfo::startPlayback()
{
timer->start(1000 / 30); // 假设帧率为30帧每秒
}
void VideoInfo::stopPlayback()
{
timer->stop();
}
-
startPlayback(): 这个函数启动计时器,并设置时间间隔为1000 / 30毫秒(约 33.3 毫秒),对应每秒 30 帧的帧率。这种方式确保每秒调用decodeAndDisplayFrame()函数 30 次,从而达到播放视频的效果。 -
stopPlayback(): 这个函数停止计时器,从而停止调用decodeAndDisplayFrame()。
解码和显示帧
void VideoInfo::decodeAndDisplayFrame()
{
QImage frameImage = getFrame();
if (

最低0.47元/天 解锁文章
613

被折叠的 条评论
为什么被折叠?



