m3u8CacheServer
来自于:开发者立即使用
addEventListener start pause isDownloadFinish getCacheSize clearCache startServer
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
概述
m3u8CacheServer实现了iOS、Android系统下m3u8的下载功能,根据解析的m3u8文件分片ts文件进行下载。然后手机内部将下载的ts文件重新组装进行发布,以供本地播放。
固件要求
Android:2.3.1及以上 iOS:7.0及以上
模块接口
addEventListener
m3u8视频下载进度监听事件
addEventListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true
evenType : 'onDownloadSuccess',//状态类型 onDownloadSuccess、onDownloadPending、onDownloadPause、onDownloadProgress、onDownloadPrepare、onDownloadError
url :'', //视频url
videoId :'', //视频videoId,
state : 0,//0:默认状态 -1:下载排队 1:下载准备中 2:下载中 3:下载完成 4:下载出错 5:下载暂停 6:空间不足
totalSize : 0, //文件大小
progress : 0, //下载进度
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.addEventListener(function(ret) {
api.toast({
msg : JSON.stringify(ret)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
start
开始下载
start({params}, callback(ret, err))
params
url:
- 类型:字符串
- 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
videoId :'', //视频videoId,
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg:''
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.start({
url : ''
}, function(ret, err) {
api.toast({
msg : JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
pause
暂停下载
pause({params}, callback(ret, err))
params
url:
- 类型:字符串
- 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
videoId :'', //视频videoId,
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg:''
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.pause({
url : ''
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
isDownloadFinish
是否下载完成
isDownloadFinish({params}, callback(ret, err))
params
url:
- 类型:字符串
- 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
data : {
localUrl : '', //本地可播放地址
videoId :'', //视频videoId,
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg:''
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.isDownloadFinish({
url : ''
}, function(ret, err) {
api.toast({
msg:JSON.stringify(ret) + " " + JSON.stringify(err)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
getCacheSize
获取缓存大小
getCacheSize({params}, callback(ret))
params
url:
- 类型:字符串
- 描述:(可选项)M3U8下载地址,不传该值则获取所有m3u8缓存的大小。
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true
cacheSize : 0 //缓存大小
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.getCacheSize(function(ret) {
api.toast({
msg:JSON.stringify(ret)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
clearCache
清除缓存文件
clearCache({params}, callback(ret))
params
url:
- 类型:字符串
- 描述:(可选项)M3U8下载地址,不传该值则清除所有m3u8缓存。
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.clearCache(function(ret) {
api.toast({
msg:JSON.stringify(ret)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本
startServer
开启本地服务(可以多次执行,需要在合适的时机执行,保证服务不会挂掉)
startServer(callback(ret,err))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status : true, //布尔型;true or false
ip : '192.168.1.11',
port : 8686
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg:'启动失败'
}
示例代码
var demo = api.require('m3u8CacheServer');
demo.startServer(function(ret) {
api.toast({
msg:JSON.stringify(ret)
});
});
可用性
iOS、Android系统
可提供的1.0.0及更高版本