public VideoSettingModel(VideoSettingView view) { _view = view; _cameraDeviceList = new List <VideoDeviceModel>(); _docDeviceList = new List <VideoDeviceModel>(); _s = new InputSimulator(); _configManager = new ConfigManager(); _meetingSdkAgent = DependencyResolver.Current.GetService <IMeetingSdkAgent>(); _localDataManager = DependencyResolver.Current.GetService <ILocalDataManager>(); _deviceNameAccessor = DependencyResolver.Current.GetService <IDeviceNameAccessor>(); _deviceConfigLoader = DependencyResolver.Current.GetService <IDeviceConfigLoader>(); CameraDeviceList = new ObservableCollection <string>(); DocDeviceList = new ObservableCollection <string>(); CameraColorSpaces = new ObservableCollection <VideoFormatModel>(); DocColorSpaces = new ObservableCollection <VideoFormatModel>(); VedioParameterVgaList = new ObservableCollection <string>(); DocParameterVgaList = new ObservableCollection <string>(); VedioParameterRatesList = new ObservableCollection <int>(); LoadCommand = new DelegateCommand(Loading); WindowKeyDownCommand = new DelegateCommand <object>(WindowKeyDownHandler); CheckCameraDeviceCommand = DelegateCommand.FromAsyncHandler(CheckCameraDeviceAsync); CheckDocDeviceCommand = DelegateCommand.FromAsyncHandler(CheckDocDeviceAsync); //CheckCameraColorSpaceCommand = new DelegateCommand(CheckCameraColorSpace); //CheckDocColorSpaceCommand = new DelegateCommand(CheckDocColorSpace); GoBackCommand = new DelegateCommand(GoBack); }
public void SaveConfig(IDeviceNameAccessor accessor) { try { var items = new Dictionary <string, DeviceConfigItem>(); foreach (var keyValue in accessor) { DeviceConfigItem item; if (!items.TryGetValue(keyValue.Key, out item)) { item = new DeviceConfigItem() { TypeName = keyValue.Key }; items.Add(keyValue.Key, item); } item.DeviceNames.Add(keyValue.Value); } var appPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); var path = Path.Combine(appPath, ConfigFileName); var json = JsonConvert.SerializeObject(items.Values, Formatting.Indented); if (File.Exists(path)) { File.Delete(path); } File.WriteAllText(path, json, Encoding.UTF8); } catch (Exception e) { Log.Error(e, "保存设备配置文件失败。"); } }
void LoadConfig(IDeviceNameAccessor accessor) { var items = _deviceConfigLoader.LoadConfig(); foreach (var item in items) { foreach (var deviceName in item.DeviceNames) { accessor.SetName(item.TypeName, deviceName.Name, deviceName.Option); } } }
public MeetingWindowManager(IEventAggregator eventAggregator) { _eventAggregator = eventAggregator; _meetingSdkWrapper = IoC.Get <IMeetingSdkAgent>(); _deviceNameAccessor = IoC.Get <IDeviceNameAccessor>(); LayoutRendererStore = new LayoutRendererStore(); ModeDisplayerStore = new ModeDisplayerStore(); _layoutWindows = new List <ILayoutWindow>(); _layoutWindows.Add(this); }
public string IsVideoAudioSettingsValid() { MeetingResult <IList <VideoDeviceModel> > videoDeviceResult = _meetingSdkAgent.GetVideoDevices(); MeetingResult <IList <string> > micResult = _meetingSdkAgent.GetMicrophones(); MeetingResult <IList <string> > speakerResult = _meetingSdkAgent.GetLoudSpeakers(); IDeviceNameAccessor deviceNameAccessor = IoC.Get <IDeviceNameAccessor>(); IEnumerable <string> cameraDeviceName; if (videoDeviceResult.Result.Count == 0 || string.IsNullOrEmpty(_configManager.MainVideoInfo?.VideoDevice) || !deviceNameAccessor.TryGetName(DeviceName.Camera, new Func <DeviceName, bool>(d => { return(d.Option == "first"); }), out cameraDeviceName) || !videoDeviceResult.Result.Any(vdm => vdm.DeviceName == cameraDeviceName.FirstOrDefault())) { return(Messages.WarningNoCamera); } if (_configManager.MainVideoInfo?.DisplayWidth == 0 || _configManager.MainVideoInfo?.DisplayHeight == 0 || _configManager.MainVideoInfo?.VideoBitRate == 0) { return(Messages.WarningWrongVideoParams); } IEnumerable <string> micDeviceName; if (micResult.Result.Count == 0 || string.IsNullOrEmpty(_configManager.AudioInfo?.AudioSammpleDevice) || !deviceNameAccessor.TryGetName(DeviceName.Microphone, new Func <DeviceName, bool>(d => { return(d.Option == "first"); }), out micDeviceName) || !micResult.Result.Any(mic => mic == micDeviceName.FirstOrDefault())) { return(Messages.WarningNoMicrophone); } if (_configManager.AudioInfo?.SampleRate == 0 || _configManager.AudioInfo?.AAC == 0) { return(Messages.WarningWrongMicParams); } string audioOutputDeviceName; if (speakerResult.Result.Count == 0 || string.IsNullOrEmpty(_configManager.AudioInfo?.AudioOutPutDevice) || !deviceNameAccessor.TryGetSingleName(DeviceName.Speaker, out audioOutputDeviceName) || !speakerResult.Result.Any(speaker => speaker == audioOutputDeviceName)) { return(Messages.WarningNoSpeaker); } if (string.IsNullOrEmpty(_configManager.RecordInfo.RecordDirectory)) { return(Messages.WarningRecordDirectoryNotSet); } if (!Directory.Exists(_configManager.RecordInfo.RecordDirectory)) { return(Messages.WarningRecordDirectoryNotExist); } return(""); }
public ClassModeViewModel() { _localDataManager = DependencyResolver.Current.GetService <ILocalDataManager>(); _meetingService = DependencyResolver.Current.GetService <IMeetingSdkAgent>(); _windowManager = DependencyResolver.Current.GetService <IMeetingWindowManager>(); _remoteRecord = DependencyResolver.Current.GetService <IRemoteRecord>(); _deviceNameAccessor = DependencyResolver.Current.GetService <IDeviceNameAccessor>(); CheckClassModeCommand = new DelegateCommand <object>(CheckClassModeAsync); ShareCommand = new DelegateCommand(ShareAsync); RecordCommand = DelegateCommand.FromAsyncHandler(RecordAsync); InitClassModeItems(); InitToggleItems(); }
public AudioSettingModel(AudioSettingView view) { _view = view; Aac = new ObservableCollection <int>(); SampleRate = new ObservableCollection <int>(); AudioSource = new ObservableCollection <string>(); DocAudioSource = new ObservableCollection <string>(); AudioOutPutDevice = new ObservableCollection <string>(); _s = InputSimulatorManager.Instance.InputSimu; _configManager = new ConfigManager(); _meetingSdkAgent = DependencyResolver.Current.GetService <IMeetingSdkAgent>(); _localDataManager = DependencyResolver.Current.GetService <ILocalDataManager>(); _deviceNameAccessor = DependencyResolver.Current.GetService <IDeviceNameAccessor>(); _deviceConfigLoader = DependencyResolver.Current.GetService <IDeviceConfigLoader>(); LoadCommand = new DelegateCommand(Loading); WindowKeyDownCommand = new DelegateCommand <object>(WindowKeyDownHandler); GoBackCommand = new DelegateCommand(GoBack); CheckPeopleSourceDeviceCommand = new DelegateCommand(CheckPeopleSourceDevice); CheckDocSourceDeviceCommand = new DelegateCommand(CheckDocSourceDevice); }
public async Task Provider(IDeviceNameAccessor accessor) { await Async.Create(() => Task.Run(() => LoadConfig(accessor))).TryRun("加载DeviceName配置信息。"); }
public bool IsVideoAudioSettingsValid(Window sourceWindow) { string errorMsg = string.Empty; MeetingResult <IList <VideoDeviceModel> > videoDeviceResult = _meetingSdkAgent.GetVideoDevices(); MeetingResult <IList <string> > micResult = _meetingSdkAgent.GetMicrophones(); MeetingResult <IList <string> > speakerResult = _meetingSdkAgent.GetLoudSpeakers(); ConfigManager configManager = _localDataManager.GetSettingConfigData(); if (configManager == null) { errorMsg = "参数配置有误!"; MessageQueueManager.Instance.AddInfo(errorMsg); SettingNavView settingNavView = new SettingNavView(); settingNavView.Show(); sourceWindow?.Close(); return(false); } IDeviceNameAccessor deviceNameAccessor = DependencyResolver.Current.GetService <IDeviceNameAccessor>(); IEnumerable <string> cameraDeviceName; if (videoDeviceResult.Result.Count == 0 || string.IsNullOrEmpty(configManager.MainVideoInfo?.VideoDevice) || !deviceNameAccessor.TryGetName(DeviceName.Camera, new Func <DeviceName, bool>(d => { return(d.Option == "first"); }), out cameraDeviceName) || !videoDeviceResult.Result.Any(vdm => vdm.DeviceName == cameraDeviceName.FirstOrDefault())) { errorMsg = "人像采集未设置!"; MessageQueueManager.Instance.AddInfo(errorMsg); VideoSettingView videoSettingView = new VideoSettingView(); videoSettingView.Show(); sourceWindow?.Close(); return(false); } if (configManager.MainVideoInfo?.DisplayWidth == 0 || configManager.MainVideoInfo?.DisplayHeight == 0 || configManager.MainVideoInfo?.VideoBitRate == 0) { errorMsg = "人像采集参数未设置!"; MessageQueueManager.Instance.AddInfo(errorMsg); VideoSettingView videoSettingView = new VideoSettingView(); videoSettingView.Show(); sourceWindow?.Close(); return(false); } IEnumerable <string> micDeviceName; if (micResult.Result.Count == 0 || string.IsNullOrEmpty(configManager.AudioInfo?.AudioSammpleDevice) || !deviceNameAccessor.TryGetName(DeviceName.Microphone, new Func <DeviceName, bool>(d => { return(d.Option == "first"); }), out micDeviceName) || !micResult.Result.Any(mic => mic == micDeviceName.FirstOrDefault())) { errorMsg = "人声音源未设置!"; MessageQueueManager.Instance.AddInfo(errorMsg); AudioSettingView audioSettingView = new AudioSettingView(); audioSettingView.Show(); sourceWindow?.Close(); return(false); } if (configManager.AudioInfo?.SampleRate == 0 || configManager.AudioInfo?.AAC == 0) { errorMsg = "人声音源参数未设置!"; MessageQueueManager.Instance.AddInfo(errorMsg); AudioSettingView audioSettingView = new AudioSettingView(); audioSettingView.Show(); sourceWindow?.Close(); return(false); } string audioOutputDeviceName; if (speakerResult.Result.Count == 0 || string.IsNullOrEmpty(configManager.AudioInfo?.AudioOutPutDevice) || !deviceNameAccessor.TryGetSingleName(DeviceName.Speaker, out audioOutputDeviceName) || !speakerResult.Result.Any(speaker => speaker == audioOutputDeviceName)) { errorMsg = "放音设备未设置!"; MessageQueueManager.Instance.AddInfo(errorMsg); AudioSettingView audioSettingView = new AudioSettingView(); audioSettingView.Show(); sourceWindow?.Close(); return(false); } return(true); }