关于 ISampleGrabberCB 回调有关问题
关于 ISampleGrabberCB 回调问题
为什么每次video都要run完一遍第二次run的时候,回调函数BufferCB才会被频繁调用?
第一遍run的过程中,BufferCB没有被调用!
我是新手,请各位指导一下。
------解决方案--------------------
调试了一下,应该是第一遍播放的时候,主窗口无法响应消息导致的。但不知道为什么第一遍播放的时候主窗口不响应消息?
------解决方案--------------------
这个不可能的,在graph成功建立之后,run,bufferCB回调函数就时候在运行了,
至于响应dx消息,看你是否成功设置了Setwindownotify了。。。。。
------解决方案--------------------
zhuyuge0 你好,我不是要响应DX消息,我是有个对话框程序,对话框内包含了一个静态窗口,用静态窗口位置来显示播放的内容的,我第一遍播放的过程中,点对话框上的按钮是无法响应的,貌似对话框内的定时器也无法响应。run完一遍后run第二遍就可以响应了。
hr = mEvent->SetNotifyWindow((OAHWND)inWindow, WM_GRAPHNOTIFY, 0);这个已经设置成功,窗口句柄是主对话框句柄
------解决方案--------------------
和之前的demo对比,发现是这个函数WaitForCompletion( INFINITE, &EvCode );导致阻塞了主对话框的消息,只有执行完一遍后重新执行才恢复正常。哪位兄弟帮忙解释一下。多谢。
为什么每次video都要run完一遍第二次run的时候,回调函数BufferCB才会被频繁调用?
第一遍run的过程中,BufferCB没有被调用!
我是新手,请各位指导一下。
------解决方案--------------------
调试了一下,应该是第一遍播放的时候,主窗口无法响应消息导致的。但不知道为什么第一遍播放的时候主窗口不响应消息?
------解决方案--------------------
这个不可能的,在graph成功建立之后,run,bufferCB回调函数就时候在运行了,
至于响应dx消息,看你是否成功设置了Setwindownotify了。。。。。
------解决方案--------------------
zhuyuge0 你好,我不是要响应DX消息,我是有个对话框程序,对话框内包含了一个静态窗口,用静态窗口位置来显示播放的内容的,我第一遍播放的过程中,点对话框上的按钮是无法响应的,貌似对话框内的定时器也无法响应。run完一遍后run第二遍就可以响应了。
hr = mEvent->SetNotifyWindow((OAHWND)inWindow, WM_GRAPHNOTIFY, 0);这个已经设置成功,窗口句柄是主对话框句柄
------解决方案--------------------
和之前的demo对比,发现是这个函数WaitForCompletion( INFINITE, &EvCode );导致阻塞了主对话框的消息,只有执行完一遍后重新执行才恢复正常。哪位兄弟帮忙解释一下。多谢。