using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RailLocalMeter
{
public class VoicePlay
{
private string m_szRunPath = Environment.CurrentDirectory;
private VoiceMCI vmciClass = new VoiceMCI();
///
/// 语音播放
///
///
/// 车牌号
public void GetVoicePlay(VoiceEnum strvoiceName, string strCarNo)
{
try
{
WriteLog("车牌号:" + strCarNo + " 当前准备播放:" + strvoiceName);
//判断是否存在语音,存在则语音播报
bool isHaveVoice = false;
foreach (string str in CacleCls.voiceInfo)
{
if (strvoiceName.ToString() == str)
{
isHaveVoice = true;
break;
}
}
if (!isHaveVoice) return; //不存在语音则不进行后面播放操作
if (!CacleCls.voiceOver) return;//语音未播完
CacleCls.voiceOver = false;
WriteLog("车牌号:" + strCarNo + " 语音播放:" + strvoiceName);
string path = $"{m_szRunPath}\\Sound\\{strvoiceName}.wav";
int intVmci = vmciClass.VoicePlay(path);
WriteLog("车牌号:" + strCarNo + " 语音播放结果( -1语音播放失败 0无音频设备 1语音播放成功 2语音播放结束):" + intVmci);
}
catch (Exception exp)
{
WriteLog("语音播放异常!" + strvoiceName + " " + exp.Message);
}
}
private void WriteLog(string str)
{
// 20220925 By BourneCao 暂时屏蔽语音播放日志
return;
string m_szRunPath;
m_szRunPath = System.Environment.CurrentDirectory;
if (System.IO.Directory.Exists(m_szRunPath + "\\log") == false)
{
System.IO.Directory.CreateDirectory(m_szRunPath + "\\log");
}
string strDate = System.DateTime.Now.ToString("yyyyMMdd");
string strPathFile = m_szRunPath + "\\log\\" + strDate;
if (!Directory.Exists(strPathFile))//如果不存在就创建file文件夹
{
Directory.CreateDirectory(strPathFile);
}
System.IO.TextWriter tw = new System.IO.StreamWriter(strPathFile + "\\语音播放_" + strDate + ".log", true);
tw.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
tw.WriteLine(str);
tw.WriteLine("\r\n");
tw.Close();
}
}
public enum VoiceEnum
{
车辆未停到位,
开始计量,
车辆超重,
计量完成,
洁净重量过小,
仪表未归零,
两次计量重量接近,
车号未识别,
程序处理异常
}
}