更新记录

1.6.0(2025-10-23) 下载此版本

新增:【插件】支持api方式获取下载列表、批量删除、ios支持控制下载进度回调频率 修复:【demo】安卓调整播放音量无法跟随系统

1.5.2(2025-04-03) 下载此版本

适配Xcode16

1.5.1(2025-03-31) 下载此版本

修复:IOS适配Xcode16打包

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:9 - 17

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


本插件为获得场景视频云点播原生插件,开发者可以通过在uni工程中集成本插件来制作原生应用程序。插件提供获得场景视频的播放、下载等功能。

插件组成

插件包含一个Component扩展、3个Module扩展

  1. CCView 原生播放器UI组件
  2. Bokecc-CcVodUniPlugin-CCDownload 下载组件
  3. Bokecc-CcVodUniPlugin-CCProjection 投屏组件
  4. Bokecc-CcVodUniPlugin-CCNetSpeedModule 网速组件

使用限制

  1. 本插件只支持vue2,不支持vue3,uni工程Vue版本请确保是2
  2. 本插件只支持播放已上传至获得场景admin后台的视频,插件内部通过视频的唯一id获取视频播放信息,不支持按视频地址进行播放
  3. 本插件只可用来制作原生应用程序,如果要制作微信小程序、h5网页,请对接微信小程序插件h5播放器 SDK

1.插件集成

对于第一次使用原生插件的开发者,需遵循上文的原生插件通用使用流程。这里给出使用图示。有原生插件使用经验的开发者可直接移步到2.快速开始

1 购买插件,选择该插件绑定的项目

选择项目

绑定包名

购买成功

2 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块

勾选插件

勾选插件确认弹窗

选择完成

3 根据插件文档开发代码,在代码中引用插件,调用插件功能

调用插件

4 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试

制作自定义基座

制作自定义基座

制作自定义基座弹窗

点击打包,成功后,控制台会有绿色的文字提示

运行

运行菜单

运行弹窗

app界面

5 开发完毕后正式云打包

云打包菜单

2.快速开始

基础播放器组件(CCView)

播放器组件为component类型,仅可在nvue页面中使用。为纯播放器视图,开发者可自行实现状态控制部分的样式,也可以下载示例工程复用示例的播放器实现。

页面添加播放器视图组件

播放器视图组件名称为 CCView,可以通过视频id播放获得场景视频

在nvue页面中添加如下代码:

<CCView 
        ref="CCView"
        class="cc-view"
        @onCCViewInit="onCCViewInit"
        @onPrepared="onPrepared"
        @onCompletion="onCompletion"
        @onBufferingUpdate="onBufferingUpdate"
        @onBufferingStart="onBufferingStart"
        @onBufferingEnd="onBufferingEnd"
        @onLog="onLog"
        @onPlayError="onPlayError"></CCView>

注意:CCView默认无尺寸,需要自行添加样式设置宽高!

设置播放信息(必要步骤)

CCView初始化成功之后,会触发视图初始化通知事件onCCViewInit,在onCCViewInit中需要调用设置播放信息API setVideoPlayInfo

methods: {
    onCCViewInit() {
       const options = {
           videoId: this.videoId, // 视频id
           userId: this.userId, // 用户id
           apiKey: this.apiKey // apiKey
       }
       this.$refs.CCView.setVideoPlayInfo(options);
    }
}

setVideoPlayInfo执行成功之后,会触发视频准备就绪事件onPrepared,此时视频已准备就绪,在onPrepared中调用开始播放等操作

API及回调通知的使用

在CCView组件上添加 ref="CCView", 即可通过this.$refs.CCView调用播放器丰富的API

例如开始播放视频

this.$refs.CCView.start();

在CCView组件上添加@xxx="xxx",即可定义回调事件,xxx为回调事件名称

例如自定义onPrepared视频准备就绪可播放回调

<template>
    <CCView @onPrepared="onPrepared"></CCView>
</template>

<script>
    // ...
    methods: {
        onPrepared() {
            console.log('视频准备就绪');
        }
    }
</script>

api详细说明请参考 3.API说明

视频下载组件

下载组件为独立的module类型, 需要在 App.vue中引入,并在onLaunch时初始化

使用下载组件

