tar*_*ate 2 video android video-capture
在Nexus One上(例如),相机应用程序能够以720x480("高"质量设置)捕获H.264视频.但是,使用MediaRecorder API时,它似乎总是以320x240的固定帧大小捕获.
我希望setVideoSize()方法控制帧大小(如下面的准备片段),但似乎没有效果(使用Froyo 2.2 Android SDK).
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
recorder.setOutputFile(PATH_TO_FILE);
recorder.setVideoSize(720,480);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
Run Code Online (Sandbox Code Playgroud)
关于Android开发人员列表的讨论似乎表明这是一个长期存在的问题.任何人都可以建议如何控制帧大小,或者是否可以使用当前的API进行控制?
订单很重要.尝试在setVideoEncoder之前调用setVideoSize:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setVideoSize(720,480);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
recorder.setOutputFile(PATH_TO_FILE);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
Run Code Online (Sandbox Code Playgroud)