博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android录制视频报错setVideoSize called in a invalid state 1
阅读量:5890 次
发布时间:2019-06-19

本文共 1586 字,大约阅读时间需要 5 分钟。

录制视频时想获取手机支持的录制视频的分辨率,使用代码如下:

List
videoSize = camera.getParameters().getSupportedVideoSizes();Iterator
itos = videoSize.iterator(); while (itos.hasNext()) { Camera.Size curSize = itos.next(); int curSupporSize = curSize.width * curSize.height; int fixPictrueSize = setFixPictureWidth * setFixPictureHeight; if (curSupporSize > fixPictrueSize) { setFixPictureWidth = curSize.width; setFixPictureHeight = curSize.height; } }mediaRecorder.setVideoSize(setFixPictureWidth, setFixPictureHeight);

出现了两次错误,一次是录制视频时调用camera.getParameters()时报parameters is empty,这是由于在camera.unlock()之后调用了该函数,将其在unlock之前获取就ok了。

还有一个错误就是setVideoSize called in a invalid state 1,进入setVideoSize函数中可以发现抛出异常的条件说明

/**     * Sets the width and height of the video to be captured.  Must be called     * after setVideoSource(). Call this after setOutFormat() but before     * prepare().     *     * @param width the width of the video to be captured     * @param height the height of the video to be captured     * @throws IllegalStateException if it is called after     * prepare() or before setOutputFormat()     */    public native void setVideoSize(int width, int height) throws IllegalStateException;

IllegalStateException if it is called after prepare() or before setOutputFormat()表示如果setVideoSize在prepare() 之后或者setOutputFormat()之前调用的话就会出现该异常,即是说要求setVideoSize函数在prepare()之前以及setOutputFormat()之后调用。

查了下代码,发现我调用setVideoSize竟然是在setOutputFormat()之前,改到setOutputFormat()之后就ok了。

转载地址:http://rifsx.baihongyu.com/

你可能感兴趣的文章
白话讲反射技术 --- 适合初学者入门引导
查看>>
css变形 transform
查看>>
win7家庭版添加组策略编辑器
查看>>
lnmp环境搭建
查看>>
自定义session扫描器精确控制session销毁时间--学习笔记
查看>>
【转】EDK简单使用流程(3)
查看>>
Ubuntu中无法update的解决办法
查看>>
仿射变换
查看>>
decltype类型指示符
查看>>
虹软ArcFace人脸识别 与 Dlib 人脸识别对比
查看>>
laravel 验证码使用示例
查看>>
IE开发人员工具无法使用
查看>>
分页器(自定制)
查看>>
HDU1877 又一版 A+B
查看>>
往sde中导入要素类报错000732
查看>>
springboot之启动方式
查看>>
初次安装git配置用户名和邮箱及密钥
查看>>
6.1(续)索引、索引组织表--Oracle模式对象
查看>>
动画 球
查看>>
C++中的堆,栈,静态内存区,常量区
查看>>