MediaRecorder准备失败

And*_*ang 2 android mediarecorder

我是新来的.我一直在尝试使用Android模拟器创建一个视频捕获应用程序,但没有取得多大成功.据我所知,并浏览互联网上的所有样本和代码(本网站和其他网站),我仍然必须错过一步.

我试过在JonPro的这个帖子的末尾附近使用这个样本:http://www.anddev.org/viewtopic.php?p = 24723#24723

而且我已经尝试过制作我自己的但是媒体录音机总是会在准备阶段失败,其中包含"准备失败"的最无益的信息.我不知道我错过了什么.我似乎拥有正确的权限,并根据模拟器安装了SDCard.我应该使用2.1以外的Android SDK版本吗?

即使该论坛中的代码声称可以工作,我也发现这条线路丢失了:recorder.setCamera(camera);

但仍然没有喜悦,因为日志显示:'调用prepare()时失败得到摄像头(0x16b70)参数但是它仍然没有意义,因为预览没问题,但没有录音!任何帮助或建议将不胜感激.

编辑:任何人都可以确认这适用于SDK和模拟器吗?或者我是在浪费时间试图让这个版本在这个版本中工作.我能否获得prepare函数的源代码,因为它是OpenSource?

小智 5

解决此问题的方法是在准备之前必须设置mCameraDevice.unlock().重要的是,这是在mCameraDevice.setPreviewDisplay(mHolder)之后设置的;

例:

/*--------------------------------------surfaceCreated---------------------------------------------*/
/**
 * Surface Created sets that the surface is created.
 */
 public void surfaceCreated(SurfaceHolder arg0) {
     // TODO Auto-generated method stu1595
        try {
            Log.d(LOG_TAG, "setPreviewDisplay enter");
            mCameraDevice.setPreviewDisplay(mHolder);
            Log.d(LOG_TAG, "setPreviewDisplay exit");
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        mCameraDevice.unlock();
        Log.d("*************", "***********unlock()****");
     isSurfaceCreated = true;


 }
Run Code Online (Sandbox Code Playgroud)

BR PN