我已经在我的应用程序中集成了android 外星球员。我必须检测到HLS (.m3u8)流接收到的是现场直播或视频点播或事件,因此根据该控制器必须修改的播放器。我只有一个播放器的实例,所以应该处理所有支持的媒体,如vod或现场直播或事件。
我正在寻找一些调试点来了解m3u8解析器在外部播放器中的工作情况,以便能够接收到这些参数。
发布于 2020-03-17 06:37:49
您可以使用下面的代码播放.m3u8文件:-
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);
}发布于 2016-11-25 10:50:38
目前还不支持Live区分。对于Live事件,您可以检查当前的时间线,但这并不是HLS特定的。为了区分实时流和vod流,在准备好后,通过查询播放器的持续时间来区分它。活动流将返回UNKNOWN_TIME,因为vod流将返回已知的流持续时间。
https://stackoverflow.com/questions/40676673
复制相似问题