public void Start() { if (!string.IsNullOrEmpty(Url1)) { videoPlayHelper1 = new VideoPlayHelper(Url1, (x) => { Image1 = x; }); } if (!string.IsNullOrEmpty(Url2)) { videoPlayHelper2 = new VideoPlayHelper(Url2, (x) => { Image2 = x; }); } if (!string.IsNullOrEmpty(Url3)) { videoPlayHelper3 = new VideoPlayHelper(Url3, (x) => { Image3 = x; }); } if (!string.IsNullOrEmpty(Url4)) { videoPlayHelper4 = new VideoPlayHelper(Url4, (x) => { Image4 = x; }); } videoPlayHelper1?.Start(); videoPlayHelper2?.Start(); videoPlayHelper3?.Start(); videoPlayHelper4?.Start(); }
public override void Start() { //清空上次的显示内容 Image1 = null; Image2 = null; Image3 = null; Image4 = null; if (!string.IsNullOrEmpty(Url2)) { videoPlayHelper1 = new VideoPlayHelper(Url2, (x) => { Image2 = x; }); } remote_ip = ConfigurationManager.AppSettings["TcpServerIp"]; tcpClient = new TcpClient(remote_ip, remote_port); Console.WriteLine($"tcp connect: ({remote_ip}, {remote_port})"); stream = tcpClient.GetStream(); //发送角色数据包 Role role = new Role(3, 1, 1); byte[] send_bytes = StructToBytesHelper.StructToBytes <Role>(role); stream.WriteAsync(send_bytes, 0, send_bytes.Length); Console.WriteLine("send_role_packet"); //发送获取图像请求命令包 VideoCmd videoCmd = new VideoCmd(1, 5, RoomId, 1); byte[] videoCmd_bytes = StructToBytesHelper.StructToBytes <VideoCmd>(videoCmd); stream.WriteAsync(videoCmd_bytes, 0, videoCmd_bytes.Length); Console.WriteLine("send_get_video_packet"); //接收图像数据并显示 cancellationTokenSource = new CancellationTokenSource(); Task recvVideoTask = new Task(async() => { try { await RecvVideo(cancellationTokenSource.Token); } catch (OperationCanceledException) { } stream?.Close(); tcpClient?.Close(); }, cancellationTokenSource.Token); recvVideoTask.Start(); videoPlayHelper1?.Start(); }