private async void FrameCapture() { RenderComplete.Visibility = Visibility.Collapsed; composition = new MediaComposition(); List <string> fileTypeFilter = new List <string>(); fileTypeFilter.Add("*"); QueryOptions queryOptions = new QueryOptions(CommonFileQuery.DefaultQuery, fileTypeFilter); queryOptions.UserSearchFilter = "Lapses"; StorageFileQueryResult z = PictureLapsesFolder.CreateFileQueryWithOptions(queryOptions); IReadOnlyList <StorageFile> files = await z.GetFilesAsync(); if (files.Count == 0) { NoFiles.Visibility = Visibility.Visible; return; } files.OrderBy(x => x.DateCreated); String framesPS = (FramesPerSecond.SelectedIndex + 1).ToString("D2"); string desiredName = "Rendered-" + framesPS + "-FPS.mp4"; StorageFolder localFolder = ProjectFolder; Windows.Storage.StorageFile pickedVidFile = await localFolder.CreateFileAsync(desiredName, CreationCollisionOption.GenerateUniqueName); DarnSeconds q = (DarnSeconds)((ComboBoxItem)FramesPerSecond.SelectedItem).Tag; foreach (StorageFile j in files) { if (j == null) { //ShowErrorMessage("File picking cancelled"); return; } // These files could be picked from a location that we won't have access to later var storageItemAccessList = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList; //torageItemAccessList.Add(pickedFile); var clip = await MediaClip.CreateFromImageFileAsync(j, TimeSpan.FromMilliseconds(q.HowManyDarnSeconds)); composition.Clips.Add(clip); } await composition.RenderToFileAsync(pickedVidFile); RenderComplete.Visibility = Visibility.Visible; //await composition.SaveAsync(MediaStreamSample); }
private async void startCapture_Tapped(object sender, TappedRoutedEventArgs e) { startCapture.Visibility = Visibility.Collapsed; NoFiles.Visibility = Visibility.Collapsed; render.Visibility = Visibility.Collapsed; RenderComplete.Visibility = Visibility.Collapsed; IncrementProject.IsEnabled = false; IncrementProject.Opacity = .65; //Interval.IsEnabled = false; Interval.Visibility = Visibility.Collapsed; tbInterval.Visibility = Visibility.Visible; tbInterval.Text = (string)((ComboBoxItem)Interval.SelectedItem).Content; HourMinuteSecond.Visibility = Visibility.Collapsed; tbHourMinuteSecond.Text = (string)((ComboBoxItem)HourMinuteSecond.SelectedItem).Content; tbHourMinuteSecond.Visibility = Visibility.Visible; CameraSource.Visibility = Visibility.Collapsed; tbCameraSource.Visibility = Visibility.Visible; tbCameraSource.Text = (string)((ComboBoxItem)CameraSource.SelectedItem).Content; CameraSettings2.Visibility = Visibility.Collapsed; tbCameraSetting.Visibility = Visibility.Visible; tbCameraSetting.Text = (string)((ComboBoxItem)CameraSettings2.SelectedItem).Content; DarnSeconds j = (DarnSeconds)((ComboBoxItem)Interval.SelectedItem).Tag; String k = (string)((ComboBoxItem)HourMinuteSecond.SelectedItem).Content; if (k == "Hours") { HowManySecondsBetween = j.HowManyDarnSeconds * 360; } else if (k == "Minutes") { HowManySecondsBetween = j.HowManyDarnSeconds * 60; } else { HowManySecondsBetween = j.HowManyDarnSeconds; } int i = 1; isRecording = true; stopCapture.Visibility = Visibility.Visible; while (isRecording) { StorageFile z = await PictureLapsesFolder.CreateFileAsync("Lapses.png", CreationCollisionOption.GenerateUniqueName); ImageEncodingProperties q = ImageEncodingProperties.CreatePng(); await _mediaCapture.CapturePhotoToStorageFileAsync(q, z); await Task.Delay(HowManySecondsBetween * 1000); } render.Visibility = Visibility.Visible; IncrementProject.IsEnabled = true; IncrementProject.Opacity = 1.0; Interval.Visibility = Visibility.Visible; tbInterval.Visibility = Visibility.Collapsed; HourMinuteSecond.Visibility = Visibility.Visible; tbHourMinuteSecond.Visibility = Visibility.Collapsed; CameraSource.Visibility = Visibility.Visible; tbCameraSource.Visibility = Visibility.Collapsed; CameraSettings2.Visibility = Visibility.Visible; tbCameraSetting.Visibility = Visibility.Collapsed; stopCapture.Visibility = Visibility.Collapsed; startCapture.Visibility = Visibility.Visible; PleaseWait.Visibility = Visibility.Collapsed; }
//This is to init the two combo boxes 1-60for time, and seconds or minutes private void InitTimeAndFPS() { //had trouble with this, so made a little class, it did the trick, but could be reworked. DarnSeconds z = new DarnSeconds(); ComboBoxItem k = new ComboBoxItem(); k.Content = "Minutes"; DarnSeconds y = new DarnSeconds(); y.HowManyDarnSeconds = 60; k.Tag = y; HourMinuteSecond.Items.Add(k); ComboBoxItem l = new ComboBoxItem(); l.Content = "Seconds"; DarnSeconds w = new DarnSeconds(); w.HowManyDarnSeconds = 1; l.Tag = w; HourMinuteSecond.Items.Add(l); HourMinuteSecond.SelectedIndex = 1; int looper = 61; for (int i = 1; i < looper; i++) { ComboBoxItem j = new ComboBoxItem(); j.Content = i.ToString(); DarnSeconds t = new DarnSeconds(); t.HowManyDarnSeconds = i; j.Tag = t; Interval.Items.Add(j); } Interval.SelectedIndex = 0; //This is the math for the frame per second of rendering calculation, //it generates it in milliseconds. decimal MilliForFPS = (decimal)1000; looper = 61; for (int i = 1; i < looper; i++) { ComboBoxItem j = new ComboBoxItem(); j.Content = i.ToString(); DarnSeconds t = new DarnSeconds(); Decimal fps = (Decimal)MilliForFPS / i; t.HowManyDarnSeconds = (int)Math.Round(fps, 0); j.Tag = t; FramesPerSecond.Items.Add(j); } FramesPerSecond.SelectedIndex = 9; }