为什么使用Ionic Cordova capture(Apache Cordova media capture插件)在iOS上录制低分辨率视频(480x360)?
在一个爱奥尼亚项目中,我正在录制视频,事实上是基于这个项目 Android用户可以选择视频尺寸,但在iOS上没有相应的按钮。我用的是1920x1080的iPhone 5,但我的Ionic应用程序视频是480x360,请注意纵横比是4:3,不是16:9我想要至少720p的视频尺寸 我阅读了插件文档,只有三个选项;期限和限制。这是否意味着无法设置视频的尺寸为什么使用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
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提供建议,以减少大小和质量?