Example #1
0
        static Common()
        {
            try
            {
                //创建进程执行者
                ProcessHelper = new ProcessHelper(ProcessOfZLMediaKit_StdOutputDataReceived,
                                                  ProcessOfZLMediaKit_ErrOutputDataReceived, ProcessOfZLMediaKit_Exited);
                CutMergeService.start = true;
                if (checkConfigFile())
                {
                    if (GetConfig())
                    {
                        if (!checkMediaServerBin(MediaServerBinPath))
                        {
                            KillSelf("流媒体可执行文件不存在");
                        }

                        if (string.IsNullOrEmpty(checkMediaServerConfig()))
                        {
                            KillSelf("流媒体配置文件不存在");
                        }

                        //启动时先把所有mediaserver杀掉
                        Process[] processes =
                            Process.GetProcessesByName(Path.GetFileNameWithoutExtension(MediaServerBinPath));
                        if (processes != null && processes.Length > 0)
                        {
                            foreach (var process in processes)
                            {
                                if (process != null && process.HasExited == false)
                                {
                                    process.Kill();
                                }
                            }
                        }

                        processes = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(FFmpegBinPath));
                        if (processes != null && processes.Length > 0)
                        {
                            foreach (var process in processes)
                            {
                                if (process != null && process.HasExited == false)
                                {
                                    process.Kill();
                                }
                            }
                        }

                        getMediaServerConfig();
                    }
                    else
                    {
                        KillSelf("读取配置文件异常");
                    }
                }
                else
                {
                    KillSelf("配置文件不存在");
                }

                ErrorMessage.Init();
            }
            catch (Exception ex)
            {
                KillSelf(ex.Message);
            }

            new Thread(new ThreadStart(delegate
            {
                try
                {
                    KeepAlive();
                }
                catch (Exception ex)
                {
                    //
                }
            })).Start();
        }