Android录制视频报错setVideoSize called in a invalid state 1
来源:互联网 发布:雷洋案 网络意见领袖 编辑:程序博客网 时间:2024/05/22 06:39
录制视频时想获取手机支持的录制视频的分辨率,使用代码如下:
List<Camera.Size> videoSize = camera.getParameters().getSupportedVideoSizes();Iterator<Camera.Size> 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了。
0 0
- Android录制视频报错setVideoSize called in a invalid state 1
- setOutputFormat called in an invalid state: 1
- android 录音时报 MediaRecorder: setOutputFile called in an invalid state(1)
- MediaPlayer报错prepareAsync called in state 8
- MediaPlayer报错prepareAsync called in state 8
- WebView called on thread 'JavaBridge'的问题和MediaPlayer stop called in state 1报错解决记录
- prepareAsync called in state 1
- 【完美解决系列】Android MediaPlayer stop called in state 1
- mediaplayer stop called in state 1
- mediaplayer stop called in state 1
- MediaPlayer: start called in state 0报错处理
- 解决Android录制适配 setVideoSize 后start failed问题
- Android MediaPlayer播放prepareAsync called in state 8解决办法
- android 播放器遇到prepareAsync called in state 8
- android media中的start called in state 64错误
- Android MediaPlayer播放prepareAsync called in state 8解决办法
- Android初学------“prepareAsync called in state 8 ”解决办法
- Android MediaPlayer Error (-38, 0) “stop called in state 0”
- 周末忙忙忙
- ubuntu 下装feedparser
- SVM(三)
- hdu 4751 Divide Groups 2—sat问题 还是未理解
- Ubuntu开启root用户及其它登录问题的解决
- Android录制视频报错setVideoSize called in a invalid state 1
- About me --- Connecting the dots
- Java NIO:浅析I/O模型
- 1.1.1 C与指针第一个程序
- 自建项目分享-私人通讯录
- oncreate
- 类的构造函数后面现实化列表
- 看数据结构写代码(59) 键树的双链表示法
- centos 查看当前系统版本