搭建直播间
更新时间: 2025/03/03 18:20:50
本文介绍通过网易云信房间组件(NERoom SDK)快速搭建直播间的操作方法。
准备工作
根据本文操作前,请确保您已经完成了以下设置:
根据本文创建的房间默认最高可以容纳 500 位用户同时在线。如果您需要提高房间内在线用户人数限制,请参考 超大房间直播互动。您也可以联系您的网易云信客户经理或 提交工单 联系网易云信技术支持工程师,最高限制为 2000 人。
主播端
在直播或在线会议的场景中,主播端通常指的是主持直播或会议的一方。主播端负责创建直播房间、控制直播流程、与观众互动等。在技术实现上,主播端需要更多的权限和功能,例如推流(发送视频流)、管理房间设置、互动聊天等。
第一步:初始化 SDK
JavaString appKey="your app key";
HashMap extras=new HashMap<>();
extras.put("serverUrl","test");
NERoomKit.getInstance().initialize(this, new NERoomKitOptions(appKey,), new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第二步:Token 认证
JavaNEAuthService authService = NERoomKit.getInstance().getService(NEAuthService.class);
String account="your account";
String token="your token";
authService.login(account, token, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第三步:创建房间
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
String roomUuid="123";
String roomName="roomName";
String templateId="21";
NECreateRoomParams params=new NECreateRoomParams(roomUuid,roomName,templateId,null);
NECreateRoomOptions options = new NECreateRoomOptions();
roomService.createRoom(params, options, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第四步:进入房间
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
String roomUuid="123";
String roomName="roomName";
String templateId="21";
NECreateRoomParams params=new NECreateRoomParams(roomUuid,roomName,templateId,null);
NECreateRoomOptions options = new NECreateRoomOptions();
roomService.createRoom(params, options, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第五步:开始推流
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext("");
if (roomContext!=null){
NERoomLiveStreamTaskInfo taskInfo=new NERoomLiveStreamTaskInfo();
roomContext.getRtcController().addLiveStreamTask(taskInfo, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
}
观众端
观众端则是指观看直播或参与会议的用户。观众端通常只需要接收视频流、参与聊天、发送消息等。观众端的功能相对于主播端来说更简单,主要侧重于内容的接收和观众体验。
第一步:初始化 SDK
JavaString appKey="your app key";
HashMap extras=new HashMap<>();
extras.put("serverUrl","test");
NERoomKit.getInstance().initialize(this, new NERoomKitOptions(appKey,), new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第二步:Token 认证
JavaNEAuthService authService = NERoomKit.getInstance().getService(NEAuthService.class);
String account="your account";
String token="your token";
authService.login(account, token, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第三步:进入房间
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
String roomUuid="123";
String roomName="roomName";
String templateId="21";
NECreateRoomParams params=new NECreateRoomParams(roomUuid,roomName,templateId,null);
NECreateRoomOptions options = new NECreateRoomOptions();
roomService.createRoom(params, options, new NECallback2<Unit>() {
@Override
public void onSuccess(@Nullable Unit unit) {
super.onSuccess(unit);
Log.d(TAG,"success");
}
@Override
public void onError(int code, @Nullable String message) {
super.onError(code, message);
Log.d(TAG,"error");
}
});
第四步:拉流
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
NERoomContext roomContext = roomService.getRoomContext(roomUuid);
if (roomContext!=null){
String streamUrl=roomContext.getLive().getPullRtmpUrl();
// 可集成音视频 SDK 进行播放,具体参考 https://doc.yunxin.163.com/vod/concept/jgyNzg2NzY?platform=client
}
此文档是否对你有帮助?





