更新记录

1.3(2024-03-13)

修改1.2版本不能正常使用的问题。

1.2(2024-03-08)

修复Android端加密的视频下载后无法离线播放的问题。(内部处理逻辑和UTS版本保持一致)

1.1(2024-03-05)

提交uts版本错误恢复1.0版本

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


/ Title: XF-m3u8CacheServer Description: XF-m3u8CacheServer /

[startServer](#a1) [eventListener](#a2) [start](#a3) [pause](#a4) [isDownloadFinish](#a5) [getCacheSize](#a6) [clearCache](#a7) [storageSize](#a8)

概述

XF-m3u8CacheServer实现了iOS、Android系统下m3u8的下载功能,根据解析的m3u8文件分片ts文件进行下载。然后手机内部将下载的ts文件重新组装进行发布,以供本地播放。

模块接口

startServer

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

startServer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status : true,      //布尔型;true or false
  ip : '192.168.1.11',
  port : 8686,
  msg:'启动失败'
}

示例代码

var demo = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.startServer({},function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

eventListener

m3u8视频下载进度监听事件

eventListener(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 = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.eventListener({},function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

start

开始下载

start({params}, callback(ret))

params

url:

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

callback(ret)

ret:

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

示例代码

var demo = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.start({
    url : ''
}, function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

pause

暂停下载

pause({params}, callback(ret))

params

url:

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

callback(ret)

ret:

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

示例代码

var demo = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.pause({
    url : ''
}, function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

isDownloadFinish

是否下载完成

isDownloadFinish({params}, callback(ret))

params

url:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    data : {
        localUrl : '',   //本地可播放地址
        videoId :'', //视频videoId,
    },
    msg:''
}

示例代码

var demo = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.isDownloadFinish({
    url : ''
}, function(ret) {
    //JSON.stringify(ret)
});

可用性

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 = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.getCacheSize({},function(ret) {
    //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 = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.clearCache({},function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

storageSize

获取手机容量大小

storageSize(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,       //布尔型;true
  memory_total_size : 0,//ROM大小(仅安卓有效)
  memory_used_size : 0,//ROM使用大小(仅安卓有效)
  memory_card_total_size : 0,//外置大小
  memory_card_used_size : 0,//外置已经使用大小
}

示例代码

var demo = uni.requireNativePlugin('XF-m3u8CacheServer');
demo.storageSize(function(ret) {
    //JSON.stringify(ret)
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问