1、MediaRecorder有一个状态机制,请参考帮助文档中的MediaRecorder的状态图操作Mediarecorder。这个问题并不大。
2、摄像头是非复用资源,如果一个recorder被使用,并没有释放,软件无法获得recorder,这个时候软件会出错(编译的时候没问题,运行的时候出错)。特别提醒的是,如果在Activity最后的生命周期onPause没有调用释放recorder,那么你退出程序再次加载你的代码运行的时候,一定会出错。所以在onPause里面一定记得释放recorder。
3、recorder的PreDisplay在start以前都不好使,别认为设定predisplay到surfaceView后就能看到预览,如果要做效果预览,还是使用camera比较好。在recorder调用start方法前,把camera进行释放。