实现基础功能
更新时间: 2022/10/12 09:48:13
本文为您介绍如何通过 NELiveKit 提供的一套简单易用的接口,快速地将互动直播基础功能集成至现有应用中。
- 初始化
- 登录鉴权
- 创建直播间并开始直播
- 停止直播
- 加入直播间
- 离开直播间
- 邀请其他主播 PK
- 取消邀请其他主播 PK
- 接受其他主播的 PK 邀请
- 拒接其他主播的 PK 邀请
- 给主播打赏礼物
- 获取直播间列表
- 查询当前直播间是否在 PK
- 查询直播间信息
- 查询直播间成员列表
- 直播间内的操作
- 监听直播间状态
- 注销账号
初始化
在调用 SDK 接口之前,您首先需要调用 initialize
方法完成初始化操作。该接口无额外回调结果数据。
NELiveKit.getInstance().initialize(this, options, new NELiveCallback<Unit>() {
@Override
public void onSuccess(Unit unit) {
//TODO when initialize success
}
public void onFailure(int code, String msg) {
//TODO when initialize fail
}
});
登录鉴权
请求 SDK 进行登录鉴权,您只有完成 SDK 登录鉴权才可以创建直播间。
配置步骤
-
请在登录先获取账号 ID 和 Token。账号信息由网易云信的互动直播应用服务器下发,但 SDK 不提供对应接口获取该信息,需要您自行实现相关业务逻辑。
String accountId = "accountId"; String accountToken = "accountToken";
-
调用
login
方法登录并进行回调处理,该接口无额外回调结果数据。NELiveKit.getInstance().login(accountId, accountToken, new NELiveCallback<Unit>() { @Override public void onSuccess(Unit unit) { //TODO when login success } public void onFailure(int code, String msg) { //TODO when login fail } });
注意事项
SDK 不提供账号注册机制。您在自己的应用中集成 SDK 时,需要将用户帐号与互动直播系统中的帐号(accountId)进行绑定。
创建直播间并开始直播
在已经完成 SDK 登录鉴权的状态下,创建一个直播间。
实现步骤
- 调用
startLive
方法创建并开始一个新的直播间,并进行回调处理。
NELiveKit.getInstance().startLive(int liveType, String liveTopic, String cover, new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when startLive success
}
public void onFailure(int code, String msg) {
//TODO when startLive fail
}
});
- 创建直播成功后,可以通过获取直播间成员列表查看该直播间,其他观众可通过直播号加入该直播间。
注意事项
-
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
-
当直播间内有主播/连麦者发布多媒体流,且正确设置了推流任务时,通话房间外的观众可以通过 CDN 直播拉流地址进行拉流播放。云信同时提供播放器 SDK 供您使用,详细内容请参考直播-播放器 SDK。
停止直播
在已经完成 SDK 登录鉴权的状态下,停止一个已由自己创建的直播间。
实现步骤
- 调用
stopLive
方法并进行回调处理。
NELiveKit.getInstance().stopLive(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when stopLive success
}
public void onFailure(int code, String msg) {
//TODO when stopLive fail
}
});
- 成功停止直播后,其他观众不可以再通过直播号加入该直播间。
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
加入直播间
在已经完成 SDK 登录鉴权的状态下,加入一个当前正在进行中的直播间。
配置步骤
调用 joinLive
方法并进行回调处理。
java NELiveKit.getInstance().joinLive(String roomUuid, new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when joinLive success
}
public void onFailure(int code, String msg) {
//TODO when joinLive fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
离开直播间
在已经完成 SDK 登录鉴权的状态下,离开一个当前正在进行中的直播间。
配置步骤
调用 leaveLive
方法并进行回调处理。
NELiveKit.getInstance().leaveLive(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when leaveLive success
}
public void onFailure(int code, String msg) {
//TODO when leaveLive fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
邀请其他主播 PK
在已开播的状态下,邀请其他主播进行 PK。
配置步骤
调用 invitePK
方法并进行回调处理。
NELiveKit.getInstance().invitePK(String accId, new NELiveCallback<AnchorPkInfo> {
@Override
public void onSuccess(AnchorPkInfo anchorPkInfo) {
//TODO when invitePK success
}
public void onFailure(int code, String msg) {
//TODO when invitePK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
取消邀请其他主播 PK
在已开播的状态下,取消邀请其他主播进行PK。
配置步骤
调用 cancelInvitePK
方法并进行回调处理。
NELiveKit.getInstance().cancelInvitePK(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when cancelInvitePK success
}
public void onFailure(int code, String msg) {
//TODO when cancelInvitePK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
接受其他主播的 PK 邀请
在已开播的状态下,接受其他主播的 PK 邀请。
配置步骤
调用 acceptPK
方法并进行回调处理。
NELiveKit.getInstance().acceptPK(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when acceptPK success
}
public void onFailure(int code, String msg) {
//TODO when acceptPK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
拒接其他主播的 PK 邀请
在已开播的状态下,拒绝其他主播的 PK 邀请。
配置步骤
调用 rejectPK
方法并进行回调处理。
NELiveKit.getInstance().rejectPK(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when rejectPK success
}
public void onFailure(int code, String msg) {
//TODO when rejectPK fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
给主播打赏礼物
在加入其他主播的直播间的状态下,给该主播打赏。
配置步骤
调用 reward
方法并进行回调处理。
NELiveKit.getInstance().reward(int gift, new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when reward success
}
public void onFailure(int code, String msg) {
//TODO when reward fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
获取直播间列表
在已经完成 SDK 登录鉴权的状态下,获取直播间列表。
配置步骤
调用 requestLiveList
方法查询直播间列表并进行回调处理。您可根据错误码判断调用是否成功。
NELiveKit.getInstance().requestLiveList(int type, int status, int pageNum, int pageSize, new NELiveCallback<LiveListResponse> {
@Override
public void onSuccess(LiveListResponse unit) {
//TODO when requestLiveList success
}
public void onFailure(int code, String msg) {
//TODO when requestLiveList fail
}
});
注意事项
该接口仅支持在直播间内调用,其他情况下会调用失败。
查询当前直播间是否在 PK
在加入其他主播的直播间或者自己开播的状态下,查询当前直播间是否在 PK。
配置步骤
调用 isPK
方法获取直播间 PK 状态。
NELiveKit.getInstance().isPK();
注意事项
该接口仅支持在直播间内调用,其他情况下会调用失败。
查询直播间信息
在已经完成 SDK 登录鉴权的状态下,查询一个直播间的信息。
配置步骤
调用 requestLiveInfo
方法查询直播间信息并进行回调处理。您可根据错误码判断调用是否成功。
NELiveKit.getInstance().requestLiveInfo(String liveRecordId, new NELiveCallback<LiveInfo> {
@Override
public void onSuccess(LiveInfo unit) {
//TODO when requestLiveInfo success
}
public void onFailure(int code, String msg) {
//TODO when requestLiveInfo fail
}
});
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
查询直播间成员列表
在加入其他主播的直播间或者自己开播的状态下,获取直播间成员列表。
配置步骤
调用 getMembers
方法获取直播间成员列表。
NELiveKit.getInstance().getMembers();
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
直播间内的操作
用户在直播间内,可以做切换摄像头、开关音频、开关视频等操作。
配置步骤
调用以下接口实现直播间内的操作并进行回调处理。您可根据错误码判断调用是否成功。
//开启预览
NELiveKit.getInstance.getMediaController().startPreview(NeteaseView directCDNVideoView, boolean frontCamera);
NELiveKit.getInstance.getMediaController().stopPreview();
//切换摄像头
NELiveKit.getInstance.getMediaController().switchCamera();
//开关音频
NELiveKit.getInstance.getMediaController().muteLocalAudio(boolean mute, NECallback<Unit> callback);
//开关视频
NELiveKit.getInstance.getMediaController().muteLocalVideo(boolean mute, NECallback<Unit> callback);
//发送消息,可通过注册 NELiveListener 类的 onTextMessageReceived 回调接收消息
NELiveKit.getInstance().sendMessage("text", new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when sendMessage success
}
public void onFailure(int code, String msg) {
//TODO when sendMessage fail
}
});
//在自己的直播间静音PK的主播
NELiveKit.getInstance.getMediaController().mutePKAudio(String uuid, boolean mute, NECallback<Unit> callback);
//绑定PK时,自己的画布
NELiveKit.getInstance.getMediaController().bindLocalCanvas(NERoomVideoView view);
NELiveKit.getInstance.getMediaController().bindRemoteCanvas(view: NERoomVideoView, userUuid: String);
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
监听直播间状态
通过注册直播间状态回调接口,主播可获取到直播间状态变更的通知。
配置步骤
设置以下直播间监听器,并在回调方法中处理相关事件。
NELiveListener listener = new NELiveListener() {
@Override
public void onLiveStarted() {
//直播开始
}
@Override
public void onLoginKickedOut() {
//登录被踢出
}
@Override
public void onLiveEnd(int reason) {
//直播结束
}
@Override
public void onTextMessageReceived(@NonNull NERoomTextMessage message) {
//收到消息
}
@Override
public void onRewardReceived(@NonNull RewardMsg rewardMsg) {
//收到礼物消息
}
@Override
public int onVideoFrameCallback(@NonNull VideoFrame videoFrame) {
//视频帧回调,可以做美颜处理
}
@Override
public void onPKInvited(@NonNull PkActionMsg pkUser) {
//收到PK邀请
}
@Override
public void onPKAccepted(@NonNull PkActionMsg pkUser) {
//其他主播接受我的PK邀请
}
@Override
public void onPKRejected(@NonNull PkActionMsg pkUser) {
//其他主播拒绝我的PK邀请
}
@Override
public void onPKCanceled(@NonNull PkActionMsg pkUser) {
//其他主播取消PK邀请
}
@Override
public void onPKTimeoutCanceled(@NonNull PkActionMsg pkUser) {
//PK邀请超时
}
@Override
public void onPKStart(@NonNull PkStartInfo startInfo) {
//PK开始
}
@Override
public void onPKPunishStart(@NonNull PkPunishInfo punishInfo) {
//PK惩罚开始
}
@Override
public void onPKEnd(@NonNull PkEndInfo endInfo) {
//PK结束
}
@Override
public void onMembersLeave(@NonNull List<? extends NERoomMember> members) {
//直播间成员离开
}
@Override
public void onMembersJoin(@NonNull List<? extends NERoomMember> members) {
//直播间成员加入
}
@Override
public void onError(int code) {
//直播间错误
}
};
NELiveKit.getInstance().setLiveListener(listener);
注意事项
该接口仅支持在登录鉴权成功后调用,其他情况下会调用失败。
注销账号
请求 SDK 注销当前已登录账号。账号注销后,登录状态会被清空,不再允许使用该账号创建直播间。
配置步骤
调用 logout
接口退出登录,该接口无额外回调结果数据。您可根据错误码判断调用是否成功。
NELiveKit.getInstance().logout(new NELiveCallback<Unit> {
@Override
public void onSuccess(Unit unit) {
//TODO when logout success
}
public void onFailure(int code, String msg) {
//TODO when logout fail
}
});