这是我的问题,我正在开发一个使用相机并录制视频的软件,一切正常但我无法发现如何管理设置,例如我有一个可以录制视频的三星Galaxy S 1280x720 ,但是当我将此分辨率设置为:
时CamcorderProfile profile;
profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
profile.videoFrameWidth = 1280;
profile.videoFrameHeight = 720;
profile.videoFrameRate = 30;
recorder.setProfile(profile);
logcat显示以下消息:
01-17 14:22:28.706: WARN/AuthorDriver(2782): Intended video encoding frame width (1280) is too large and will be set to (128849019680)
01-17 14:22:28.706: WARN/AuthorDriver(2782): Intended video encoding frame height (720) is too large and will be set to (1078895784755680)
并且参数会自动缩放为 800x480
答案 0 :(得分:2)
不完全确定为什么使用CamcorderProfile,android doc提到这是只读的。
如果要将视频录制大小设置为1280x720,则
从相机参数中获取支持的视频大小列表(只是为了确保设备支持您想要设置的大小) -
public List<Camera.Size> getSupportedVideoSizes ()
然后在媒体录制器上调用设置视频大小 -
public void setVideoSize (int width, int height)