Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
 public VideoWindow(VideoWindowViewModel vm, bool isEmbedded)
 {
     DataContext = vm;
     InitializeComponent();
     vc.MoviePath      = vm.FlexPath;
     vc.FlashCallback += vc_FlashCallback;
     Loaded           += VideoWindow_Loaded;
     embeded           = isEmbedded;
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
            }
        }