typedef NS_ENUM(NSInteger, GameRTCAudioScenarioType)
音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
你可以调用 setAudioScenario: 设置音频场景。
如果以下音频场景类型无法满足你的业务需要,请联系技术支持同学进行定制。
| 类型 | 值 | 说明 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GameRTCAudioScenarioMusic | 0 | 音乐场景。默认为此场景。 此场景适用于对音乐表现力有要求的场景,如音乐直播等。 音频路由和发布订阅状态,到音量类型的映射如下:
|
||||||||||||||||||||
| GameRTCAudioScenarioHighqualityCommunication | 1 | 高质量通话场景。 此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。 此场景可以兼顾外放/使用蓝牙耳机时的音频体验,并避免使用蓝牙耳机时音量类型切换导致的听感突变。 音频路由和发布订阅状态,到音量类型的映射如下:
|
||||||||||||||||||||
| GameRTCAudioScenarioCommunication | 2 | 纯通话音量场景。 此场景下,无论客户端音频路由情况和发布订阅状态,全程使用通话音量。 适用于需要频繁上下麦的通话或会议场景。 此场景可以保持统一的音频模式,不会有音量突变的听感; 最大程度地消除回声,使通话清晰度达到最优; 使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。 但是,会压低使用媒体音量进行播放的其他音频的音量,且音质会变差。 |
||||||||||||||||||||
| GameRTCAudioScenarioMedia | 3 | 纯媒体场景。一般不建议使用。 此场景下,无论客户端音频路由情况和发布订阅状态,全程使用媒体音量。 外放通话时,极易出现回声和啸叫。 |
@interface GameRTCEngineConfig : NSObject
引擎配置信息
| 类型 | 名称 |
|---|---|
| NSString* | appId |
@property (nonatomic, copy) NSString * _Nonnull appId;
应用 ID。只有使用相同 appId 创建的 Engine 实例之间才能进行实时音视频通话
typedef NS_ENUM(NSInteger, GameRTCRoomType)
房间类型
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCRoomTypeTeam | 0 | 小队房间。默认值。 进入同一小队房间的成员是队友关系。 进入小队房间后,打开麦克风可以向房间内所有队友讲话;打开扬声器就可以收听房间内所有队友讲话。 |
| GameRTCRoomTypeWorld | 1 | 世界房间。 你需要判断进入同一房间的成员是否为队友关系,进而决定收听逻辑。 |
@interface GameRTCRoomConfig : NSObject
房间配置信息
| 类型 | 名称 |
|---|---|
| BOOL | enableRangeAudio |
| BOOL | enableSpatialAudio |
| int | audioVolumeIndicationInterval |
| GameRTCRoomType | roomType |
@property (nonatomic, assign) BOOL enableRangeAudio;
设置是否开启范围语音
@property (nonatomic, assign) BOOL enableSpatialAudio;
设置是否开启空间语音
@property (nonatomic, assign) int audioVolumeIndicationInterval;
收到 rtcEngine:onAudioVolumeIndication:speakers:totalVolume: 音量提示回调的时间间隔:
0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。
@property (nonatomic, assign) GameRTCRoomType roomType;
房间类型,参看 GameRTCRoomType。
@interface GameRTCReceiveRange : NSObject
使用范围语音功能时,语音的接收范围
| 类型 | 名称 |
|---|---|
| int | min |
| int | max |
@property (nonatomic, assign) int min;
收听声音无衰减的最小范围值。
当收听者和声源距离小于 min 的时候,收听到的声音完全无衰减。
@property (nonatomic, assign) int max;
能够收听到声音的最大范围。
当收听者和声源距离大于 max 的时候,无法收听到声音。
当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离有衰减。
@interface GameRTCPositionInfo : NSObject
玩家位置信息
| 类型 | 名称 |
|---|---|
| int | x |
| int | y |
| int | z |
@property (nonatomic, assign) int x;
x 坐标
@property (nonatomic, assign) int y;
y 坐标
@property (nonatomic, assign) int z;
z 坐标
@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 |
@property (nonatomic, assign) float x_axis_0;
前向方位,在 x 轴的投影
@property (nonatomic, assign) float y_axis_0;
前向方位,在 y 轴的投影
@property (nonatomic, assign) float z_axis_0;
前向方位,在 z 轴的投影
@property (nonatomic, assign) float x_axis_1;
右手方位,在 x 轴的投影
@property (nonatomic, assign) float y_axis_1;
右手方位,在 y 轴的投影
@property (nonatomic, assign) float z_axis_1;
右手方位,在 z 轴的投影
@property (nonatomic, assign) float x_axis_2;
头顶方位,在 x 轴的投影
@property (nonatomic, assign) float y_axis_2;
头顶方位,在 y 轴的投影
@property (nonatomic, assign) float z_axis_2;
头顶方位,在 z 轴的投影
typedef NS_ENUM(NSUInteger, GameRTCUserLeaveType)
用户离开房间的原因
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCUserLeaveTypeQuit | 0 | 用户主动离开,即调用 leaveRoom: 方法退出房间。 |
| GameRTCUserLeaveTypeDropped | 1 | 用户掉线。用户因为网络等原因掉线 |
typedef NS_ENUM(NSInteger, GameRTCConnectionState)
用户与 RTC 服务器的连接状态
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCConnectionStateDisconnected | 0 | 连接中断。 |
| GameRTCConnectionStateConnecting | 1 | 首次连接,正在连接中。 |
| GameRTCConnectionStateConnected | 2 | 首次连接成功。 |
| GameRTCConnectionStateReconnecting | 3 | 连接断开后,重新连接中。 |
| GameRTCConnectionStateReconnected | 4 | 连接断开后,重连成功。 |
| GameRTCConnectionStateLost | 5 | 网络连接断开超过 10 秒,仍然会继续重连。 |
typedef NS_ENUM(NSUInteger, GameRTCNetworkQuality)
用户的媒体流网络上下行质量
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCNetworkQualityUnknown | 0 | 网络质量未知。 |
| GameRTCNetworkQualityExcellent | 1 | 网络质量极好。 |
| GameRTCNetworkQualityGood | 2 | 用户主观感觉近似“极好”,但码率可能略低于“极好”。 |
| GameRTCNetworkQualityPoor | 3 | 用户主观感受有瑕疵但不影响沟通。 |
| GameRTCNetworkQualityBad | 4 | 勉强能够沟通但不顺畅。 |
| GameRTCNetworkQualityVBad | 5 | 网络质量非常差,基本不能沟通。 |
@interface GameRTCAudioVolumeInfo : NSObject
音频流来源的用户 ID, 及对应的音量。
| 类型 | 名称 |
|---|---|
| NSString* | uid |
| NSUInteger | volume |
@property (copy, nonatomic) NSString * _Nonnull uid;
音频流来源的用户 ID
@property (assign, nonatomic) NSUInteger volume;
音量,取值范围是:[0,255]
typedef NS_ENUM(NSInteger, GameRTCAudioSampleRate)
音频采样率
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCAudioSampleRate8000 | 8000 | 8000 采样率 |
| GameRTCAudioSampleRate16000 | 16000 | 16000 采样率 |
| GameRTCAudioSampleRate32000 | 32000 | 32000 采样率 |
| GameRTCAudioSampleRate44100 | 44100 | 44100 采样率 |
| GameRTCAudioSampleRate48000 | 48000 | 48000 采样率 |
typedef NS_ENUM(NSInteger, GameRTCAudioChannel)
音频声道
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCAudioChannelMono | 1 | 单声道 |
| GameRTCAudioChannelStereo | 2 | 双声道 |
@interface GameRTCAudioFormat : NSObject
音频参数格式
| 类型 | 名称 |
|---|---|
| GameRTCAudioSampleRate | sampleRate |
| GameRTCAudioChannel | channel |
@property (nonatomic, assign) GameRTCAudioSampleRate sampleRate;
音频采样率,详见 GameRTCAudioSampleRate
@property (nonatomic, assign) GameRTCAudioChannel channel;
音频声道,详见 GameRTCAudioChannel
@interface GameRTCAudioFrame : NSObject
音频帧
| 类型 | 名称 |
|---|---|
| NSData* | buffer |
| int | samples |
| GameRTCAudioChannel | channel |
| GameRTCAudioSampleRate | sampleRate |
@property (strong, nonatomic) NSData * _Nonnull buffer;
音频帧数据
@property (assign, nonatomic) int samples;
此音频帧描述的样点数
@property (assign, nonatomic) GameRTCAudioChannel channel;
音频声道,详见 GameRTCAudioChannel
@property (assign, nonatomic) GameRTCAudioSampleRate sampleRate;
音频采样率,详见 GameRTCAudioSampleRate