更新记录
1.0.0(2023-06-17) 下载此版本
- 提供直播间登录录功能
- 提供直播拉流播放功能
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 10.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
[TOC]
概述
插件ID:CCLiveVideoView
直播登录流程:CCLiveVideoView初始化--> startLogin --> start
方法列表
方法名 | 类型 | 参数 | 描述 |
---|---|---|---|
onViewInit | 回调 | 无 | view初始化的回调,可以在此方法中调用startLogin方法登录直播 |
startLogin | 主动 | JSONObject:roomId、accountId、userName、password;UniJSCallback:返回JSONObject对象,"{\"code\":"+code+",\"msg\":\""+msg+"\"}";code:200登陆成功,400登录失败 | 登录直播间 |
start | 主动 | 无 | 登录直播间成功之后调用此方法 |
stop | 主动 | 无 | view销毁会自动调用stop直播,无需手动调用 |
onStreamStart | 回调 | 无 | 直播开始 |
onStreamEnd | 回调 | boolean isNormal 是否正常结束 | 直播结束 |
onPrepared | 回调 | 无 | 播放器准备完成 |
onError | 回调 | JSONObject {\"code\":"+code+",\"msg\":\""+msg+"\"} | 播放器报错 |
onPlayStateChange | 回调 | JSONObject {"state":"BUFFERING"}、 {"state":"PLAYING"} | 播放状态回调,目前暂时回调缓冲中和播放两个状态,可以用于显示loading状态 |
onBufferSpeed | 回调 | string speed 速度 | 示例:30kb/s |
API 文档
CCLiveVideoView
提供直播登录、开始、播放等功能的uniapp component插件。
创建
<CCLiveVideoView
class="video"
ref="video"
@onViewInit="onViewInit"
@onStreamStart="onStreamStart"
@onStreamEnd="onStreamEnd"
@onPrepared="onPrepared"
@onError="onError"
@onPlayStateChange="onPlayStateChange"
@onBufferSpeed="onBufferSpeed">
</CCLiveVideoView>
回调
onViewInit
:view初始化回调onStreamStart
:直播开始回调onStreamEnd
:直播结束回调onPrepared
:播放器准备完成回调onError
:播放器报错回调onPlayStateChange
:播放器状态改变回调onBufferSpeed
:播放器缓冲速度回调
回调示例
onViewInit(e) {
//view初始化调用
uni.showLoading({
title: "登录中"
})
this.logList.push("正在登录直播")
const data = {
accountId: this.accountId,
roomId: this.roomId,
userName: this.userName,
password: this.password
}
let _this = this;
this.$refs.video.startLogin(data, (ret) => {
_this.log("ret=" + ret);
uni.hideLoading();
_this.logList.push("直播登录成功,点击start开始播放")
if (ret.code === 200) {
uni.showToast({
title: "登录成功",
icon: "none"
})
} else {
uni.showToast({
title: "登录失败:" + ret.msg,
icon: "none"
})
uni.navigateBack();
}
})
},
onStreamStart(e){
//直播开始回调
this.logList.push("event-->直播开始 onStreamStart")
},
onStreamEnd(e){
//直播结束回调
this.logList.push("event-->直播结束 onStreamEnd:"+e.detail)
},
onPrepared(e){
//播放器准备完成回调
this.logList.push("event-->播放器准备完成 onPrepared")
},
onError(e){
//播放器报错回调
this.logList.push("event-->播放报错 onError:"+e.detail)
},
onPlayStateChange(e){
//播放器状态改变回调
this.logList.push("event-->播放状态改变 onPlayStateChange:"+JSON.stringify(e.detail))
if(e.detail.state==="PLAYING"){
}else if(e.detail.state==="BUFFERING"){
}
},
onBufferSpeed(e){
//播放器缓冲速度回调
this.logList.push("event-->播放缓冲 onBufferSpeed:"+e.detail)
}
startLogin
该方法用于进行登录操作。
参数
-
options
(Map<String, Object>):登录所需参数,包括以下字段:accountId
(String,必填):账号 ID。roomId
(String,必填):房间 ID。userName
(String,必填):观众用户名。password
(String,必填):观众密码。
-
jsCallback
(UniJSCallback):登录结果回调函数。
示例
const options = {
accountId: 'your_account_id',
roomId: 'your_room_id',
userName: 'your_username',
password: 'your_password'
};
CCLiveVideoView.startLogin(options, function(ret) {
if (ret.code === 200) {
console.log('Login success');
} else {
console.error('Login failed: ' + message);
}
});
start
简介
该方法用于开始播放视频。
示例
CCLiveVideoView.start();
Stop
简介
该方法用于销毁直播。调用此方法后,需要重新调用startLogin才能重新开始直播。CCLiveVideoView在destroy的时候自动调用此方法,无需再次手动调用。
示例
CCLiveVideoView.stop();
注意事项
- 为避免和您的uniapp项目中使用的ijkplayer产生冲突,插件中不包含播放器模块,请在manifest.json中勾选
VideoPlayer(视频播放)
模块,云直播播放器依赖需要。