本文转载自:http://blog.csdn.net/netwalk/article/details/17686993

Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19

spydroid-android测试在android4.0系统上报错

  1. start failed: -19

而且也发现,在使用MediaRecorder进行视频录制,调用start()方法时报错,发生spydroid-android测试在android4.0系统上同样的错误,具体错误如下:

  1. 01-06 14:04:07.790: V/MediaRecorder(13280): prepare
  2. 01-06 14:04:07.790: V/IMediaRecorder(13280): prepare
  3. 01-06 14:04:07.800: V/MediaRecorder(13280): start
  4. 01-06 14:04:07.800: V/IMediaRecorder(13280): start
  5. 01-06 14:04:08.190: E/MediaRecorder(13280): start failed: -19
  6. 01-06 14:04:08.190: W/System.err(13280): java.lang.RuntimeException: start failed.
  7. 01-06 14:04:08.200: W/System.err(13280):    at android.media.MediaRecorder.start(Native Method)
  8. 01-06 14:04:08.200: W/System.err(13280):    at com.yousee.videocapturedemo.VideoCapturePlus$2.onClick(VideoCapturePlus.java:145)
  9. 01-06 14:04:08.200: W/System.err(13280):    at android.view.View.performClick(View.java:3515)
  10. 01-06 14:04:08.200: W/System.err(13280):    at android.view.View$PerformClick.run(View.java:14144)
  11. 01-06 14:04:08.200: W/System.err(13280):    at android.os.Handler.handleCallback(Handler.java:605)
  12. 01-06 14:04:08.200: W/System.err(13280):    at android.os.Handler.dispatchMessage(Handler.java:92)
  13. 01-06 14:04:08.200: W/System.err(13280):    at android.os.Looper.loop(Looper.java:148)
  14. 01-06 14:04:08.200: W/System.err(13280):    at android.app.ActivityThread.main(ActivityThread.java:4503)
  15. 01-06 14:04:08.200: W/System.err(13280):    at java.lang.reflect.Method.invokeNative(Native Method)
  16. 01-06 14:04:08.200: W/System.err(13280):    at java.lang.reflect.Method.invoke(Method.java:511)
  17. 01-06 14:04:08.200: W/System.err(13280):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:830)
  18. 01-06 14:04:08.200: W/System.err(13280):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  19. 01-06 14:04:08.200: W/System.err(13280):    at dalvik.system.NativeStart.main(Native Method)

 

MediaRecorder 初始化和设置代码如下:

 

  1. .....
  2. mMediaRecorder=new MediaRecorder();
  3. //设置视频源
  4. mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
  5. //设置音频源
  6. mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
  7. //设置文件输出格式
  8. mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
  9. //设置视频编码方式
  10. mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
  11. //设置音频编码方式
  12. mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
  13. //设置视频高和宽,注意文档的说明:
  14. //Must be called after setVideoSource().
  15. //Call this after setOutFormat() but before prepare().
  16. //设置录制的视频帧率,注意文档的说明:
  17. //Must be called after setVideoSource().
  18. //Call this after setOutFormat() but before prepare().
  19. mMediaRecorder.setVideoFrameRate(20);
  20. //设置预览画面
  21. mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
  22. //设置输出路径
  23. mMediaRecorder.setOutputFile
  24. (Environment.getExternalStorageDirectory()+File.separator+System.currentTimeMillis()+".mp4");
  25. .....
  26. mediaRecorder.prepare();
  27. mediaRecorder.start();
  28. .....

相同的程序在Android2.3平台上正常运行,在Android4.0上报错。

解决方法:

注释掉设置视频帧率的语句。//mMediaRecorder.setVideoFrameRate(mQuality.framerate);

setVideoFrameRate去掉之后,如果还出现该错误,可将

mMediaRecorder.setVideoSize(videoWidth, videoHeight);也注释掉

原因:

视频的帧率和视频大小是需要硬件支持的,如果设置的帧率和视频大小,如果硬件不支持就会出现错误。

参考:

