我怎样才能让变形视频与 exoplayer leanback 一起使用?

How can I get anamorphic video to work with exoplayer leanback?

我正在播放本应以 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());

听众class

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);
    }
}

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