Exemple #1
0
        void ManageMusicWindow_Loaded(object sender, RoutedEventArgs e)
        {
            ManageMusicWindowViewModel vm = DataContext as ManageMusicWindowViewModel;

            if (vm != null)
            {
                Dispatcher.BeginInvoke((Action)(() =>
                {
                    vm.LoadMusicsFromServer();
                }));
            }
        }
Exemple #2
0
 public ManageMusicWindow(ManageMusicWindowViewModel vm)
     : base(vm)
 {
     MinHeight           = ActualHeight;//overide the MiniHeight set by window base
     MinimizeButtonState = YoYoStudio.Controls.CustomWindow.WindowButtonState.Disabled;
     MaximizeButtonState = YoYoStudio.Controls.CustomWindow.WindowButtonState.Disabled;
     Loaded     += ManageMusicWindow_Loaded;
     DataContext = vm;
     if (vm != null)
     {
         vm.Initialize();
     }
     InitializeComponent();
 }
        protected override void ProcessMessage(Common.Notification.EnumNotificationMessage <object, RoomWindowAction> message)
        {
            RoomWindowViewModel roomVM = DataContext as RoomWindowViewModel;

            switch (message.Action)
            {
            case RoomWindowAction.ShowConfigWindow:
                ConfigurationItemViewModel configItem = message.Content as ConfigurationItemViewModel;
                roomVM.ApplicationVM.ConfigurationWindowVM = new ConfigurationWindowViewModel(configItem);
                ShowWebWindow(webWindow, false);
                ConfigurationWindow configurationWindow = new ConfigurationWindow(roomVM.ApplicationVM.ConfigurationWindowVM);
                configurationWindow.Owner = this;
                configurationWindow.ShowDialog();
                ShowWebWindow(webWindow, true);
                break;

            case RoomWindowAction.PlayMusic:
                bool canPlay = (bool)message.Content;
                if (canPlay)
                {
                    if (playMusicWindow == null)
                    {
                        InitMusicWindow();
                    }
                    ShowWebWindow(webWindow, false);
                    playMusicWindow.WindowState = System.Windows.WindowState.Normal;
                    playMusicWindow.Show();
                    playMusicWindow.Topmost = true;
                }
                else
                {
                    ShowWebWindow(webWindow, false);
                    if (System.Windows.MessageBox.Show("其它人正在播放音乐,请稍后再试", "提示", MessageBoxButton.OK) == MessageBoxResult.OK)
                    {
                        ShowWebWindow(webWindow, true);
                    }
                }
                break;

            case RoomWindowAction.ManageMusic:
                ShowWebWindow(webWindow, false);
                ManageMusicWindowViewModel manageMusicVM = new ManageMusicWindowViewModel();
                ManageMusicWindow          manageWnd     = new ManageMusicWindow(manageMusicVM);
                manageWnd.Owner   = this;
                manageWnd.Topmost = true;
                ShowWebWindow(webWindow, false);
                manageWnd.ShowDialog();
                ShowWebWindow(webWindow, true);
                break;

            case RoomWindowAction.RecordAudio:
                SaveFileDialog dialog = new SaveFileDialog();
                dialog.Filter = "音频文件 (*.wav)|*.wav";
                if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    RoomWindowViewModel vm = DataContext as RoomWindowViewModel;
                    vm.StartAudioRecording(dialog.FileName);
                }
                break;

            default:
                break;
            }
        }
Exemple #4
0
        protected override void ProcessMessage(Common.Notification.EnumNotificationMessage <object, ManageMusicWindowAction> message)
        {
            switch (message.Action)
            {
            case ManageMusicWindowAction.UploadMusic:
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter      = "MP3文件 (*.mp3)|*.mp3|FLV 文件 (*.flv)|*.flv";
                dlg.Multiselect = false;
                if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    if (!String.IsNullOrEmpty(dlg.FileName))
                    {
                        try
                        {
                            string path = ConvertToFLV(dlg.FileName);
                            if (!System.IO.File.Exists(path))
                            {
                                System.Windows.MessageBox.Show(this, "请确认歌曲名字和其所在的路径没有空格", Messages.UploadError);
                                return;
                            }

                            ManageMusicWindowViewModel viewModel = DataContext as ManageMusicWindowViewModel;
                            bool result = viewModel.UploadMusic(path);
                            if (result == true)
                            {
                                System.Windows.MessageBox.Show(this, Messages.UploadSucceed);
                            }
                            else
                            {
                                System.Windows.MessageBox.Show(this, Messages.UploadError);
                            }
                        }
                        catch (Exception e)
                        {
                            System.Windows.MessageBox.Show(this, e.Message);
                        }
                    }
                    else
                    {
                        System.Windows.MessageBox.Show(this, "请先选择歌曲。");
                    }
                }
                break;

            case ManageMusicWindowAction.DeleteMusic:
                if (System.Windows.MessageBox.Show("确定要删除选择的歌曲吗?", Text.Warning, MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                {
                    ManageMusicWindowViewModel mvm = DataContext as ManageMusicWindowViewModel;
                    mvm.DeleteMusic();
                }
                break;

            case ManageMusicWindowAction.LoadMusicComplete:
                ManageMusicWindowViewModel vm = DataContext  as ManageMusicWindowViewModel;
                PART_Loading.Visibility   = System.Windows.Visibility.Collapsed;
                PART_Content.Visibility   = System.Windows.Visibility.Visible;
                MusicDataGrid.ItemsSource = vm.Musics;
                break;

            default:
                break;
            }
        }