private void Uninitialize() { StatusTextBlock.Text = ""; if (_mediaElement != null) { _mediaElement.Source = null; _mediaElement = null; } if (_cameraStreamSource != null) { _cameraStreamSource.FrameRateChanged -= CameraStreamSource_FPSChanged; _cameraStreamSource = null; } _cameraEffect = null; }
private async void Initialize() { StatusTextBlock.Text = AppResources.MainPage_StatusTextBlock_StartingCamera; _cameraEffect = new Effects() {PhotoCaptureDevice = App.Camera}; _cameraStreamSource = new CameraStreamSource(_cameraEffect, App.Camera.CaptureResolution); _cameraStreamSource.FrameRateChanged += CameraStreamSource_FPSChanged; _mediaElement = new MediaElement {Stretch = Stretch.UniformToFill, BufferingTime = new TimeSpan(0)}; _mediaElement.SetSource(_cameraStreamSource); // Using VideoBrush in XAML instead of MediaElement, because otherwise // CameraStreamSource.CloseMedia() does not seem to be called by the framework:/ BackgroundVideoBrush.SetSource(_mediaElement); StatusTextBlock.Text = _cameraEffect.EffectName; }