通过阅读本文,您可以了解语音聊天室iOS端的集成操作。
环境要求
iOS端具体环境要求,更多信息,请参见使用限制。
前提条件
操作步骤
Demo目录结构说明
RTC把开发的业务代码封装到RTCAudioLiveRoom库中,因此只需在Podfile中指定RTCAudioLiveRoom库的路径,RTCAudioLiveRoom就可以以本地第三方库的形式移植到其他项目中。如下所示:
#基础组件 :path 的路径为podfile 和 RTCCommon.podspec 的相对路径
pod 'RTCCommon', :path => 'RTCCommon/'
#基础UI组件 :path 的路径为podfile 和 RTCCommonView.podspec 的相对路径
pod 'RTCCommonView', :path => 'RTCCommonView/'
#语聊房 :path 的路径为podfile 和 RTCAudioLiveRoom.podspec 的相对路径
pod 'RTCAudioLiveRoom', :path => 'RTCAudioLiveRoom/'
RTCAudioLiveRoom组件库目录说明,如下所示:
API说明
API | 描述 |
---|---|
sharedInstance | 获取单例对象。 |
destroySharedInstance | 销毁实例对象。 |
login | 加入频道。 |
logout | 退出频道。 |
enterSeat | 上麦。 |
leavelSeat | 下麦。 |
renotifySeatsInfo | 重新通过回调通知座位信息。 |
muteLocalMic | 静音或取消静音。 |
muteAllRemoteAudioPlaying | 关闭或开启远端声音。 |
startAudioAccompanyWithFile | 播放背景音乐。 |
stopAudioAccompany | 停止播放背景音乐。 |
setAudioAccompanyVolume | 设置伴奏音量。 |
playEffectSoundtWithSoundId | 播放音效。 |
stopAudioEffectWithSoundId | 停止播放音效。 |
setAudioEffectPlayoutVolumeWithSoundId | 设置音效的音量。 |
enableEarBack | 设置耳返。 |
setAudioEffectReverbMode | 设置混响模式。 |
setAudioEffectVoiceChangerMode | 设置音效混响模式。 |
API | 描述 |
---|---|
onEnterSeat | 远端用户上麦通知。 |
onLeaveSeat | 远端用户下线通知。 |
onRoomDestory | 房间被销毁通知。 |
onSeatVolumeChanged | 音量变化通知。 |
onSeatMutedChanged | 静音或取消静音变化通知。 |
功能实现接口
- 获取单例对象。
// 单例模式 初始化RTCAudioliveRoom RTCAudioliveRoom *manager = [RTCAudioliveRoom sharedInstance]; //设置代理对象 manager.delegate = vc
- 销毁实例对象。
[self.manager destroySharedInstance];
- 加入频道。
/// 加入频道 /// @param channelId 频道名称 /// @param name 任意用于显示的用户名称。不是User ID /// @param role 角色 /// @param handler 回调 [self.manager login:@"频道名称" name:@"用户昵称" role:@"角色" complete:^(AliRtcAuthInfo * _Nonnull authInfo, NSInteger errorCode) { if (authInfo) { //加入房间成功 // .... return; } //加入房间失败 }];
- 退出频道。
[self.manager logout];
- 上麦。
[self.manager enterSeat];
- 下麦。
[self.manager leavelSeat];
- 重新通过回调通知座位信息。
[self.manager renotifySeatsInfo];
- 静音或取消静音。
//静音 [self.manager muteLocalMic:YES]; //取消静音 [self.manager muteLocalMic:NO];
- 关闭或开启远端声音。
//关闭远端声音 [self.manager muteAllRemoteAudioPlaying:YES]; //开启远端声音 [self.manager muteAllRemoteAudioPlaying:NO];
- 播放背景音乐。
/// 播放背景音乐 /// @param filePath 文件路径 /// @param publish 是否推送远端 [self.manager startAudioAccompanyWithFile:@"文件url" publish:YES];
- 停止播放背景音乐。
[self.manager stopAudioAccompany];
- 设置伴奏音量。
/// 设置背景音乐音量 /// @param volume 音量 0~100 [self.manager setAudioAccompanyVolume:100];
- 播放音效。
/// 播放音效 /// @param soundId 音效id /// @param filePath 资源路径 /// @param publish 是否推送远端 [self.manager playEffectSoundtWithSoundId:111 filePath:@"文件url" publish:YES];
- 停止播放音效。
[self.manager stopAudioEffectWithSoundId:111];
- 设置音效的音量。
[self.manager setAudioEffectPlayoutVolumeWithSoundId:111 volume:100];
- 设置耳返。
//开启耳返 [self.manager enableEarBack:YES]; //关闭耳返 [self.manager enableEarBack:NO];
- 设置混响模式。
[self.manager setAudioEffectReverbMode:AliRtcAudioEffectReverb_Off];
- 设置音效混响模式。
[self.manager setAudioEffectVoiceChangerMode:AliRtcAudioEffectvVoiceChanger_OFF];
回调接口
- 远端用户上麦通知。
/// 远端用户上麦通知 /// @param seat 麦序 - (void)onEnterSeat:(SeatInfo *)seat;
- 远端用户下线通知。
/// 远端用户下线通知 /// @param seat 麦序 - (void)onLeaveSeat:(SeatInfo *)seat;
- 房间被销毁通知。
/// 房间被销毁通知 - (void)onRoomDestory;
- 音量变化通知。
/// 音量变化通知 /// @param seatIndex 麦序 /// @param isSpeaking 是否在说话 - (void)onSeatVolumeChanged:(NSInteger)seatIndex isSpeaking:(BOOL)isSpeaking;
- 静音或取消静音变化通知。
/// 静音/取消静音变化通知 /// @param seatIndex 麦序 /// @param mute 是否静音 - (void)onSeatMutedChanged:(NSInteger)seatIndex mute:(BOOL)mute;