如何使变形视频与exoplayer leanback一起使用?

时间:2019-10-22 19:48:48

标签: exoplayer android-tv leanback

我正在播放720x480的视频,该视频应该以16x9的比例显示。它显示为垂直压缩,好像使用正方形像素一样。我使用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);
    }
}

1 个答案:

答案 0 :(得分:1)

exoplayer leanback扩展程序中存在一个错误。我在此处提交了一个拉取请求以对其进行修复:github.com/google/ExoPlayer/pull/6578。现在,此请求请求已提交给Excoplayer,问题已解决。