GameRTCAudioScenarioType

typedef NS_ENUM(NSInteger, GameRTCAudioScenarioType)

音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
你可以调用 setAudioScenario: 设置音频场景。
如果以下音频场景类型无法满足你的业务需要,请联系技术支持同学进行定制。

枚举值

类型 值 说明
GameRTCAudioScenarioMusic 0 音乐场景。默认为此场景。

此场景适用于对音乐表现力有要求的场景,如音乐直播等。

音频路由和发布订阅状态,到音量类型的映射如下:






仅发布音视频流仅订阅音视频流发布并订阅音视频流备注
设备自带麦克风和扬声器/听筒媒体音量媒体音量通话音量/
有线耳机媒体音量媒体音量媒体音量/
蓝牙耳机媒体音量媒体音量媒体音量即使蓝牙耳机有麦克风,也只能使用设备自带麦克风进行本地音频采集。
GameRTCAudioScenarioHighqualityCommunication 1 高质量通话场景。

此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。

此场景可以兼顾外放/使用蓝牙耳机时的音频体验,并避免使用蓝牙耳机时音量类型切换导致的听感突变。

音频路由和发布订阅状态,到音量类型的映射如下:






仅发布音视频流仅订阅音视频流发布并订阅音视频流 备注
设备自带麦克风和扬声器/听筒媒体音量媒体音量通话音量/
有线耳机媒体音量媒体音量媒体音量/
蓝牙耳机通话音量通话音量通话音量使用蓝牙耳机上自带的麦克风进行音频采集。
GameRTCAudioScenarioCommunication 2 纯通话音量场景。

此场景下,无论客户端音频路由情况和发布订阅状态,全程使用通话音量。
适用于需要频繁上下麦的通话或会议场景。

此场景可以保持统一的音频模式,不会有音量突变的听感;
最大程度地消除回声,使通话清晰度达到最优;
使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。

但是,会压低使用媒体音量进行播放的其他音频的音量,且音质会变差。
GameRTCAudioScenarioMedia 3 纯媒体场景。一般不建议使用。

此场景下,无论客户端音频路由情况和发布订阅状态,全程使用媒体音量。

外放通话时,极易出现回声和啸叫。

GameRTCEngineConfig

@interface GameRTCEngineConfig : NSObject

引擎配置信息

成员变量

类型 名称
NSString* appId

变量说明

appId

@property (nonatomic, copy) NSString * _Nonnull appId;

应用 ID。只有使用相同 appId 创建的 Engine 实例之间才能进行实时音视频通话

GameRTCRoomType

typedef NS_ENUM(NSInteger, GameRTCRoomType)

房间类型

枚举值

类型 值 说明
GameRTCRoomTypeTeam 0 小队房间。默认值。

进入同一小队房间的成员是队友关系。

进入小队房间后,打开麦克风可以向房间内所有队友讲话;打开扬声器就可以收听房间内所有队友讲话。
GameRTCRoomTypeWorld 1 世界房间。

你需要判断进入同一房间的成员是否为队友关系,进而决定收听逻辑。

GameRTCRoomConfig

@interface GameRTCRoomConfig : NSObject

房间配置信息

成员变量

类型 名称
BOOL enableRangeAudio
BOOL enableSpatialAudio
int audioVolumeIndicationInterval
GameRTCRoomType roomType

变量说明

enableRangeAudio

@property (nonatomic, assign) BOOL enableRangeAudio;

设置是否开启范围语音

enableSpatialAudio

@property (nonatomic, assign) BOOL enableSpatialAudio;

设置是否开启空间语音

audioVolumeIndicationInterval

@property (nonatomic, assign) int audioVolumeIndicationInterval;

收到 rtcEngine:onAudioVolumeIndication:speakers:totalVolume: 音量提示回调的时间间隔:

roomType

@property (nonatomic, assign) GameRTCRoomType roomType;

房间类型,参看 GameRTCRoomType。

GameRTCReceiveRange

@interface GameRTCReceiveRange : NSObject

使用范围语音功能时,语音的接收范围

成员变量

类型 名称
int min
int max

变量说明

min

@property (nonatomic, assign) int min;

收听声音无衰减的最小范围值。
当收听者和声源距离小于 min 的时候,收听到的声音完全无衰减。

max

@property (nonatomic, assign) int max;

能够收听到声音的最大范围。
当收听者和声源距离大于 max 的时候,无法收听到声音。
当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离有衰减。

GameRTCPositionInfo

@interface GameRTCPositionInfo : NSObject

玩家位置信息

成员变量

类型 名称
int x
int y
int z

变量说明

x

@property (nonatomic, assign) int x;

x 坐标

y

@property (nonatomic, assign) int y;

y 坐标

z

@property (nonatomic, assign) int z;

z 坐标

GameRTCOrientationInfo

@interface GameRTCOrientationInfo : NSObject

描述空间语音中玩家的方位

成员变量

类型 名称
float x_axis_0
float y_axis_0
float z_axis_0
float x_axis_1
float y_axis_1
float z_axis_1
float x_axis_2
float y_axis_2
float z_axis_2

