社区
游戏开发
帖子详情
directshow放开场动画问题(avi)
yourfeng
2003-06-06 09:53:50
1)不能全屏,是原始大小
2)它又开了个窗口放这个avi
怎么解决?????
...全文
122
9
打赏
收藏
directshow放开场动画问题(avi)
1)不能全屏,是原始大小 2)它又开了个窗口放这个avi 怎么解决?????
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
王嘉平
2003-06-14
打赏
举报
回复
可以的啊 MediaPlayer 以WS_CHILD方式作为子窗口创建在你的主窗口上,放完后Destroy掉
就像你把一个Button放在对话框上一样,不过这是应停止主窗口的刷新,以免闪烁
yourfeng
2003-06-14
打赏
举报
回复
那个例子也是创建了两个窗口地说,只不过主窗口隐藏了
我现在想让着一个窗口去放,放完了以后开始游戏菜单
这个能实现吗??用一个窗口
kidding
2003-06-14
打赏
举报
回复
DirectShow的例子程序中有相应的例子说明如何在全屏模式下播放动画
yourfeng
2003-06-12
打赏
举报
回复
directshow也是用avtiveMovie
看来你对ds不是很了解的说~~~~
hoho游戏引擎里面的例子和我做的一样,都是两个窗口(全屏问题两天前解决了)
王嘉平
2003-06-12
打赏
举报
回复
开场动画??? 晕倒 如果不处理视频数据的话,有必要用DS吗? 你创建Windows media player来放不就好了。或者用MCIWnd,都要简单,也可以全凭的
王嘉平
2003-06-12
打赏
举报
回复
晕 你是反了 是media player利用了 DS
而Media Player比你自己hardcode 搭建的Filter graph更为鲁棒和灵活
如果你不是要自己处理视频流的数据,何必自己搭Filter graph。
例如 你上面用的Render filter
DirectShow filter里面 自带的Render filter有两个,一个是Full Screen专用的,一个是Window方式用的。 Media Player会自动选的 像上面的代码就没有这种灵活性。
而在XP下,又多了一个Mixture render,不过你那里应该用不上. 当然MediaPlayer也是利用了DS,你完全可以做到这样的灵活性,但是这里的工作量可想而知。这就像你要写这个Pop3/smtp服务器,先去实现一个文件系统一样。
我不知道你看的什么游戏引擎的source了,如果你想参照视频播放的方法应该去看player的source。我倒是看到很多一开始雄心壮志要写游戏的人,最后游戏没弄出来,放了个游戏程序架子在网上,然后叫做游戏引擎
我无意贬低这样的人,我只是说网上的source即使是正确的也未必是适合的。其实我自己曾经也是这样的人之一,曾经想写游戏(三个人的Team work),后来没坚持下去,做别的事情去了(考研),然后就剩下了万把行的程序架子,一堆OpenGL/DS/DI/DP/Socket/Game loop的整合,不过我没有放到网上来。这些source还在我的HD的一个角落里静静地躺着.............
韩雷
2003-06-11
打赏
举报
回复
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
//放片头动画
IVideoWindow *pVW = NULL;
LONG lMode;
static HWND hDrain=0;
IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaEvent *pEvent;
CoInitialize(NULL);
// Create the filter graph manager and query for interfaces.
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVW);
// Build the graph. IMPORTANT: Change string to a file on your system.
pGraph->RenderFile(L"片头动画.avi", NULL);
// Run the graph.
pMediaControl->Run();
// Read current state
pVW->get_FullScreenMode(&lMode);
if (lMode == OAFALSE)
{
lMode = OATRUE;
pVW->put_FullScreenMode(lMode);
};
// Wait for completion.
long evCode;
pEvent->WaitForCompletion(INFINITE, &evCode);
// Clean up.
pMediaControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
CoInitialize (NULL);
}
yourfeng
2003-06-11
打赏
举报
回复
nobody knows??????????????
paulluo0739
2003-06-07
打赏
举报
回复
对头,我也遇到这样的问题,关注
DirectShow
:
AVI
文件操作 -- C++ 类
DirectShow
AVI
文件操作最近在做一个“运动物体分割”的课题,在课题中要处理视频文件,首先考虑最简单的视频格式:
AVI
格式,由于
AVI
格式是微软推出的,所以在Windows下操作比较容易,这里我用
DirectShow
读写
AVI
视频文件,并把所有操作封装成一个类:
AVI
Codec。下面是类的定义:class
AVI
Codec{public:
AVI
Codec(){size
DirectShow
AVI
文件操作
由于
AVI
格式是微软推出的,所以在Windows下操作比较容易,这里我们
DirectShow
读写
AVI
视频文件,并把所有操作封装成一个类:
AVI
Codec。下面是类的的定义: class
AVI
Codec { public:
AVI
Codec(){size = -1;}
AVI
Codec(LPCWSTR
avi
file); void release(); int init_getfram...
c++
DirectShow
播放任意格式的视频
利用opencv只能处理.
avi
的视频,opencv之前的版本之前试过好像是只能处理.
avi
未压缩版本的视频,未压缩过的视频相当大,一个文件大概是几十个G。(这个不确定,因为之前用的压缩过的.
avi
的格式的cvCreateFileCapture时会出错) 后来利用opencv的新版本可以处理H.264/mpeg4等压缩格式的.
avi
文件,但是还是不能处理像现在很广泛应用的flv等格式,当然可以用
directshow
学习心得一
大家好!从今天起我将持续发表一些关于
DIRECTSHOW
的文章,目的是与大家一起学习如何使用
DIRECTSHOW
极其相关COM组件!当然如果能深入到FILETER的一些创建,我将会尽力而为,文章中的大部分内容来自微软的MSDN,如果E文好的朋友想学习
DIRECTSHOW
又苦于没有好的参考资料,MSDN将是一个不二的选择,里面涵盖
DIRECTSHOW
所有的技术文章和组件的使用方法!
DirectShow
是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM
怎样用
DirectShow
来压缩一个
AVI
文件
原文出处:http://littleflute.blog.hexun.com/1043233_d.html 这里我们讲解怎样用
DirectShow
来压缩一个
AVI
文件。我们重点放到视频压缩,同样的方法可以应用到音频压缩。 我们分以下几步来讲解: 1、 选择一个压缩过滤器 有许多种方法可以压缩视频或者音频,比如: a、 本地
DirectShow
过滤器 b、 视频压缩管理编码器(VCM)
游戏开发
8,324
社区成员
23,685
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章