【问题标题】:Why low resolution video (480x360) recording on iOS with Ionic cordovaCapture (Apache Cordova media capture plugin)?为什么使用 Ionic cordovaCapture(Apache Cordova 媒体捕获插件)在 iOS 上录制低分辨率视频 (480x360)?
【发布时间】:2015-11-05 03:37:04
【问题描述】:

在一个 Ionic 项目中,我正在使用 cordova capture plugin 录制视频,这实际上是基于 Apache media-capture plugin

Android 用户可以选择视频尺寸,但在 iOS 上没有相应的按钮。我正在用 iPhone 5 进行测试,它以 1920x1080 录制,但我的 Ionic 应用程序视频是 480x360,请注意纵横比是 4:3 而不是 16:9。 我想要至少 720p 的视频尺寸

我阅读了插件文档,只有三个选项;持续时间和限制。这是否意味着无法设置视频的尺寸?

var options = { 
    limit: 1, 
    duration: 15,
    quality: 1 // Only for Android, Video quality parameter, 0 means low quality, suitable for MMS messages, and value 1 means high quality
}; 

$cordovaCapture.captureVideo(options)
    .then(function(videoData) {});

除此之外,我还看到了 Configuration Data 部分。我不知道我应该使用那个。我尝试将widthheight 添加到选项对象,但结果与以前相同。

var options = { 
    limit: 1, 
    duration: 15,
    type: "video/quicktime",
    height: 720,
    width: 1280,
    quality: 1
};

上面说不被任何平台支持,是不是很奇怪? :-)

任何平台都不支持。所有配置数据数组 空。

知道我能做什么吗?

【问题讨论】:

    标签: cordova ionic-framework html5-video phonegap-plugins cordova-plugins


    【解决方案1】:

    我之前修复了这个问题,我编辑了 captureVideo 插件。

    无法为所有设备设置分辨率。如果您选择高,则表示某些设备为 1080p,例如旧设备为 720p。

    在 JS 上,我向插件选项添加了一个新属性“ios_quality”:

    var options = { 
        limit: 1, 
        duration: 20,
        ios_quality: 'high'
    };
    

    在 CDVCapture.m 上,我在 if ([pickerController respondsToSelector:@selector(cameraCaptureMode)]) {} 中添加了质量选项

    // iOS 4.0
    if ([pickerController respondsToSelector:@selector(cameraCaptureMode)]) {
        pickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
    
        NSNumber* quality = [options objectForKey:@"ios_quality"];
    
        if ([quality isEqual:@("compression_none_640x480")]){ //Compression none
            pickerController.videoQuality = UIImagePickerControllerQualityType640x480;
        }
        else if ([quality isEqual:@("compression_none_960x540")]){ //Compression none
            pickerController.videoQuality = UIImagePickerControllerQualityTypeIFrame960x540;
        }
        else if ([quality isEqual:@("compression_none_1280x720")]){ //Compression none
            pickerController.videoQuality = UIImagePickerControllerQualityTypeIFrame1280x720;
        }
        else if ([quality isEqual:@("high")]){ //Compression low
            pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
        }
        else if ([quality isEqual:@("medium")]){ //Compression medium
            pickerController.videoQuality = UIImagePickerControllerQualityTypeMedium;
        }
        else if ([quality isEqual:@("low")]){ //strongest compression, resolution 192x144
            pickerController.videoQuality = UIImagePickerControllerQualityTypeLow;
        }
    
        // pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
        // pickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
        // pickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-31
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多