如何为早期版本的Android实现setVideoScalingMode

如何为早期版本的Android实现setVideoScalingMode,android,android-mediaplayer,Android,Android Mediaplayer,MediaPlayer.setVideoScalingMode(int模式)适用于API 16及以上版本,允许在VIDEO\u SCALING\u mode\u SCALE\u TO\u FIT和VIDEO\u SCALING\u mode\u SCALE\u TO\u FIT\u WITH\u croping之间进行选择 在API 16之前,有没有一种方法可以为Android实现相同的功能 我曾尝试设置MediaPlayer使用的SurfaceView的维度,但MediaPlayer将原始视频

MediaPlayer.setVideoScalingMode(int模式)适用于API 16及以上版本,允许在
VIDEO\u SCALING\u mode\u SCALE\u TO\u FIT
VIDEO\u SCALING\u mode\u SCALE\u TO\u FIT\u WITH\u croping
之间进行选择

在API 16之前,有没有一种方法可以为Android实现相同的功能


我曾尝试设置MediaPlayer使用的
SurfaceView
的维度,但MediaPlayer将原始视频裁剪为适合
SurfaceView
的任何维度

面对同样的问题,通过本文获得解决方案 但只要有一点变化: 默认情况下,TextureView已经具有缩放功能,可以使视频适合屏幕纵横比,因此对于高/宽视频,可以使用左/右或上/下条纹。当你们使用文章中的方法时,你们会得到由UpdateTextReviewSize计算的TextureView比例+比例,所以是非常大的比例索引。我的解决方案是计算相对刻度值:

float div = Math.max(scaleX,scaleY)-Math.min(scaleX, scaleY);
matrix.setScale(1+div,1+div,pivotPointX,pivotPointY);
而不是

 matrix.setScale(scaleX, scaleY, pivotPointX, pivotPointY);