/*=========================================================== * 视频点播相关接口 * ===========================================================*/ /*=========================================================== * 功 能:点播视频 * 参 数: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); }
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); }
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); }