libjingle_peerconnection中的SurfaceViewRenderer是视频绘制类,在自己的项目中定义一个新的SurfaceViewRenderer类,把代码都拷贝过来, 然后加入新的接口用来设置旋转参数的,主要旋转代码在renderFrameOnRenderThread中:
方式一:frame.rotationDegree上加上旋转角度angle
float angle = 0.0f;
if (this.reversal) {
angle = 180.0f;
}
float[] rotatedSamplingMatrix = RendererCommon.rotateTextureMatrix(frame.samplingMatrix, (float)frame.rotationDegree + angle);
方式二:修改矩阵layoutMatrix的值
最后原来使用webrtc.SurfaceViewRenderer的地方都使用我们自己的MySurfaceViewRenderer类,这样就可以直接设置它的旋转属性了。
也可以直接修改SurfaceViewRenderer类