android:视频录制编写代码一直报非法状态错误,很多时候定位在setVideoEncoder和setAudioEncoder...
当遇到这类问题,首先去看logcat,如果在里面任然找不到错误提示信息,可以先调试,如果调试oncreate后就报错,则去试着去修改下MediaRecorder的参数设置,很多时候是由于不同的硬件的参数不同,下面有一个特别注意的地方,就是设置mediarecorder的音频和视频参数顺序,像如下我之前做过的顺序1不行,顺序2可以(本人才疏学浅,不知道具体原因,有哪位大虾知道,请留言指教)
顺序一:
recorder = new MediaRecorder();
recorder.reset();
//设置录制音频参数
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置声源
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//设置音频编码为amr_nb
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置音频输出格式为3gp
File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3gp");
//设置录制视频参数
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//设置视频源
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//录制视频编码
recorder.setVideoSize(1280, 720);//设置录制视频尺寸
recorder.setVideoFrameRate(30);//每秒3帧
recorder.setOutputFile(file.getAbsolutePath());//设置视频输出文件路径
recorder.setPreviewDisplay(sh.getSurface());//设置视频录制内容是从surfaceholder推送到surfaceview里面显示
顺序二:
recorder = new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置声源
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//设置视频源
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置音频输出格式为3gp
recorder.setVideoSize(1280, 720);//设置录制视频尺寸
recorder.setVideoFrameRate(30);//每秒3帧
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//录制视频编码
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//设置音频编码为amr_nb
File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3gp");
recorder.setOutputFile(file.getAbsolutePath());//设置视频输出文件路径
recorder.setPreviewDisplay(sh.getSurface());//设置视频录制内容是从surfaceholder推送到surfaceview里面显示
转载于:https://www.cnblogs.com/luoyaqi/p/4367728.html
android:视频录制编写代码一直报非法状态错误,很多时候定位在setVideoEncoder和setAudioEncoder...相关推荐
- 利用FFmpeg玩转Android视频录制与压缩(二)
请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个 ...
- 利用FFmpeg玩转Android视频录制与压缩(三)
请尊重原创,转载请注明出处http://blog.csdn.net/mabeijianxi/article/details/73011313 前言 上一回说到啊,这千秋月没是佳人离别,时逢枯枝落旧城, ...
- 用FFmpeg玩转Android视频录制与压缩
[置顶] 利用FFmpeg玩转Android视频录制与压缩(二) 标签: Android视频采集Android视频编码Android FFmpegAndroid 视频压缩视频编码 2017-06-10 ...
- android视频录制(调用系统视频录制)
2019独角兽企业重金招聘Python工程师标准>>> 最近客户有一个视频录制的需求,于是,我就整理下可行的方案. 启动系统视频录制的代码: Intent mIntent = new ...
- Android视频录制--屏幕录制
上一篇介绍了MediaProjection,这个类可以用来实现安卓屏幕数据的采集,也就是手机一帧帧的截图,并输出成byte流的格式. 有兴趣的同学可以看这篇: Android视频录制--MediaPr ...
- Android视频录制并转GIF格式
一.概述 我们在学习Android时候,往往需要查阅很多的资料教程,这时候经常会发现大神写的博客往往都是图文并茂的,充满可能性,效果直观的,所以自己个人记录一些日常工作中遇到的问题以及见解,也希望能够 ...
- Android视频录制从不入门到入门系列教程(一)————简介
一.WHY Android SDK提供了MediaRecorder帮助开发者进行视频的录制,不过这个类很鸡肋,实际项目中应该很少用到它,最大的原因我觉得莫过于其输出的视频分辨率太有限了,满足不了项目的 ...
- 解决CPLEX安装后无法运行代码,报错乱码(错误显示:ÔËÐÐÅäÖá°配置 1¡±²»´æÔڡ£)
解决CPLEX安装后无法运行代码,报错乱码(错误显示:ÔËÐÐÅäÖá°配置 1¡±²»´æÔڡ£) CPLEX错误显示如下: 解决方法: 重命名"配置 1"为"Conf ...
- android 视频录制小例子,android 录制视频实例 VideoRecordDemo
[实例简介] [实例截图] [核心代码] package com.example.videorecorddemo; import java.io.IOException; import java.ut ...
- 利用FFmpeg玩转Android视频录制与压缩
本文为剑西独家授权发布,剑西也是做Android多媒体开发,算是同道中人,不过他主要集中在视频压缩,利用FFmpeg,能做很多事,但是做到效果好,却不多.今天看下他的分享,剑西的blog是:http: ...
最新文章
- 博客开源系统(待续......)
- Hibernate随机获取指定范围内的指定条目的记录
- 文章和随笔的标题好像没有HtmlEnCode。
- hdu 2048 神、上帝以及老天爷
- 用Python自动生成NBA巨星生涯数据曲线
- python与c的联系_Python与C的通信#
- 继裁员千人后 蔚来打算卖掉电动方程式车队
- 在iMac上建立一个git仓库
- IIS SSL证书 指定的登录会话不存在,可能已被终止 HRESULT:0x80070520
- sqldf包的使用使用-R
- 从python的random函数说起
- 知识竞赛的环节主题文件准备的四大步骤及重要提示
- 怎么样可以通过阿里云APP进行备案 阿里云备案一般多长时间
- Spring原理机制
- MicroStation软件与Terrasolid插件合集的安装方法
- mongodb mongoose 的使用
- 【写作中的复杂名词短语练习题】前置与后置修饰
- 2021-09-15小记西数3T蓝盘翻车
- Linux运行python文件出现以下错误:terminate called after throwing an instance of ‘std::runtime_error‘
- 在线代码离线翻译Chrome插件一马v0.0.8 2018-10-31
热门文章
- Parallels Desktop:pd虚拟机 17 for mac
- MATLAB R2021b for Mac(可视化数学分析软件)
- 如何在 iOS 15 和 macOS Monterey 的 Safari 中隐藏 IP 地址?
- macOS Big Sur中“通知中心”的小组件
- Millumin 3 for mac使用教程-创建一个简单的视频映射
- 通过EPPlus导出Excel文件
- windows server 2016 DC重置用户密码报错
- AI加持,计算机要拥有嗅觉了;GPU终于可用于Google Compute Engine | AI开发者头条
- [javase] 1.请从键盘随机输入10个整数保存到List中,并按倒序、从大到小的顺序显示出来...
- 使用redis作为缓存,数据还需要存入数据库中吗?