MediaPlayer.setVideoScalingMode(int mode)非常适合API 16及更高版本,允许在VIDEO_SCALING_MODE_SCALE_TO_FIT
和VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
之间进行选择。
有没有办法在API 16之前为Android实现相同的功能?
我尝试设置MediaPlayer使用的SurfaceView
维度,但MediaPlayer裁剪原始视频以适合SurfaceView
的任何维度。
答案 0 :(得分:0)
面对同样的问题,请通过本文获得解决方案 http://blog.lemberg.co.uk/surface-view-video-cropping 但是变化很小: 默认情况下,TextureView已经具有缩放以使视频适合屏幕宽高比,因此您可以获得高/宽视频的左/右或上/下条纹。当您使用文章中的方法时,您将获得由updateTextureViewSize计算的TextureView scale + scale,因此非常大的索引。我对这个问题的解决方案是计算相对比例值:
float div = Math.max(scaleX,scaleY)-Math.min(scaleX, scaleY);
matrix.setScale(1+div,1+div,pivotPointX,pivotPointY);
而不是
matrix.setScale(scaleX, scaleY, pivotPointX, pivotPointY);