社区
多媒体/流媒体开发
帖子详情
在directshow中如何判断文件播放完毕
zjl3638656
2007-04-18 04:46:02
如何判断文件播放完毕???我用的wav
...全文
557
10
打赏
收藏
在directshow中如何判断文件播放完毕
如何判断文件播放完毕???我用的wav
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hlj8676
2008-12-07
打赏
举报
回复
当播放结束后,会产生事件EC_COMPLETE
hlj8676
2008-12-07
打赏
举报
回复
当播放结束后,会产生事件EC_COMPLETE
crane02
2007-04-27
打赏
举报
回复
代码是摘下来的,不完整,省略了些,希望能看懂
crane02
2007-04-27
打赏
举报
回复
1、首先创建bulider
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&m_pGB);
2、查询其ImediaEvent接口
hr = m_pGB->QueryInterface(IID_IMediaEventEx, (void **)&m_pEvent);
3、给m_pEvent设置事件通知窗口//WM_GRAPHNOTIFY为自定义消息
hr = m_pEvent->SetNotifyWindow((OAHWND)(this->GetSafeHwnd()),WM_GRAPHNOTIFY, 0);
4、自定义消息处理函数
LRESULT C**Dlg::OnGraphNotify(WPARAM inWParam, LPARAM inLParam)
{
if (m_pEvent)
{
LONG eventCode = 0, eventParaml = 0,eventParam2 = 0;
while (SUCCEEDED(m_pEvent->GetEvent(&eventCode, &eventParaml, &eventParam2,0)))
{
//获得消息后,释放参数
m_pEvent->FreeEventParams(eventCode, eventParaml, eventParam2);
switch(eventCode)
{
case EC_COMPLETE:
}
}
}
如果还是不清楚,给我发邮件linyufei0237@yahoo.com.cn
happydeer
2007-04-24
打赏
举报
回复
playwnd是注册了一个windows消息。当directshow内部有事件发生时,会发送这个windows消息给应用程序,这时候应用程序就可以通过IMediaEvent接口去判断是不是EC_COMPLETE事件。
你给出的CDXGraph::IsEnd大致是对的,但看起来你想用一个定时器去不断调用IsEnd函数,这就不对了。
zx_star
2007-04-24
打赏
举报
回复
看样子是对的
zjl3638656
2007-04-19
打赏
举报
回复
是不是这样:
bool CDXGraph::IsEnd(void)
{
LONG evCode, evParam1, evParam2;
if (mGraph && mEvent)
{
if (SUCCEEDED(mEvent->GetEvent(&evCode, (LONG_PTR *) &evParam1,
(LONG_PTR *) &evParam2, 0)))
{
return evCode == EC_COMPLETE;
}
}
return false;
}
参照playwnd写的,不知道对不对,正要测试
happydeer
2007-04-19
打赏
举报
回复
参考PlayWnd例子。文件播放完后,你可以收到一个EC_COMPLETE事件。
rageliu
2007-04-19
打赏
举报
回复
完毕后会有消息,IMediaEvent Interface can help you
lamue
2007-04-18
打赏
举报
回复
if end then call stopstream()
DirectShow
音频采集
这个程序是一个简单的音频采集系统,是通过Directx开发包
中
的AMCap程序改编而成,而且程序的思路比较清晰,希望对
DirectShow
的初学者有所帮助。在程序运行时,点击Record开始录制程序,当点击确定是表示录制
完毕
,...
专业 3D 视频
播放
工具 Stereoscopic Player 2.5.1
中
文多语免费版.zip
以上的工作是为了让Stereoscopic Player在
播放
立体视频时,识别到系统已经连接了两个独立的显示设备。 安装Stereoscopic Player软件是相当简单的,在安装过程
中
几乎不需要人工干预。仅仅是提供一个安装路径就可以,...
Windows之5:
DirectShow
+H.264+AAC采集编码
这个课程主要讲解的是
DirectShow
的音视频框架,然后结合H.264+AAC进行音视频编码。 本课程适合Windows平台的学员,DShow框架比较通用,适合音视频采集及处理。 主要的知识点包括DShow基础及Filter原理、DShow配置...
C#使用
DirectShow
播放
视频
文件
无论是使用Winform的Mediaplayer控件还是WPF的MediaElement控件,在一个视频
播放
完毕
切换到另一个视频时,都会有一个短暂的黑屏情况,于是我就把目光放在了
DirectShow
上面。下面说一下如何使用
DirectShow
进行视频...
C#使用
DirectShow
播放
视频
文件
[转]
最近在开发一个视频
播放
软件,主要要求就是循环
播放
多个视频
文件
,并且要求两个视频
文件
切换时,不能有黑屏现象发生。 无论是使用Winform的Mediaplayer控件还是WPF的MediaElement控件,在一个视频
播放
完毕
切换到另...
多媒体/流媒体开发
2,543
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章