社区
游戏开发
帖子详情
directshow放开场动画问题(avi)
yourfeng
2003-06-06 09:53:50
1)不能全屏,是原始大小
2)它又开了个窗口放这个avi
怎么解决?????
...全文
110
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
来压缩一个
AVI
文件
原文出处:http://littleflute.blog.hexun.com/1043233_d.html 这里我们讲解怎样用
DirectShow
来压缩一个
AVI
文件。我们重点放到视频压缩,同样的方法可以应用到音频压缩。 我们分以下几步来讲解: 1、 选择一个压缩过滤器 有许多种方法可以压缩视频或者音频,比如: a、 本地
DirectShow
过滤器 b、 视频压缩管理编码器(VCM)
directshow
学习心得一
大家好!从今天起我将持续发表一些关于
DIRECTSHOW
的文章,目的是与大家一起学习如何使用
DIRECTSHOW
极其相关COM组件!当然如果能深入到FILETER的一些创建,我将会尽力而为,文章中的大部分内容来自微软的MSDN,如果E文好的朋友想学习
DIRECTSHOW
又苦于没有好的参考资料,MSDN将是一个不二的选择,里面涵盖
DIRECTSHOW
所有的技术文章和组件的使用方法!
DirectShow
是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM
游戏开发
8,324
社区成员
23,685
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章