在Nexus One上(例如),相機應用程序能夠捕獲720x480的H.264視頻(「高」質量設置)。但是,使用MediaRecorder API時,它似乎始終以320x240的固定幀大小捕獲。我期望setVideoSize()方法來控制幀大小(如下面的準備片段),但它似乎沒有效果(使用Froyo 2.2 Android SDK)。如何控制捕獲的視頻的幀高和寬度:setVideoSize()不起作用
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();
Discussions on the android developers list似乎表明這是一個長期存在的問題。任何人都可以建議如何控制幀大小,或者可以使用當前的API嗎?
它是一個令人失望的是,目前只有QUALITY_HIGH和QUALITY_LOW – 2011-01-06 19:38:16
實際上,setProfile()會。只是調用相同的setVideoSize()函數,所以我們不能說setVideoSize()不起作用。 – artsylar 2011-08-19 03:27:22
我猜setProfile()只是爲你正確的順序。 – dzeikei 2012-01-04 01:31:31