Exemple #1
0
        public override void Stop()
        {
            Log("正在尝试停用插件");
            var loadWindow = new Windows.LoadingWindowLight();

            loadWindow.IsOpen            = true; Conf.Delay(25);
            loadWindow.ProgressBar.Value = 30; Conf.Delay(25);

            var frame  = new DispatcherFrame();
            var thread = new Thread(() => {
                ALog("正在等待播放器停止");
                Vars.CallPlayerStop = true;
                while (Vars.Player.IsAlive)
                {
                    Thread.Sleep(100);
                }
                frame.Continue = false;
            });

            thread.Start();
            Dispatcher.PushFrame(frame);
            loadWindow.ProgressBar.Value = 100; Conf.Delay(25);
            loadWindow.IsOpen            = false;

            Log("插件已停用");
            IsEnabled = false;
            if ((Vars.ManagementWindow != null) && !Vars.ManagementWindow.WindowDisposed)
            {
                Vars.ManagementWindow.Dispatcher.Invoke(() => { Vars.ManagementWindow.CheckBox_IsPluginActive.IsChecked = false; });
            }
            base.Stop();
        }
Exemple #2
0
        public override async void Start()
        {
            Log("插件启动中");
            var loadWindow = new Windows.LoadingWindowLight();

            try
            {
                loadWindow.IsOpen            = true;
                loadWindow.ProgressBar.Value = 30; Conf.Delay(10);
                ALog("正在检查配置");
                await Conf.InitiateAsync();

                loadWindow.ProgressBar.Value = 60; Conf.Delay(10);
                ALog("配置初始化成功");
                ALog("正在启用播放器");
                TTSPlayer.Init();
                loadWindow.ProgressBar.Value = 80; Conf.Delay(10);
                if (Vars.CurrentConf.AutoUpdate)
                {
                    ALog("正在启动更新检查");
                    Thread updateChecker = new Thread(() => UpdateThread());
                    updateChecker.Start();
                }
                loadWindow.ProgressBar.Value = 100; Conf.Delay(10);
                loadWindow.IsOpen            = false;
                Log("启动成功");
                IsEnabled = true;
                if ((Vars.ManagementWindow != null) && !Vars.ManagementWindow.WindowDisposed)
                {
                    Vars.ManagementWindow.Dispatcher.Invoke(() => { Vars.ManagementWindow.CheckBox_IsPluginActive.IsChecked = true; });
                }
                base.Start();
            }
            catch (Exception ex)
            {
                loadWindow.IsOpen = false;
                Log($"启动过程中出错: {ex}");
                Windows.AsyncDialog.Open("启动失败,更多信息请查看日志(首页)。\n请在反馈错误时附加日志信息。\n\n如您在后期继续使用时遇到问题,请尝试重新启动弹幕姬。", "Re: TTSCat", MessageBoxIcon.Error);
                Log("启动失败");
            }
        }