【QT项目——视频播放器——开发】

播放器项目开发

在这里插入图片描述
从设计的角度来说,要减少继承,继承带来的复杂度、调试度、难度较大、扩展性较差
继承多代的话会导致代码更新比较困难

1面向对象的五大原则(降低代码的维护成本)

1.1单一职责

让类尽量单一功能,一个类只做一件事情
解封装,独立策略,涉及网络
解码,编解码
解封装不需要解码,会存在冗余
单一职责可以进行单元测试,测试每个模块,保证正确性

1.2开闭原则

对扩展开放,对修改封闭
要增加功能(播放、暂停),不要修改原来的代码

1.3替换原则

一个类的派生类应该可以直接替换基类或者父类
但是不能改变原来父类的代码

1.4接口隔离

不强迫用户使用用户不需要的接口
比如用户不需要知道方法就将其隔离,当用户使用了该用户不需要的接口,当接口改变的时候,类也需要发生改变,增大了修改成本

1.5依赖倒置

尽量依靠抽象来编程,在外部的编程都是基于抽象的接口而不是依靠具体的实现类
修改的话就不会关联很大
外部接口不变,优化内部代码

2音视频同步

在这里插入图片描述
应该采用视频同步音频的方式
音频要把数据提供出来

################################
隔离:视频解码部分不会影响音频

QT中怎么判断槽
通过slots,自动生成对应的代码
多次打开,会进行清理
通过定时器来改变滑动条

1.0版本总结
XVideoWidget与播放界面相关,通过重载OpenGL,重写paint,通过join image绘制整个视频的图像。
用OpenGL的好处是可以极大地提高性能。普通电脑绘制,绘制一帧1080p需要十几毫秒,而用3D绘制,只需要3毫秒,性能得到极大的提高。
实现了XSlider滑动条,QT自带滑动条不能点到哪里播放哪里,重载了QT的滑动条
Audio类用纯虚函数来实现封装,所有的实现都是在继承者中
跨平台编译,在windows和Linux都可以进行播放
对窗口进行了重新绘制
熟悉了ffmpeg和QT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值