private void OpenKmpeg(object info) { logger.Trace("OpenKmpeg start"); ConnectInfo connectInfo = (ConnectInfo)info; uint time = Convert.ToUInt32((connectInfo.StartTime - new DateTime(1970, 1, 1)).TotalSeconds); bool success = false; m_KMPEGHandle = KMPEG4.KOpenInterface(); KMPEG4.Media_Connect_Config4 mediaConfig = new KMPEG4.Media_Connect_Config4(); mediaConfig.ConnectTimeOut = 2; mediaConfig.ContactType = (int)KMPEG4.CONTACT_TYPE.CONTACT_TYPE_HTTP_WOC_PREVIEW; mediaConfig.HTTPPort = connectInfo.Port; mediaConfig.Password = connectInfo.Password; mediaConfig.UniCastIP = connectInfo.HostName; mediaConfig.UserID = connectInfo.UserID; mediaConfig.TCPVideoStreamID = 0; string session = "1234" + m_SelectID; mediaConfig.PlayFileName = time > 0 ? $"/Media/SyncPlayback?deviceid={connectInfo.SelectID}&syncsession={session}" : $"/Media/Streaming?deviceid={connectInfo.SelectID}&streamid={connectInfo.StreamId}"; logger.Debug($"Prepare play file:{mediaConfig.PlayFileName}"); success = KMPEG4.KSetMediaConfig4(m_KMPEGHandle, ref mediaConfig); SetImageCallback3(); SetTimeCodeExRecive(); if (KMPEG4.KConnect(m_KMPEGHandle)) { if (KMPEG4.KStartStreaming(m_KMPEGHandle)) { KMPEG4.KPlay(m_KMPEGHandle); m_URLCommand = new URLCommand(connectInfo.HostName, connectInfo.Port, connectInfo.UserID, connectInfo.Password, session); if (time > 0) { m_URLCommand.SetCurrentTime(time.ToString()); System.Threading.SpinWait.SpinUntil(() => false, 1000); m_URLCommand.SetPlayMode("1"); m_URLCommand.Play(); } else { } KMPEG4.KSetVolume(m_KMPEGHandle, 100, 100); KMPEG4.KSetMute(m_KMPEGHandle, false); } else { m_KMPEGConnectFail = true; } } else { m_KMPEGConnectFail = true; } logger.Trace("OpenKmpeg done"); }
public void TestK() { m_KMPEGHandle = KMPEG4.KOpenInterface(); }