1

我使用microsoft here提供的视频录制样本。我想更改我的应用程序中录制的视频的分辨率。目前它默认录制的分辨率最高。如何做?如何在WP8中录制视频时更改摄像头的分辨率

videoCaptureDevice.DesiredFormat = new VideoFormat(PixelFormatType.Unknown, 480, 640, 30); 

上述语句抛出参数异常。

另外,如果可能让我知道如何从前置摄像头捕捉?

如何实现这一目标?请帮忙。

回答

0

AudioVideoCaptureDevice.OpenAsync的第二个参数是分辨率。您可以使用AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor)获得分辨率。

+0

你知道为什么在前置摄像头中摄像机馈送是180度旋转? –

+0

相机始终以横向拍摄。 –

+0

嘿克劳斯,我意识到AudioVideoCaptureDevice可能是在WP8录制视频的最佳解决方案,但我无法找到任何样本或帮助。我已经发布了类似的问题http://stackoverflow.com/questions/17898769/how-to-record-video-using-audiovideocpturedevice-in-wp8。你能帮我吗?提前致谢。 –

-1

解决方案是(凭借我所知)

 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; 

这将产生最低分辨率视频

+0

您是否知道为什么在前置摄像头中摄像机馈送旋转了180度? –

+0

对不起!我不知道,你可以彻底查看这些链接,可能会帮助你[链接](http://www.mindscapehq.com/blog/index.php/2012/02/28/windows -phone-7-working-with-camera-tasks /)[链接](http://msdn.microsoft.com/en-us/magazine/hh708750.aspx) – Vicky

+0

没问题,你可以发布链接吗? –

-1

使用AudioVideoCaptureDevice到recoed视频

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

你可以试试这一个。

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

注意:请记住,它只能用于wp8或更高版本。

相关问题