菊风已发布实时音视频2.0升级版(2.0版本说明),当前您正在访问1.0旧版本,点击此处可进入2.0升级版

# 频道管理

# 频道信息查询

如需查询频道相关信息,例如频道名称、是否存在、成员名、成员数,可以调用 query (opens new window) 接口进行查询操作。

/**
 * 查询频道相关信息,例如是否存在,人数等
 *
 * @param channelId 频道标识
 * @return          返回操作id,与 onQuery 回调中的 operationId 对应
 */
query(channelId: string): number;

示例代码

this.mediaChannel.query("channelId");

查询操作发起后,UI 通过 onQuery (opens new window) 回调监听查询的结果。

/**
 * 查询频道信息结果回调
 *
 * @param operationId 操作id,由 query 接口返回
 * @param result      查询结果,true 表示查询成功,false 表示查询失败
 * @param reason      查询失败原因,当 result 为 false 时该值有效
 * @param queryInfo   查询到的频道信息
 */
onQuery(operationId: number, result: boolean, reason: JCMediaChannel.MediaChannelReason, queryInfo: JCMediaChannelQueryInfo): void;

示例代码

onQuery(operationId: number, result: boolean, reason: JCMediaChannel.MediaChannelReason, queryInfo: JCMediaChannelQueryInfo): void {
   // 查询成功
   if (result) {
        // 频道标识
        const channelId: string = queryInfo.channelId;
        // 频道号码
        const number: number = queryInfo.number;
        // 频道成员数
        const clientCount: number = queryInfo.clientCount;
        // 频道成员列表
        const members: Array<string> = queryInfo.members;
   } else {
        // 查询失败
   }
}

# 频道成员管理

# 获取成员对象

通过调用 getParticipant (opens new window) 方法获取频道成员对象

/**
 * 获取频道成员
 *
 * @param userId 用户唯一标识
 * @return 成员对象
 */
getParticipant(userId: string): JCMediaChannelParticipant;

# 踢出成员

调用 kick (opens new window) 方法将成员踢出会议

/**
 * 将成员踢出会议
 *
 * @param participant 成员
 * @return true表示成功,false表示失败
 */
kick(participant: JCMediaChannelParticipant): boolean;

示例代码

const participant: JCMediaChannelParticipant = this.mediaChannel.getParticipant("userId");
if (participant != null) {
    this.mediaChannel.kick(participant);
}

# 给其他成员发消息

如果想在频道中给其他成员发送消息,可以调用 sendMessage (opens new window) 方法

/**
 * 发送消息
 *
 * @param type     消息类型
 * @param content  消息内容,当 toUserId 不为 null 时,content 不能大于 4k
 * @param toUserId 接收者id,null则发给频道所有人员
 * @return true表示成功,false表示失败
 */
sendMessage(type: string, content: string, toUserId: string): boolean;

其中,消息类型(type)为自定义类型。

示例代码

onJoin(result: boolean, reason: JCMediaChannel.MediaChannelReason, channelId: string): void {
    // 发送给所有成员
    this.mediaChannel.sendMessage("text", "content", null);
    // 发送给某个成员
    this.mediaChannel.sendMessage("text", "content", "userId");
}

当频道中的其他成员收到消息时会收到 onMessageReceive (opens new window) 回调

/**
 * 接收频道消息的回调
 *
 * @param type          消息类型
 * @param content       消息内容
 * @param fromUserId    消息发送成员的userId
 */
onMessageReceive(type: string, content: string, fromUserId: string): void;

# 频道属性设置

在调用 JCMediaChannel (opens new window) 中的 join (opens new window) 函数加入/创建频道前,您可以通过 JoinParam (opens new window) 类来设置频道属性,如频道允许加入的最大人数、推流参数、录制参数等。其默认参数如下所示。

interface JoinParam {
    // 会议最大人数
    capacity?: number; // 默认值 16
    // 推流参数
    cdn?: string; // 默认值 null
    // 录制参数
    record?: RecordParam; // 默认值 null
    // 密码
    password?: string; // 默认值 "123456"
    // 平滑模式
    smooth?: boolean; // 默认值 true
    // 会议最大分辨率
    maxResolution?: MaxResolution; // 默认值 MAX_RESOLUTION_360p
    // 心跳间隔
    heartbeatTime?: number; // 默认值 20
    // 心跳超时
    heartbeatTimeout?: number; // 默认值 60
    // 帧率 1-30, 默认 24
    framerate?: number; // 默认值 24
    // 自定义属性
    customProperty?: string; // 默认值 ""
    // 自定义媒体每层参数
    customVideoResolution?: string; // 默认值 ""
}

# 最大人数设置

您可以通过改变 capacity (opens new window) 参数来调整频道最大人数。

const joinParam: JCMediaChannel.JoinParam = {};
// 设置最大人数
joinParam.capacity = 6;
// 加入频道
this.mediaChannel.join("222", joinParam);

# 会议最大分辨率设置

您可以通过改变 maxResolution (opens new window) 参数来调整频道最大分辨率。

const joinParam: JCMediaChannel.JoinParam = {};
// 设置会议最大分辨率
joinParam.maxResolution = JCMediaChannel.MAX_RESOLUTION_360p;
// 加入频道
this.mediaChannel.join("222", joinParam);

TIP

菊风默认提供 360p 的最大分辨率,如需设置会议最大分辨率 720p,1080p,您可以通过发送邮件与我们取得联系:marketing@juphoon.com.cn 。

最后更新时间: 2025-5-13 6:06:58 ├F10: PM┤