android - 如何以编程方式获取视频类型 - ExoPlayer 中的 Live 或 DVR
问题描述
ExoPlayer
我在我的应用程序中使用了 (2.10.0)的最新版本Android
。我想用不同的视频播放器界面播放不同的视频类型(VOD、LIVE、DVR)。例如,我想在 VOD 和 DVR 视频中显示DefaultTimeBar
控件ExoPlayer
,并且我想在视频直播时隐藏此视图。
所有视频都播放良好,但我不知道如何以编程方式检查视频类型。我正在寻找信息,发现我可以使用标志isCurrentWindowDynamic
和对象isCurrentWindowSeekable
。SimpleExoPlayer
但是当我在日志中显示它们时,我会看到下一个:
1) 点播视频,网址="https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/hls/GoogleIO-2014-CastingToTheFuture.m3u8"
videoPlayer?.isCurrentWindowDynamic // returns false
videoPlayer?.isCurrentWindowSeekable // returns true
2) DVR 视频, url = " https://svs.itworkscdn.net/lanatvlive/lana/playlist.m3u8?DVR "
videoPlayer?.isCurrentWindowDynamic // returns true
videoPlayer?.isCurrentWindowSeekable // returns true
3)直播视频,网址=“ https://live-k2301-kbp.1plus1.video/189931/smil:189931.smil/playlist.m3u8 ”
videoPlayer?.isCurrentWindowDynamic // returns true
videoPlayer?.isCurrentWindowSeekable // returns true
DVR 和 LIVE 中的两个标志是相同的。那么,如何以编程方式区分类型 DVR 或 LIVE 呢?
解决方案
推荐阅读
- c - 我在链表开头插入数字的代码无法编译
- angular - identityserver 发现文档第一次慢(well-known/openid-configuration)
- javascript - 如何使用自定义转换函数将一种泛型类型的结构映射到另一种,使其在编译时保持类型安全?
- haskell - 如何在 Haskell 中访问没有记录语法的自定义数据类型的字段?
- python - Gurobi 使用 Python:生成器的模型开/关状态
- flutter - 如何在 Flutter 中的 BottomSheet 上重叠按钮?
- sap-cloud-sdk - 文档服务的 SDK 支持
- php - Symfony 5.3 上的 LDAP 表单登录和表单登录如何与新的基于 Authenticator 的安全系统一起使用?
- php - 将打开的购物车重定向到 xampp 仪表板页面
- angular - 获取和设置 Angular 共享数据