目录

信令

单聊

发起会话
/**
 * @param[toAppAccount]: 接收方账号
 * @param[toResource]: 用户设备的标识
 * @param[appContent]: 可以给接收方携带数据
 * @return 通话ID,唯一标识当前流会话
 */
long callId = user.dialCall(String toAppAccount);
long callId = user.dialCall(String toAppAccount, byte[] appContent);
long callId = user.dialCall(String toAppAccount, String toResource);
long callId = user.dialCall(String toAppAccount, String toResource, byte[] appContent);
关闭会话
/**
 * @param[callId]: 通话ID
 * @param[byeReason]: 描述信息
 */
user.closeCall(long callId);
user.closeCall(long callId, String byeReason);

多聊

创建频道
/**
 * @param[extra]: 可携带附加信息
 * @return 用于区分创建不同频道
 */
long identity = user.createChannel(byte[] extra);
加入频道
/**
 * @param[callId]: 通话ID,唯一标识一个频道会话
 * @param[callKey]: 通话密钥,配合callId使用
 */
user.joinChannel(long callId, String callKey);
离开频道
/**
 * @param[callId]: 通话ID,唯一标识一个频道会话
 * @param[callKey]: 会话密钥,配合callId使用
 */
user.leaveChannel(long callId, String callKey);

数据

初始化音频流配置

/**
 * @param[audioStreamConfig]: 音频流配置,该接口如果不调用,内部采用默认配置!
 *     audioStreamConfig.strategy:发送流策略,支持MIMCStreamConfig.STRATEGY_FEC和MIMCStreamConfig.STRATEGY_ACK(默认)
 *     audioStreamConfig.ackWaitTimeMs:策略为STRATEGY_ACK时有效,表示发送数据后等待接收发送成功的的响应时间,单位毫秒,默认150ms
 *     audioStreamConfig.isEncrypt:是否加密,默认false
 */
user.initAudioStreamConfig(MIMCStreamConfig audioStreamConfig);

初始化视频流配置

/**
 * @param[videoStreamConfig]: 视频流配置,该接口如果不调用,内部采用默认配置!
 *     videoStreamConfig.strategy:发送流策略,支持MIMCStreamConfig.STRATEGY_FEC(默认)和MIMCStreamConfig.STRATEGY_ACK
 *     videoStreamConfig.ackWaitTimeMs:策略为STRATEGY_ACK时有效,表示发送数据后等待接收发送成功的的响应时间,单位毫秒,默认150ms
 *     videoStreamConfig.isEncrypt:是否加密,默认false
 */
user.initVideoStreamConfig(MIMCStreamConfig videoStreamConfig);

发送数据

/**
 * @param[callId]: 通话ID
 * @param[data]: 流数据,最大不超过512KB
 * @param[dataType]: 数据类型,音频:AUDIO,视频:VIDEO
 * @param[dataPriority]: 数据优先级,P0优先级最高,P1次之,P2最低
 * @param[canBeDropped]: 是否允许丢包
 * @param[resendCount]: 重发次数,针对MIMCStreamConfig.STRATEGY_ACK有效
 * @param[channelType]: 通道类型,可指定RELAY,P2P_INTERNET,P2P_INTRANET,不指定优先选择P2P_INTRANET发送数据,次之P2P_INTERNET,最后RELAY,无缝切换
 * @param[context]: 用户自定义对象
 * @return 成功返回dataId,失败返回-1
 */
int dataId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, Object context);
int dataId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, int resendCount, Object context);
int dataId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, int resendCount, RtsChannelType channelType, Object context);

获取音频流配置

/**
 * @return 返回音频流配置
 */
MIMCStreamConfig config = user.getAudioStreamConfig();

获取视频流配置

/**
 * @return 返回视频流配置
 */
MIMCStreamConfig config = user.getVideoStreamConfig();

设置发送缓存大小

/**
 * @param[size]: 以消息个数为单位
 */
user.setSendBufferSize(int size);

获取发送缓存大小

int size = user.getSendBufferSize();

设置接收缓存大小

/**
 * @param[size]: 以消息个数为单位
 */
user.setRecvBufferSize(int size);

获取接收缓存大小

int size = user.getRecvBufferSize();

清空发送缓存

user.clearSendBuffer();

清空接收缓存

user.clearRecvBuffer();

获取发送缓存使用率

float rate = user.getSendBufferUsageRate();

获取接收缓存使用率

float rate = user.getRecvBufferUsageRate();

回调

单聊回调

user.registerRtsCallHandler(MIMCRtsCallHandler rtsCallHandler);
public interface MIMCRtsCallHandler {
    /**
     * @param[fromAccount]: 发起方账号
     * @param[fromResource]: 用户设备的标识
     * @param[callId]: 通话ID
     * @param[appContent]: 发起方携带的数据
     * @return LaunchedResponse,成员accepted表示是否接受会话,成员desc携带描述信息
     */
    LaunchedResponse onLaunched(String fromAccount, String fromResource, long callId, byte[] appContent);

