解决方案 »

  1.   

    错误很明显啊,
     Failed to set the video frame size to 176x144
    video尺寸不支持,这个你可以通过camera.getSupportedVideoSizes()选择一个合适的video size,而不是这样hard code。
      

  2.   

    camera.getSupportedVideoSizes()这个要在API 11 才能用的,最起码得兼容到API 8 啊
      

  3.   

    那用Camera.getParameters(),然后从返回i的Parameters里面找到video-size的信息,我记得这个应该很早就有支持的。
    另外还有一招,用CamcorderProfile,从这些profile里面去着看看哪些size可用。
      

  4.   

    1. ParametersParameters parameters = mCamera.getParameters();
    List<Size> supportedVideoSizes = parameters.getSupportedVideoSizes();
    List<Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes();Parameters.getSupportedVideoSizes 这个也需要API 11才支持;而且有的支持的手机,拿出来结果是null;
    Parameters.getSupportedPreviewSizes 这个是API 5就支持的,但是拿出来的值,不一定能作为video的宽高(在支持getSupportedVideoSizes的机器上测试,发现这两个方法返回的Size是不一致的)2. CamcorderProfileCamcorderProfile camcorderProfile = CamcorderProfile.get(
                    mCameraId, CamcorderProfile.QUALITY_LOW);
    mVideoSupportedWidth = camcorderProfile.videoFrameWidth;
    mVideoSupportedHeight = camcorderProfile.videoFrameHeight;这个获取的宽高,设置给video_size的时候,还是会报“Failed to set the video frame size to xxx”.有大神不那用Camera.getParameters(),然后从返回i的Parameters里面找到video-size的信息,我记得这个应该很早就有支持的。
    另外还有一招,用CamcorderProfile,从这些profile里面去着看看哪些size可用。