获取用于调整视频大小的元数据信息

Div*_*ash 3 android exoplayer

我正在使用 Exoplayer 在 TextureView 上流式传输视频。

我需要获取视频的宽度、高度和旋转以保持纵横比。

为此,我正在使用FFmpegMediaMetadataRetriever。

问题是检索元数据需要相当多的时间,因为数据源是一个 URL。

任何替代更快的解决方案?

Div*_*ash 6

找到了解决办法。回答我自己的问题,以便它可以帮助来这里的人。

解决方案是实现以下方法 SimpleExoPlayer.VideoListener

在该onVideoSizeChanged()方法中,您将获得宽度、高度和旋转。然后您可以操作这些值并将转换应用到您的 TextureView。

@Override
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) 
{ 
    // do your resizing stuff
}
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记添加侦听器:

player.addVideoListener(this);
Run Code Online (Sandbox Code Playgroud)