void vc_FlashCallback(YoYoStudio.Controls.Winform.FlexCallbackCommand cmd, List <string> args) { VideoWindowViewModel vm = DataContext as VideoWindowViewModel; if (vm != null && vm.UserVM != null) { switch (cmd) { case YoYoStudio.Controls.Winform.FlexCallbackCommand.ZoomIn: Width = Width * 1.1; Height = Height * 1.1; break; case YoYoStudio.Controls.Winform.FlexCallbackCommand.ZoomOut: Width = Width * 0.9; Height = Height * 0.9; break; case YoYoStudio.Controls.Winform.FlexCallbackCommand.LoadComplete: vc.CallFlash(YoYoStudio.Controls.Winform.FlexCommand.ConnectRTMP, vm.UserVM.RoomWindowVM.RoomVM.RtmpUrl); break; default: break; } } }
public VideoWindow(VideoWindowViewModel vm, bool isEmbedded) { DataContext = vm; InitializeComponent(); vc.MoviePath = vm.FlexPath; vc.FlashCallback += vc_FlashCallback; Loaded += VideoWindow_Loaded; embeded = isEmbedded; }
private Window CreateVideoWindow(ContentControl videoBorder, VideoWindowViewModel vm) { Point p = videoBorder.TransformToAncestor(this).Transform(new Point(0, 0)); double x = p.X; double y = p.Y; return(CreateWindowInSeparateThread <VideoWindowAction>(() => { return new VideoWindow(vm, true); }, x, y, false, true, videoBorder)); }
private void flex_FlashCallback(FlexCallbackCommand cmd, List <string> args) { UserViewModel uvm = DataContext as UserViewModel; if (uvm != null && uvm.RoomWindowVM != null) { switch (cmd) { case FlexCallbackCommand.ReportStatus: IsEnabled = true; if (args != null && args.Count == 1) { if (args[0] == FlexStatusStrings.ConnectSucceed) { RtmpConnectSuccessful(); } else { //TODO Connect Red5 failed. } } break; case FlexCallbackCommand.LoadComplete: IsEnabled = true; break; case FlexCallbackCommand.VideoStateChanged: int vState = 0; if (uvm.IsMe() && args.Count > 0) { if (int.TryParse(args[0], out vState)) { uvm.RoomWindowVM.RoomClient.VideoStateChanged(uvm.RoomWindowVM.RoomVM.Id, vState); } } break; case FlexCallbackCommand.AudioStateChanged: int aState = 0; if (args.Count > 0) { if (int.TryParse(args[0], out aState)) { uvm.RoomWindowVM.RoomClient.AudioStateChanged(uvm.RoomWindowVM.RoomVM.Id, aState); switch (aState) { case FlexCallbackCommandNames.AV_State_Normal: if (uvm.IsMe()) { uvm.RoomWindowVM.StartAudioRecording(); } else { uvm.RoomWindowVM.StartAudioPlaying(uvm.Id); } break; case FlexCallbackCommandNames.AV_State_Paused: if (uvm.IsMe()) { uvm.RoomWindowVM.PauseAudioRecording(); } else { uvm.RoomWindowVM.StopAudioPlaying(uvm.Id); } break; case FlexCallbackCommandNames.AV_State_Resumed: if (uvm.IsMe()) { uvm.RoomWindowVM.StartAudioRecording(); } else { uvm.RoomWindowVM.StartAudioPlaying(uvm.Id); } break; default: break; } } } break; case FlexCallbackCommand.TakePicture: break; case FlexCallbackCommand.ExtendVideo: VideoWindowViewModel vm = new VideoWindowViewModel(uvm); vm.Initialize(); VideoWindow window = new VideoWindow(vm, false); window.Topmost = true; window.Show(); break; } } if (FlashCallback != null) { FlashCallback(cmd, args); } }