我正在使用 Exoplayer 在 TextureView 上流式传输视频。
我需要获取视频的宽度、高度和旋转以保持纵横比。
为此,我正在使用FFmpegMediaMetadataRetriever。
问题是检索元数据需要相当多的时间,因为数据源是一个 URL。
任何替代更快的解决方案?
找到了解决办法。回答我自己的问题,以便它可以帮助来这里的人。
解决方案是实现以下方法 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)
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |