private void  SetAudioCheckSettingsInfo(AudioCheckSettingsInfo pAudioCheckSettingsInfo)
        {
            try
            {
                string xmlfile = Application.StartupPath + @"\AudioCheckParameter.xml";
                if (File.Exists(xmlfile))
                {
                    XmlDocument xmlDoc;
                    xmlDoc = new XmlDocument();
                    xmlDoc.Load(xmlfile);   //加载xml文件   xmlDoc.SelectSingleNode("AudioCheckParameter").
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//IsCheckMutedbfs").Attributes["value"].Value = pAudioCheckSettingsInfo.IsCheckMutedbfs == false ? "0" : "1";
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//Mutedbfs").Attributes["value"].Value        = pAudioCheckSettingsInfo.Mutedbfs.ToString();

                    xmlDoc.SelectSingleNode("//AudioCheckParameter//MuteDuration").Attributes["value"].Value = pAudioCheckSettingsInfo.MuteDuration.ToString();

                    xmlDoc.SelectSingleNode("//AudioCheckParameter//IsCheckReverse").Attributes["value"].Value = pAudioCheckSettingsInfo.IsCheckReverse == false ? "0" : "1";

                    xmlDoc.SelectSingleNode("//AudioCheckParameter//Reverse").Attributes["value"].Value             = pAudioCheckSettingsInfo.Reverse.ToString();
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//ReversDuration").Attributes["value"].Value      = pAudioCheckSettingsInfo.ReversDuration.ToString();
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//IsCheckOverloaddbfs").Attributes["value"].Value = pAudioCheckSettingsInfo.IsCheckOverloaddbfs == false ? "0" : "1";
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//Overloaddbfs").Attributes["value"].Value        = pAudioCheckSettingsInfo.Overloaddbfs.ToString();

                    xmlDoc.SelectSingleNode("//AudioCheckParameter//IsCheckSLevelThreshold_Limit").Attributes["value"].Value = pAudioCheckSettingsInfo.IsCheckSLevelThreshold_Limit == false ? "0" : "1";
                    xmlDoc.SelectSingleNode("//AudioCheckParameter//SLevelThreshold_Limit").Attributes["value"].Value        = pAudioCheckSettingsInfo.SLevelThreshold_Limit.ToString();

                    xmlDoc.SelectSingleNode("//AudioCheckParameter//NLRLevelTime_Limit").Attributes["value"].Value = pAudioCheckSettingsInfo.NLRLevelTime_Limit.ToString();

                    //this.myAudioCheckSettingsInfo.NLRLevelTime_Limit
                    xmlDoc.Save(xmlfile);
                }
            }
            catch (Exception ex)
            {
            }
        }
        private AudioCheckSettingsInfo GetAudioCheckSettingsInfo()
        {
            AudioCheckSettingsInfo _AudioCheckSettingsInfo = null;

            try
            {
                string xmlfile = Application.StartupPath + @"\AudioCheckParameter.xml";
                if (File.Exists(xmlfile))
                {
                    _AudioCheckSettingsInfo = new AudioCheckSettingsInfo();
                    XmlDocument xmlDoc;
                    xmlDoc = new XmlDocument();
                    xmlDoc.Load(xmlfile);   //加载xml文件   xmlDoc.SelectSingleNode("AudioCheckParameter").
                    _AudioCheckSettingsInfo.IsCheckMutedbfs              = xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("IsCheckMutedbfs").Attributes["value"].Value.ToString().Trim() == "0" ? false : true;
                    _AudioCheckSettingsInfo.Mutedbfs                     = Convert.ToInt32(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("Mutedbfs").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.MuteDuration                 = Convert.ToInt32(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("MuteDuration").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.IsCheckReverse               = xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("IsCheckReverse").Attributes["value"].Value.ToString().Trim() == "0" ? false : true;
                    _AudioCheckSettingsInfo.Reverse                      = Convert.ToDouble(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("Reverse").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.ReversDuration               = Convert.ToInt32(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("ReversDuration").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.IsCheckOverloaddbfs          = xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("IsCheckOverloaddbfs").Attributes["value"].Value.ToString().Trim() == "0" ? false : true;
                    _AudioCheckSettingsInfo.Overloaddbfs                 = Convert.ToInt32(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("Overloaddbfs").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.IsCheckSLevelThreshold_Limit = xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("IsCheckSLevelThreshold_Limit").Attributes["value"].Value.ToString().Trim() == "0" ? false : true;
                    _AudioCheckSettingsInfo.SLevelThreshold_Limit        = Convert.ToInt16(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("SLevelThreshold_Limit").Attributes["value"].Value.ToString().Trim());
                    _AudioCheckSettingsInfo.NLRLevelTime_Limit           = Convert.ToInt16(xmlDoc.SelectSingleNode("AudioCheckParameter").SelectSingleNode("NLRLevelTime_Limit").Attributes["value"].Value.ToString().Trim());
                }
            }
            catch (Exception ex)
            {
                _AudioCheckSettingsInfo = null;
            }
            return(_AudioCheckSettingsInfo);
        }
        public static void StartAudioCheck(AudioCheckSettingsInfo info, string audioFile)
        {
            h = AudioTechReview_CreateInstance(IntPtr.Zero);
            AudioTechReview_SetFileName(h, (new UnicodeEncoding()).GetBytes(audioFile));
            AudioTechReview_SetReportInfo(h, (new UnicodeEncoding()).GetBytes(info.UserName), (new UnicodeEncoding()).GetBytes(DateTime.Now.ToString()), (new UnicodeEncoding()).GetBytes(audioFile + ".txt"), 0);
            AudioTechReview_SetReportType(h, 1);
            if (info.IsCheckMutedbfs)
            {
                //AudioTechReview_SetLowLevelParam(h,  uint.Parse((info.MuteDuration * 1000).ToString()), info.Mutedbfs, 0.9f);
                AudioTechReview_SetLowLevelParam_Limit(h, uint.Parse((info.MuteDuration * 1000).ToString()), info.Mutedbfs, 1.0f);
            }
            if (info.IsCheckOverloaddbfs)
            {
                //AudioTechReview_SetMaxLevelParam(h, uint.Parse("1000"), info.Overloaddbfs, 0.9f);
                AudioTechReview_SetMaxLevelParam_Limit(h, uint.Parse("1000"), info.Overloaddbfs, 1.0f);
            }

            if (info.IsCheckReverse)
            {
                //AudioTechReview_SetAntiphaseParam(h, uint.Parse((info.ReversDuration * 1000).ToString()), (float)info.Reverse, 0.9f);
                AudioTechReview_SetAntiphaseParam_Limit(h, uint.Parse((info.ReversDuration * 1000).ToString()), (float)info.Reverse, 1.0f);
            }

            if (info.IsCheckSLevelThreshold_Limit)
            {
                //AudioTechReview_SetLRLevelDiffParam(h, uint.Parse((info.NLRLevelTime_Limit * 1000).ToString()), info.SLevelThreshold_Limit, 1);
                AudioTechReview_SetLRLevelDiffParam_Limit(h, uint.Parse((info.NLRLevelTime_Limit * 1000).ToString()), info.SLevelThreshold_Limit, 1);
            }

            AudioTechReview_StartReview(h);
        }
        public static bool AudioCheck(AudioCheckSettingsInfo pAinfo, string fileName, string title, out string report)
        {
            try
            {
                ClassAudioTechReview.StartAudioCheck(pAinfo, fileName);

                while (ClassAudioTechReview.GetProgress() != 100)
                {
                    Application.DoEvents();
                }
                report = "";
                if (ClassAudioTechReview.GetAudioCheckStatus())
                {
                    if (File.Exists(fileName + ".txt"))
                    {
                        report = File.ReadAllText(fileName + ".txt", Encoding.GetEncoding("gb2312"));
                    }

                    try
                    {
                        if (File.Exists(fileName + ".txt"))
                        {
                            File.Delete(fileName + ".txt");
                        }
                    }
                    catch { }
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                report = ex.Message;
                return(false);
            }
            finally
            {
                ClassAudioTechReview.DestroyInstance();
            }
        }
Exemple #5
0
        private void AudioCheckByFiles(string[] pFiles)
        {
            try
            {
                TotalCount            = 0;
                AudioOKCount          = 0;
                LowLevelAlarmCount    = 0;
                MaxLevelAlarmCount    = 0;
                AntiphaseAlarmCount   = 0;
                LRLevelDiffAlarmCount = 0;
                TotalAlarmCount       = 0;
                AppendMessageLine("开始音频质检...");
                AudioCheckInfo = GetAudioCheckSettingsInfo();
                foreach (var item in pFiles)
                {
                    try
                    {
                        if (!isStart)
                        {
                            break;
                        }
                        if (txtInfo.Text.Length > txtInfo.MaxLength)
                        {
                            txtInfo.Text = "";
                        }

                        string fileName = Path.GetFileNameWithoutExtension(item);
                        string report   = "";
                        this.TotalCount++;
                        if (doAudioCheck(item, out report))
                        {
                            AppendMessageLine("质检成功,文件路径:" + item);
                            this.AudioOKCount++;
                        }
                        else
                        {
                            AppendMessageLine("质检失败,文件路径:" + item);
                            ReportAnalysis(report, item);
                            this.TotalAlarmCount++;
                        }
                    }
                    catch (Exception ex)
                    {
                        CommonFunction.WriteLocalLog("调用方法AudioCheckByFiles()异常,错误信息:" + ex.Message);
                        continue;
                    }
                    finally
                    {
                        try
                        {
                            if (File.Exists(item + ".xml"))
                            {
                                File.Delete(item + ".xml");
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CommonFunction.WriteLocalLog("调用方法AudioCheckByFiles()异常,错误信息:" + ex.Message);
            }
            finally
            {
                AppendMessageLine("共质检" + this.TotalCount + "文件,成功:" + this.AudioOKCount + "个文件, 报警:" + this.TotalAlarmCount + "个文件");

                AppendMessageLine("静音报警文件数:" + LowLevelAlarmCount);
                AppendMessageLine("过载报警文件数:" + MaxLevelAlarmCount);
                AppendMessageLine("反相报警文件数:" + AntiphaseAlarmCount);
                AppendMessageLine("左右电平差报警文件数:" + LRLevelDiffAlarmCount);
            }
        }