m3u8 跳片(边下边看支持)

如果你希望实现m3u8点播文件边下边看,拖动播放功能;那么你可以通过框架提供的跳片功能来实现。

具体方法是:

1、当用户拖动进度跳时,使用jumPeerIndex(index);让框架下载指定索引之后的ts切片。

2、然后通过@M3U8.onPeerStart@M3U8.onPeerComplete@M3U8.onPeerFail获取切片下载的状态。

3、最后在@M3U8.onPeerComplete中使用MediaPlayer播放下载完成的切片。

注意:该功能需要3.6.5以上版本支持

一、下载指定索引位置后的切片

jumPeerIndex(index);
参数 类型 说明
Index Int 下载index之后的切片

使用示例:

Aria.download(this).load(mUrl).asM3U8().asVod().jumPeerIndex(10);

二、切片状态回调

2.1、@M3U8.onPeerStart

当切片被开始下载时,框架会调用被@M3U8.onPeerStart注解的方法,通知应用该切片开始下载。

被注解的方法需要以下3个参数:

参数 类型 说明
m3u8Url String 该m3u8点播文件的下载地址
peerPath String 当前下载的ts切片的保存路径
peerIndex Int 当前下载的的ts切片的索引

使用示例

@M3U8.onPeerStart
void onPeerStart(String m3u8Url, String peerPath, int peerIndex) {
    ALog.d(TAG, "peer start, path: " + peerPath + ", index: " + peerIndex);
}

2.2、@M3U8.onPeerComplete

当切片被开始下载完成时,框架会调用被`@M3U8.onPeerComplete注解的方法,通知应用该切片已经下载完成。

被注解的方法需要以下3个参数:

参数 类型 说明
m3u8Url String 该m3u8点播文件的下载地址
peerPath String 当前下载的ts切片的保存路径
peerIndex Int 当前下载的的ts切片的索引

使用示例:

@M3U8.onPeerComplete
void onPeerComplete(String m3u8Url, String peerPath, int peerIndex) {
    ALog.d(TAG, "peer complete, path: " + peerPath + ", index: " + peerIndex);
    mVideoFragment.addPlayer(peerIndex, peerPath);
}

2.1、@M3U8.onPeerFail

当切片下载失败时,框架会调用被@M3U8.onPeerFail注解的方法,通知应用该切片下载失败。

被注解的方法需要以下3个参数:

参数 类型 说明
m3u8Url String 该m3u8点播文件的下载地址
peerPath String 当前下载的ts切片的保存路径
peerIndex Int 当前下载的的ts切片的索引

使用示例:

@M3U8.onPeerFail
void onPeerFail(String m3u8Url, String peerPath, int peerIndex) {
    ALog.d(TAG, "peer fail, path: " + peerPath + ", index: " + peerIndex);
}

三、切片最大任务数设置

有的时候,你可能需要控制同时下载的切片数量。使用setMaxTsQueueNum(num)能有效控制切片的最大任务数。

参数说明:

参数 类型 说明
num String 切片最大任务数

使用示例:

Aria.download(this).load(mUrl).asM3U8().asVod().setMaxTsQueueNum(1);

效果

拖动播放

Copyright © 2018 laoyuyu. | 蜀ICP备17031160号.            更新时间: 2019-07-17

results matching ""

    No results matching ""