首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Exoplayer android中检测HLS视频用于实况、视频点播或事件

如何在Exoplayer android中检测HLS视频用于实况、视频点播或事件
EN

Stack Overflow用户
提问于 2016-11-18 12:02:47
回答 2查看 1.2K关注 0票数 0

我已经在我的应用程序中集成了android 外星球员。我必须检测到HLS (.m3u8)流接收到的是现场直播或视频点播或事件,因此根据该控制器必须修改的播放器。我只有一个播放器的实例,所以应该处理所有支持的媒体,如vod或现场直播或事件。

我正在寻找一些调试点来了解m3u8解析器在外部播放器中的工作情况,以便能够接收到这些参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-17 06:37:49

您可以使用下面的代码播放.m3u8文件:-

代码语言:javascript
复制
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();

TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);

TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);

//Create the player using ExoPlayerFactory
videoPlayer = ExoPlayerFactory.newSimpleInstance(context,trackSelector);

Handler mHandler = new Handler();

String userAgent = Util.getUserAgent(context, "Exo Player");

DataSource.Factory dataSourceFactory = new DefaultHttpDataSourceFactory(
                userAgent, null,
                DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
                1800000,
                true);

HlsMediaSource mediaSource = new HlsMediaSource(Uri.parse(mediaUrl),dataSourceFactory, 1800000,mHandler, null);

if (mediaUrl != null) {
    videoPlayer.prepare(mediaSource);
    videoPlayer.setPlayWhenReady(true);
}
票数 2
EN

Stack Overflow用户

发布于 2016-11-25 10:50:38

目前还不支持Live区分。对于Live事件,您可以检查当前的时间线,但这并不是HLS特定的。为了区分实时流和vod流,在准备好后,通过查询播放器的持续时间来区分它。活动流将返回UNKNOWN_TIME,因为vod流将返回已知的流持续时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40676673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档