/*===========================================================
        *  视频点播相关接口
        *  ===========================================================*/
        /*===========================================================
        *  功  能:点播视频
        *  参  数:ptVodInfo - 点播信息
        *       pfuncPlayPos - 进度回调函数,传Null标示不需要回调进度
        *       dwUserData - 用户数据
        *  返回值:-1表示失败,其他值表示返回的点播标示值。
        *  ===========================================================*/
        public UInt32 RvodSdk_PlayBackVideo(IntPtr hWnd, RVODFileInfo info)
        {
            TRVODSDK_PLAYBACK_VOD_INFO ptVodInfo = new TRVODSDK_PLAYBACK_VOD_INFO()
            {
                hPlayWnd    = (uint)hWnd.ToInt32(),
                szVideoPath = info.VodFileName,
                tServerInfo = new TRVODSDK_SERVER_INFO()
                {
                    szDevIp = info.ServerIP, wDevPort = (ushort)info.ServerPort,
                },
            };

            pfuncPlayPos = OnTfuncPlayPosCB;
            UInt32 dwUserData = 0;

            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXRVODSDKProtocol RvodSdk_PlayBackVideo hWnd:" + hWnd.ToInt32() + ",VodFileName:" + info.VodFileName + ",VodFileSize:" + info.VodFileSize + ",ServerIP:" + info.ServerIP + ",ServerPort:" + info.ServerPort);
            uint retVal = IVXRVODSDKProtocol.RvodSdk_PlayBackVideo(ref ptVodInfo, pfuncPlayPos, dwUserData);

            if (retVal <= 0 || retVal == 0xffffffff)
            {
                RVOD_GetError();
            }

            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXRVODSDKProtocol RvodSdk_PlayBackVideo ret :" + retVal);
            return(retVal);
        }
        /*===========================================================
        *  功  能:查询下一个视频资源信息(遍历接口)
        *  参  数:lQueryHandle - 查询标示值
        *       ptVideoInfo - 视频文件信息
        *  返回值:成功返回TRUE,失败返回FALSE。
        *  ===========================================================*/

        public RVODFileInfo RvodSdk_QueryNextVideoResource(UInt32 lQueryHandle)
        {
            TRVODSDK_VIDEO_INFO ptVideoInfo = new TRVODSDK_VIDEO_INFO()
            {
                dwVideoSize = 0, szVideoPath = "",
            };

            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXRVODSDKProtocol RvodSdk_QueryNextVideoResource lQueryHandle:" + lQueryHandle);
            bool retVal = IVXRVODSDKProtocol.RvodSdk_QueryNextVideoResource(lQueryHandle, out ptVideoInfo);

            if (string.IsNullOrEmpty(ptVideoInfo.szVideoPath))
            {
                return(null);
            }
            //if (retVal < 0)
            //{
            //    RVOD_GetError();
            //}

            string       path = ptVideoInfo.szVideoPath.Replace('\\', '/');
            RVODFileInfo info = new RVODFileInfo()
            {
                VodFileName = path,
                VodFileSize = ptVideoInfo.dwVideoSize,
            };

            MyLog4Net.ILogExtension.DebugWithDebugView(MyLog4Net.Container.Instance.Log, "IVXRVODSDKProtocol RvodSdk_QueryNextVideoResource ret:" + retVal + ",szVideoPath:" + ptVideoInfo.szVideoPath + ",dwVideoSize:" + ptVideoInfo.dwVideoSize);
            return(info);
        }
Beispiel #3
0
        public List <RVODFileInfo> GetRVODFileList(string ip, uint port)
        {
            List <RVODFileInfo> list = new List <RVODFileInfo>();
            uint queryHandle         = 0;
            uint count = IVXProtocol.RvodSdk_GetVideoResourceTotalNum(ip, port, out queryHandle);

            while (true)
            {
                RVODFileInfo info = IVXProtocol.RvodSdk_QueryNextVideoResource(queryHandle);
                if (info == null)
                {
                    break;
                }
                info.ServerIP   = ip;
                info.ServerPort = port;
                list.Add(info);
            }
            return(list);
        }
Beispiel #4
0
        public uint StartRVODPlay(IntPtr hWnd, RVODFileInfo info)
        {
            StopRVODPlay(hWnd);
            if (info == null || string.IsNullOrEmpty(info.VodFileName))
            {
                return(0);
            }

            uint ret = IVXProtocol.RvodSdk_PlayBackVideo(hWnd, info);

            System.Threading.Thread.Sleep(1000);
            uint outval = 0;

            IVXProtocol.RvodSdk_PlayBackControl(ret, 1, 0, out outval);
            if (ret > 0)
            {
                PlayHandleList.Add(hWnd, ret);
            }
            return(ret);
        }