实现基础功能
更新时间: 2022/10/12 09:51:35
本文为您介绍如何通过 NELiveKit 提供的一套简单易用的接口,快速地将互动直播基础功能集成至现有应用中。
- 初始化
- 登录鉴权
- 创建直播间并开始直播
- 停止直播
- 加入直播间
- 离开直播间
- 邀请其他主播 PK
- 取消邀请其他主播 PK
- 接受其他主播的 PK 邀请
- 拒接其他主播的 PK 邀请
- 给主播打赏礼物
- 获取直播间列表
- 查询当前直播间是否在 PK
- 查询直播间信息
- 查询直播间成员列表
- 直播间内的操作
- 监听直播间状态
- 注销账号
初始化
在调用 SDK 接口之前,您首先需要调用 initialize 方法完成初始化操作。该接口无额外回调结果数据。
NELiveKit.instance.initialize(NELiveKitOptions(appKey: 'appkey', extras: extras)).then((value) {
if(value.code == 0){
//TODO when login success
}else{
//TODO when login fail
}
});
登录鉴权
请求 SDK 进行登录鉴权,您只有完成 SDK 登录鉴权才可以创建直播间。
配置步骤
-
请在登录先获取账号 ID 和 Token。账号信息由网易云信的互动直播应用服务器下发,但 SDK 不提供对应接口获取该信息,需要您自行实现相关业务逻辑。
String userUuid = "userUuid"; String token = "token"; -
调用
login方法登录并进行回调处理,该接口无额外回调结果数据。
NELiveKit.instance.login(String userUuid, String token).then((value) {
if(value.code == 0){
//TODO when login success
}else{
//TODO when login fail
}
});
注意事项
SDK 不提供账号注册机制。您在自己的应用中集成 SDK 时,需要将用户帐号与互动直播系统中的帐号(accountId)进行绑定。
创建直播间并开始直播
在已经完成 SDK 登录鉴权的状态下,创建一个直播间。
实现步骤
- 调用
startLive方法创建并开始一个新的直播间,并进行回调处理。
NELiveKit.instance.startLive(String liveTopic, NELiveRoomType liveType, String cover).then((value) {
if(value.code == 0){
//TODO when startLive success
}else{
//TODO when startLive fail
}
});
- 创建直播成功后,可以通过获取直播间成员列表查看该直播间,其他观众可通过直播号加入该直播间。
注意事项
-
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
-
当直播间内有主播/连麦者发布多媒体流,且正确设置了推流任务时,通话房间外的观众可以通过 CDN 直播拉流地址进行拉流播放。云信同时提供播放器 SDK 供您使用,详细内容请参考直播-播放器 SDK。
停止直播
在已经完成 SDK 登录鉴权的状态下,停止一个已由自己创建的直播间。
实现步骤
- 调用
stopLive方法并进行回调处理。
NELiveKit.instance.stopLive().then((value) {
if(value.code == 0){
//TODO when stopLive success
}else{
//TODO when stopLive fail
}
});
- 成功停止直播后,其他观众不可以再通过直播号加入该直播间。
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
加入直播间
在已经完成 SDK 登录鉴权的状态下,加入一个当前正在进行中的直播间。
配置步骤
调用 joinLive 方法并进行回调处理。
NELiveKit.instance.joinLive(NELiveDetail liveDetail).then((value) {
if(value.code == 0){
//TODO when joinLive success
}else{
//TODO when joinLive fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
离开直播间
在已经完成 SDK 登录鉴权的状态下,离开一个当前正在进行中的直播间。
配置步骤
调用 leaveLive 方法并进行回调处理。
NELiveKit.instance.leaveLive().then((value) {
if(value.code == 0){
//TODO when leaveLive success
}else{
//TODO when leaveLive fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
邀请其他主播 PK
在已开播的状态下,邀请其他主播进行 PK。
配置步骤
调用 invitePK 方法并进行回调处理。
NELiveKit.instance.invitePK(String targetAccountId, NELivePKRule rule).then((value) {
if(value.code == 0){
//TODO when invitePK success
}else{
//TODO when invitePK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
取消邀请其他主播 PK
在已开播的状态下,取消邀请其他主播进行PK。
配置步骤
调用 cancelInvitePK 方法并进行回调处理。
NELiveKit.instance.cancelInvitePK().then((value) {
if(value.code == 0){
//TODO when cancelInvitePK success
}else{
//TODO when cancelInvitePK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
接受其他主播的 PK 邀请
在已开播的状态下,接受其他主播的 PK 邀请。
配置步骤
调用 acceptPK 方法并进行回调处理。
NELiveKit.instance.acceptPK().then((value) {
if(value.code == 0){
//TODO when acceptPK success
}else{
//TODO when acceptPK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
拒接其他主播的 PK 邀请
在已开播的状态下,拒绝其他主播的 PK 邀请。
配置步骤
调用 rejectPK 方法并进行回调处理。
NELiveKit.instance.rejectPK().then((value) {
if(value.code == 0){
//TODO when rejectPK success
}else{
//TODO when rejectPK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
给主播打赏礼物
在加入其他主播的直播间的状态下,给该主播打赏。
配置步骤
调用 reward 方法并进行回调处理。
NELiveKit.instance.reward(int giftId).then((value) {
if(value.code == 0){
//TODO when reward success
}else{
//TODO when reward fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
获取直播间列表
配置步骤
调用 fetchLiveList 方法获取直播间列表。
NELiveKit.instance.fetchLiveList()
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
查询当前直播间是否在 PK
在加入其他主播的直播间或者自己开播的状态下,查询当前直播间是否在 PK。
配置步骤
调用 isPK 方法获取直播间 PK 状态。
NELiveKit.instance.isPK()
注意事项
该接口仅支持在直播间内调用,其他情况下会调用失败。
查询直播间信息
在已经完成 SDK 登录鉴权的状态下,查询一个直播间的信息。
配置步骤
调用 requestLiveInfo 方法查询直播间信息并进行回调处理。您可根据错误码判断调用是否成功。
NELiveKit.instance.fetchLiveInfo(int liveRecordId).then((value) {
if(value.code == 0){
//TODO when fetchLiveInfo success
}else{
//TODO when fetchLiveInfo fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
查询直播间成员列表
在已经完成 SDK 登录鉴权的状态下,查询直播间成员列表。
配置步骤
调用 requestLiveList 方法查询直播间成员列表并进行回调处理。您可根据错误码判断调用是否成功。
NELiveKit.instance.fetchLiveList(int pageNum, int pageSize, NELiveStatus liveStatus, NELiveRoomType liveType).then((value) {
if(value.code == 0){
//TODO when fetchLiveList success
}else{
//TODO when fetchLiveList fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
直播间内的操作
用户在直播间内,可以做切换摄像头、开关音频、开关视频等操作。
配置步骤
调用以下接口实现直播间内的操作并进行回调处理。您可根据错误码判断调用是否成功。
//预览相关的接口
NELiveKit.instance.mediaController.previewRoom();
//切换摄像头
NELiveKit.instance.mediaController.switchCamera();
//开关音频
NELiveKit.instance.mediaController.muteLocalAudio(boolean mute, NECallback<Unit> callback);
//开关视频
NELiveKit.instance.mediaController.muteLocalVideo(boolean mute, NECallback<Unit> callback);
//发送消息
NELiveKit.instance.sendTextMessage('context');//可通过注册 NELiveCallback类的 messagesReceived 回调接收消息
//在自己的直播间静音PK的主播
NELiveKit.instance.mediaController.disablePeerAudio(String uuid, boolean mute, NECallback<Unit> callback);
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
监听直播间状态
通过注册直播间状态回调接口,主播可获取到直播间状态变更的通知。
配置步骤
设置以下直播间监听器,并在回调方法中处理相关事件。
class NELiveCallback {
/// chatroom messages received
final MessagesReceivedCallback? messagesReceived;
/// pk invite received
final PKInvitedCallback? pKInvited;
/// pk invite canceled
final PKCanceledCallback? pKCanceled;
/// pk invite rejected
final PKRejectedCallback? pKRejected;
/// pk invite accepted
final PKAcceptedCallback? pKAccepted;
/// pk timeout
final PKTimeoutCallback? pKTimeout;
/// pk start
final PKStartCallback? pkStart;
/// pk punishment start
final PKPunishmentStartCallback? pkPunishmentStart;
/// pk ended
final PKEndedCallback? pkEnded;
/// reward received
final RewardReceivedCallback? rewardReceived;
/// live ended
final LiveEndedCallback? liveEnded;
/// client kick out
final LoginKickOutCallback? loginKickOut;
/// members join live
final MembersJoinCallback? membersJoin;
/// members leave live
final MembersLeaveCallback? membersLeave;
/// live push start
final PushStartCallback? pushStart;
NELiveCallback({
this.messagesReceived,
this.pKInvited,
this.pKCanceled,
this.pKRejected,
this.pKAccepted,
this.pKTimeout,
this.pkStart,
this.pkPunishmentStart,
this.pkEnded,
this.rewardReceived,
this.liveEnded,
this.loginKickOut,
this.membersJoin,
this.membersLeave,
this.pushStart,
});
}
NELiveKit.getInstance().addEventCallback(callback);
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
注销账号
请求 SDK 注销当前已登录账号。账号注销后,登录状态会被清空,不再允许使用该账号创建直播间。
配置步骤
调用 logout 接口退出登录,该接口无额外回调结果数据。您可根据错误码判断调用是否成功。
NELiveKit.instance.logout().then((value) {
if(value.code == 0){
//TODO when logout success
}else{
//TODO when logout fail
}
});




