首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExoMedia无法播放m3u8 url

ExoMedia无法播放m3u8 url
EN

Stack Overflow用户
提问于 2018-11-07 17:31:28
回答 1查看 294关注 0票数 0

我正在使用Android 5.1+和这个库https://github.com/brianwernick/ExoMedia/,我知道这个库提供了VideoView可以播放m3u8网址。但是当我尝试的时候,它不起作用。这是网站的link,我从它的Rss上得到了m3u8的网址。我试过一些其他的示例m3u8网址,它工作得很好。所以也许问题出在这个网站的链接上,但我不知道为什么,有什么帮助吗?

代码语言:javascript
复制
private void setupVideoView() {
    videoView = (VideoView)findViewById(R.id.video_view);
    videoView.setOnPreparedListener(this);

    videoView.setVideoURI(Uri.parse("https://hls.mediacdn.vn/vtv/2018/11/7/0711thoi-tiet-12h30-1541575206215339010832-8cab6.mp4/master.m3u8"));
}

@Override
public void onPrepared() {
    videoView.start();
}
EN

回答 1

Stack Overflow用户

发布于 2018-11-08 06:12:35

您需要使用HlsMediaSource

代码语言:javascript
复制
    HlsMediaSource hlsMediaSource = new HlsMediaSource(Uri.parse(hlsVideoUri), dataSourceFactory, mainHandler, new AdaptiveMediaSourceEventListener() {
        @Override
        public void onLoadStarted(DataSpec dataSpec, int dataType, int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs) {

        }

        @Override
        public void onLoadCompleted(DataSpec dataSpec, int dataType, int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs, long bytesLoaded) {

        }

        @Override
        public void onLoadCanceled(DataSpec dataSpec, int dataType, int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs, long bytesLoaded) {

        }

        @Override
        public void onLoadError(DataSpec dataSpec, int dataType, int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs, long bytesLoaded, IOException error, boolean wasCanceled) {

        }

        @Override
        public void onUpstreamDiscarded(int trackType, long mediaStartTimeMs, long mediaEndTimeMs) {

        }

        @Override
        public void onDownstreamFormatChanged(int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, long mediaTimeMs) {

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

https://stackoverflow.com/questions/53186685

复制
相关文章

相似问题

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