这是我用来以MP4格式记录来自
Android设备的视频的代码.正在创建文件,但大小为0字节.我似乎不明白出了什么问题.任何帮助将不胜感激.
if(mCamera == null) { mCamera = Camera.open(); mCamera.unlock(); } if(mediaRecorder == null) mediaRecorder = new MediaRecorder(); mediaRecorder.setCamera(mCamera); mediaRecorder.setCamera(mCamera); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setMaxDuration(maxDurationInMs); mediaRecorder.setoutputFile("/sdcard/1.mp4"); mediaRecorder.setVideoFrameRate(videoFramesPerSecond); mediaRecorder.setVideoSize(176,144); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); mediaRecorder.setPreviewdisplay(surface); mediaRecorder.setMaxFileSize(maxFileSizeInBytes); mediaRecorder.prepare(); try { mediaRecorder.prepare(); } catch (IllegalStateException e) { // This is thrown if the prevIoUs calls are not called with the // proper order e.printstacktrace(); } mediaRecorder.start();
解决方法
这种行为的原因是你完成录音后可能(95%肯定)再次调用recorder.setoutputFile()(也许是在recorder.stop()之后).因此旧文件正被新的空文件重写.