为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。
m3u8Download实现了iOS系统下m3u8的下载功能,根据解析的m3u8文件分片ts文件进行下载。得到的是对应分片ts文件转换后的mp4文件列表。同时还有一个耗时合并接口,由于m3u8所有分片文件合并后的文件很大,所以合并耗时接口单独提取出来供开发者使用。
常见错误码。
错误码 | 错误描述 |
---|---|
100 | 解析失败啦!换个视频地址试试 |
101 | 视频没有下载完,需调用恢复接口继续下载 |
102 | 视频地址异常,请重新调用下载接口下载 |
103 | 分片视频已下载完成,请调用合并接口进行视频合成 |
104 | 已经暂停状态,不能重复执行暂停接口 |
105 | 已经开始状态,不能重复执行开始接口 |
106 | 已下载完成,获取视频地址可以进行播放 |
107 | 没有可转换的分片视频文件进行合成 |
108 | 视频转换处理失败,重新下载 |
m3u8视频下载监听事件
addEventListener({params}, callback(ret, err))
videoId:
ret:
{
status: true, //布尔型;true
evenType : 'DownloadFail',//状态类型 DownloadFail、DownloadFinish、DownloadProgress
DownloadVideoId :'', //视频ID
DownloadData : [], //下载完成后返回的视频数组 仅DownloadFinish有值
progress : 0, //下载进度 仅DownloadProgress有值
}
err:
{
msg: ''
}
var demo = api.require('m3u8Download');
demo.addEventListener({
videoId : 'videoId'
},function(ret, err) {
api.toast({
msg : JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
开始下载
start({params}, callback(ret, err))
videoId:
url:
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage:''
}
var demo = api.require('m3u8Download');
demo.start({
videoId : videoId,
url : url
}, function(ret, err) {
api.toast({
msg : JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
暂停下载
pause({params}, callback(ret, err))
videoId:
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage:''
}
var demo = api.require('m3u8Download');
demo.pause({
videoId : videoId
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
恢复下载
resume({params}, callback(ret, err))
videoId:
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage:''
}
var demo = api.require('m3u8Download');
demo.resume({
videoId : videoId
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
是否下载完成
isDownloadFinish({params}, callback(ret, err))
videoId:
ret:
{
status: true, //布尔型;true||false
videoUrl : '', //合并后的视频地址
videoData : [] //下载成功的分片视频地址
}
err:
{
errorCode: -1,
errorMessage:''
}
var demo = api.require('m3u8Download');
demo.isDownloadFinish({
videoId : videoId
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
合并分片视频为MP4文件
mergeMp4File({params}, callback(ret, err))
videoId:
isCleanTempFile:
isSaveToLibrary:
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage:''
}
var demo = api.require('m3u8Download');
demo.mergeMp4File({
videoId : videoId,
isCleanTempFile : true
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
获取缓存大小
getCacheSize({params}, callback(ret,err))
videoId:
ret:
{
status: true, //布尔型;true|false
cacheSize : 0 //缓存大小
}
err:
{
errorCode: -1,
errorMessage:'视频id不存在!'
}
var demo = api.require('m3u8Download');
demo.getCacheSize(function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本
清除缓存文件
clearCache({params}, callback(ret,err))
videoId:
ret:
{
status: true, //布尔型;true|false
}
err:
{
errorCode: -1,
errorMessage:'视频id不存在!'
}
var demo = api.require('m3u8Download');
demo.clearCache(function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
iOS系统
可提供的1.0.0及更高版本