    /**
     * @param[callId]: 通话ID
     * @param[accepted]: 接收方同意ture,拒绝false
     * @param[desc]: 描述信息
     */
    void onAnswered(long callId, boolean accepted, String desc);

    /**
     * @param[callId]: 通话ID
     * @param[desc]: 描述信息
     */
    void onClosed(long callId, String desc);

    /**
     * 接收流数据
     * @param[callId]: 通话ID
     * @param[fromAccount]: 发送方账号
     * @param[resource]: 用户设备的标识
     * @param[data]: 流数据
     * @param[dataType]: 数据类型,AUDIO,VIDEO
     * @param[channelType);]: 通道类型,RELAY、P2P_INTERNET、P2P_INTRANET
     */
    void onData(long callId, String fromAccount, String resource, byte[] data, RtsDataType dataType, RtsChannelType channelType);

    /**
     * 发送流数据成功的回调,仅当流策略配置为MIMCStreamConfig.STRATEGY_ACK时回调
     * @param[callId]: 通话ID
     * @param[dataId]: 和sendRtsData()返回值对应
     * @param[context]: 用户自定义对象,和sendRtsData()中的context对应
     */
    void onSendDataSuccess(long callId, int dataId, Object context);

    /**
     * 发送流数据失败的回调,仅当流策略配置为MIMCStreamConfig.STRATEGY_ACK时回调
     * @param[callId]: 通话ID
     * @param[dataId]: 和sendRtsData()返回值对应
     * @param[context]: 用户自定义对象,和sendRtsData()中的context对应
     */
    void onSendDataFailure(long callId, int dataId, Object context);
}

多聊回调

user.registerChannelHandler(MIMCRtsChannelHandler rtsChannelHandler);
public interface MIMCRtsChannelHandler {
    /**
     * 创建频道回调
     * @param[identity]: 创建频道标识,和createChannel()返回值一一对应
     * @param[callId]: 通话ID
     * @param[callKey]: 通话密钥
     * @param[success]:true成功 false失败
     * @param[desc]: 描述信息
     * @param[extra]: 附加信息
     */
    void onCreateChannel(long identity, long callId, String callKey, boolean success, String desc, byte[] extra);

    /**
     * 加入频道回调
     * @param[callId]: 通话ID
     * @param[appAccount]: 发起方账号
     * @param[resource]: 设备的标识
     * @param[success]:true成功 false失败
     * @param[desc]: 描述信息
     * @param[extra]: 附加信息
     * @param[members]: 频道内所有成员
     *        ChannelUser.appAccount: 用户帐号
     *        ChannelUser.resource: 用户设备的标识
     */
    void onJoinChannel(long callId, String appAccount, String resource, boolean success, String desc, byte[] extra, List<ChannelUser> members);

    /**
     * 离开频道回调
     * @param[callId]: 通话ID
     * @param[appAccount]: 发起方账号
     * @param[resource]: 设备的标识
     * @param[success]:true成功 false失败
     * @param[desc]: 描述信息
     */
    void onLeaveChannel(long callId, String appAccount, String resource, boolean success, String desc);

    /**
     * 新加入用户回调
     * @param[callId]:通话ID
     * @param[appAccount]: 用户帐号
     * @param[resource]: 设备的标识
     */
    void onUserJoined(long callId, String appAccount, String resource);

    /**
     * 用户离开回调
     * @param[callId]: 通话ID
     * @param[appAccount]: 用户帐号
     * @param[resource]: 设备的标识
     */
    void onUserLeft(long callId, String appAccount, String resource);

    /**
     * 接收流数据
     * @param[callId]: 通话ID
     * @param[fromAccount]: 发送方帐号
     * @param[resource]: 设备的标识
     * @param[data]: 流数据
     * @param[dataType]: 数据类型,AUDIO,VIDEO
     */
    void onData(long callId, String fromAccount, String resource, byte[] data, RtsDataType dataType);

    /**
     * 发送流数据成功的回调,仅当流策略配置为MIMCStreamConfig.STRATEGY_ACK时回调
     * @param[callId]: 通话ID
     * @param[dataId]: 和sendRtsData()返回值对应
     * @param[context]: 用户自定义对象,和sendRtsData()中的context对应
     */
    void onSendDataSuccess(long callId, int dataId, Object context);

    /**
     * 发送流数据失败的回调,仅当流策略配置为MIMCStreamConfig.STRATEGY_ACK时回调
     * @param[callId]: 通话ID
     * @param[dataId]: 和sendRtsData()返回值对应
     * @param[context]: 用户自定义对象,和sendRtsData()中的context对应
     */
    void onSendDataFailure(long callId, int dataId, Object context);
}

回到顶部

results matching ""

    No results matching ""