public AudioStreamerDevice(FFmpegStreamer streamer, IAudioStreamerConfiguration configuration) { _config = configuration; _recordingConfig = new AudioStreamerRecordingConfiguration(configuration); _streamer = streamer; _streamer.ProcessExited += (_, e) => ConnectionError?.Invoke(this, new ConnectionException("Audio process exited.")); Code = DeviceCode.Create(this, DeviceType.Streaming.WEBCAM_AUDIO) .RunsOnMainThread(false) .ConnectionType(DeviceConnectionType.Process) .Build(); }
public AudioStreamerRecordingConfiguration(IAudioStreamerConfiguration configuration) { if (configuration is IConfiguration) { var config = (IConfiguration)configuration; var settings = config.Settings.ToDictionary(s => s.Key); StopRecordingTimeoutMillisecondsProperty = new ConfigurationSettingProperty(nameof(StopRecordingTimeoutMilliseconds), settings[nameof(IAudioStreamerConfiguration.StopRecordingTimeoutMilliseconds)]); } else { StopRecordingTimeoutMillisecondsProperty = new ConfigurationSettingProperty(nameof(StopRecordingTimeoutMilliseconds), typeof(int), configuration.StopRecordingTimeoutMilliseconds); } }