首页 > 解决方案 > 如何让变形视频与 exoplayerleaback 一起使用?

问题描述

我正在播放一个应该以 16x9 显示的 720x480 视频。它显示垂直压缩,就好像它使用方形像素一样。我用 onVideoSizeChanged 方法添加了一个 VideoListener。使用正确的值 720 480 1.1851852 调用该方法。奇怪的是,如果我在该方法中设置断点,当它在播放开始时遇到断点时,视频将以正确的形状显示和播放,但是一旦允许该方法继续,视频就会切换到尺寸错误。我的应用程序基于https://github.com/android/tv-samples/tree/master/Leanback的示例代码存在此问题。

我尝试调用 view.setScaleX(pixelWidthHeightRatio); 在 onVideoSizeChanged 回调中,见下文。这导致视频向左移动但仍然有错误的纵横比。

我尝试添加设置视频缩放代码,但我相信无论如何都是默认设置的。

创建 mPlayer 后 -

    mPlayer.addVideoListener(new MyVideoListener());

监听类

private class MyVideoListener implements VideoListener {
    @Override
    public void onVideoSizeChanged(int width, int height,
        int unappliedRotationDegrees, float pixelWidthHeightRatio) {

        SurfaceView view = getSurfaceView();
        float scaleX = view.getScaleX();
        if (scaleX != pixelWidthHeightRatio)
            view.setScaleX(pixelWidthHeightRatio);
    }
}

标签: exoplayerandroid-tvleanback

解决方案


exoplayer 靠背扩展中有一个错误。我在这里提交了一个拉取请求来修复它:github.com/google/ExoPlayer/pull/6578。此拉取请求现已提交给 Excoplayer,问题已解决。


推荐阅读