Skip to content

接口文档

dreambko edited this page Dec 13, 2022 · 1 revision

SonaRoom

SonaRoom具有创建房间、关闭房间、进入房间、离开房间、修改房间密码,以及管理Plugin的功能。

/**
 * 创建房间
 *
 * @param roomTitle        房间名称
 * @param productCode      产品名称
 * @param password         房间密码
 * @param ext              其他参数,业务根据需要传入
 * @param sonaRoomCallback 回调
 */
void createRoom(String roomTitle, SonaRoomProduct productCode, String password, Map ext, SonaRoomCallback sonaRoomCallback);


/**
 * 打开房间
 *
 * @param roomId           房间id
 * @param sonaRoomCallback 回调
 */
void openRoom(String roomId, SonaRoomCallback sonaRoomCallback);

/**
 * 关闭房间
 *
 * @param roomId           房间id
 * @param sonaRoomCallback 回调
 */
void closeRoom(String roomId, SonaRoomCallback sonaRoomCallback);

/**
 * 进入房间
 *
 * @param roomId           房间id
 * @param productCode      产品名称
 * @param password         房间密码
 * @param ext              其他参数,业务根据需要传入
 * @param sonaRoomCallback 回调
 */
void enterRoom(String roomId, SonaRoomProduct productCode, String password, Map ext, SonaRoomCallback sonaRoomCallback);

/**
 * 进入房间
 *
 * @param roomId           房间id
 * @param productCode      产品名称
 * @param password         房间密码
 * @param ext              其他参数,业务根据需要传入
 * @param sonaRoomCallback 回调
 */
void enterRoom(String roomId, String productCode, String password, Map ext, SonaRoomCallback sonaRoomCallback);

/**
 * 更改房间密码
 *
 * @param roomId           房间id
 * @param oldPassword      老密码
 * @param newPassword      新密码
 * @param sonaRoomCallback 回调
 */
void updateRoomPassword(String roomId, String oldPassword, String newPassword, SonaRoomCallback sonaRoomCallback);

/**
 * 离开房间
 *
 * @param sonaRoomCallback 回调
 */
void leaveRoom(SonaRoomCallback sonaRoomCallback);

AdminPlugin

提供房间管理相关能力

/**
 * 设置管理员
 *
 * @param uid	          用户uid
 * @param pluginCallback  回调
 */
void setAdmin(String uid, PluginCallback pluginCallback);

/**
 * 取消管理员
 *
 * @param uid		  用户uid
 * @param pluginCallback  回调
 */
void cancelAdmin(String uid, PluginCallback pluginCallback);

/**
 * 拉黑
 *
 * @param uid		  用户uid
 * @param reason          原因
 * @param pluginCallback  回调
 */
void black(String uid, String reason, PluginCallback pluginCallback);

/**
 * 取消拉黑
 *
 * @param uid 		  用户uid
 * @param reason          原因
 * @param pluginCallback  回调
 */
void cancelBlack(String uid, String reason, PluginCallback pluginCallback);

/**
 * 禁言
 *
 * @param uid		  用户uid
 * @param minute          禁言时长(分钟)
 * @param pluginCallback  回调
 */
void mute(String uid, int minute, PluginCallback pluginCallback);

/**
 * 取消禁言
 *
 * @param uid	          用户uid
 * @param pluginCallback  回调
 */
void cancelMute(String uid, PluginCallback pluginCallback);

/**
 * 批量静音
 *
 * @param uids	          多个用户uid
 * @param pluginCallback  回调
 */
void silent(List<String> uids, PluginCallback pluginCallback);

/**
 * 取消批量静音
 *
 * @param uids		  多个用户uid
 * @param pluginCallback  回调
 */
void cancelSilent(List<String> uids, PluginCallback pluginCallback);

/**
 * 获取在线人员列表
 *
 * @param anchor 	      锚点
 * @param limit               每页数量
 * @param onlineUserCallback  查询回调
 */
void queryOnlineUsers(String anchor, int limit, OnlineUserCallback onlineUserCallback);

/**
 * 获取在线人员数量
 *
 * @param onlineUserNumberCallback  查询回调
 */
void queryOnlineUserNumber(OnlineUserNumberCallback onlineUserNumberCallback);

/**
 * 踢人
 *
 * @param uid		  用户uid
 * @param pluginCallback  回调
 */
