怎么实现的SDL播放画面嵌入MFC控件中去的。
来源:互联网 发布:centos samba图形界面 编辑:程序博客网 时间:2024/05/03 05:28
SDL_Event event;
static struct SwsContext *img_convert_ctx;
char * filePath="c:/test.mp4";
/************************************************************************/
/* 测试SDL窗口显示到mfc对话框中 */
/************************************************************************/
char variable[256];
CWnd* pWnd = this->GetDlgItem(IDC_VIEW); //获取图片控件的窗口指针sprintf(variable,"SDL_WINDOWID=0x%1x",pWnd->GetSafeHwnd()); // 格式化字符串
SDL_putenv(variable);
//这句是最重要的了,将上面的字符串传入即可
//剩下的就是设置视频播放大小的问题了,自己可以随便改
SDL_Rect rect; //设置好播放的大小后传入SDL_SetVideoMode RECT rc;
pWnd->GetWindowRect(&rc);
rect.x = 0; rect.y = 0;
rect.w = rc.right-rc.left; rect.h = rc.bottom-rc.top;
// Register all formats and codecs avcodec_register_all();
av_register_all();
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError());
exit(1);
}
以下N行代码都是解码的部分,就不写了,主要写和SDL嵌入有关的
下面这句大家是相当的熟悉了,用过SDL播放的都应该知道
// Make a screen to put our video
screen = SDL_SetVideoMode(rect.w, rect.h, 0, 0); //此处需要设置成缩放大小
if(!screen) {
exit(1);
}
不知道大家看明白没?其实实现这个功能一共就需要四行代码,大家是不是有种蛋碎的感觉?
char variable[256];
CWnd* pWnd = this->GetDlgItem(IDC_VIEW); //获取图片控件的窗口指针
sprintf(variable,"SDL_WINDOWID=0x%1x",pWnd->GetSafeHwnd());
// 格式化字符串
SDL_putenv(variable);
//这句是最重要的了,将上面的字符串传入即可
只要把上面的SDL_WINDOWID传入后,不管你怎么画图,播放视频,都是在那个控件中显示!
这个问题绝对不是我第一个想出来的,肯定有人已经知道,但是就这么一个简单的问题,百度上却没有一个人说明!可见中国的大环境啊! 为了刚接触ffmpeg的TX少走弯路我会后续写自己对SDL在MFC中运作的一些体会。
本人也是刚接触ffmpeg和SDL半个多月的时间,很深层次的东西我也不懂,我只是把怎么实现的说出来,至于SDL_putenv(variable);有什么用?为什么这个函数传入到SDL后就能在控件中显示,我不想回答,我也不想深入研究这个东西,SDL开发出来就是为了方便我们开发者使用,如果什么都要搞那么清楚那我问问你?为什么你用VS而不用汇编写呢?
- 怎么实现的SDL播放画面嵌入MFC控件中去的。
- MFC中使用SDL播放音频没有声音的解决方法
- SDL窗体嵌入到MFC/QT窗口控件上的方法总结
- 在QT搭建的播放器外壳中嵌入SDL的窗口
- OpenCV学习笔记 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面 .
- OpenCV学习 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- mfc中嵌入ppt,播放的时候在对话框中播放
- SDL实现简单h264文件的播放
- MFC工程中播放背景音乐的实现
- CDockAblePane 中嵌入的对话框之间怎么实现响应事件
- MFC 创建启动画面的实现
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- 在Wincc中嵌入Flex画面的配置
- duilib作为播放器的ui嵌入到mfc中使用
- 分享交换机的基础知识给大家
- Away3D4.0入门教程(1)--这个世界的基础
- 带parameter参数的批量插入和更新
- mongodb进阶(3):复制的认证和oplog
- Linux下大量FIN_WAIT2 & TIME_WAIT 处理办法
- 怎么实现的SDL播放画面嵌入MFC控件中去的。
- 9.7 Region(部分)
- list<>
- SP自定义标签中,doStartTag()方法的返回值,EVAL_BODY_INCLUDE与SKIP_BODY的区别
- mysql数据量很大时两种不同存储过程
- Leetcode_first-missing-positive (updated c++ and python version)
- Mantis 查看问题 Unknown column 'user_id'……mantis_bug_file_table 问题
- c++第五周项目一三角形类2
- iOS第三方支付(支付宝SDK)