How to change the resolution of camera while recording video in WP8

前端 未结 4 1784
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-25 09:19

I am using the video recording sample provided by microsoft here. I want to change the resolution of the video being recorded in my app. Currently its recording in highest resol

相关标签:
4条回答
  • Use AudioVideoCaptureDevice to recoed video

    StorageFolder isoStore = await ApplicationData.Current.LocalFolder.GetFolderAsync("Shared");
                var file = await isoStore.CreateFileAsync("foos1.wmv", CreationCollisionOption.ReplaceExisting);
                using (var s = await file.OpenAsync(FileAccessMode.ReadWrite))
                {
                    Windows.Foundation.Size resolution = new Windows.Foundation.Size(640, 480);
                    avDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back,
                        AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).Last());
    
                    VideoBrush videoRecorderBrush = new VideoBrush();
                    videoRecorderBrush.SetSource(avDevice);
    
                    viewfinderRectangle.Fill = videoRecorderBrush;
    
                    await avDevice.StartRecordingToStreamAsync(s);
    
                    Thread.Sleep(30000);
    
    
                    await avDevice.StopRecordingAsync();
    
    
    
                }
    
    
                new MediaPlayerLauncher()
                {
                    Media = new Uri(file.Path, UriKind.Relative),
                }.Show();
    
    0 讨论(0)
  • 2021-01-25 09:41

    The Solution is (With my knowledge)

         VideoCaptureDevice webcam = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
    
     int videoformatcount = webcam.SupportedFormats.Count(); //We will get the avilable video format
    
      if (videoformatcount > 0)
                 {
                    var Temp = webcam.SupportedFormats;
    
                    VideoFormat objVideoFormat = Temp[videoformatcount - 1];
    
                    webcam.DesiredFormat = new VideoFormat(PixelFormatType.Format8bppGrayscale, objVideoFormat.PixelWidth, objVideoFormat.PixelHeight, 1);
                }
    
    captureSource.VideoCaptureDevice = webcam;
    

    This will produce the lowest resolution video

    0 讨论(0)
  • 2021-01-25 09:55

    You may try this one.

    private AudioVideoCaptureDevice VideoRecordingDevice;
    private Windows.Foundation.Size resolution = new Windows.Foundation.Size(320, 240);
    VideoRecordingDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, resolution);
    

    NB: Remember that it may only used for wp8 or later version.

    0 讨论(0)
  • 2021-01-25 09:59

    Second parameter for AudioVideoCaptureDevice.OpenAsync is the resolution. And you can get the resolutions using AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor).

    0 讨论(0)
提交回复
热议问题