我正在使用纹理 View 从表面上的服务器播放视频,但它会拉伸(stretch)视频并且无法保持视频的纵横比。但是,我希望在 vine 应用程序或 instagram 应用程序中按照视频保持纵横比。
最佳答案
您可以更改 View 的大小(使用自定义 FrameLayout),或使用 TextureView 矩阵更改纹理的呈现方式。
两者的例子都可以在 Grafika 中找到. “播放视频 (TextureView)” Activity 演示了配置矩阵以匹配视频的纵横比。参见adjustAspectRatio()
方法,其核心是:
Matrix txform = new Matrix();
mTextureView.getTransform(txform);
txform.setScale((float) newWidth / viewWidth, (float) newHeight / viewHeight);
txform.postTranslate(xoff, yoff);
mTextureView.setTransform(txform);
请注意它居中并缩放视频。
关于android - 在具有视频纵横比的纹理 View 上播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27418191/