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对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. evenType : 'onDownloadSuccess',//状态类型 onDownloadSuccess、onDownloadPending、onDownloadPause、onDownloadProgress、onDownloadPrepare、onDownloadError
  4. url :'', //视频url
  5. videoId :'', //视频videoId,
  6. state : 0,//0:默认状态 -1:下载排队 1:下载准备中 2:下载中 3:下载完成 4:下载出错 5:下载暂停 6:空间不足
  7. totalSize : 0, //文件大小
  8. progress : 0, //下载进度
  9. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.addEventListener(function(ret) {
  3. api.toast({
  4. msg : JSON.stringify(ret)
  5. });
  6. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

start

开始下载

start({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. videoId :'', //视频videoId,
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:''
  3. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.start({
  3. url : ''
  4. }, function(ret, err) {
  5. api.toast({
  6. msg : JSON.stringify(ret) + " " + JSON.stringify(err)
  7. });
  8. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

pause

暂停下载

pause({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. videoId :'', //视频videoId,
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:''
  3. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.pause({
  3. url : ''
  4. }, function(ret, err) {
  5. api.toast({
  6. msg:JSON.stringify(ret) + " " + JSON.stringify(err)
  7. });
  8. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

isDownloadFinish

是否下载完成

isDownloadFinish({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必填项)M3U8下载地址,该地址必须为可解析的地址。不能是直播地址,请开发者自行控制。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. data : {
  4. localUrl : '', //本地可播放地址
  5. videoId :'', //视频videoId,
  6. }
  7. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:''
  3. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.isDownloadFinish({
  3. url : ''
  4. }, function(ret, err) {
  5. api.toast({
  6. msg:JSON.stringify(ret) + " " + JSON.stringify(err)
  7. });
  8. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getCacheSize

获取缓存大小

getCacheSize({params}, callback(ret))

params

url:

  • 类型:字符串
  • 描述:(可选项)M3U8下载地址,不传该值则获取所有m3u8缓存的大小。

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. cacheSize : 0 //缓存大小
  4. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.getCacheSize(function(ret) {
  3. api.toast({
  4. msg:JSON.stringify(ret)
  5. });
  6. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

clearCache

清除缓存文件

clearCache({params}, callback(ret))

params

url:

  • 类型:字符串
  • 描述:(可选项)M3U8下载地址,不传该值则清除所有m3u8缓存。

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true
  3. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.clearCache(function(ret) {
  3. api.toast({
  4. msg:JSON.stringify(ret)
  5. });
  6. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

startServer

开启本地服务(可以多次执行,需要在合适的时机执行,保证服务不会挂掉)

startServer(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status : true, //布尔型;true or false
  3. ip : '192.168.1.11',
  4. port : 8686
  5. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg:'启动失败'
  3. }

示例代码

  1. var demo = api.require('m3u8CacheServer');
  2. demo.startServer(function(ret) {
  3. api.toast({
  4. msg:JSON.stringify(ret)
  5. });
  6. });

可用性

iOS、Android系统

可提供的1.0.0及更高版本