/**
* @param view Surface 顯示視頻的控件
* @param videoWidth 視頻的寬
* @param videoHeight 視頻的高
**/
private void resetSurfaceSize(final View view, int videoWidth, int videoHeight) {
ViewGroup parent = (ViewGroup) view.getParent();
int width = parent.getWidth();
int height = parent.getHeight();
if (width > 0 && height > 0) {
final FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
if (videoWidth > width || videoHeight > height) {
float scaleVideo = videoWidth / (float) videoHeight;
float scaleSurface = width / height;
if (scaleVideo > scaleSurface) {
params.width = width;
params.height = (int) (width / scaleVideo);
params.setMargins(0, (height - params.height) / 2, 0, (height - params.height) / 2);
} else {
params.height = height;
params.width = (int) (height * scaleVideo);
params.setMargins((width - params.width) / 2, 0, (width - params.width) / 2, 0);
}
}
view.setLayoutParams(params);
}
}