音视频面经_音视频知识解析:第六章 实现图形界面视频播放器

第六章 FFmpeg+SDL视频播放器-图形界面版_ffmpeg图形界面

1 MFC知识

创建MFC工程的方法

• 打开VC++

• 文件->新建->项目->MFC应用程序

• 应用程序类型->基于对话框

• 点击下一步即可

设置控件

• 找到“工具箱”,就可以将相应的控件拖拽至应用程序对话框中

• 常用控件有:Button,Edit Control,Static Text等

• 找到“属性”选项卡

可以在“Caption”属性上修改控件上的文字

可以在“ID”属性上修改控件上的ID(ID是控件的标识,不可重复)

添加消息响应函数

• 双击Button控件,就可以给该控件添加消息响应函数。

• 在菜单栏的“项目->类向导”处,可以添加更多种类的消息响应函数。

MFC最简单的弹出消息框的函数是AfxMessageBox(“HelloWorld”)

2 FFmpeg+SDL+MFC实现图形界面视频播放器

• FFmpeg解码器与MFC的整合

▫ 需要将视频文件路径从MFC界面上的 Edit Control 控件传递给

FFmpeg解码器

 GetWindowText()

• SDL与MFC的整合

▫ 需要将SDL显示的画面绘制到MFC的 Picture Control 控件上。

 SDL_CreateWindowFrom()

PS:SDL2有一个Bug。在系统退出的时候会把显示图像的控件隐藏起来,因此需要调用该控件的ShowWindow()方法将控件显示出来。

#音视频开发##FFmpeg#
音视频面经_音视频知识解析 文章被收录于专栏

本人在CVTE从事音视频开发工作多年,推出该专栏的目的是帮助更多有意向从事音视频开发的同学了解音视频编解码等基本知识、熟悉FFmpeg、SDL、OpenGL等开源框架的使用和编程,并动手开发视频播放器。 这些都是目前大厂音视频开发工程师相关职位要求的必备技能。本专栏会持续更新优质内容,敬请订阅,关注更新。随着内容不断丰富,可能会做付费专栏。另外提供CVTE内推、职位信息、面试答疑

全部评论
点赞 回复 分享
发布于 2024-06-21 15:55 广东
点赞 回复 分享
发布于 2024-06-21 15:55 广东
点赞 回复 分享
发布于 2024-06-21 15:51 广东
点赞 回复 分享
发布于 2024-06-21 15:48 广东
本专栏会持续更新优质内容,敬请订阅,关注更新。
点赞 回复 分享
发布于 2024-06-21 15:47 广东
专栏地址:音视频面经_音视频知识解析
点赞 回复 分享
发布于 2024-06-21 15:47 广东
点赞、订阅后,可在评论区留言领取资料和源码工程
点赞 回复 分享
发布于 2024-06-21 15:47 广东
实现代码:https://github.com/Yanghaohong97/ffmpegSdlMfcPlayer.git
点赞 回复 分享
发布于 2024-06-21 15:46 广东

相关推荐

1. 简单的自我介绍2. 八股和项目讲讲你的项目,以及你觉得个人比较有优势的地方。可以现场演示一下你的项目吗?追问项目细节,略在C++高并发场景中,怎么保证线程同步?你都用过C++的什么锁?你了解的C++都有什么锁?分别在什么时候使用?它们有什么特点?互斥锁(Mutex)的底层原理是什么?读写锁的底层是怎么实现的?它如何区分读和写操作,并进行相应的控制?保证线程同步,除了锁还用过什么其他方法?你觉得C++和Python谁的效率更高?为什么一个简单的加法,C++会比Python的效率高?对于一个a + b的加法,Python和C++分别是怎么做的?学过计算机组成原理和编译原理吗?一段C++代码的完整编译过程是怎样的?int a = "a_string"; 这样会报错吗?编译器怎么知道要报错?在哪个阶段进行类型检查?计算机执行加法和减法,哪个效率更高?为什么?计算机底层如何实现减法?堆和栈有什么区别?int a[10]; 这样定义的数组,内存是如何分配的?是在堆上还是栈上?在函数中定义的数组,离开函数时空间会释放吗?如何释放?像vector这样的可变数组,是在堆上还是栈上?它在函数中定义,离开函数时如何释放?数组和链表有什么区别?它们的查找效率呢?学过词法分析和语法分析吗?(lz大三上才学编译原理,八股也没准备这些)3. 手撕代码手撕:C++单例模式。(表示不熟悉,同样也没准备过)单例模式是什么?有什么特点?(更换题目)手撕:无重复字符的最长子串4. 反问环节面试流程大概要多久?什么时候能知道结果?实习地点在哪?这次答得不太好,都是一些没准备过的问题(回过头来看也是比较基础),能过感觉也是现场项目演示和面试状态没崩,很惊险
查看21道真题和解析
点赞 评论 收藏
分享
查看25道真题和解析
点赞 评论 收藏
分享
面试问题记录
点赞 评论 收藏
分享
07-01 22:23
已编辑
字节跳动_实习生(实习员工)
1.简单的自我介绍2.八股和项目C++ 相关怎么获取一个变量占用的内存的大小?如果你对一个指针用 sizeof,它的返回值是什么?如果是对普通的指针使用 sizeof,它的大小是多少?方法的签名包含哪些部分?用过 C++ 的模板编程吗?在模板编程里面,为什么会要求你把模板的声明和实现都放在头文件里面?了解这个模板是怎么实现的吗?它的原理是什么?操作系统与多线程/多进程项目中的互斥锁是可重入的吗?了解过可重入锁和不可重入锁吗?请介绍一下自旋锁。自旋锁会有额外的性能损耗吗?你了解内核态和用户态的情况吗?内核态和用户态,是怎么实现隔离的呢?进行系统调用的时候会发生什么?子进程它怎么和主进程去交互呢?除了管道,还有其他进程间通信的方式吗?进程和线程有什么区别?进程之间的内存是共享的吗?有没有接触过线程之间不共享内存的语言?数据库与网络了解 Protobuf (PB) 吗?为什么(在你的项目中)使用 SQLite 而不是 MySQL?你的项目中有用索引吗?请介绍一下数据库索引。3.手撕:有序数组查找范围(两次二分查找)4.反问面试流程大概要多久?什么时候能知道结果?面试官年轻了点,人还是很友好的,不懂的也不会一直追问,对项目的提问还是有一定深度的,答上来了大概70-80%。
查看24道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务