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

标签 android exoplayer

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

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

为此我使用了 FFmpegMediaMetadataRetriever .

问题是检索元数据需要花费大量时间,因为数据源是一个 URL。

还有其他更快的解决方案吗?

最佳答案

找到解决方案。回答我自己的问题,以帮助来到这里的人。

解决方案是实现 SimpleExoPlayer.VideoListener 的方法

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

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

此外,不要忘记添加监听器:

player.addVideoListener(this);

关于android - 获取用于调整视频大小的元数据信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238685/

相关文章:

android - Android中ExoPlayer的缓存实现

android - 如何使用 google android Exoplayer 为广告和视频使用单一播放器

android - Exoplayer 2 防止视频播放时屏幕变暗

Android jetpack 导航组件来自对话框

java - Android:是否可以直接从 setOnClickListener() 调用方法?

android - 无线管理器:Android

video-streaming - 通过 HLS 提供短视频(大约 1 到 3 分钟)是个好主意吗?

java - 从 AlertDialog 输入向 RecyclerView 添加项目

java - Android studio 无法解析符号 'NotificationChannel'

android - AmbiguousViewMatcherException Espresso