SurfaceView的时候:
Camera.CameraInfo info= new Camera.CameraInfo(); if (info.facing == CAMERA_FACING_FRONT) { camera.setDisplayOrientation(270); } if (info.facing == CAMERA_FACING_BACK){ camera.setDisplayOrientation(90); }
这样预览显示的时候方向就对了(虽然本机预览是对的,socket发送出去的视频流解码出来方向却还是错的, camera.setDisplayOrientation只是改变SurfaceView的显示角度,没有改变原始数据的显示角度)
但是ImageView的时候:
上面这样做方向却不对了
补充:
用Surfaceview预览的话传一个SurfaceHolder进去,用Textureview预览的话需要传进去一个SurfaceTexture
TextureView是Android 4.0之后加入的,低版本么这个类。TextureView必须工作在开启硬件加速的环境中,也即配置文件里Activity的设置项里:android:hardwareAccelerated="true" 默认的这个属性就是true
如果说TextureView是一幅画的话,那SurfaceTexture就是画布,真正渲染的载体是SurfaceTexture。