频道相关
更新时间: 2022/10/20 08:46:06
说明:以下所有方法都位于AvSignallingService
中。
使用限制
限制项 | 说明 |
---|---|
频道名称长度 | 长度限制:128 字符 |
频道扩展字段 | 长度限制:4096 字符 |
频道成员人数 | 人数限制:100 人 |
创建频道
-
API原型
每次信令的频道都不需要复用,使用完成后需要关闭对应频道。
dart /// 创建频道
/// 同一时刻频道名互斥,不能重复创建,但如果频道名缺省,服务器会自动分配频道id。
/// 错误码如下:
/// 10405:频道已存在
///
/// [type] 频道类型
/// [channelName] 频道名,可缺省
/// [channelExt] 频道的自定义扩展信息,可缺省
Future<NIMResult<ChannelBaseInfo>> createChannel(
{required ChannelType type, String? channelName, String? channelExt}) {
return _platform.createChannel(
type: type, channelName: channelName, channelExt: channelExt);
}
-
说明
创建频道后并不会主动加入频道,需要手动加入频道。
-
示例
dart NimCore.instance.avSignallingService
.createChannel(type: ChannelType.video)
.then((value) {
if(value.isSuccess){
//todo create channel success
}else{
//todo create channel failed
}
});
加入频道
- API原型
dart
/// 加入频道
/// 错误码如下:
/// 10407:已经频道内
/// 10417:uid冲突
/// 10419:频道人数超限,默认100,可通过APPID配置
/// 10420:自己的其他端已经在频道内
///
/// [channelId] 对应频道id
/// [selfUid] 自己在频道中对应的uid,可选,大于零有效,无效时服务器会分配随机唯一的uid, 也可以自己生成,但要保证唯一性
/// [customInfo] 操作者附加的自定义信息,透传给其他人,可缺省
/// [offlineEnable] 通知事件是否存离线
Future<NIMResult<ChannelFullInfo>> joinChannel(
{required String channelId,
int? selfUid,
String? customInfo,
required bool offlineEnabled}) {
return _platform.joinChannel(
channelId: channelId,
selfUid: selfUid,
customInfo: customInfo,
offlineEnabled: offlineEnabled);
}
- 示例
dartNimCore.instance.avSignallingService
.joinChannel(
channelId: event.signallingEvent.channelBaseInfo.channelId,
offlineEnabled: true)
.then((value) {
if(value.isSuccess){
//todo join channel success
}else{
//todo join channel failed
}
});
离开频道
- API原型
dart/// 离开频道
/// 错误码如下:
/// 10406:不在频道内
///
/// [channelId] 对应频道id
/// [offlineEnable] 通知事件是否存离线
/// [customInfo] 操作者附加的自定义信息,透传给其他人,可缺省
Future<NIMResult<void>> leaveChannel(
{required String channelId,
required bool offlineEnabled,
String? customInfo}) {
return _platform.leaveChannel(
channelId: channelId,
offlineEnabled: offlineEnabled,
customInfo: customInfo);
}
- 示例
dartNimCore.instance.avSignallingService
.leaveChannel(channelId: channelId, offlineEnabled: offlineEnabled)
.then((value) {
if (value.isSuccess) {
//todo leave channel success
} else {
//todo leave channel failed
}
});
关闭频道
- API原型
dart /// 关闭频道
/// 错误码如下:
/// 10406:不在频道内
///
/// [channelId] 对应频道id
/// [offlineEnabled] 通知事件是否存离线
/// [customInfo] 操作者附加的自定义信息,透传给其他人,可缺省
Future<NIMResult<void>> closeChannel(
{required String channelId,
required bool offlineEnabled,
String? customInfo}) {
return _platform.closeChannel(
channelId: channelId,
offlineEnabled: offlineEnabled,
customInfo: customInfo);
}
- 示例
dart NimCore.instance.avSignallingService
.closeChannel(channelId: channelId, offlineEnabled: offlineEnabled)
.then((value) {
if (value.isSuccess) {
//todo close channel success
} else {
//todo close channel failed
}
});
此文档是否对你有帮助?