进阶功能
更新时间: 2025/07/16 09:56:20
本文介绍如何实现网易云信在线直播(直播房)的进阶功能,包括美颜、礼物、连线 PK 功能。有关重要管理类和字段介绍,请参考 名词解释。
前提条件
根据本文操作前,请确保您已经实现了 基础功能。
美颜功能
网易云信直播房使用了 相芯美颜,您可以在视频帧回调的地方添加相芯相关的接口。
JavapreviewRoomContext
.getPreviewController()
.setVideoFrameCallback(
true,
frame -> {
// 通过这里的回调,将视频帧推送给三方美颜
// 例如相芯美颜:beautyModule.onFrameAvailable(frame);
if (LiveStreamUtils.skipFrame-- > 0) {
return null;
} else {
return frame;
}
});
礼物功能
-
观众调用
sendBatchGift接口发送礼物。JavaNELiveStreamKit.getInstance().sendBatchGift( giftId, // 礼物 ID,需要与后端服务定义的礼物 ID 一致 giftCount, // 礼物数量 targetUserUuids, // 是接收礼物的用户 ID 列表 new NECallback<Void>() { @Override public void onSuccess(Void unused) { // 礼物发送成功 } @Override public void onError(int code, String msg) { // 礼物发送失败 } } ); -
通过监听
onReceiveBatchGift接收礼物通知。Java@Override public void onReceiveBatchGift(NEVoiceRoomBatchGiftModel giftModel) { // 收到礼物 String senderUserUuid = giftModel.getSenderUserUuid(); String senderNick = giftModel.getSenderNick(); int giftId = giftModel.getGiftId(); int giftCount = giftModel.getGiftCount(); // 处理礼物展示逻辑 }
直播连线 PK
主播连线 PK 相关的功能,都在 CoHostManager 中管理。
-
通过添加
addListener主播连线 PK 事件监听。Javaprivate final NECoHostListener coHostListener = new NECoHostListener() { @Override public void onConnectionUserListChanged( @NonNull List<ConnectionUser> connectedList, @NonNull List<ConnectionUser> joinedList, @NonNull List<ConnectionUser> leavedList) { // 主播连麦列表变更事件 } // 更多事件回调方法... } // 添加主播连线 PK 事件监听。 NELiveStreamKit.getInstance().getCoHostManager().addListener(coHostListener); -
主播发起 PK 请求。
JavaNELiveStreamKit.getInstance().getCoHostManager().requestConnection( targetRoomUuid, // 目标主播房间 ID timeoutSeconds, // 连线 PK 请求的超时时间,单位为秒 new NECallback<Void>() { @Override public void onSuccess(Void unused) { // 发起 PK 请求成功 } @Override public void onError(int code, String msg) { // 发起 PK 请求失败 } } ); -
目标主播接收主播连线 PK 请求通知。
主播连线相关的通知都在
NECoHostListener中管理。Java@Override public void onConnectionRequestReceived( @NonNull ConnectionUser inviter, @NonNull List<ConnectionUser> inviteeList, @Nullable String ext) { // 显示接受或拒绝 PK 的 UI } -
目标主播接受或拒绝 PK 请求。
Java// 接受 PK 请求 NELiveStreamKit.getInstance().getCoHostManager().acceptConnection( roomUuid, // 邀请者房间 ID new NECallback<Void>() { @Override public void onSuccess(Void unused) { // 接受 PK 请求成功 } @Override public void onError(int code, String msg) { // 接受 PK 请求失败 } } ); // 或拒绝 PK 请求 NELiveStreamKit.getInstance().getCoHostManager().rejectConnection( roomUuid, // 邀请者房间 ID new NECallback<Void>() { @Override public void onSuccess(Void unused) { // 拒绝 PK 请求成功 } @Override public void onError(int code, String msg) { // 拒绝 PK 请求失败 } } ); -
主动结束 PK。
Java
NELiveStreamKit.getInstance().getCoHostManager().disconnect();
通过以上功能,您可以实现一个功能完善的直播应用。
更多功能
更多高级功能和详细 API 用法,请参考《房间组件 NERoom》NERoom 文档,欢迎 提交工单 联系网易云信技术支持工程师。
此文档是否对你有帮助?