// APP.vue
const CCDownload = uni.requireNativePlugin('HD-CCView-CCDownload');

// 初始化
onLaunch: function () {
    const { platform } = uni.getSystemInfoSync();
    if (platform === 'android') {
        CCDownload.init({
            userId: this.userId,
            apiKey: this.apiKey
        });
    } else {
        CCDownload.initDownloadManager();
    }
}

开始下载

Downloader.start(params); // 参数格式见下方API说明

监听下载状态更新

const globalEvent = uni.requireNativePlugin('globalEvent');
// ios监听下载进度更新
globalEvent.addEventListener('downloadProgressUpdate', (e) => {}
// android监听下载进度
更新globalEvent.addEventListener('onUpdate', (e) => {}
// android、ios监听下载完成
globalEvent.addEventListener('onDownloadFinish', (e) => {}

投屏组件

投屏为独立的module类型, 需要在 App.vue中引入,并在onLaunch时初始化

使用投屏组件

// APP.vue
const CCProjection = uni.requireNativePlugin('HD-CCView-CCProjection');

//初始化
onLaunch: function () {
    CCProjection.initProjectionScreen();
}

监听可用投屏设备

const globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('onDevice', (e) => {})

开始投屏

Projection.startPush(params); // 参数格式见下方API说明

实时网速组件

实时网速组件为独立的module类型,需要在App.vue中引入, 并在onLaunch时初始化

使用实时网速组件

// APP.vue
const CCNetSpeedModule = uni.requireNativePlugin('HD-CCView-CCNetSpeedModule');
// 初始化并开启网络检测
onLaunch: function () {
    if (ios) {
        CCNetSpeedModule.initInternetSpeed();
        CCNetSpeedModule.speedStart();
    }
    if (android) {
        CCNetSpeedModule.getNetSpeed();
    }
}

监听实时网速

const globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('onNetSpeed', (e) => {})

3.API说明

基础播放器

1.设置播放信息

this.$refs.CCView.setVideoPlayInfo(JsonObject json,UniJSCallback callback)

1.作用

初始化播放信息

2.注意

3.参数

参数名 类型 说明
JsonObject JsonObject 参数1:videoId(视频id)
参数2:userId(用户id)
参数3:apiKey (请求唯一标识)
参数4:verificationCode(授权验证码,如果admin后台开启授权播放则必须传
参数5:customId (自定义流量统计标识, 非必须)
callback UniJSCallback 回调(当前无作用)
  1. apiKey模式与sid模式说明 如果开发者对接了SDKSID接口验证,则参数apiKey可置空,但在调用setVideoPlayInfo之前需调用setSdkSid去设置sid

2. 设置sid

this.$refs.CCView.setSdkSid(sid)

1.作用

   设置sid

2.注意

   setVideoPlayInfo参数传递apiKey的话,则无需调用该api
   sid的获取请参考SDKSID接口验证文档: https://doc.bokecc.com/vod/developer/base/sdksid/sdksid.html

3.开始播放

this.$refs.CCView.start()

1.作用

开始播放

2.注意

如果设置了自动播放无需调用

3.参数

参数名 类型 说明

4.暂停

this.$refs.CCView.pause()

1.作用

暂停播放

2.注意

3.参数

参数名 类型 说明

5.停止

this.$refs.CCView.stop()

1.作用

停止播放

2.注意

3.参数

参数名 类型 说明

6.释放资源

this.$refs.CCView.destroy()

1.作用

释放所有播放资源

2.注意

3.参数

参数名 类型 说明

7.获取播放总时长

this.$refs.CCView.getDuration(UniJSCallBack callback)

1.作用

 获取当前视频的总长度,单位:秒

2.注意

 需要在onPrepared触发后调用

3.参数

参数名 类型 说明
callback UniJSCallBack 返回总时间

8.获取当前进度

this.$refs.CCView.getCurrentPosition(UniJSCallBack callback)

1.作用

 获取当前播放的进度,单位:秒

2.注意

 需要在onPrepared触发后调用

3.参数

参数名 类型 说明
callback UniJSCallBack 返回当前时间

9.跳转

this.$refs.CCView.seekTo(long msec)

1.作用

跳转到某一位置

2.注意

3.参数

参数名 类型 说明
msec Number 要跳转的时间(秒)

10.自动播放

this.$refs.CCView.setAutoPlay(boolean autoPlay)

1.作用

设置自动播放

2.注意

3.参数

参数名 类型 说明
autoPlay boolean true播放/false不自动播放

11.获取自动播放状态

this.$refs.CCView.isAutoPlay(UniJSCallBack callback)

1.作用

 获取自动播放

2.注意

3.参数

参数名 类型 说明
callback UniJSCallBack true播放/false不自动播放

12. 获取清晰度列表

this.$refs.CCView.getDefinitions(callback)

1.作用

 获取清晰度列表

2.注意

需在onPrepared触发后调用

3.参数

参数名 类型 说明
callback UniJSCallBack

13.设置清晰度

this.$refs.CCView.setDefinition(JSonObject jsonObject)

1.作用

设置清晰度

2.注意

3.参数

参数名 类型 说明
jsonObject JSonObject quality:清晰度,通过getDefinition获取

14.获取清晰度

this.$refs.CCView.getDefinition(UniJSCallBack callback)

1.作用

获取清晰度

2.注意

3.参数

参数名 类型 说明
callback UniJSCallBack [{
"quality":10,
"desp":"描述"
}
]

15.设置倍速

this.$refs.CCView.setSpeed(float speed)

1.作用

设置倍速

2.注意

3.参数

参数名 类型 说明
speed float

16.获取标题

this.$refs.CCView.getVideoTitle(UniJSCallBack callback)

1.作用

获取标题

2.注意 需在onPrepared触发后调用 ​ 3.参数

参数名 类型 说明
callback UniJSCallBack

17.获取流媒体类型

this.$refs.CCView.getMediaType(UniJSCallBack callback)

1.作用

获取媒体类型

2.注意

3.参数

参数名 类型 说明
callback UniJSCallBack 1.视频
2.音频

18. 截图

this.$refs.CCView.getScreenShot()

1.作用

视频截图

2.注意

3.参数

参数名 类型 说明

19. 音视频切换

// 安卓
this.$refs.CCView.playModelChanged(this.isVideoMode)
// ios
this.$refs.CCView.changeMedia(this.isVideoMode ? this.iosPlayModeData.radios[0] : this.iosPlayModeData.videos[0])

1.作用

切换音频或视频播放

2.注意

1 前提
需要先获取当前视频是否支持音频播放
安卓通过回调onPlayMode获取
ios通过 this.$refs.CCView.getVideoData(callback); 获取
2 参数
安卓传入参数true表示 切换到音频播放 ,false 表示切换到视频播放
ios传入上一步获取的音频列表的第一项,切换到音频播放,传入上一步获取的视频列表的第一项,切换到视频播放

3.参数

参数名 类型 说明

20. 弹幕初始化(ios)

this.$refs.CCView.barrageInit();

1.作用

初始化弹幕功能

2.注意

1. 仅ios需要调用
2. 在onPrepared中调用

3.参数

参数名 类型 说明

21. 设置弹幕视频id (ios)

this.$refs.CCView.setBarrageVideoId(id);

1.作用

设置弹幕视频id

2.注意

1. 仅ios需要调用
2. 在onPrepared中调用

3.参数

参数 类型 说明
id string 视频id

22. 发送弹幕

this.$refs.CCView.sendBarrageWithBarrage(params);

1.作用

发送弹幕

2.注意

3.参数

参数 类型 说明
content string 弹幕内容
fc string 颜色 0xffffff (注意格式)
pt number 弹幕时间点 (单位毫秒)

23. 获取知识点数据 (ios)

this.$refs.CCView.getKnowledgeData(params, callback)

1.作用

获取知识点数据列表

2.注意

仅ios需要调用

3.参数

参数 类型 说明
videoId string 视频id
userId string 用户id
callback function 返回值为知识点数据

24. 获取音视频数据 (ios)

this.$refs.CCView.getVideoData(callback);

1.作用

停止播放

2.注意

仅ios需要调用
返回数据调用 this.$refs.CCView.playModelChanged的时候作为参数用到

3.参数

参数 类型 说明
callback function 返回值格式
ischange : true / false 是否支持音频播放
radios: [] 音频数据
videos:[] 视频数据

25. 获取视频地址

this.$refs.CCView.getPlayUrl(callback)

1.作用

获取视频地址

2.注意

调用投屏api时会作为参数用到

3.参数

参数 类型 说明
callback function 返回值: string 视频地址
投屏时用到

26. 获取视频尺寸(安卓)

this.$refs.CCView.getVideoSize(callback)

1.作用

  安卓获取视频画面尺寸

2.注意

安卓需要调用该api获取视频宽高,用来自行实现视频的铺满或自适应,ios有提供api: this.$refs.CCView.changeAspectType() 自适应;this.$refs.CCView.changeFillType() 铺满

3.参数

参数 类型 说明
callback function 返回值: obj 视频尺寸
obj.videoHeight视频高度
obj.videoWidth 视频宽度

27. 视频切换至铺满默认(ios)

this.$refs.CCView.changeFillType()

1.作用

  视频画面切换到铺满容器

2.注意

  仅ios生效

28. 视频切换至自适应默认(ios)

this.$refs.CCView.changeAspectType()

1.作用

  视频画面切换到适应容器

2.注意

  仅ios生效

29. 播放已下载视频

this.$refs.CCView.playLocalVideo(JsonObject json);
  1. 作用 播放已缓存(下载)的视频资源
  2. 注意 ios传入参数为下载进度返回数据外***ideoTitle、definition
  3. 参数
参数 类型 说明
json JsonObject videoId:视频id
videoTitle: 视频标题
format: 视频格式
apiKey: apiKey
definition: 清晰度

30. 获取视频信息

this.$refs.CCView.getVideoInfo(callback)

1.作用

获取视频信息(默认清晰度等)

2.注意

3.参数

参数 类型 说明
callback function 返回值: Object 视频信息

31. 指定视频播放清晰度

this.$refs.CCView.setVideoQuality(quality)

1.作用

设置播放清晰度

2.注意

在setVideoPlayInfo前调用,设置播放清晰度

3.参数

参数 类型 说明
quality init 10 清晰 20 高清

32. 切换备用线路


this.$refs.CCView.switchSparLine();
  1. 作用

    视频播放由主线路切换至备用线路
  2. 注意

    只可由主线路单向切至备用线路
  3. 参数 无

33. 回调说明

回调名称 触发时间 备注
onCCViewInit 视图初始化完成 在该回调中执行setVideoPlayInfo
onPrepared 视频准备就绪,可播放 在该回调中执行getVideoTitle等方法获取视频详细信息
onCompletion 播放完毕
onBufferingUpdate 当前缓冲进度 返回值:e.detail.duration 缓存时长
onBufferingStart 缓冲开始
onBufferingEnd 缓冲结束
onLog 调用日志
onPlayError 播放错误
-10000 无法播放
返回值:视频播放异常信息 错误码详情
acceptBarrageEvent 接收弹幕数据 返回值:e.detail.barrageList 弹幕列表
barrageError 弹幕异常
sendBarrageSuccess 弹幕发送成功
sendBarrageError 弹幕发送失败
Knowledge (安卓) 获取知识点数据 返回值:e.detail 知识点数据
onPlayMode (安卓) 是否支持音频播放 返回值:e.detail.playmode (0 为 支持音视频切换
onMenuPlay 用户点击播放控件的播放按钮时触发
onMenuPause 用户点击播放控件的暂停按钮时触发
onMenuPrevious 用户点击播放控件的上一个按钮时触发
onMenuNext 用户点击播放控件的下一个按钮时触发

下载组件

1. 初始化下载组件

// 安卓
CCDownload.init(JsonObject);
// ios
CCDownload.initDownloadManager();

1.作用

初始化下载组件

2.注意

App全局调用一次

3.参数

参数名 类型 说明
JsonObject JsonObject 参数1:userId(用户id)
参数2:apiKey (请求唯一标识)
参数3:verificationCode(授权验证码,如果admin后台开启授权播放则必须传
  1. apiKey模式与sid模式说明 如果开发者对接了SDKSID接口验证,则参数apiKey可置空,但在调用init/initDownloadManager之前需调用setSdkSid去设置sid

2. 设置sid

// ios
CCDownload.setSdkSid(sid)
// android
CCDownload.setSdkSid(uid, sid)

1.作用

   设置sid

2.注意

   init/initDownloadManager参数传递apiKey的话,则无需调用该api
   sid的获取请参考SDKSID接口验证文档:https://doc.bokecc.com/vod/developer/base/sdksid/sdksid.html

3.参数

参数名 类型 说明
uid string userId(用户id)安卓需要
sid string sid(SDKSID)

3. 获取下载好的视频路径(安卓)

CCDownload.getFilePath();

1.作用 告诉安卓端下载好的视频的路径, 目的是在APP在断网情况下,缓存视频可以正常播放 2.注意 调用时机:在CCDownload.init之前调用

4. 开始下载

CCDownload.startWithDownload(JsonArray | JsonObj);

1.作用

开始下载

2.注意

安卓、ios参数格式有差异

3.参数

参数名 类型 示例 说明
JsonArray(安卓) Array list.map(item => {
return {
userId: this.userId,
apiKey: this.apiKey,
verificationCode: this.verificationCode,
videoId: item.videoId,
verificationCode: this.verificationCode,
downloadTitle: item.videoTitle
videoCover: item.videoCover
definition: item.definition }
}
userId:用户Id
apiKey:请求唯一标识
verificationCode:
videoId:视频Id
verificationCode:
downloadTitle: 标题
videoCover: 视频封面
definition:清晰度
JsonObj(ios) Object {
userId: this.userId,
apiKey: this.apiKey,
verificationCode: this.verificationCode,
videoIds: list.map(item => item.videoId)
definitions: list.map(item => item.definition)}
userId:用户Id
apiKey:请求唯一标识
verificationCode:
videoIds:视频id列表
definitions: 清晰度列表

5. 暂停下载

CCDownload.setDownloadPause(JsonArray | JsonObj)
  1. 作用

    暂停下载
  2. 注意

    1 安卓、ios参数格式有差异
    2 ios的参数是 downloadProgressUpdate的返回值原样传入
  3. 参数

参数名 类型 示例 说明
JsonArray(安卓) array {
videoId: item.videoId
}
JsonObj (ios) Obj 为 downloadProgressUpdate 回调的返回值

6. 暂停全部下载

CCDownload.suspendAllDownloadModel()

1.作用

暂停全部下载中视频

2.注意

7. 恢复下载

CCDownload.setDownloadResume(params)

1.作用

恢复下载

2.注意

3.参数 参数名 类型 示例 说明
JsonArray(安卓) array {
videoId: item.videoId
}
JsonObj (ios) Obj 为 downloadProgressUpdate 回调的返回值

8. 恢复全部下载

// ios
CCDownload.setDownloadResumeAll()
// android
CCDownload.resumeAllDownloadModel()

1.作用

  所有暂停下载视频恢复下载

2.注意

9. 删除

CCDownload.setDownloadDelete(params);

1.作用

安卓:删除正在下载或暂停下载(除了下载完成)的视频
ios:删除所有状态的视频

2.注意

3.参数 参数名 类型 示例 说明
JsonArray(安卓) array {
videoId: item.videoId
}
JsonObj (ios) Obj 为 downloadProgressUpdate 回调的返回值

10. 删除已下载视频(安卓)

CCDownload.setDownloadFinishedDelete(params);

1.作用

删除已下载视频

2.注意

1. 仅安卓
2. 参数格式与删除下载中、暂停中视频有差异
3.参数 参数名 类型 示例 说明
params(安卓) object {
videoId: item.videoId
title: item.videoTitle,
format: item.format
definition: item.definition
}
videoId:视频id
title: 视频title
format:视频格式
definition:视频清晰度

11. 主动更新进度

CCDownload.update();

1.作用

触发进度更新回调 globalEvent onUpdate(安卓) / downloadProgressUpdate (ios)

2.注意

1. 需要定时调用该方法,才能触发进度更新通知

3.参数

参数名 类型 说明

12. 获取下载中列表

CCDownload.getDownloadList(callback)

1.作用

获取下载中列表数据

2.注意

3.参数

参数 类型 说明
callback function 返回值:下载中列表数据

13. 获取已下载列表

CCDownload.getFinishDownloadList(callback)

1.作用

获取已下载列表数据

2.注意

3.参数

参数 类型 说明
callback function 返回值:已下载列表数据

14. 暂停所有下载中视频

CCDownload.pauseAll()
  1. 作用

    暂停所有下载中视频
  2. 注意

15. 恢复所有暂停中视频

// ios
CCDownload.setDownloadResumeAll()
// 安卓
CCDownload.resumeAllDownloadModel()
  1. 作用

    恢复所有暂停中视频
  2. 注意

16. 删除全部正在下载视频

// ios
CCDownload.deleteAllDownloading()
// 安卓
CCDownload.deleteAllDownloadingModel()
  1. 作用

    删除全部正在下载视频
  2. 注意

17. 删除全部已下载视频

CCDownload.deleteAllDownloadModel()
  1. 作用

    删除全部已下载视频
  2. 注意

18. globalEvent说明

事件 触发时机 备注
downloadProgressUpdate(ios) ios下载中进度变化通知 返回数据需要缓存,以供暂停、恢复、删除时作为参数,需要定时主动调用update方法,才会触发
onUpdate(安卓) 安卓监听下载进度 需要定时主动调用update方法,才会触发
onDownloadFinish(安卓、ios) 监听下载完成 需要定时主动调用update方法,才会触发

投屏组件

1. 初始化

CCProjection.initProjectionScreen();

1.作用

投屏组件初始化

2.注意

1. 全局执行一次

3.参数

参数名 类型 说明

2. 获取当前连接wifi名称

CCProjection.getConnectWifiName(callback)

1.作用

获取当前连接wifi的名称

2.注意

3.参数

参数 类型 说明
callback function 返回值:当前wifi名称

3. 刷新设备列表

CCProjection.projectionScreenRefresh()

1.作用

刷新当前可用设备列表

2.注意

3.参数

参数名 类型 说明

4. 开始投屏

CCProjection.startPush(params);

1.作用

开始投屏

2.注意

1. 安卓、ios参数有差异
2. 加密视频安卓不支持投屏播放、ios可提示使用airplay播放(加密视频格式为.pcm)

3.参数

参数 类型 说明
playUrl string 视频地址 (通过getPlayUrl获取
device obj 设备信息 (在golbalEvent onDevice中获取

5.投屏暂停

CCProjection.pause();

1.作用

暂停投屏中的视频播放

2.注意

3.参数

参数名 类型 说明

6. 投屏恢复

CCProjection.resume();

1.作用

恢复投屏中的视频播放

2.注意

3.参数

参数名 类型 说明

7. 结束投屏

CCProjection.stopPush();

1.作用

退出投屏

2.注意

3.参数

参数名 类型 说明

8. 设置音量

CCProjection.setVolume(volume);

1.作用

设置投屏音量

2.注意

3.参数

参数 类型 说明
volume Number 投屏音量

9. 进度跳转

CCProjection.seek(position);

1.作用

投屏视频进度跳转

2.注意

3.参数

参数 类型 说明
position Number 跳转时间点 (单位 毫秒)

10. globalEvent说明

事件 触发时机 说明
onDevice 搜索到可用设备列表 返回值为可用设备列表
upnpSearchError 搜索失败
onProjectionPlay 投屏开始
connectError 投屏失败

实时网速组件

1. 初始化(ios)

CCNetSpeedModule.initInternetSpeed();

1.作用

组件初始化

2.注意

1. 全局执行一次

3.参数

参数名 类型 说明

2. 开始检测网速 (ios)

CCNetSpeedModule.speedStart();

1.作用

开始检测网速

2.注意

3.参数

参数名 类型 说明

3. 停止检测网速 (ios)

CCNetSpeedModule.speedEnd();

1.作用

停止检测网速

2.注意

3.参数

参数名 类型 说明

4. 获取实时网速 (安卓)

CCNetSpeedModule.getNetSpeed();

1.作用

获取实时网速,触发安卓端 的globalEvent onNetSpeed

2.注意

1. 需要定时调用该方法,才能触发安卓的网速更新通知

3.参数

参数名 类型 说明

5. GlobalEvent说明

事件 触发时机
onNetSpeed 开始网速检测,获取到实时网速后

4.版本说明

版本 时间 版本说明
v1.0.0 2022.12.01 支持场景视频云点播基础播放功能,包括加密和非加密视频的播放,暂停,停止,跳转等功能;支持画中画、下载、知识点、视频截图、音视频模式切换、弹幕、投屏、选集;支持自定义流量统计;支持获取实时网速;
v1.0.3 2023.02.13 增加依赖库 CocoaLumberjack.framework
v1.0.4 2023.02.17 抽离公共库到单独组件
v1.0.5 2023.03.10 支持实时用户日志上报
v1.0.6 2023.03.28 修复:华为p30pro手机上拿不到视频时间
v1.0.7 2023.04.01 修复:安卓端实时用户日志统计上报异常
v1.0.8 2023.04.28 支持记忆清晰度选择、视频记忆播放;
修复:断网情况下华为手机进度条展示异常;
修复:首次打卡视频没有网速显示;
修复:小米平板无法下载视频;
修复:安卓切换音频播放日志上报两次的异常
v1.0.9 2023.06.01 支持后台播放;
播放器初始化支持免传apiKey;
离线视频支持连续播放;
修复:安卓投屏搜索不到设备;修复:部分安卓设备因权限问题导致无法下载视频
v1.1.0 2023.06.13 下载视频时支持选择清晰度;
播放器支持屏幕锁定
v1.1.1 2023.06.25 修复:IOS获取不到当前连接wifi名称;
修复: 安卓已下载视频断网后无法播放
v1.2.0 2023.10.27 新增:【插件】视频后台播放,手机控制中心支持播放状态控件
新增: 【demo】播放器支持设置视频logo
新增:【插件】支持指定默认播放清晰度
新增:【demo】播放器支持设置清晰度排序
新增:【demo】支持网络检测
修复:【demo】iOS端离线缓存视频播放,进入播放后快速点击返回到视频列表也还有声音,导致再次点击播放其他视频的时候,出现两个声音在播放
修复:【demo】安卓端离线下载视频播放横屏显示不全
修复:【demo】断网播放后仍显示有网速
v1.3.0 2024.03.19 新增:[插件] 支持分属不同账号视频批量下载
v1.3.1 2024.04.25 修复: [插件] 安卓播放已下载视频时,待下载视频无法继续下载的问题
v1.4.0 2024.05.08 新增: [插件] sdk升级
v1.4.1 2024.06.04 修复: [插件] [demo]视频下载中杀掉app视频无法继续下载
v1.4.2 2024.08.12 修复: [插件] ios开启手势返回上一页,播放中视频无法销毁
v1.4.3 2024.09.09 修复:【插件】安卓偶现视频播放到中间卡住或者从头开始播放
修复:【插件】安卓onPlayError无错误信息返回
v1.5.0 2024.01.14 新增:【插件】支持切换备用线路
v1.5.1 2024.03.24 修复:【插件】IOS适配Xcode16打包
v1.6.0 2025.10.22 新增:【插件】支持api方式获取下载列表、批量删除、ios支持控制下载进度回调频率
修复:【demo】安卓调整播放音量无法跟随系统

隐私、权限声明

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

1. 网络权限(INTERNET):请求服务器实现相关功能 2. 监听网络状态(ACCESS_NETWORK_STATE):监听网络状态改变实现断线重连的功能 3. 获取网络状态 (ACCESS_WIFI_STATE):获取网络状态来进行网络友好度提示 4. 蓝牙,获取蓝牙连接状态(BLUETOOTH):蓝牙耳机功能需要 5. 允许程序发现和配对蓝牙设备(BLUETOOTH_ADMIN):蓝牙耳机功能需要 6. 防止锁屏(WAKE_LOCK):防止屏幕自动关闭 7. 文件读写权限(WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE):文件读写

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

SDK名称: 获得场景视频云点播 收集内容: 设备相关信息(例如:设备型号、操作系统版本、唯一设备标识符等软硬件特征信息)、设备所在位置相关信息(例如:IP地址)、设备接入网络的方式和类型(例如:WiFi、4G网络等)。 用户信息:基于您使用获得场景视频服务而产生的用户访问记录、行为记录以及使用的SDK版本等。 收集目的: 用户行为及服务质量统计分析,并根据设备信息,在观看在线视频时进行网络调度调优,根据不同网络类型给用户提示等,提供更加刘畅的播放体验; 隐私协议内容地址:https://admin.bokecc.com/agreement.bo

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

许可协议

作者未提供license.md