camera - dela - cambiar resolucion camara iphone
Cómo cambiar la resolución de la cámara mientras se graba video en WP8 (4)
Estoy usando la muestra de grabación de video proporcionada por microsoft aquí . Quiero cambiar la resolución del video que se está grabando en mi aplicación. Actualmente está grabando en la resolución más alta por defecto. ¿Cómo hacer eso?
videoCaptureDevice.DesiredFormat = new VideoFormat(PixelFormatType.Unknown, 480, 640, 30);
La declaración anterior arroja una Excepción de argumento.
Además, si es posible, hágamelo saber cómo capturar desde la cámara frontal?
¿Cómo lograr esto? Por favor ayuda.
El segundo parámetro para AudioVideoCaptureDevice.OpenAsync
es la resolución. Y puede obtener las resoluciones usando AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor)
.
La solución es (con mi conocimiento)
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;
Esto producirá el video de resolución más baja
Use AudioVideoCaptureDevice para recodificar 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();
Puedes probar este.
private AudioVideoCaptureDevice VideoRecordingDevice;
private Windows.Foundation.Size resolution = new Windows.Foundation.Size(320, 240);
VideoRecordingDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, resolution);
NB: Recuerde que solo se puede usar para la versión wp8 o posterior.