5

我已经学习了如何在不拉伸视频的情况下调整在此全屏视频视图上播放的视频大小。

有了gameowner答案,它就起作用了。它还强制保持横向无线电,使其最终在侧面出现黑色条纹。

我想有另一个可选的。那就是我不想在侧面有黑色条纹。我希望视频高度仍保持在屏幕高度。要保持宽高比,视频宽度应大于屏幕宽度。看不到视频的“最左边”和“最右边”也没关系。我想我只需要改变:

if (videoProportion > screenProportion) {
        lp.width = screenWidth;
        lp.height = (int) ((float) screenWidth / videoProportion);
} else {
        lp.width = (int) (videoProportion * (float) screenHeight);
        lp.height = screenHeight;
}

if (videoProportion < screenProportion) {
        lp.width = screenWidth;
        lp.height = (int) ((float) screenWidth / videoProportion);
} else {
        lp.width = (int) (videoProportion * (float) screenHeight);
        lp.height = screenHeight;
}

会好的,但我没有。一旦surfaceView尺寸大于屏幕。这只是显示黑屏但继续播放音频。

我还尝试将 Surfaceview 支架固定尺寸考虑在内:

surfaceViewFrame.getHolder().setFixedSize(lp.width, lp.height);

但这并不能解决问题。是否可以播放尺寸大于屏幕的视频?

编辑:好的。我已经意识到我的问题的期限。我想在方面广播中放大我的视频,但要全屏。也称为将视频裁剪为全屏。

我尝试TextureViewFrameLayout(必需的)容器内使用: 在 TextureView 上播放视频 我有 Android 4.0 设备在此解决方法中运行良好,但我不确定它是否真的适用于其他 4.0 设备。也TextureView仅限于 Android 4.0 或更高版本。如果有适用于 Android 2.x 的解决方法,我将不胜感激。

4

0 回答 0