目录

实时流

初始化音频流配置

/**
 * @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[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[data]: 流数据
 * @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 成功返回gourpId,失败返回-1
 */
int groupId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, Object context);
int groupId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, int resendCount, Object context);
int groupId = user.sendRtsData(long callId, byte[] data, RtsDataType dataType, XMDPacket.DataPriority dataPriority, boolean canBeDropped, int resendCount, RtsChannelType channelType, Object context);

关闭会话

/**
 * @param[callId]: 通话ID
 * @param[byeReason]: 描述信息
 */
user.closeCall(long callId);
user.closeCall(long callId, String byeReason);

获取音频流配置

/**
 * @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();

实时流回调

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[data]: 流数据
     * @param[dataType]: 数据类型,AUDIO,VIDEO
     * @param[channelType);]: 通道类型,RELAY、P2P_INTERNET、P2P_INTRANET
     */
    void handleData(long callId, byte[] data, RtsDataType dataType, RtsChannelType channelType);

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

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

回到顶部

results matching ""

    No results matching ""