/// <summary> /// 获取屏幕上所有音频和视频设备 /// </summary> public string GetVideoAndAudioDev() { string result = ""; DevState state = DevState.None; VideoAndAudioDev devs = new VideoAndAudioDev(); string devName = string.Empty; MepgHelper.ExecVideoCommand(VideoAndAudioList, (sender, e) => { state = MepgHelper.GetDevId(e.Data, state, ref devs, ref devName); }, (sender, e) => { _events.Publish(new DevListMessage { Data = devs }, (t) => { Task.Factory.StartNew(t); }); }); return(result); }
public static DevState GetDevId(string msg, DevState state, ref VideoAndAudioDev dev, ref string devName) { if (!string.IsNullOrWhiteSpace(msg)) { if (msg.Contains(VideoDevConst)) { state = DevState.VideoState; } else if (msg.Contains(AudioStateConst)) { state = DevState.AudioState; } else if (msg.Contains(DevIdConst)) { string devId = msg.Substring(msg.IndexOf(DevIdConst), msg.Length - msg.IndexOf(DevIdConst)).Replace(DevIdConst, "").Replace("\"", "").Trim(); switch (state) { case DevState.VideoState: dev.Videos.Add(new VideoDev() { DevId = devId, DevName = EncoderHelper.ASCIToUtf8(devName) }); break; case DevState.AudioState: dev.Audios.Add(new AudioDev() { DevId = devId, DevName = EncoderHelper.ASCIToUtf8(devName) }); break; } } devName = msg; } return(state); }