6

MediaPlayer.setVideoScalingMode(intモード)はAPI 16以降に最適で、との間VIDEO_SCALING_MODE_SCALE_TO_FITで選択できVIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPINGます。

API 16より前のAndroidで同じ機能を実現する方法はありますか?

MediaPlayerで使用されるサイズを設定しようとしましSurfaceViewたが、MediaPlayerは、のサイズに合わせて元のビデオをトリミングしますSurfaceView

4

1 に答える 1

0

同じ問題に直面した場合は、この記事 http://blog.lemberg.co.uk/surface-view-video-croppingで解決策を取得してください 。そのため、高さ/幅の広いビデオの左/右または上/下のストライプが表示されます。また、記事のアプローチを使用すると、updateTextureViewSize によって計算された 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);
于 2014-09-02T13:08:48.537 に答える