http://stackoverflow.com/questions/11249642/mediarecorder-start-failed-19

Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】的更多相关文章

  1. 错误:Camera录制视频(6.0错误),5.1正常,7.1正常 (java.lang.RuntimeException: start failed.at android.media.MediaRecorder.native_start(Native Method))

    Process: com.example.mycamera2, PID: 24086 java.lang.RuntimeException: start failed. at android.medi ...

  2. Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)

    使用Mediaplayer播放本地音频,在第二次调用mediaplayer.setDataSource()时报错如下: Caused by: java.lang.IllegalStateExcepti ...

  3. appium在android 7.0真机上运行报错command failed shell:............ps:'uiautomator"的解决方式

    appium版本:1_4_16 在CSDN中找到相关解决的方案,根据此解决方案顺利的解决了让人惆怅的问题,再次记录. 1.找到appium安装目录下的adb.js文件,目录为:Appium\node_ ...

  4. at android.view.Surface.unlockCanvasAndPost(Native Method)

    at android.view.Surface.unlockCanvasAndPost(Native Method) 在绘制动画特效的时候点击back键会报以上异常. 主要原因:当点击back按钮时A ...

  5. ionic 打包 报错Execution failed for task ':processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt

    在platform --> android目录下找到build.gradle文件,打开并在def promptForReleaseKeyPassword() {...}函数前加入以下内容: 完整 ...

  6. Android Studio使用org.apache.http报错

    Android Studio使用org.apache.http报错需要加上这句话:useLibrary 'org.apache.http.legacy'

  7. Android 6.0以后的版本报错:open failed: EACCES (Permission denied)

    Android 6.0以后的版本报错:open failed: EACCES (Permission denied) 在开发项目中,遇见要进行文件操作,遇见Caused by: android.sys ...

  8. Android版本28使用http请求报错not permitted by network security policy

    Android版本28使用http请求报错not permitted by network security policy android模拟器调试登录的时候报错 CLEARTEXT communic ...

  9. 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label

    安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...

随机推荐

  1. 【讲●解】火车进出栈类问题 & 卡特兰数应用

    火车进出栈类问题详讲 & 卡特兰数应用 引题:火车进出栈问题 [题目大意] 给定 \(1\)~\(N\) 这\(N\)个整数和一个大小无限的栈,每个数都要进栈并出栈一次.如果进栈的顺序为 \( ...

  2. linux连接xshell

    1. 前言 在前面的文章https://www.cnblogs.com/ajunyu/p/10872595.html提到新建了虚拟机可以通过连接xshell来远程操作,这篇文章我们来简单讲解一下虚拟机 ...

  3. MySQL数据库初识

    认识数据库 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中 ...

  4. Division

    Description   Write a program that finds and displays all pairs of 5-digit numbers that between them ...

  5. SSL 握手协议详解

    这里重点介绍一下服务端的验证和密钥交换.这个阶段的前面的(a)证书 和(b)服务器密钥交换是基于密钥交换方法的.而在SSL中密钥交换算法有6种:无效(没有密钥交换).RSA.匿名Diffie-Hell ...

  6. 开发调式时生成dump文件

    开发调式时,对程序生成dump文件:1:需要生成的时机,加Thread.sleep(600*1000).2:打开jvisualvm找到该程序进程号.3:jmap.

  7. em的理解

    em 版本:CSS1 说明: 自己的理解: 注意地方: 浏览器默认大小为16px. 谷歌浏览器最小字体为12px. font-size;有继承性. 判断步骤: []看该元素本身有没有设置字体大小: 有 ...

  8. [ C语言 ] 迷宫 迷宫生成器 [ 递归与搜索 ]

    [原创]转载请注明出处 [浙江大学 程序设计专题] [地图求解器] 本题目要求输入一个迷宫地图,输出从起点到终点的路线. 基本思路是从起点(Sx,Sy)每次枚举该格子上下左右四个方向,直到走到终点(T ...

  9. hash存储结构【六】

    一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Ag ...

  10. 修改xampp的mysql默认密码

    MySQL 的“root”用户默认状态是没有密码的,所以在 PHP 中您可以使用 mysql_connect("localhost","root"," ...