public void Init( IBrain brain, IVideoProvider videoProvider, IVideoRecorder videoRecorder, IAudioRecorder audioRecorder, IAudioPlayer audioPlayer, IAudioRepository audioRepository) { this.brain = brain; this.videoProvider = videoProvider; this.videoRecorder = videoRecorder; this.audioRecorder = audioRecorder; var frameObserver = new FrameObserver(brain); var frameRecognizedObserver = new FrameRecognizedObserver(audioPlayer, audioRepository); recognizeAvailableFrameSubscription = videoProvider.FrameAvailable.Subscribe(frameObserver); this.lifetimeStreams = new CompositeDisposable { brain.FrameRecognized.Subscribe(frameRecognizedObserver), videoRecorder.RecordingAvailable.Subscribe(new VideoPublisher(brain)), audioRecorder.RecordingAvailable.Subscribe(new AudioPublisher(audioRepository)) }; }
public VideoWorkflowPlugin(IVideoRecorder videoRecorder, IVideoRecorderOutputProvider videoRecorderOutputProvider, IVideoPluginProvider videoPluginProvider) { _videoRecorder = videoRecorder; _videoRecorderOutputProvider = videoRecorderOutputProvider; _videoPluginProvider = videoPluginProvider; InitializeVideoProviderObservers(); }
public void Dispose() { if (_videoRecorder != null) { _videoRecorder.Stop(); _videoRecorder = null; } }
public VideoPlugin(IVideoRecorder videoRecorder, IVideoRecorderOutputProvider videoRecorderOutputProvider, IVideoPluginProvider videoPluginProvider) { _isEnabled = ConfigurationService.GetSection <VideoRecordingSettings>().IsEnabled; _videoRecorder = videoRecorder; _videoRecorderOutputProvider = videoRecorderOutputProvider; _videoPluginProvider = videoPluginProvider; InitializeVideoProviderObservers(); }
/// <summary> /// Установить настройки записывающего устройства /// </summary> private void SetRecorderSettings() { //Позже можно будет настраивать var devicesCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (devicesCollection.Count == 0) { MessageBoxHelper.ShowMessage("Отсутствует записывающее видеоустройство. Возможны только аудиозвонки."); return; } _videoRecorder = new VideoRecorder(devicesCollection[0].MonikerString); _videoRecorder.NewFrame += videoRecorder_NewFrame; }
protected override void PostTestCleanup(object sender, TestWorkflowPluginEventArgs e) { if (_recordingMode != VideoRecordingMode.DoNotRecord) { bool hasTestPassed = e.TestOutcome.Equals(TestOutcome.Passed); bool isFileDeleted = false; try { string videoRecordingPath = e.Container.Resolve <string>("_videoRecordingPath"); isFileDeleted = DeleteVideoDependingOnTestOutcome(hasTestPassed, videoRecordingPath); } finally { _videoRecorder = e.Container.Resolve <IVideoRecorder>("_videoRecorder"); _videoRecorder?.Dispose(); if (!isFileDeleted) { string videoRecordingPath = e.Container.Resolve <string>("_videoRecordingPath"); _videoPluginProvider.VideoGenerated(e, videoRecordingPath); } } } }
public VideoWorkflowPlugin(IVideoRecorder videoRecorder, IVideoRecorderOutputProvider videoRecorderOutputProvider) { _videoRecorder = videoRecorder; _videoRecorderOutputProvider = videoRecorderOutputProvider; }
public VideoBehaviorObserver(IVideoRecorder videoRecorder) { this.videoRecorder = videoRecorder; }