void kick(String uid, PluginCallback pluginCallback);

AudioPlugin

提供操作房间音频相关能力

/**
 * 开始说话
 *
 * @param callback  回调
 */
void startSpeak(PluginCallback callback);

/**
 * 停止说话
 *
 * @param callback  回调
 */
void stopSpeak(PluginCallback callback);

/**
 * 开始听一条流的声音
 *
 * @param streamId  流id
 * @param callback  回调
 */
void startListen(String streamId, PluginCallback callback);

/**
 * 停止听一条流的声音
 *
 * @param streamId  流id
 * @param callback  回调
 */
void stopListen(String streamId, PluginCallback callback);

/**
 * 开始听所有流的声音
 *
 * @param callback  回调
 */
void startListen(PluginCallback callback);

/**
 * 停止听所有流的声音
 *
 * @param callback  回调
 */
void stopListen(PluginCallback callback);

/**
 * 静音
 *
 * @param streamId  流id
 * @param on        true: 静音,false: 取消静音
 * @param callback  回调
 */
void silent(String streamId, boolean on, PluginCallback callback);

/**
 * 开关麦克风
 *
 * @param on        true: 开,false:关
 * @param callback  回调
 */
void switchMic(boolean on, PluginCallback callback);

/**
 * 开关免提
 *
 * @param on        true: 开,false:关
 * @param callback  回调
 */
void switchHandsfree(boolean on, PluginCallback callback);

/**
 * 获取当前房间流信息
 *
 * @return 流信息list
 */
List<AudioStream> currentStream();

/**
 * 获取当前流的提供方
 *
 * @return 流云商枚举
 */
StreamSupplierEnum getStreamSupplier();

/**
 * 开始重连
 *
 * @param pluginCallback  回调
 */
void startReconnect(PluginCallback pluginCallback);

/**
 * 切换拉流模式
 *
 * @param realTime  true:rtc,false:CDN
 * @param callback  回调
 */
void switchListen(boolean realTime, PluginCallback callback);

ConnectPlugin

提供房间长连的相关能力

/**
 * 发送消息
 *
 * @param connectMessage  {@link cn.bixin.sona.plugin.internal.ConnectMessage.MessageCreator} 创建消息
 * @param pluginCallback  回调
 */
void sendMessage(ConnectMessage connectMessage, PluginCallback pluginCallback);

/**
 * 发送消息
 *
 * @param connectMessage  {@link cn.bixin.sona.plugin.internal.ConnectMessage.MessageCreator} 创建消息
 * @param needToSave      是否需要服务器保存消息 1:是,0否
 * @param pluginCallback  回调
 */
void sendMessage(ConnectMessage connectMessage, int needToSave, PluginCallback pluginCallback);

/**
 * 开始重连长连
 *
 * @param pluginCallback  回调
 */
void startReconnect(PluginCallback pluginCallback);

AudioPlayerPlugin

提供房间操作背景音乐的能力

/**
 * 开始播放
 *
 * @param url 		播放地址
 * @param startPosition 开始播放位置
 * @param pattern 	播放模式 LOCAL: 本地播放,REMOTE:混流推流中
 */
override fun play(url: String, startPosition: Long, pattern: IAudioPlayer.PlayPattern)

/**
 * 开始循环播放
 *
 * @param url 		播放地址
 * @param startPosition 开始播放位置
 * @param pattern 	播放模式 LOCAL: 本地播放,REMOTE:混流推流中
 */
override fun playRepeat(url: String, startPosition: Long, pattern: IAudioPlayer.PlayPattern)

/**
 * 恢复播放
 */
override fun resume()

/**
 * 暂停播放
 */
override fun pause()

/**
 * 停止播放
 */
override fun stop()

/**
 * 拖动进度
 *
 * @param position 0~duration
 */
override fun seek(position: Long)

/**
 * 设置音量
 *
 * @param volume 0~100
 */
override fun setVolume(volume: Int)

/**
 * 获取总时长
 *
 * @return 资源总时长
 */
override fun getDuration(): Long

/**
 * 获取当前播放的位置
 */
override fun getCurrentPosition(): Long

/**
 * 获取播放状态
 *
 * @return  当前播放状态

 */
override fun getStatus(): IAudioPlayer.Status

Clone this wiki locally