Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用Ionic Cordova capture(Apache Cordova media capture插件)在iOS上录制低分辨率视频(480x360)?_Cordova_Ionic Framework_Html5 Video_Phonegap Plugins_Cordova Plugins - Fatal编程技术网

为什么使用Ionic Cordova capture(Apache Cordova media capture插件)在iOS上录制低分辨率视频(480x360)?

为什么使用Ionic Cordova capture(Apache Cordova media capture插件)在iOS上录制低分辨率视频(480x360)?,cordova,ionic-framework,html5-video,phonegap-plugins,cordova-plugins,Cordova,Ionic Framework,Html5 Video,Phonegap Plugins,Cordova Plugins,在一个爱奥尼亚项目中,我正在录制视频,事实上是基于这个项目 Android用户可以选择视频尺寸,但在iOS上没有相应的按钮。我用的是1920x1080的iPhone 5,但我的Ionic应用程序视频是480x360,请注意纵横比是4:3,不是16:9我想要至少720p的视频尺寸 我阅读了插件文档,只有三个选项;期限和限制。这是否意味着无法设置视频的尺寸 var options = { limit: 1, duration: 15, quality: 1 // Only

在一个爱奥尼亚项目中,我正在录制视频,事实上是基于这个项目

Android用户可以选择视频尺寸,但在iOS上没有相应的按钮。我用的是1920x1080的iPhone 5,但我的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) {});
除此之外,我还看到了一部分。我不知道我应该用那个。我尝试将
width
height
添加到options对象中,但结果与之前相同

var options = { 
    limit: 1, 
    duration: 15,
    type: "video/quicktime",
    height: 720,
    width: 1280,
    quality: 1
};
它说没有任何平台支持,这不是很奇怪吗?:-)

不受任何平台支持。所有配置数据阵列都是 空的


你知道我能做什么吗?

我之前解决了这个问题,我编辑了captureVideo插件

无法为所有设备设置分辨率。如果选择high,则在某些设备中意味着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;
}

伟大的次要提示:更好的if-block-for-quality选项是
if([mediaType IsequalString:(NSString*)KuttypeMoine]){
,因为
videoQuality
是否有类似的解决方案可以为Android提供建议,以减少大小和质量?