使用MediaRecorder录制源自摄像头的录像,发现分辨率永远都是默认的320*240,
P1000好像是388*?,忘了,总之无法在提高了。可是手机里自带的相机录制的视频像素可以高达1280*720,我的源码如下:mCamera.unlock();
mRecorder = new MediaRecorder();
mRecorder.setCamera(mCamera);

mRecorder.setPreviewDisplay( mHolder.getSurface() );

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);



mRecorder.setVideoSize(320, 240);
// mRecorder.setVideoFrameRate(15);

mRecorder.setOutputFile( filePath );
try{
mRecorder.prepare();
}catch( Exception e )
{
// Do something
}
mRecorder.start();使用setVideoSize设置分辨率,一旦高于320*240,得到的就是乱码。
这个问题已经折腾我好久了,各种测试,各种搜索,都无法找的答案,求救

解决方案 »

  1.   

    使用setVideoSize设置分辨率,视频编码器应该有最大分辨率的限制,如果超过了就不支持了
      

  2.   

    是在i9003上测试的,自带的摄像机分辨率可以达到1280*600
    但是setVideoSize只能达到320*240,三星怎么做的?
      

  3.   


    驱动里写的,setVideoSize更改不了驱动设置
      

  4.   


    三星的p1000啊,或者三星的android手机都一样吧? 能实现更高的分辨率么?
      

  5.   

    录像的分辨率各家的产品都有自己的限制的,这个限制可能是由于摄像头,可能是由于具体的硬件encode的限制等等