/// <summary> /// Uninitialize this Client instance. /// If this Client instance is not initialized, it will do nothing. /// </summary> public void Uninitialize() { if (_initialized) { VxClient.Instance.Stop(); _inputDevices.Clear(); _outputDevices.Clear(); _loginSessions.Clear(); _initialized = false; _connectorHandle = null; } }
public async Task AvailableDevices(object[] devices) { // Called by JavaScript when we get the list of devices await Task.Delay(1); AudioInputDevices.Clear(); foreach (var device in devices) { string deviceString = device.ToString(); var dev = JsonSerializer.Deserialize <BrowserMediaDevice>(deviceString); if (dev.kind == "audioinput") { if (dev.label.Trim() != "" && dev.deviceId.Trim() != "") { AudioInputDevices.Add(dev); } } else if (dev.kind == "audiooutput") { if (dev.label.Trim() != "" && dev.deviceId.Trim() != "") { AudioOutputDevices.Add(dev); } } else if (dev.kind == "videoinput") { if (dev.label.Trim() != "" && dev.deviceId.Trim() != "") { VideoInputDevices.Add(dev); } } else { var kind = dev.kind; } } if (AudioInputDevices.Count > 0) { AudioInputDevices = AudioInputDevices.OrderBy(o => o.label).ToList(); } if (AudioOutputDevices.Count > 0) { AudioOutputDevices = AudioOutputDevices.OrderBy(o => o.label).ToList(); } if (VideoInputDevices.Count > 0) { VideoInputDevices = VideoInputDevices.OrderBy(o => o.label).ToList(); } await RecordingStatus("Devices"); }