变量说明

x_axis_0

@property (nonatomic, assign) float x_axis_0;

前向方位,在 x 轴的投影

y_axis_0

@property (nonatomic, assign) float y_axis_0;

前向方位,在 y 轴的投影

z_axis_0

@property (nonatomic, assign) float z_axis_0;

前向方位,在 z 轴的投影

x_axis_1

@property (nonatomic, assign) float x_axis_1;

右手方位,在 x 轴的投影

y_axis_1

@property (nonatomic, assign) float y_axis_1;

右手方位,在 y 轴的投影

z_axis_1

@property (nonatomic, assign) float z_axis_1;

右手方位,在 z 轴的投影

x_axis_2

@property (nonatomic, assign) float x_axis_2;

头顶方位,在 x 轴的投影

y_axis_2

@property (nonatomic, assign) float y_axis_2;

头顶方位,在 y 轴的投影

z_axis_2

@property (nonatomic, assign) float z_axis_2;

头顶方位,在 z 轴的投影

GameRTCUserLeaveType

typedef NS_ENUM(NSUInteger, GameRTCUserLeaveType)

用户离开房间的原因

枚举值

类型 值 说明
GameRTCUserLeaveTypeQuit 0 用户主动离开,即调用 leaveRoom: 方法退出房间。
GameRTCUserLeaveTypeDropped 1 用户掉线。用户因为网络等原因掉线

GameRTCConnectionState

typedef NS_ENUM(NSInteger, GameRTCConnectionState)

用户与 RTC 服务器的连接状态

枚举值

类型 值 说明
GameRTCConnectionStateDisconnected 0 连接中断。
GameRTCConnectionStateConnecting 1 首次连接,正在连接中。
GameRTCConnectionStateConnected 2 首次连接成功。
GameRTCConnectionStateReconnecting 3 连接断开后,重新连接中。
GameRTCConnectionStateReconnected 4 连接断开后,重连成功。
GameRTCConnectionStateLost 5 网络连接断开超过 10 秒,仍然会继续重连。

GameRTCNetworkQuality

typedef NS_ENUM(NSUInteger, GameRTCNetworkQuality)

用户的媒体流网络上下行质量

枚举值

类型 值 说明
GameRTCNetworkQualityUnknown 0 网络质量未知。
GameRTCNetworkQualityExcellent 1 网络质量极好。
GameRTCNetworkQualityGood 2 用户主观感觉近似“极好”,但码率可能略低于“极好”。
GameRTCNetworkQualityPoor 3 用户主观感受有瑕疵但不影响沟通。
GameRTCNetworkQualityBad 4 勉强能够沟通但不顺畅。
GameRTCNetworkQualityVBad 5 网络质量非常差,基本不能沟通。

GameRTCAudioVolumeInfo

@interface GameRTCAudioVolumeInfo : NSObject

音频流来源的用户 ID, 及对应的音量。

成员变量

类型 名称
NSString* uid
NSUInteger volume

变量说明

uid

@property (copy, nonatomic) NSString * _Nonnull uid;

音频流来源的用户 ID

volume

@property (assign, nonatomic) NSUInteger volume;

音量,取值范围是:[0,255]

GameRTCAudioSampleRate

typedef NS_ENUM(NSInteger, GameRTCAudioSampleRate)

音频采样率

枚举值

类型 值 说明
GameRTCAudioSampleRate8000 8000 8000 采样率
GameRTCAudioSampleRate16000 16000 16000 采样率
GameRTCAudioSampleRate32000 32000 32000 采样率
GameRTCAudioSampleRate44100 44100 44100 采样率
GameRTCAudioSampleRate48000 48000 48000 采样率

GameRTCAudioChannel

typedef NS_ENUM(NSInteger, GameRTCAudioChannel)

音频声道

枚举值

类型 值 说明
GameRTCAudioChannelMono 1 单声道
GameRTCAudioChannelStereo 2 双声道

GameRTCAudioFormat

@interface GameRTCAudioFormat : NSObject

音频参数格式

成员变量

类型 名称
GameRTCAudioSampleRate sampleRate
GameRTCAudioChannel channel

变量说明

sampleRate

@property (nonatomic, assign) GameRTCAudioSampleRate sampleRate;

音频采样率,详见 GameRTCAudioSampleRate

channel

@property (nonatomic, assign) GameRTCAudioChannel channel;

音频声道,详见 GameRTCAudioChannel

GameRTCAudioFrame

@interface GameRTCAudioFrame : NSObject

音频帧

成员变量

类型 名称
NSData* buffer
int samples
GameRTCAudioChannel channel
GameRTCAudioSampleRate sampleRate

变量说明

buffer

@property (strong, nonatomic) NSData * _Nonnull buffer;

音频帧数据

samples

@property (assign, nonatomic) int samples;

此音频帧描述的样点数

channel

@property (assign, nonatomic) GameRTCAudioChannel channel;

音频声道,详见 GameRTCAudioChannel

sampleRate

@property (assign, nonatomic) GameRTCAudioSampleRate sampleRate;

音频采样率,详见 GameRTCAudioSampleRate