dshow播放网络地址时不会发出event消息?

mjh1021 2009-12-14 10:27:43
我是在dll中开了个messageonly窗口来接收消息的,用SetNotifyWindow设置了接收消息的窗口。在播放本地文件时都可以正常接收到event消息,但播放网络地址时就没有任何消息,这是为什么呢?

另外一个贴子还有100分可以接哈。http://topic.csdn.net/u/20091015/19/7cb1f85f-0f85-4fde-bc00-c349606d85c5.html
...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjh1021 2009-12-14
  • 打赏
  • 举报
回复
这个跟服务器端应该没关系吧,网络地址都是直接在别人网站上的,我只是randerer那个地址而已。发送消息是dshow的graph内部的事情。
ccpaishi 2009-12-14
  • 打赏
  • 举报
回复
呵呵,你误解我的意思了。我的意思是在网络流的时候,你发送消息的地方,有没有消息发送出来。这里只是接收端的调试。先确定网络方式下和文件方式下你都发送出来了消息,再看接收端。
mjh1021 2009-12-14
  • 打赏
  • 举报
回复
IMediaEventEx * mEvent; 这类型消息

网络地址跟本地文件应该没什么区别,就是普通的网络地址如这样的:"http://ttt57.kaixinmp3.com/wlgq/65/天路%20韩红.wma"

LRESULT CALLBACK MessageOnlyWinProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)//用于处理消息窗口接收到的消息,接收播放结束信号。
{
switch(uMsg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_GRAPHNOTIFY:
FILE *fp;
fp=fopen("d:\\log.txt","at");
fprintf(fp,"WM_GRAPHNOTIFY\n");
fclose(fp);
if (g_FilterGraph->IsEnd())
{
// FILE *fp;
// fp=fopen("d:\\log.txt","at");
// fprintf(fp,"g_FilterGraph->IsEnd()\n");
// fclose(fp);
g_lpIsEOF();
}
// g_FilterGraph->HandleEvent(0,0);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;


default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

我在我的消息窗口里收到任何graph发出的消息时都会输出LOG,但log文件里什么也没有。
ccpaishi 2009-12-14
  • 打赏
  • 举报
回复
楼主发出来的消息是什么类型??网络流方式和文件方式有什么区别??楼主可以说的更加具体一点,然后可以跟踪一下网络流方式下,消息是否已经发出来了。
瓶盒 2009-12-14
  • 打赏
  • 举报
回复
如果播放正常,估计可能是你用的源Filter没有去Notify你的FilterGraph。
mjh1021 2009-12-14
  • 打赏
  • 举报
回复
是我搞错了,有消息出来,只是我的测试用主程序是用控制台写的,dll里的窗口接收不到消息不知道怎么回事,不管了,反正在MFC的主程序下是可以的就行了。

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