如何使duilib与视频播放联系起来?

蔡天宇 发布于 2012/06/24 14:25
阅读 4K+
收藏 1

@婷儿 你好,想跟你请教个问题:你好,我上次问过你一个duilib和视频播放的问题。现在想进一步的了解,希望能得到你的回答,谢谢!duilib的控件库比较有限,我不知道你是如何把视频放入那个布局里的。我本来想用MFC试一试,即用dialog来播放视频,然后利用duilib把这个dialog的部分界面优化一下。但是,好像发生了一些冲突,在网上也找不到完整的demo,所以只能像无头苍蝇一样乱撞。不知道你的程序是在空白项目里全部自己写的,还是基于其他类似MCF基础写的。如果是空白项目的话,那视频播放的控件是如何引入到duilib的xml布局中的。如果不是基于空白项目写的,那又是如何把duilib添加进去的。希望能得到你的回答。如果能给我一个小demo那就更好了,当然这是我的奢求。我的邮件是cbangyu@163.com。无论如何,还是非常感谢你的,因为我知道至少有人做出来了,那么就是行得通的,只是我还没找到路而已。

加载中
0
无名码农
无名码农

我没用MFC只使用DUILIB,视频的播放是我用DIRECTSHOW,

至于DUILIB跟DIRECTSHOW的结合比较简单,你参考下DUILIB里面的CActiveXUI。

我是参照这个另外搞了一个控件,在这个控件里面创建了一个子窗口,

然后把这个子窗口作为DIRECTSHOW视频窗口的所有者,即父窗口,

这样视频就会在这个控件里面显示的。

蔡天宇
蔡天宇
感谢你的指导!谢谢~
0
h
huangys

ActiveX控件应该是是可以的....我的做法如下:

    // 创建窗体   
    WNDCLASSEX winClass;
    memset(&winClass, 0, sizeof (winClass));
    winClass.cbSize = sizeof (WNDCLASSEX);
    winClass.style  = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
    winClass.lpfnWndProc   = (WNDPROC)CursorChangeWndProc;
    winClass.hInstance     = g_hInstance;
    winClass.lpszClassName = "STATIC_MPlayer";
    winClass.hbrBackground = CreateSolidBrush(RGB(0, 0, 0));   
    if (INVALID_ATOM == RegisterClassEx(&winClass) )
    {
        return 0;
    }

    m_ChildWnd = CreateWindowEx(WS_EX_APPWINDOW, _T("STATIC_MPlayer"), "TrueCrypt UAC",
        WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_CENTERIMAGE, 0, 0, 0, 0, m_hWnd, NULL, g_hInstance, NULL);
    if ( ::IsWindow(m_ChildWnd) )
    {               
        m_pCWndChild = CWnd::FromHandle(m_ChildWnd);
        m_MPlayer.SetVideoPanelHandle(m_ChildWnd);
        ::ShowWindow(m_ChildWnd, SW_HIDE);   
    }   

我是win32控制台工程,在OnCreate里创建了一个Dialog,然后使用MPlayer引擎实现了一个播放器播放功能;

0
h
huangys
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
曦花
曦花
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部