* @param token: RTC Token
* @param roomID: RTC room id
* @param uid: RTC user id
* @param isHost: YES 业务上主播 ; NO 业务上观众
- (void)joinRTCRoomWithToken:(NSString *)token
roomID:(NSString *)roomID
self.rtcEngineKit = [ByteRTCVideo createRTCVideo:APPID
self.rtcRoom = [self.rtcEngineKit createRTCRoom:roomID];
self.rtcRoom.delegate = self;
[self.rtcEngineKit setAudioScenario:ByteRTCAudioScenarioMusic];
[self.rtcEngineKit setAudioProfile:ByteRTCAudioProfileHD];
[self.rtcRoom setUserVisibility:isHost];
// 加入房间时主播需要开启麦克风,观众需要关闭麦克风
[self.rtcEngineKit startAudioCapture];
[self.rtcEngineKit stopAudioCapture];
[self.rtcEngineKit setDefaultAudioRoute:ByteRTCAudioRouteSpeakerphone];
ByteRTCAudioPropertiesConfig *audioPropertiesConfig = [[ByteRTCAudioPropertiesConfig alloc] init];
audioPropertiesConfig.interval = 300;
[self.rtcEngineKit enableAudioPropertiesReport:audioPropertiesConfig];
// 加入房间,开始连麦,需要申请AppId和Token
ByteRTCUserInfo *userInfo = [[ByteRTCUserInfo alloc] init];
ByteRTCRoomConfig *config = [[ByteRTCRoomConfig alloc] init];
config.profile = ByteRTCRoomProfileKTV;
config.isAutoPublish = YES;
config.isAutoSubscribeAudio = YES;
[self.rtcRoom joinRoom:token userInfo:userInfo roomConfig:config];
* ByteRTCRoomDelegate 中的房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。
* @param extraInfo 额外信息。
- (void)rtcRoom:(ByteRTCRoom *)rtcRoom onRoomStateChanged:(NSString *)roomId
extraInfo:(NSString *)extraInfo {
* ByteRTCVideoDelegate 中的用户音量信息回调
* @param engine ByteRTCVideo 对象
* @param audioPropertiesInfos 本地音频信息
- (void)rtcEngine:(ByteRTCVideo *)engine onLocalAudioPropertiesReport:(NSArray<ByteRTCLocalAudioPropertiesInfo *> *)audioPropertiesInfos {
* ByteRTCVideoDelegate 中的远端用户音量回调
* @param engine ByteRTCVideo 对象
* @param audioPropertiesInfos 远端音频信息,其中包含音频流属性、房间 ID、用户 ID。
* @param totalRemoteVolume 订阅的所有远端流混音后的总音量,范围是 [0,255]。
- (void)rtcEngine:(ByteRTCVideo *)engine onRemoteAudioPropertiesReport:(NSArray<ByteRTCRemoteAudioPropertiesInfo *> *)audioPropertiesInfos
totalRemoteVolume:(NSInteger)totalRemoteVolume {