本文转载自: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. HDFS的Java API 对文件的操作

    在本次操作中所用到的命令 1.首先启动HDFS $HADOOP_HOME/sbin/start-dfs.sh 2.关防火墙 切换到root用户,执行service iptables stop 3.拷贝 ...

  2. windows系统查看目录树

    进入到需要查看的目录后,按住shift键,然后单击鼠标右键,选择“在此处打开命令窗口”,然后命令行窗口界面. 1.若是只查看该目录下有哪些目录,输入tree即可 2.若是显示该目录及其子目录下的所有目 ...

  3. 【转】WinAPI: CreateFontIndirect - 根据字体结构建立逻辑字体

    //声明: CreateFontIndirect( const p1: TLogFont {字体结构} ): HFONT; {返回新字体指针} //TLogFont 是 tagLOGFONTA 结构的 ...

  4. c++基础_01字串

    #include <iostream> using namespace std; int main(){ for(int a=0;a<=1;a++){ for(int b=0;b&l ...

  5. mybatis返回map类型数据空值字段不显示(三种解决方法)

    转http://blog.csdn.net/lulidaitian/article/details/70941769 一.查询sql添加每个字段的判断空 IFNULL(rate,'') as rate ...

  6. Lucene实现全文检索的流程

    [索引和搜索流程图] 对要索引的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->索引文档. 从索引库中搜索内容, ...

  7. 【01】emmet系列之基础介绍

    [01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写 相关网址 官网:http: ...

  8. Linux学习笔记02

    1.文件处理命令:touch touch [文件目录][文件名] 如:touch /tmp/jiejie/jiejie.conf2.文件处理命令:cat cat 参数[文件目录][文件名]//显示文件 ...

  9. MYSQL Sorting result 把队列堆满了,该怎么办?

    show processlist;发现有200多个队列,select cardnum from table where xxxid = 31 order by abc_time desc 这样的一个排 ...

  10. 【bzoj2527】[Poi2011]Meteors(树状数组(单点查询,区间修改)+整体二分)

    [bzoj2527][Poi2011]Meteors Description Byteotian Interstellar Union (BIU) has recently discovered a ...