本文转载自: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. thinkPHP5搭建以及使用

    0X01 Thinkphp 的安装 我这里选择的是使用 windows 下的 composer 进行安装,收下首先下载 composer 这个工具,安装完成以后进入我们想要创建项目的文件夹输入下面的命 ...

  2. PHP 处理接口保证数据安全性

    原地址:http://blog.csdn.net/lhbeggar/article/details/46377653 php做APP接口时,如何保证接口的安全性? 1.当用户登录APP时,使用http ...

  3. python链家网高并发异步爬虫and异步存入数据

    python链家网二手房异步IO爬虫,使用asyncio.aiohttp和aiomysql 很多小伙伴初学python时都会学习到爬虫,刚入门时会使用requests.urllib这些同步的库进行单线 ...

  4. js 列表几种循环的比较

    数组 遍历 普通遍历 最简单的一种,也是使用频率最高的一种. let arr = ['a', 'b', 'c', 'd', 'e'] for (let i = 0; i < arr.length ...

  5. codeforce 810B Summer sell-off (贪心 排序)

    题意: 商店准备用n天售货(每天的货物都是一样的),第i天会卖ki件货物,并且会有li个顾客来买. 如果货物没卖完, 那么每个顾客一定会买一件. 如果货物有剩, 不会保存到第二天. 现在给定一个f, ...

  6. window.onload 函数不执行处理

    Google Chrome window.onload = function(){}   函数不执行处理 function pageOnLoad(){} window.onload = pageOnL ...

  7. Rsync文件同步服务器配置

    rsync 是一个Unix/Linux系统下的文件同步和传输工具.rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法.可以用来做备份或镜像.一.配置文件rsync ...

  8. 上传文件表单file,限制上传文件类型的方法--参数accept

    我们使用<input type="file" />来上传文件,但是当你只想要上传某种格式的文件,比如说(jpg)文件时.可以通过accept来限制. <form& ...

  9. 关于PHP include文件时的文件查找顺序

    常常被include文件的路径搞晕. 看来是要理一理的时候了. PHP官方文档关于include搜索路径的解释是:先查找工作目录下相对于include_path设置所对应的路径,然后再搜索执行文件所在 ...

  10. HDU 5642 King's Order【数位dp】

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=677&pid=1003 题意: 求长度为n的序列 ...