m3u8Download
来自于:开发者立即使用
addEventListener start pause resume mergeMp4File isDownloadFinish getCacheSize clearCache
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
概述
m3u8Download实现了iOS系统下m3u8的下载功能,根据解析的m3u8文件分片ts文件进行下载。得到的是对应分片ts文件转换后的mp4文件列表。同时还有一个耗时合并接口,由于m3u8所有分片文件合并后的文件很大,所以合并耗时接口单独提取出来供开发者使用。
常见错误码。
错误码 | 错误描述 |
---|---|
100 | 解析失败啦!换个视频地址试试 |
101 | 视频没有下载完,需调用恢复接口继续下载 |
102 | 视频地址异常,请重新调用下载接口下载 |
103 | 分片视频已下载完成,请调用合并接口进行视频合成 |
104 | 已经暂停状态,不能重复执行暂停接口 |
105 | 已经开始状态,不能重复执行开始接口 |
106 | 已下载完成,获取视频地址可以进行播放 |
107 | 没有可转换的分片视频文件进行合成 |
108 | 视频转换处理失败,重新下载 |
模块接口
addEventListener
m3u8视频下载监听事件
addEventListener({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(可选项)视频ID,当不传某一个唯一的视频ID时,该监听会返回所有视频下载信息,当设置具体的视频ID时,只返回设置的视频ID的下载信息。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
evenType : 'DownloadFail',//状态类型 DownloadFail、DownloadFinish、DownloadProgress
DownloadVideoId :'', //视频ID
DownloadData : [], //下载完成后返回的视频数组 仅DownloadFinish有值
progress : 0, //下载进度 仅DownloadProgress有值
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
开始下载
start({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
url:
- 类型:字符串
- 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
暂停下载
pause({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
恢复下载
resume({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
是否下载完成
isDownloadFinish({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
videoUrl : '', //合并后的视频地址
videoData : [] //下载成功的分片视频地址
}
err:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本
mergeMp4File
合并分片视频为MP4文件
mergeMp4File({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
isCleanTempFile:
- 类型:布尔型
- 描述:(可选项)是否删除临时文件
- 默认值:false
isSaveToLibrary:
- 类型:布尔型
- 描述:(可选项)是否保存视频到相册
- 默认值:true
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
获取缓存大小
getCacheSize({params}, callback(ret,err))
params
videoId:
- 类型:字符串
- 描述:(可选项)视频唯一的ID,不填则获取模块所有缓存视频文件夹大小。
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true|false
cacheSize : 0 //缓存大小
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
清除缓存文件
clearCache({params}, callback(ret,err))
params
videoId:
- 类型:字符串
- 描述:(可选项)视频唯一的ID,不填则清除模块所有缓存视频文件夹大小。
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本