private static void mk_media_play(IntPtr mk_media_info, IntPtr auth_invoker, IntPtr mk_sock_info) { if (OnMediaPlay == null) { PInvoke.ZLMediaKitMethod.mk_auth_invoker_do(auth_invoker, null); return; } var mediaInfo = new MediaInfo(mk_media_info); var list = new List <Task <MediaSourceWapper> >(); foreach (Func <MediaInfo, MediaSourceWapper> item in OnInternalMediaPlay.GetInvocationList()) { list.Add(Task <MediaSourceWapper> .Run(() => item(mediaInfo))); } Task.WaitAll(list.ToArray()); var mediasourceWapper = list.FirstOrDefault(w => w.Result != null)?.Result; var sockinfo = new SockInfo(mk_sock_info); bool notMedia = mediasourceWapper == null; mediasourceWapper = new MediaSourceWapper { MediaInfo = new MediaInfo(mk_media_info) }; var result = OnMediaPlay.Invoke(mediasourceWapper, sockinfo); if (string.IsNullOrEmpty(result)) { mediasourceWapper._watchClient.Add(new WatchClient(new SockInfo(mk_sock_info))); } PInvoke.ZLMediaKitMethod.mk_auth_invoker_do(auth_invoker, result); }
internal ShellLoginDto(string username, string password, SockInfo sockInfo) { this.Username = username; this.Password = password; this.SockInfo = sockInfo; }