m3u8Download
addEventListener pause mergeMp4File getCacheSize
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
概述
m3u8Download实现了iOS系统下m3u8的下载功能,根据解析的m3u8文件分片ts文件进行下载。得到的是对应分片ts文件转换后的mp4文件列表。同时还有一个耗时合并接口,由于m3u8所有分片文件合并后的文件很大,所以合并耗时接口单独提取出来供开发者使用。
常见错误码。
addEventListener
m3u8视频下载监听事件
addEventListener({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(可选项)视频ID,当不传某一个唯一的视频ID时,该监听会返回所有视频下载信息,当设置具体的视频ID时,只返回设置的视频ID的下载信息。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
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 对象
- 内部字段:
{
}
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
暂停下载
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
errorCode: -1,
errorMessage:''
}
可用性
iOS系统
可提供的1.0.0及更高版本
resume
恢复下载
resume({params}, callback(ret, err))
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
}
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({
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
可用性
iOS系统
可提供的1.0.0及更高版本
mergeMp4File
合并分片视频为MP4文件
params
videoId:
- 类型:字符串
- 描述:(必填项)视频唯一的ID。
isCleanTempFile:
- 类型:布尔型
- 描述:(可选项)是否删除临时文件
- 默认值:false
isSaveToLibrary:
- 类型:布尔型
- 描述:(可选项)是否保存视频到相册
- 默认值:true
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
示例代码
var demo = api.require('m3u8Download');
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系统