首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么低分辨率视频(480×360)在iOS上用Ionic cordovaCapture (Apache媒体捕获插件)录制?

为什么低分辨率视频(480×360)在iOS上用Ionic cordovaCapture (Apache媒体捕获插件)录制?
EN

Stack Overflow用户
提问于 2015-08-12 13:31:05
回答 1查看 2.7K关注 0票数 6

在一个Ionic项目中,我正在用cordova捕获插件录制视频,这实际上是基于Apache媒体捕获插件的。

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

我读过插件文档,只有三个选项:持续时间和限制。这是否意味着不可能设置视频的尺寸?

代码语言:javascript
运行
复制
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) {});

此外,我还看到了配置数据的部分。我不知道该不该用这个。我尝试将widthheight添加到options对象中,但结果与以前相同。

代码语言:javascript
运行
复制
var options = { 
    limit: 1, 
    duration: 15,
    type: "video/quicktime",
    height: 720,
    width: 1280,
    quality: 1
};

它说没有任何平台支持,这不是很奇怪吗?:-)

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

知道我能做什么吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-11 10:22:51

我曾经修正过这个问题,我曾经编辑过captureVideo插件。

无法设置所有设备的分辨率。如果你选择高,它意味着1080便士在一些设备和720便士在旧的。

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

代码语言:javascript
运行
复制
var options = { 
    limit: 1, 
    duration: 20,
    ios_quality: 'high'
};

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

代码语言:javascript
运行
复制
// 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;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31966709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档