本文为您介绍iOS端语聊房场景的API说明。
API概览
| 类/协议 | API | 说明 | 
| ARTCVoiceRoomEngine 语聊房引擎 | 初始化 | |
| 添加回调 | ||
| 移除回调 | ||
| 设置/获取RoomServiceInterface | ||
| 房间model | ||
| 是否房主 | ||
| 是否在语聊房里 | ||
| 进入语聊房 | ||
| 离开语聊房 | ||
| 解散语聊房(仅限主播) | ||
| 麦位model | ||
| 是否已上麦 | ||
| 直接上麦 | ||
| 下麦 | ||
| 申请上麦 | ||
| 打开/关闭一个自己的麦克风 | ||
| 切换自己的音频输出(麦克风或听筒) | ||
| 开关耳返 | ||
| 获取是否开启耳返 | ||
| 设置音频采集音量,默认50,可调节[0~100] | ||
| 获取音频采集音量,默认50,可调节[0~100] | ||
| 开始播放音效 | ||
| 停止播放音效 | ||
| 设置音效音量 | ||
| 开始播放背景音乐 | ||
| 停止播放背景音乐 | ||
| 设置播放背景音乐音量 | ||
| 获取背景音乐播放状态 | ||
| 设置变声类型 | ||
| 获取当前变声类型 | ||
| 发送弹幕 | ||
| 发送信令 | ||
| 发送弹幕 | ||
| 发送信令 | ||
| ARTCVoiceRoomEngineDelegate 语聊房引擎回调 | 有人进入语聊房了 | |
| 有人离开语聊房了 | ||
| 自己被踢出语聊房了 | ||
| 语聊房解散了 | ||
| 房间内在线人数发生了变化 | ||
| 有人上麦 | ||
| 有人下麦 | ||
| 麦上用户语音流发生了变化(推流或停止推流) | ||
| 麦上用户麦克风打开/关闭 | ||
| 麦上用户是否正在说话中 | ||
| 网络出现了变化 | ||
| 自己背景音乐播放状态改变(开始/结束/失败) | ||
| 自己音效播放结束 | ||
| 自己收到了弹幕 | ||
| 发生了错误 | 
ARTCVoiceRoomEngine详情
init
API含义:初始化
使用示例:
public init(_ roomInfo: ARTCVoiceRoomInfo)参数详情:
| 参数 | 类型 | 含义 | 
| roomInfo | ARTCVoiceRoomInfo | 语聊房Model | 
addObserver
API含义:添加房间事件回调
使用示例:
public func addObserver(delegate: ARTCVoiceRoomEngineDelegate)参数详情:
| 参数 | 类型 | 含义 | 
| delegate | ARTCVoiceRoomEngineDelegate | 要添加的监听者 | 
removeObserver
API含义:移除房间事件回调
使用示例:
public func removeObserver(delegate: ARTCVoiceRoomEngineDelegate)参数详情:
| 参数 | 类型 | 含义 | 
| delegate | ARTCVoiceRoomEngineDelegate | 需要移除的监听者 | 
roomService
API含义:设置/获取RoomServiceInterface
使用示例:
public var roomService: ARTCRoomServiceInterface? = nil参数详情:
无
roomInfo
API含义:房间model
使用示例:
public let roomInfo: ARTCVoiceRoomInfo参数详情:
无
isAnchor
API含义:是否房主
使用示例:
public var isAnchor: Bool参数详情:
无
isJoinRoom
API含义:是否在语聊房里
使用示例:
public private(set) var isJoinRoom: Bool = false参数详情:
无
joinRoom
API含义:进入语聊房
使用示例:
public func joinRoom(completed: ARTCRoomCompleted?)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
leaveRoom
API含义:离开语聊房
使用示例:
public func leaveRoom(_ completed: (()->Void)? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ()->Void | 操作完成回调 | 
dismissRoom
API含义:解散语聊房(仅限主播)
使用示例:
public func dismissRoom(completed: ARTCRoomCompleted?)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
micSeatInfo
API含义:麦位model
使用示例:
public var micSeatInfo: AUIVoiceRoomMicSeatInfo?参数详情:
无
isJoinMic
API含义:是否已上麦
使用示例:
public var isJoinMic: Bool参数详情:
无
joinMic
API含义:直接上麦
使用示例:
public func joinMic(seatIndex: Int32, completed: ARTCRoomCompleted?) 参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
leaveMic
API含义:下麦
使用示例:
public func leaveMic(completed: ARTCRoomCompleted?)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
requestMic
API含义:申请上麦
使用示例:
public func requestMic(completed: ARTCRoomCompleted?)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
switchMicrophone
API含义:打开/关闭一个自己的麦克风
使用示例:
public func switchMicrophone(off: Bool, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| off | Bool | 是否关闭 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
switchAudioOutput
API含义:切换自己的音频输出(麦克风或听筒)
使用示例:
public func switchAudioOutput(type: ARTCRoomAudioOutputType, completed:  ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| type | ARTCRoomAudioOutputType | 类型(麦克风 or 听筒) | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
switchEarBack
API含义:开关耳返
使用示例:
public func switchEarBack(on: Bool, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| on | ARTCRoomAudioOutputType | 是否打开 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
getIsEarBack
API含义:获取是否开启耳返
使用示例:
public func getIsEarBack() -> Bool参数详情:
无
setRecordingVolume
API含义:设置音频采集音量,默认50,可调节[0~100]
使用示例:
public func setRecordingVolume(volume: Int32, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| volume | Int32 | 音量,默认50,可调节[0~100] | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
getRecordingVolume
API含义:获取音频采集音量
使用示例:
public func getRecordingVolume() -> Int32参数详情:
无
startPlayAudioEffect
API含义:开始播放音效
使用示例:
public func startPlayAudioEffect(effectId: Int32, localPath: String, volume: Int32, onlyLocalPlay: Bool, completed:  ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| effectId | Int32 | 音效Id | 
| localPath | String | 音效文件本地路径 | 
| volume | Int32 | 音量,默认50,可设置[0~100] | 
| onlyLocalPlay | Bool | 是否试听(不推流) | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
stopPlayAudioEffect
API含义:停止播放音效
使用示例:
public func stopPlayAudioEffect(effectId: Int32, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| effectId | Int32 | 音效Id | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
setAudioEffectVolume
API含义:设置音效音量
使用示例:
public func setAudioEffectVolume(effectId: Int32, volume: Int32, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| effectId | Int32 | 音效Id | 
| volume | Int32 | 音量,默认50,可设置[0~100] | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
startPlayBackgroundMusic
API含义:开始播放背景音乐
使用示例:
public func startPlayBackgroundMusic(musicId: Int32, localPath: String, volume: Int32, onlyLocalPlay: Bool, completed:  ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| musicId | Int32 | 音乐Id | 
| localPath | String | 音乐本地文件路径 | 
| volume | Int32 | 音量,默认50,可设置[0~100] | 
| onlyLocalPlay | Bool | 是否试听(不推流) | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
stopPlayBackgroundMusic
API含义:停止播放背景音乐
使用示例:
public func stopPlayBackgroundMusic(completed:  ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
setBackgroundMusicVolume
API含义:设置播放背景音乐音量
使用示例:
public func setBackgroundMusicVolume(volume: Int32, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| volume | Int32 | 音量,默认50,可设置[0~100] | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
bgMusicStatus
API含义:获取背景音
使用示例:
public lazy var bgMusicStatus: ARTCVoiceRoomAudioPlayingStatus参数详情:
无
setVoiceChangerMode
API含义:设置变声类型
使用示例:
public func setVoiceChangerMode(mode: ARTCRoomVoiceChangerMode, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| mode | ARTCRoomVoiceChangerMode | 变声类型 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
getVoiceChangerMode
API含义:获取当前变声类型
使用示例:
public func getVoiceChangerMode() -> ARTCRoomVoiceChangerMode参数详情:
无
setVoiceReverbMode
API含义:设置混响类型
使用示例:
public func setVoiceReverbMode(mode: ARTCRoomVoiceReverbMode, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| mode | ARTCRoomVoiceReverbMode | 混响类型 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
getVoiceChangerMode
API含义:获取混响类型
使用示例:
public func getVoiceReverbMode() -> ARTCRoomVoiceReverbMode参数详情:
无
sendTextMessage
API含义:发送评论
使用示例:
public func sendTextMessage(text: String, completed: ARTCRoomCompleted? = nil) 参数详情:
| 参数 | 类型 | 含义 | 
| text | String | 评论内容 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
sendCommand
API含义:发送信令,userId为空时,在房间内群发
使用示例:
public func sendCommand(type: ARTCRoomMessageType, data:[AnyHashable: Any]? = nil , userId: String? = nil, completed: ARTCRoomCompleted? = nil)参数详情:
| 参数 | 类型 | 含义 | 
| type | ARTCRoomMessageType | 信令类型 | 
| data | [AnyHashable: Any] | 自定义内容 | 
| userId | String | 接收用户id,为空时,在房间内群发 | 
| completed | ARTCRoomCompleted | 操作完成回调 | 
ARTCVoiceRoomEngineDelegate详情
onJoinedRoom
回调含义:有人进入语聊房了
使用示例:
@objc optional func onJoinedRoom(user: ARTCRoomUser)参数详情:
| 参数 | 类型 | 含义 | 
| user | ARTCRoomUser | 操作的用户 | 
onLeavedRoom
回调含义:有人离开语聊房了
使用示例:
@objc optional func onLeavedRoom(user: ARTCRoomUser)参数详情:
| 参数 | 类型 | 含义 | 
| user | ARTCRoomUser | 操作的用户 | 
onKickoutRoom
回调含义:自己被踢出语聊房了
使用示例:
@objc optional func onKickoutRoom()参数详情:
无
onDismissedRoom
回调含义:语聊房解散了
使用示例:
@objc optional func onDismissedRoom()参数详情:
无
onOnlineCountChanged
回调含义:房间内在线人数发生了变化
使用示例:
@objc optional func onOnlineCountChanged(count: Int)参数详情:
| 参数 | 类型 | 含义 | 
| count | Int | 人数 | 
onJoinedMic
回调含义:有人上麦
使用示例:
@objc optional func onJoinedMic(seatIndex: Int32, user: ARTCRoomUser)参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| user | ARTCRoomUser | 操作的用户 | 
onLeavedMic
回调含义:有人下麦
使用示例:
@objc optional func onLeavedMic(seatIndex: Int32, user: ARTCRoomUser)参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| user | ARTCRoomUser | 操作的用户 | 
onMicUserStreamChanged
回调含义:麦上用户语音流发生了变化(推流或停止推流)
使用示例:
@objc optional func onMicUserStreamChanged(seatIndex: Int32, user: ARTCRoomUser, publishing: Bool)参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| user | ARTCRoomUser | 操作的用户 | 
| publishing | Bool | 是否推流中 | 
onMicUserMicrophoneChanged
回调含义:麦上用户麦克风打开/关闭
使用示例:
@objc optional func onMicUserMicrophoneChanged(seatIndex: Int32, user: ARTCRoomUser, off: Bool)参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| user | ARTCRoomUser | 操作的用户 | 
| off | Bool | 是否关闭 | 
onMicUserSpeakStateChanged
回调含义:麦上用户是否正在说话中
使用示例:
@objc optional func onMicUserSpeakStateChanged(seatIndex: Int32, isSpeaking: Bool)参数详情:
| 参数 | 类型 | 含义 | 
| seatIndex | Int32 | 麦位 | 
| isSpeaking | Bool | 是否讲话中 | 
onNetworkStateChanged
回调含义:网络出现了变化
使用示例:
@objc optional func onNetworkStateChanged(user: ARTCRoomUser, state: String)参数详情:
| 参数 | 类型 | 含义 | 
| user | ARTCRoomUser | 操作的用户 | 
| state | String | 网络状态 | 
onBackgroundMusicStatusChanged
回调含义:自己背景音乐播放状态改变(开始/结束/失败)
使用示例:
@objc optional func onBackgroundMusicStatusChanged(status: ARTCVoiceRoomAudioPlayingStatus)参数详情:
| 参数 | 类型 | 含义 | 
| status | ARTCVoiceRoomAudioPlayingStatus | 播放状态 | 
onAudioEffectPlayCompleted
回调含义:自己音效播放结束
使用示例:
@objc optional func onAudioEffectPlayCompleted(effectId: Int32)参数详情:
| 参数 | 类型 | 含义 | 
| effectId | Int32 | 音效id | 
onReceivedTextMessage
回调含义:自己收到了弹幕
使用示例:
@objc optional func onReceivedTextMessage(user: ARTCRoomUser, text: String)参数详情:
| 参数 | 类型 | 含义 | 
| user | ARTCRoomUser | 操作的用户 | 
| text | String | 弹幕信息 | 
onError
回调含义:发生了错误
使用示例:
@objc optional func onError(_ error: NSError)参数详情:
| 参数 | 类型 | 含义 | 
| error | NSError | 错误信息 |