private void HuaMaiVideo_OnRecvRealTimeVideo(IntPtr iUser, IntPtr iFrmae, UInt32 err) { if (err != Convert.ToUInt32(0)) { return; } if (iPort == IntPtr.Zero) { return; } var result = Marshal.PtrToStructure(iFrmae, typeof(SDK_HuaMai._FRAME_DATA)); SDK_HuaMai._FRAME_DATA Data = (SDK_HuaMai._FRAME_DATA)result; SDK_HuaMai._RAW_FRAME_TYPE Type = (SDK_HuaMai._RAW_FRAME_TYPE)Data.frame_info.frame_type; switch (Type) { case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_P: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_I: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_H265_P: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_H265_I: SDK_HuaMai.hm_video_display_input_data(iPort, Data.frame_stream, Data.frame_len, true); VideoPlayCallback(new VideoPlayCallbackValue { evType = Enum_VideoPlayEventType.VideoPlay }); VideoPlayState = Enum_VideoPlayState.InPlayState; break; default: //不做操作 break; } }
private void OnRecvRealTimeVideo(IntPtr iUser, IntPtr iFrmae, UInt32 err) { //intCountttt++; //if (intCountttt > 100) //{ // return; //} if (err != Convert.ToUInt32(0)) { return; } if (iPort == IntPtr.Zero) { string x = "1"; return; } var result = Marshal.PtrToStructure(iFrmae, typeof(SDK_HuaMai._FRAME_DATA)); SDK_HuaMai._FRAME_DATA A = (SDK_HuaMai._FRAME_DATA)result; //int intx = (int)A.frame_len; SDK_HuaMai._RAW_FRAME_TYPE xx = (SDK_HuaMai._RAW_FRAME_TYPE)A.frame_info.frame_type; if (A.frame_len < 10) { string zzz = "1"; } switch (xx) { case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_P: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_I: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_H265_P: case SDK_HuaMai._RAW_FRAME_TYPE.HME_RFT_H265_I: try { SDK_HuaMai.hm_video_display_input_data(iPort, A.frame_stream, A.frame_len, true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } break; default: //不做操作 break; } }