一.vlc部分
1.vlc的环境搭建:https://blog.csdn.net/zhoumin4576/article/details/78166198
2.vlc的功能封装主要参考了Alberl大神封装的代码:https://www.cnblogs.com/Alberl/p/3407726.html
3.对vlc部分没有读过源码,只是使用了其简单的功能实现,在实现过程中也遇到了一些问题,在这里进行说明:
(1)如果播放一个较大的文件,退出时要等待很长时间:强制指定demux
const char* vlcArgs[] = { "--demux", "avformat", };
m_pVLC_Inst = libvlc_new(sizeof(vlcArgs) / sizeof(vlcArgs[0]), vlcArgs);
(2)播放窗口无法响应窗口消息,实现部分功能时会造成libvlc_media_player_stop的死锁:https://blog.jianchihu.net/player-based-on-libvlc.html
① 播放时:::SetTimer(m_pManager->GetPaintWindow(), 1, 1000, TimeProc);
//枚举VLC窗口
BOOL CALLBACK EnumerateVLC(HWND hWndvlc, LPARAM lParam)
{
TCHAR szWndTitle[1024];
int nLen = GetWindowText(hWndvlc, szWndTitle, 1024);//获取VLC内部窗口名:VLC(Direct3D11 output)
if