类型定义
本页列出 macOS API 所有的类型定义。
AgoraAreaCodeType
访问区域,即 SDK 连接的服务器所在的区域。
枚举值
- AgoraAreaCodeTypeCN
- 中国大陆。
- AgoraAreaCodeTypeNA
- 北美区域。
- AgoraAreaCodeTypeEUR
- 欧洲区域。
- AgoraAreaCodeTypeAS
- 除中国以外的亚洲区域。
- AgoraAreaCodeTypeJP
- 日本。
- AgoraAreaCodeTypeIN
- 印度。
- AgoraAreaCodeTypeGlobal
- 全球。
AgoraAudienceLatencyLevelType
直播频道中观众的延时级别。该枚举仅在用户角色设为 AgoraClientRoleAudience 时才生效。
枚举值
- AgoraAudienceLatencyLevelLowLatency
- 1: 低延时。
- AgoraAudienceLatencyLevelUltraLowLatency
- 2:(默认)超低延时。
AgoraAudioCodecProfileType
推流输出音频的编解码规格,默认为 LC-AAC。
枚举值
- AgoraAudioCodecProfileLCAAC
- 0: (默认)LC-AAC 规格。
- AgoraAudioCodecProfileHEAAC
- 1: HE-AAC 规格。
- AgoraAudioCodecProfileHEAACv2
- 2: HE-AAC v2 规格。
AgoraAudioCodecType
音频编解码格式。
枚举值
- AgoraAudioCodecTypeOPUS
- 1: OPUS。
- AgoraAudioCodecTypeAACLC
- 8: LC-AAC。
- AgoraAudioCodecTypeHEAAC
- 9: HE-AAC。
- AgoraAudioCodecTypeHEAAC2
- 11: HE-AAC v2。
AgoraAudioDualMonoMode
声道模式。
枚举值
- AgoraAudioDuraMonoStereo
- 0: 原始模式。
- AgoraAudioDualMonoL
- 1: 左声道模式。该模式用左声道的音频替换右声道的音频,即用户只能听到左声道的音频。
- AgoraAudioDualMonoR
- 2: 右声道模式。该模式用右声道的音频替换左声道的音频,即用户只能听到右声道的音频。
- AgoraAudioDualMonoMix
- 3: 混合模式。该模式将左右声道的数据叠加,即用户能同时听到左声道和右声道的音频。
AgoraAudioEffectPreset
预设的音效选项。
预设音效 | profile |
---|---|
|
AgoraAudioProfileMusicHighQualityStereo 或 AgoraAudioProfileMusicStandardStereo |
其他预设音效(除 AgoraAudioEffectPresetOff 以外) | AgoraAudioProfileMusicHighQuality 或 AgoraAudioProfileMusicHighQualityStereo |
枚举值
- AgoraAudioEffectPresetOff
- 原声,即关闭人声音效。
- AgoraAudioEffectPresetRoomAcousticsKTV
- KTV。
- AgoraAudioEffectPresetRoomAcousVocalConcer
- 演唱会。
- AgoraAudioEffectPresetRoomAcousStudio
- 录音棚。
- AgoraAudioEffectPresetRoomAcousPhonograph
- 留声机。
- AgoraAudioEffectPresetRoomAcousVirtualStereo
- 虚拟立体声,即 SDK 将单声道的音频渲染出双声道的音效。
- AgoraAudioEffectPresetRoomAcousSpatial
- 空旷。
- AgoraAudioEffectPresetRoomAcousEthereal
- 空灵。
- AgoraAudioEffectPresetRoomAcousVirtualSurroundSound
- 虚拟环绕声,即 SDK 在双声道的基础上产生仿真的环绕声场,从而营造出具有环绕感的音效。
注意: 启用虚拟环绕声后,用户需要使用支持双声道的音频播放设备才能听到预期效果。
- AgoraAudioEffectPresetRoomAcous3DVoice
-
3D 人声,即 SDK 将音频渲染出在用户周围环绕的效果。环绕周期默认为 10 秒。设置该音效后,你还可以调用 setAudioEffectParameters 修改环绕周期。
注意: 启用 3D 人声后,用户需要使用支持双声道的音频播放设备才能听到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectUncle
-
大叔。
注意: 建议用于处理男声,否则无法达到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectOldMan
-
老年男性。
注意: 建议用于处理男声,否则无法达到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectBoy
-
男孩。
注意: 建议用于处理男声,否则无法达到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectSister
-
少女。
注意: 建议用于处理女声,否则无法达到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectGirl
-
女孩。
注意: 建议用于处理女声,否则无法达到预期效果。 - AgoraAudioEffectPresetVoiceChangerEffectPigKin
- 猪八戒。
- AgoraAudioEffectPresetVoiceChangerEffectHulk
- 绿巨人。
- AgoraAudioEffectPresetStyleTransformationRnb
- R&B。
- AgoraAudioEffectPresetStyleTransformationPopular
- 流行。
- AgoraAudioEffectPresetPitchCorrection
- 电音,即 SDK 以主音音高为 C 的自然大调为基础修正音频的实际音高。设置该音效后,你还可以调用 setAudioEffectParameters 调整修音的基础调式和主音音高。
AgoraAudioEncodedFrameDelegatePosition
音频编码内容。
枚举值
- AgoraAudioEncodedFrameObserverPositionRecord
- 1: 仅编码本地用户的音频。
- AgoraAudioEncodedFrameObserverPositionPlayback
- 2: 仅编码所有远端用户的音频。
- AgoraAudioEncodedFrameObserverPositionMixed
- 3: 编码本地和所有远端用户混音后的音频。
AgoraAudioEncodingType
音频编码类型。
枚举值
- AgoraAudioEncodingTypeAAC16000Low
- AAC 编码格式,16000 Hz 采样率,低音质。音频时长为 10 分钟的文件编码后大小约为 1.2 MB。
- AgoraAudioEncodingTypeAAC16000Medium
- AAC 编码格式,16000 Hz 采样率,中音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeAAC32000Low
- AAC 编码格式,32000 Hz 采样率,低音质。音频时长为 10 分钟的文件编码后大小约为 1.2 MB。
- AgoraAudioEncodingTypeAAC32000Medium
- AAC 编码格式,32000 Hz 采样率,中音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeAAC32000High
- AAC 编码格式,32000 Hz 采样率,高音质。音频时长为 10 分钟的文件编码后大小约为 3.5 MB。
- AgoraAudioEncodingTypeAAC48000Medium
- AAC 编码格式,48000 Hz 采样率,中音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeAAC48000High
- AAC 编码格式,48000 Hz 采样率,高音质。音频时长为 10 分钟的文件编码后大小约为 3.5 MB。
- AgoraAudioEncodingTypeOPUS16000Low
- OPUS 编码格式,16000 Hz 采样率,低音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeOPUS6000Medium
- OPUS 编码格式,16000 Hz 采样率,中音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeOPUS48000Medium
- OPUS 编码格式,48000 Hz 采样率,中音质。音频时长为 10 分钟的文件编码后大小约为 2 MB。
- AgoraAudioEncodingTypeOPUS48000High
- OPUS 编码格式,48000 Hz 采样率,高音质。音频时长为 10 分钟的文件编码后大小约为 3.5 MB。
AgoraAudioEqualizationBandFrequency
语音音效均衡波段的中心频率。
枚举值
- AgoraAudioEqualizationBand31
- 0: 31 Hz
- AgoraAudioEqualizationBand62
- 1: 62 Hz
- AgoraAudioEqualizationBand125
- 2: 125 Hz
- AgoraAudioEqualizationBand250
- 3: 250 Hz
- AgoraAudioEqualizationBand500
- 4: 500 Hz
- AgoraAudioEqualizationBand1K
- 5: 1 kHz
- AgoraAudioEqualizationBand2K
- 6: 2 kHz
- AgoraAudioEqualizationBand4K
- 7: 4 kHz
- AgoraAudioEqualizationBand8K
- 8: 8 kHz
- AgoraAudioEqualizationBand16K
- 9: 16 kHz
AgoraAudioFileRecordingType
录音内容。在 startAudioRecording [2/2] 中设置。
枚举值
- AgoraAudioFileRecordingTypeMic
- 1: 仅录制本地用户的音频。
- AgoraAudioFileRecordingTypePlayback
- 2: 仅录制所有远端用户的音频。
- AgoraAudioFileRecordingTypeMixed
- 3: 录制本地和所有远端用户混音后的音频。
AgoraAudioMixingDualMonoMode
声道模式。
枚举值
- AgoraAudioMixingDualMonoAuto
- 0:原始模式。
- AgoraAudioMixingDualMonoL
- 1:左声道模式。该模式用左声道的音频替换右声道的音频,即用户只能听到左声道的音频。
- AgoraAudioMixingDualMonoR
- 2:右声道模式。该模式用右声道的音频替换左声道的音频,即用户只能听到右声道的音频。
- AgoraAudioMixingDualMonoMix
- 3:混合模式。该模式将左右声道的数据叠加,即用户能同时听到左声道和右声道的音频。
AgoraAudioMixingReasonCode
音乐文件播放状态改变的原因。在 audioMixingStateChanged 回调中报告。
枚举值
- AgoraAudioMixingReasonTypeOk
- 0: 成功打开音乐文件。
- AgoraAudioMixingReasonTypeCanNotOpen
- 701: 音乐文件打开出错。例如,本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL。
- AgoraAudioMixingReasonTypeTooFrequentlyCall
- 702: 音乐文件打开太频繁。如需多次调用 startAudioMixing,请确保调用间隔大于 500 ms。
- AgoraAudioMixingReasonTypeInterruptedEOF
- 703: 音乐文件播放中断。
- AgoraAudioMixingReasonOneLoopCompleted
- 721: 音乐文件完成一次循环播放。
- AgoraAudioMixingReasonAllLoopsCompleted
- 723: 音乐文件完成所有循环播放。
- AgoraAudioMixingReasonStoppedByUser
- 724: 成功调用 stopAudioMixing 停止播放音乐文件。
AgoraAudioMixingStateType
音乐文件播放状态。
枚举值
- AgoraAudioMixingStateTypePlaying
-
710: 音乐文件正常播放。
- AgoraAudioMixingStateTypePaused
-
711: 音乐文件暂停播放。
- AgoraAudioMixingStateTypeStopped
-
713: 音乐文件停止播放。
该状态可能由以下原因导致:- AgoraAudioMixingReasonAllLoopsCompleted(723)
- AgoraAudioMixingReasonStoppedByUser(724)
- AgoraAudioMixingStateTypeFailed
-
714: 音乐文件播放出错。
该状态可能由以下原因导致:- AgoraAudioMixingReasonTypeCanNotOpen(701)
- AgoraAudioMixingReasonTypeTooFrequentlyCall(702)
- AgoraAudioMixingReasonTypeInterruptedEOF(703)
AgoraAudioProfile
音频编码属性。
枚举值
- AgoraAudioProfileDefault
-
0: 默认值。
- 直播场景下:48 kHz 采样率,音乐编码,单声道,编码码率最大值为 64 Kbps。
- 通信场景下:32 kHz 采样率,语音编码,单声道,编码码率最大值为 18 Kbps。
- AgoraAudioProfileSpeechStandard
- 1: 指定 32 kHz 采样率,语音编码,单声道,编码码率最大值为 18 Kbps。
- AgoraAudioProfileMusicStandard
- 2: 指定 48 kHz 采样率,音乐编码,单声道,编码码率最大值为 64 Kbps。
- AgoraAudioProfileMusicStandardStereo
- AgoraAudioProfileMusicHighQuality
- 4: 指定 48 kHz 采样率,音乐编码,单声道,编码码率最大值为 96 Kbps。
- AgoraAudioProfileMusicHighQualityStereo
- AgoraAudioProfileIot
-
6: 指定 16 kHz 采样率,语音编码,单声道,应用回声消除算法 AES。
- 枚举值边界。
AgoraAudioRecordingQuality
录音音质。
枚举值
- AgoraAudioRecordingQualityLow
- 0: 低音质。采样率为 32 kHz,录制 10 分钟的文件大小为 1.2 M 左右。
- AgoraAudioRecordingQualityMedium
- 1: 中音质。采样率为 32 kHz,录制 10 分钟的文件大小为 2 M 左右。
- AgoraAudioRecordingQualityHigh
- 2: 高音质。采样率为 32 kHz,录制 10 分钟的文件大小为 3.75 M 左右。
- AgoraAudioRecordingQualityUltraHigh
- 3: 超高音质。采样率为 32 KHz,录制 10 分钟的文件大小约为 7.5 M 左右。
AgoraAudioReverbPreset
预设的语音混响效果。
- 弃用:
- 自 v3.2.0 废弃。
枚举值
- AgoraAudioReverbPresetOff
- 原声,即关闭本地语音混响。
- AgoraAudioReverbPresetFxKTV
- KTV(增强版)。
- AgoraAudioReverbPresetFxVocalConcert
- 演唱会(增强版)。
- AgoraAudioReverbPresetFxUncle
- 大叔。
- AgoraAudioReverbPresetFxSister
- 小姐姐。
- AgoraAudioReverbPresetFxStudio
- 录音棚(增强版)。
- AgoraAudioReverbPresetFxPopular
- 流行(增强版)。
- AgoraAudioReverbPresetFxRNB
- R&B(增强版)。
- AgoraAudioReverbPresetFxPhonograph
- 留声机。
AgoraAudioReverbType
音频混响类型。
枚举值
- AgoraAudioReverbDryLevel
- 0: 原始声音强度,即所谓的 dry signal,取值范围 [-20,10],单位为 dB。
- AgoraAudioReverbWetLevel
- 1: 早期反射信号强度,即所谓的 wet signal,取值范围 [-20,10],单位为 dB。
- AgoraAudioReverbRoomSize
- 2: 所需混响效果的房间尺寸,一般房间越大,混响越强,取值范围 [0,100],单位为 dB。
- AgoraAudioReverbWetDelay
- 3: Wet signal 的初始延迟长度,取值范围 [0,200],单位为毫秒。
- AgoraAudioReverbStrength
- 4: 混响持续的强度,取值范围为 [0,100]。
AgoraAudioOutputRouting
音频路由的类型。
枚举值
- AgoraAudioOutputRoutingDefault
- -1: 使用默认的音频路由。
- AgoraAudioOutputRoutingHeadset
- 0: 音频路由为带麦克风的耳机。
- AgoraAudioOutputRoutingEarpiece
- 1: 音频路由为听筒。
- AgoraAudioOutputRoutingHeadsetNoMic
- 2: 音频路由为不带麦克风的耳机。
- AgoraAudioOutputRoutingSpeakerphone
- 3: 音频路由为设备自带的扬声器。
- AgoraAudioOutputRoutingLoudspeaker
- 4: 音频路由为外接的扬声器。
- AgoraAudioOutputRoutingHeadsetBluetooth
- 5: 音频路由为蓝牙耳机。
- AgoraAudioOutputRoutingHdmi
- 6: 音频路由为 HDMI 外围设备。
- AgoraAudioOutputRoutingUsb
- 7: 音频路由为 USB 外围设备。
- AgoraAudioOutputRoutingDisplayPort
- 8: 音频路由为 DisplayPort 外围设备。
- AgoraAudioOutputRoutingAirPlay
- 9: 音频路由为 Apple AirPlay。
AgoraAudioSampleRateType
推流输出音频的采样率。
枚举值
- AgoraAudioSampleRateType32000
- 32000: 32 kHz
- AgoraAudioSampleRateType44100
- 44100: 44.1 kHz
- AgoraAudioSampleRateType48000
- 48000: (默认)48 kHz
AgoraAudioScenario
音频场景。
枚举值
- AgoraAudioScenarioDefault
- 0: (默认)自动场景,根据用户角色和音频路由自动匹配合适的音质。
- AgoraAudioScenarioGameStreaming
- 3: 高音质场景,适用于音乐为主的场景。
- AgoraAudioScenarioChatRoom
- 5: 聊天室场景,适用于用户需要频繁上下麦的场景。该场景下,观众会收到申请麦克风权限的弹窗提示。
- AgoraAudioScenarioChorus
- 7: 合唱场景。适用于网络条件良好,要求极低延时的实时合唱场景。
- AgoraAudioScenarioMeeting
- 8: 会议场景,适用于人声为主的多人会议。
AgoraAudioSessionOperationRestriction
SDK 对 Audio Session 的操作权限。
枚举值
- AgoraAudioSessionOperationRestrictionNone
- 没有限制,SDK 可以对 Audio Session 进行更改。
- AgoraAudioSessionOperationRestrictionSetCategory
- SDK 不能更改 Audio Session 的 category。
- AgoraAudioSessionOperationRestrictionConfigureSession
- SDK 不能更改 Audio Session 的 category、mode 或 categoryOptions。
- AgoraAudioSessionOperationRestrictionDeactivateSession
- 离开频道时,SDK 会保持 Audio Session 处于活动状态,例如在后台播放音频。
- AgoraAudioSessionOperationRestrictionAll
- 完全限制 SDK 对 Audio Session 的操作权限,SDK 不能再对 Audio Session 进行任何更改。
AgoraVirtualBackgroundSourceType
自定义的背景图类型。
枚举值
- AgoraVirtualBackgroundColor
- 1:(默认)背景图为纯色。
- AgoraVirtualBackgroundImg
- 背景图为 PNG、JPG 格式的图片。
- AgoraVirtualBackgroundBlur
- 将虚化处理后的背景作为背景图。
AgoraBlurDegree
自定义背景图的虚化程度。
枚举值
- AgoraBlurLow
- 1: 自定义背景图的虚化程度为低。用户差不多能看清背景。
- AgoraBlurMedium
- 自定义背景图的虚化程度为中。用户较难看清背景。
- AgoraBlurHigh
- (默认)自定义背景图的虚化程度为高。用户很难看清背景。
AgoraCaptureBrightnessLevelType
本地采集的画质亮度级别。
枚举值
- AgoraCaptureBrightnessLevelInvalid
- -1: SDK 未检测出本地采集的画质亮度级别。请等待几秒,通过下一次回调的 captureBrightnessLevel 获取亮度级别。
- AgoraCaptureBrightnessLevelNormal
- 0: 本地采集的画质亮度正常。
- AgoraCaptureBrightnessLevelBright
- 1: 本地采集的画质亮度偏亮。
- AgoraCaptureBrightnessLevelDark
- 2: 本地采集的画质亮度偏暗。
AgoraChannelMediaRelayError
跨频道媒体流转发出错的错误码。
枚举值
- AgoraChannelMediaRelayErrorNone
- 0: 一切正常。
- AgoraChannelMediaRelayErrorServerErrorResponse
- 1: 服务器回应出错。
- AgoraChannelMediaRelayErrorServerNoResponse
-
2: 服务器无回应。
你可以调用 leaveChannel [1/2] 方法离开频道。
该错误也可能是由于当前的 App ID 未开启跨频道连麦导致的。你可以联系技术支持申请开通跨频道连麦。
- AgoraChannelMediaRelayErrorNoResourceAvailable
- 3: SDK 无法获取服务,可能是因为服务器资源有限导致。
- AgoraChannelMediaRelayErrorFailedJoinSourceChannel
- 4: 发起跨频道转发媒体流请求失败。
- AgoraChannelMediaRelayErrorFailedJoinDestinationChannel
- 5: 接受跨频道转发媒体流请求失败。
- AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource
- 6: 服务器接收跨频道转发媒体流失败。
- AgoraChannelMediaRelayErrorFailedPacketSentToDestination
- 7: 服务器发送跨频道转发媒体流失败。
- AgoraChannelMediaRelayErrorServerConnectionLost
- 8: SDK 因网络质量不佳与服务器断开。你可以调用 leaveChannel [1/2] 方法离开当前频道。
- AgoraChannelMediaRelayErrorInternalError
- 9: 服务器内部出错。
- AgoraChannelMediaRelayErrorSourceTokenExpired
- 10: 源频道的 Token 已过期。
- AgoraChannelMediaRelayErrorDestinationTokenExpired
- 11: 目标频道的 Token 已过期。
AgoraChannelMediaRelayEvent
跨频道媒体流转发事件码。
枚举值
- AgoraChannelMediaRelayEventDisconnect
- 0: 网络中断导致用户与服务器连接断开。
- AgoraChannelMediaRelayEventConnected
- 1: 用户与服务器建立连接。
- AgoraChannelMediaRelayEventJoinedSourceChannel
- 2: 用户已加入源频道。
- AgoraChannelMediaRelayEventJoinedDestinationChannel
- 3: 用户已加入目标频道。
- AgoraChannelMediaRelayEventSentToDestinationChannel
- 4: SDK 开始向目标频道发送数据包。
- AgoraChannelMediaRelayEventReceivedVideoPacketFromSource
- 5: 服务器收到了频道发送的视频流。
- AgoraChannelMediaRelayEventReceivedAudioPacketFromSource
- 6: 服务器收到了频道发送的音频流。
- AgoraChannelMediaRelayEventUpdateDestinationChannel
- 7: 目标频道已更新。
- AgoraChannelMediaRelayEventUpdateDestinationChannelRefused
- 8: 内部原因导致目标频道更新失败。
- AgoraChannelMediaRelayEventUpdateDestinationChannelNotChange
- 9: 目标频道未发生改变,即目标频道更新失败。
- AgoraChannelMediaRelayEventUpdateDestinationChannelIsNil
- 10: 目标频道名为
nil
。 - AgoraChannelMediaRelayEventVideoProfileUpdate
- 11: 视频属性已发送至服务器。
- AgoraChannelMediaRelayEventPauseSendPacketToDestChannelSuccess
- 12: 暂停向目标频道转发媒体流成功。
- AgoraChannelMediaRelayEventPauseSendPacketToDestChannelFailed
- 13: 暂停向目标频道转发媒体流失败。
- AgoraChannelMediaRelayEventResumeSendPacketToDestChannelSuccess
- 14: 恢复向目标频道转发媒体流成功。
- AgoraChannelMediaRelayEventResumeSendPacketToDestChannelFailed
- 15: 恢复向目标频道转发媒体流失败。
AgoraChannelMediaRelayState
跨频道媒体流转发状态码。
枚举值
- AgoraChannelMediaRelayStateIdle
- 0: 初始状态。在成功调用 stopChannelMediaRelay 停止跨频道媒体流转发后,channelMediaRelayStateDidChange 会回调该状态。
- AgoraChannelMediaRelayStateConnecting
- 1: SDK 尝试跨频道。
- AgoraChannelMediaRelayStateRunning
- 2: 源频道主播成功加入目标频道。
- AgoraChannelMediaRelayStateFailure
- 3: 发生异常,详见 channelMediaRelayStateDidChange 的 code 参数提示的错误信息。
AgoraChannelProfile
频道场景。
枚举值
- AgoraChannelProfileCommunication
- 0: 通信场景。当频道中只有两个用户时,建议使用该场景。
- AgoraChannelProfileLiveBroadcasting
- 1: 直播场景。直播场景。当频道中超过两个用户时,建议使用该场景。
- AgoraChannelProfileGame
- 2: (已废弃)游戏场景。
- AgoraChannelProfileCloudGaming
- 3: 互动场景。该场景对延时进行了优化。如果你的场景中有用户需要频道互动, 建议使用该场景。
AgoraCloudProxyType
云代理类型。
枚举值
- AgoraNoneProxyType
- 0:自动模式。SDK 默认开启该模式。在该模式下,SDK 优先连接 SD-RTN™,如果连接失败,自动切换到 TLS 443。
- AgoraUdpProxyType
- 1:UDP 协议的云代理,即 Force UDP 云代理模式。在该模式下,SDK 始终通过 UDP 协议传输数据。
- AgoraTcpProxyType
- 2:TCP(加密)协议的云代理,即 Force TCP 云代理模式。在该模式下,SDK 始终通过 TLS 443 传输数据。
AgoraClientRole
直播场景里的用户角色。
枚举值
- AgoraClientRoleBroadcaster
- 1: 主播。主播可以发流也可以收流。
- AgoraClientRoleAudience
- 2:(默认)观众。观众只能收流不能发流。
AgoraClientRoleChangeFailedReason
切换用户角色失败的原因。
枚举值
- AgoraClientRoleChangeFailedTooManyBroadcasters
1: 频道内主播人数达到上限。
注: 该枚举仅在开启 128 人功能后报告。主播人数的上限根据开启 128 人功能时实际配置的人数而定。- AgoraClientRoleChangeFailedNotAuthorized
2: 请求被服务端拒绝。建议提示用户重新尝试切换用户角色。
- AgoraClientRoleChangeFailedRequestTimeout
3: 请求超时。建议提示用户检查网络连接状况后重新尝试切换用户角色。
- AgoraClientRoleChangeFailedConnectionFailed
4: 网络连接断开。可根据 connectionChangedToState 报告的 reason,排查网络连接失败的具体原因。
AgoraConnectionChangedReason
网络连接状态发生变化的原因。
枚举值
- AgoraConnectionChangedReasonConnecting
- 0: 建立网络连接中。
- AgoraConnectionChangedReasonJoinSuccess
- 1: 成功加入频道。
- AgoraConnectionChangedReasonInterrupted
- 2: 网络连接中断。
- AgoraConnectionChangedReasonBannedByServer
- 3: 网络连接被服务器禁止。服务端踢人场景时会报这个错。
- AgoraConnectionChangedReasonJoinFailed
- 4: 加入频道失败。SDK 在尝试加入频道 20 分钟后还是没能加入频道,会返回该状态,并停止尝试重连。
- AgoraConnectionChangedReasonLeaveChannel
- 5: 离开频道。
- AgoraConnectionChangedReasonInvalidAppId
- 6: 不是有效的 APP ID。请更换有效的 APP ID 重新加入频道。
- AgoraConnectionChangedReasonInvalidChannelName
- 7: 不是有效的频道名。请更换有效的频道名重新加入频道。
- AgoraConnectionChangedReasonInvalidToken
-
8: 生成的 Token 无效。一般有以下原因:
- 在控制台上启用了 App Certificate,但加入频道未使用 Token。当启用了 App Certificate,必须使用 Token。
- 在调用 joinChannelByToken [2/4] 加入频道时指定的用户 ID 与生成 Token 时传入的用户 ID 不一致。
- AgoraConnectionChangedReasonTokenExpired
- 9: 当前使用的 Token 过期,不再有效,需要重新在你的服务端申请生成 Token。
- AgoraConnectionChangedReasonRejectedByServer
-
10: 此用户被服务器禁止。一般有以下原因:
- 用户已进入频道,再次调用加入频道的 API,例如 joinChannelByToken [2/4],会返回此状态。停止调用该方法即可。
- 用户在进行通话测试时尝试加入频道。等待通话测试结束后再加入频道即可。
- AgoraConnectionChangedReasonSettingProxyServer
- 11: 由于设置了代理服务器,SDK 尝试重连。
- AgoraConnectionChangedReasonRenewToken
- 12: 更新 Token 引起网络连接状态改变。
- AgoraConnectionChangedReasonClientIpAddressChanged
- 13: 客户端 IP 地址变更,可能是由于网络类型,或网络运营商的 IP 或端口发生改变引起。
- AgoraConnectionChangedReasonKeepAliveTimeout
- 14: SDK 和服务器连接保活超时,进入自动重连状态。
- AgoraConnectionChangedReasonRejoinSuccess
- 15: 重新加入频道成功。
- AgoraConnectionChangedReasonLost
- 16: SDK 和服务器失去连接。
- AgoraConnectionChangedReasonEchoTest
- 17: 连接状态变化由回声测试引起。
AgoraConnectionState
网络连接状态。
枚举值
- AgoraConnectionStateDisconnected
-
1: 网络连接断开。该状态表示 SDK 处于:
- 调用 joinChannelByToken [2/4] 加入频道前的初始化阶段。
- 或调用 leaveChannel [1/2] 后的离开频道阶段。
- AgoraConnectionStateConnecting
-
2: 建立网络连接中。该状态表示 SDK 在调用 joinChannelByToken [2/4] 后正在与指定的频道建立连接。
- 如果成功加入频道,app 会收到 connectionChangedToState 回调,通知当前网络状态变成 AgoraConnectionStateConnected。
- 建立连接后,SDK 还会初始化媒体,一切就绪后会回调 didJoinChannel。
- AgoraConnectionStateConnected
- 3: 网络已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因网络断开或切换而导致 SDK 与频道的连接中断,SDK 会自动重连,此时 app 会收到 connectionChangedToState 回调,通知当前网络状态变成 AgoraConnectionStateReconnecting。
- AgoraConnectionStateReconnecting
-
4: 重新建立网络连接中。该状态表示 SDK 之前曾加入过频道,但因网络等原因连接中断了,此时 SDK 会自动尝试重新接入频道。
- 如果 SDK 无法在 10 秒内重新加入频道,则 rtcEngineConnectionDidLost 会被触发,SDK 会一直保持在 AgoraConnectionStateReconnecting 的状态,并不断尝试重新加入频道。
- 如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,则应用程序会收到 connectionChangedToState 回调,通知 app 的网络状态进入 AgoraConnectionStateFailed,SDK 停止尝试重连。
- AgoraConnectionStateFailed
-
5: 网络连接失败。该状态表示 SDK 已不再尝试重新加入频道,需要调用 leaveChannel [1/2] 离开频道。
- 如果用户还想重新加入频道,则需要再次调用 joinChannelByToken [2/4]。
- 如果 SDK 因服务器端使用 RESTful API 禁止加入频道,则 app 会收到 connectionChangedToState。
AgoraContentInspectResult
鉴黄结果。
枚举值
- AgoraContentInspectNeutral
- 1:正常图片。
- AgoraContentInspectSexy
- 2:性感图片。
- AgoraContentInspectPorn
- 3:色情图片。
AgoraContentInspectType
视频内容审核模块的类型。
枚举值
- AgoraContentInspectTypeInvalid
- 0:(默认)该功能模块无实际功能。请不要将 type 设为该值。
- AgoraContentInspectTypeModeration
- 1:视频鉴黄。SDK 会对视频流进行截图、鉴黄,并将截图和审核结果上传。
- AgoraContentInspectTypeSupervise
- 2:视频截图。SDK 会对视频流进行截图并上传。
AgoraDegradationPreference
带宽受限时的视频编码降级偏好。
枚举值
- AgoraDegradationMaintainQuality
-
0:(默认)带宽受限时,视频编码时优先降低视频帧率,维持视频质量不变。该降级偏好适用于画质优先的场景。
注意: 通信(COMMUNICATION)场景下,本地发送的视频分辨率可能改变,远端用户需能处理这种情况, 详见 videoSizeChangedOfUid。 - AgoraDegradationMaintainFramerate
- 1:带宽受限时,视频编码时优先降低视频质量,维持视频帧率不变。该降级偏好适用于流畅性优先且允许画质降低的场景。
- AgoraDegradationBalanced
-
2:带宽受限时,视频编码时同时降低视频帧率和视频质量。AgoraDegradationBalanced 的降幅比 AgoraDegradationMaintainQuality 和 AgoraDegradationMaintainFramerate 降幅更低,适用于流畅性和画质均有限的场景。
注意: 本地发送的视频分辨率可能改变,远端用户需能处理这种情况,详见 videoSizeChangedOfUid。 - AgoraDegradationMaintainResolution
- 3: 带宽受限时,视频编码时优先降低视频帧率。
AgoraDirectCdnStreamingError
CDN 推流出错原因。
枚举值
- AgoraDirectCdnStreamingErrorOK
- 0:推流状态正常。
- AgoraDirectCdnStreamingErrorFailed
- 1:一般性错误,没有明确原因。你可以尝试重新推流。
- AgoraDirectCdnStreamingErrorAudioPublication
- 2:音频推流出错。例如,本地音频采集设备未正常工作、被其他进程占用或没有使用权限。
- AgoraDirectCdnStreamingErrorVideoPublication
- 3:视频推流出错。例如,本地视频采集设备未正常工作、被其他进程占用或没有使用权限。
- AgoraDirectCdnStreamingErrorNetConnect
- 4:连接 CDN 失败。
- AgoraDirectCdnStreamingErrorBadName
- 5:URL 已用于推流。请使用新的 URL。
AgoraDirectCdnStreamingState
当前 CDN 推流状态。
枚举值
- AgoraDirectCdnStreamingStateIdle
- 0:初始状态,即推流尚未开始。
- AgoraDirectCdnStreamingStateRunning
- 1:正在推流中。当你调用 startDirectCdnStreaming 成功推流时,SDK 会返回该值。
- AgoraDirectCdnStreamingStateStopped
- 2:推流已正常结束。当你调用 stopDirectCdnStreaming 主动停止推流时,SDK 会返回该值。
- AgoraDirectCdnStreamingStateFailed
- 3:推流失败。你可以通过 onDirectCdnStreamingStateChanged 回调报告的信息排查问题,然后重新推流。
- AgoraDirectCdnStreamingStateRecovering
- 4:尝试重新连接 Agora 服务器和 CDN。最多尝试重连 10 次,如仍未成功恢复连接,则推流状态变为 AgoraDirectCdnStreamingStateFailed。
AgoraEncryptionErrorType
内置加密的错误类型。
枚举值
- ENCRYPTION_ERROR_INTERNAL_FAILURE
- 0: 内部原因。
- ENCRYPTION_ERROR_DECRYPTION_FAILURE
- 1: 解密错误。请确保接收端和发送端使用的加密模式或密钥一致。
- ENCRYPTION_ERROR_ENCRYPTION_FAILURE
- 2: 加密错误。
AgoraEncryptionMode
内置加密模式。
Agora 推荐使用 AgoraEncryptionModeAES128GCM2 或 AgoraEncryptionModeAES256GCM2 加密模式。这两种模式支持使用盐,安全性更高。
枚举值
- AgoraEncryptionModeAES128XTS
- 1: 128 位 AES 加密,XTS 模式。
- AgoraEncryptionModeAES128ECB
- 2: 128 位 AES 加密,ECB 模式。
- AgoraEncryptionModeAES256XTS
- 3: 256 位 AES 加密,XTS 模式。
- AgoraEncryptionModeSM4128ECB
- 4: 128 位 SM4 加密,ECB 模式。
- AgoraEncryptionModeAES128GCM
- 5: 128 位 AES 加密,GCM 模式。
- AgoraEncryptionModeAES256GCM
- 6: 256 位 AES 加密,GCM 模式。
- AgoraEncryptionModeAES128GCM2
- 7:(默认)128 位 AES 加密,GCM 模式。该加密模式需要设置盐(
encryptionKdfSalt
)。 - AgoraEncryptionModeAES256GCM2
- 8: 256 位 AES 加密,GCM 模式。该加密模式需要设置盐(
encryptionKdfSalt
)。 - AgoraEncryptionModeEnd
- 枚举值边界。
AgoraErrorCode
错误代码。
错误代码意味着 SDK 遇到不可恢复的错误,需要应用程序干预。例如:打开摄像头失败时会返回错误,app 需要提示用户不能使用摄像头。
枚举值
- AgoraErrorCodeNoError
- 0:没有错误。
- AgoraErrorCodeFailed
- 1:一般性的错误(没有明确归类的错误原因)。请重新调用方法。
- AgoraErrorCodeInvalidArgument
- 2:方法中设置了无效的参数。例如指定的频道名中含有非法字符。请重新设置参数。
- AgoraErrorCodeNotReady
- 3:SDK 尚未准备好。可能的原因有:
- AgoraRtcEngineKit 初始化失败。请重新初始化 AgoraRtcEngineKit。
- 调用方法时用户尚未加入频道。请检查方法的调用逻辑。
- 调用 rate 或 complain 方法时用户尚未离开频道。请检查方法的调用逻辑。
- 音频模块未开启。
- 程序集不完整。
- AgoraErrorCodeNotSupported
- 4:AgoraRtcEngineKit 当前状态不支持该操作。可能的原因有:
- 使用内置加密时,设置的加密模式不正确,或加载外部加密库失败。请检查加密的枚举值是否正确,或重新加载外部加密库。
- AgoraErrorCodeRefused
- 5:方法调用被拒绝。可能的原因有:
- AgoraRtcEngineKit 初始化失败。请重新初始化 AgoraRtcEngineKit。
- 在加入频道时,将频道名设为空字符
""
。请重新设置频道名。 - 多频道场景下,在调用 joinChannelExByToken 方法加入频道时,设置的频道名已存在。请重新设置频道名。
- AgoraErrorCodeBufferTooSmall
- 6:缓冲区大小不足以存放返回的数据。
- AgoraErrorCodeNotInitialized
- 7:AgoraRtcEngineKit 尚未初始化就调用方法。请确认在调用该方法前已创建 AgoraRtcEngineKit 对象并完成初始化。
- AgoraErrorCodeNoPermission
- 9:没有操作权限。请检查用户是否授予了 app 音视频设备的使用权限。
- AgoraErrorCodeTimedOut
- 10: 方法调用超时。有些方法调用需要 SDK 返回结果,如果 SDK 处理事件过长,超过 10 秒没有返回,会出现此错误。
- AgoraErrorCodeJoinChannelRejected
- 17:加入频道被拒绝。可能的原因有:
- 用户已经在频道中。Agora 推荐通过 connectionChangedToState 回调判断用户是否在频道中。除收到 AgoraConnectionStateDisconnected(1) 状态外,不要再次调用该方法加入频道。
- 用户在调用 startEchoTestWithInterval 进行通话测试后,未调用 stopEchoTest 结束当前测试就尝试加入频道。开始通话测试后,需要先调用 stopEchoTest 结束当前测试,再加入频道。
- AgoraErrorCodeLeaveChannelRejected
- 18:离开频道失败。可能的原因有:
- 调用 leaveChannel [1/2] 前,用户已离开频道。停止调用该方法即可。
- 用户尚未加入频道,就调用 leaveChannel [1/2] 退出频道。这种情况下无需额外操作。
- AgoraErrorCodeAlreadyInUse
- 19:资源已被占用,不能重复使用。
- AgoraErrorCodeAbort
- 20:SDK 放弃请求,可能由于请求的次数太多。
- AgoraErrorCodeInitNetEngine
- 21:Windows 下特定的防火墙设置导致 AgoraRtcEngineKit 初始化失败然后崩溃。
- AgoraErrorCodeResourceLimited
- 22:SDK 分配资源失败,可能由于 app 占用资源过多或系统资源耗尽。
- AgoraErrorCodeInvalidAppId
- 101:不是有效的 App ID。请更换有效的 App ID 重新加入频道。
- AgoraErrorCodeInvalidChannelId
- 102:不是有效的频道名。可能的原因是设置的参数数据类型不正确。请更换有效的频道名重新加入频道。
- AgoraErrorCodeTokenExpired
- 109:当前使用的 Token 过期,不再有效。请在服务端申请生成新的 Token,并调用 renewToken 更新 Token。
- 弃用:
- 该枚举已废弃。请改用 connectionChangedToState 回调中的 AgoraConnectionChangedReasonTokenExpired(9)。
- AgoraErrorCodeInvalidToken
- 110:Token 无效。一般有以下原因:
- 在 Agora 控制台中启用了 App 证书,但未使用 App ID + Token 鉴权。当项目启用了 App 证书,就必须使用 Token 鉴权。
- 生成 Token 时填入的
uid
字段,和用户加入频道时填入的 uid 不匹配。
- 弃用:
- 该枚举已废弃。请改用 connectionChangedToState 回调中的 AgoraConnectionChangedReasonInvalidToken(8)。
- AgoraErrorCodeConnectionInterrupted
- 111:网络连接中断。SDK 在和服务器建立连接后,失去网络连接超过 4 秒。
- AgoraErrorCodeConnectionLost
- 112:网络连接丢失。网络连接中断,且 SDK 无法在 10 秒内连接服务器。
- AgoraErrorCodeNotInChannel
- 113:调用 sendStreamMessage 方法时用户不在频道内。
- AgoraErrorCodeSizeTooLarge
- 114:在调用 sendStreamMessage 时,发送的数据长度大于 1 KB。
- AgoraErrorCodeBitrateLimit
- 115:在调用 sendStreamMessage 时,发送数据的频率超过限制(6 KB/s)。
- AgoraErrorCodeTooManyDataStreams
- 116:在调用 createDataStream [2/2] 时,创建的数据流超过限制(5 个)。
- AgoraErrorCodeDecryptionFailed
- 120:解密失败。可能是用户加入频道时使用了错误的密码。请检查用户加入频道时填入的密码,或引导用户尝试重新加入频道。
- AgoraErrorCodeEncryptedStreamNotAllowedPublish
- 130:SDK 不支持将加密过的流推到 CDN 上。
- AgoraErrorCodeInvalidUserAccount
- 134:无效的 user account,可能是因为设置了无效的参数。
- AgoraErrorCodeLoadMediaEngine
- 1001:加载媒体引擎失败。
- AgoraErrorCodeAdmGeneralError
- 1005:音频设备出现错误(未指明何种错误)。请检查音频设备是否被其他应用占用,或者尝试重新进入频道。
- AgoraErrorCodeAdmInitPlayout
- 1008:初始化播放设备出错。请检查播放设备是否被其他应用占用,或者尝试重新进入频道。
- AgoraErrorCodeAdmStartPlayout
- 1009:启动播放设备出错。请检查播放设备是否正常。
- AgoraErrorCodeAdmStopPlayout
- 1010:停止播放设备出错。
- AgoraErrorCodeAdmInitRecording
- 1011:初始化录音设备出错。请检查录音设备是否正常,或者尝试重新进入频道。
- AgoraErrorCodeAdmStartRecording
- 1012:启动录音设备出错。请检查录音设备是否正常。
- AgoraErrorCodeAdmStopRecording
- 1013:停止录音设备出错。
- AgoraErrorCodeVdmCameraNotAuthorized
- 1501:没有摄像头使用权限。请检查是否已经打开摄像头权限。
AgoraExperiencePoorReason
接收远端音频时,本地用户主观体验质量较差的原因。
枚举值
- AgoraExperiencePoorReasonNone
- 0: 无原因,说明主观体验质量较好。
- AgoraExperiencePoorReasonRemoteNetworkQualityPoor
- 1: 远端用户的网络较差。
- AgoraExperiencePoorReasonLocalNetworkQualityPoor
- 2: 本地用户的网络较差。
- AgoraExperiencePoorReasonWirelessSignalPoor
- 4: 本地用户的 Wi-FI 或者移动数据网络信号弱。
- AgoraExperiencePoorReasonWifiBluetoothCoexist
- 8: 本地用户同时开启 Wi-Fi 和蓝牙,二者信号互相干扰,导致音频传输质量下降。
AgoraExperienceQuality
接收远端音频时,本地用户的主观体验质量。
枚举值
- AgoraExperienceQualityGood
- 0: 主观体验质量较好。
- AgoraExperienceQualityBad
- 1: 主观体验质量较差。
AgoraExternalVideoSourceType
外部视频帧编码类型。
枚举值
- AgoraExternalVideoSourceTypeVideoFrame
- 0:未编码视频帧。
- AgoraExternalVideoSourceTypeEncodedVideoFrame
- 1:已编码视频帧。
AgoraVideoFrameRate
视频帧率。
枚举值
- AgoraVideoFrameRateFps1
- 1: 1 fps
- AgoraVideoFrameRateFps7
- 7: 7 fps
- AgoraVideoFrameRateFps10
- 10: 10 fps
- AgoraVideoFrameRateFps15
- 15: 15 fps
- AgoraVideoFrameRateFps24
- 24: 24 fps
- AgoraVideoFrameRateFps30
- 30: 30 fps
- AgoraVideoFrameRateFps60
-
60: 60 fps
注意: 仅适用于 Windows 和 macOS 平台。
AgoraLastmileProbeResultState
Last mile 质量探测结果的状态。
枚举值
- AgoraLastmileProbeResultComplete
- 1: 表示本次 last mile 质量探测的结果是完整的。
- AgoraLastmileProbeResultIncompleteNoBwe
- 2: 表示本次 last mile 质量探测未进行带宽预测,因此结果不完整。一个可能的原因是测试资源暂时受限。
- AgoraLastmileProbeResultUnavailable
- 3: 未进行 last mile 质量探测。一个可能的原因是网络连接中断。
AgoraLighteningContrastLevel
亮度明暗对比度。
枚举值
- AgoraLighteningContrastLow
- 0:低对比度。
- AgoraLighteningContrastNormal
- 1:正常对比度。
- AgoraLighteningContrastHigh
- 2:高对比度。
AgoraAudioLocalError
本地音频出错原因。
枚举值
- AgoraAudioLocalErrorOK
- 0:本地音频状态正常。
- AgoraAudioLocalErrorFailure
- 1:本地音频出错原因不明确。建议提示用户尝试重新加入频道。
- AgoraAudioLocalErrorDeviceNoPermission
- 2:没有权限启动本地音频采集设备。请提示用户开启权限。
- 弃用:
- 该枚举已废弃。请改用 permissionError 回调中的 AgoraPermissionTypeRecordAudio。
- AgoraAudioLocalErrorRecordFailure
- 4:本地音频采集失败。
- AgoraAudioLocalErrorEncodeFailure
- 5:本地音频编码失败。
AgoraAudioLocalState
本地音频状态。
枚举值
- AgoraAudioLocalStateStopped
- 0: 本地音频默认初始状态。
- AgoraAudioLocalStateRecording
- 1: 本地音频采集设备启动成功。
- AgoraAudioLocalStateEncoding
- 2: 本地音频首帧编码成功。
- AgoraAudioLocalStateFailed
- 3: 本地音频启动失败。
AgoraLocalProxyMode
与声网私有媒体服务器的连接模式。
枚举值
- AgoraConnectivityFirst
- 0:SDK 优先尝试连接指定的声网私有媒体服务器;如果无法连接到指定的声网私有媒体服务器,则连接声网 SD-RTN™。
- AgoraLocalOnly
- 1:SDK 只尝试连接指定的声网私有媒体服务器。
AgoraLocalVideoStreamError
本地视频出错原因。
枚举值
- AgoraLocalVideoStreamErrorOK
- 0:本地视频状态正常。
- AgoraLocalVideoStreamErrorFailure
- 1:出错原因不明确。
- AgoraLocalVideoStreamErrorDeviceNoPermission
- 2:没有权限启动本地视频采集设备。请提示用户开启权限再重新加入频道。
- 弃用:
- 该枚举已废弃。请改用 permissionError 回调中的 AgoraPermissionTypeCamera。
- AgoraLocalVideoStreamErrorDeviceBusy
- 3:本地视频采集设备正在使用中。请提示用户检查摄像头是否被其他应用占用。
- AgoraLocalVideoStreamErrorCaptureFailure
- 4:本地视频采集失败。请提示用户检查视频采集设备是否正常工作,检查摄像头是否被其他应用占用,或者尝试重新加入频道。
- AgoraLocalVideoStreamErrorEncodeFailure
- 5:本地视频编码失败。
- AgoraLocalVideoStreamErrorCaptureDeviceDisconnected
- 9:(仅适用于 macOS)当前正在使用的视频采集设备已经断开连接(例如,被拔出)。
- AgoraLocalVideoStreamErrorCaptureDeviceInvalidId
- 10:SDK 无法在视频设备列表中找到该视频设备。请检查视频设备 ID 是否有效。
- AgoraLocalVideoStreamErrorScreenCaptureWindowMinimized
- 11:调用 startScreenCaptureByWindowId 方法共享窗口时,共享窗口处于最小化的状态。SDK 无法共享被最小化的窗口。请在应用层对此类窗口取消最小化,例如,将窗口最大化。
- AgoraLocalVideoStreamErrorScreenCaptureWindowClosed
-
12:该错误码表示通过窗口 ID 共享的窗口已关闭,或通过窗口 ID 共享的全屏窗口已退出全屏。退出全屏模式后,远端用户将无法看到共享的窗口。为避免远端用户看到黑屏,Agora 建议你立即结束本次共享。
报告该错误码的常见场景:- 本地用户关闭共享的窗口时,SDK 会报告该错误码。
- 本地用户先放映幻灯片,然后共享放映中的幻灯片。结束放映时,SDK 会报告该错误码。
- 本地用户先全屏观看网页视频或网页文档,然后共享网页视频或网页文档。结束全屏时,SDK 会报告该错误码。
AgoraVideoLocalState
本地视频状态。
枚举值
- AgoraVideoLocalStateStopped
- 0: 本地视频默认初始状态。
- AgoraVideoLocalStateCapturing
- 1: 本地视频采集设备启动成功。
- AgoraVideoLocalStateEncoding
- 2: 本地视频首帧编码成功。
- AgoraVideoLocalStateFailed
- 3: 本地视频启动失败。
AgoraLogFilter
日志过滤等级。
枚举值
- AgoraLogFilterOff
- 0: 不输出日志信息。
- AgoraLogFilterDebug
- 0x080f: 输出所有 API 日志信息。如果你想获取最完整的日志,可以将日志级别设为该等级。
- AgoraLogFilterInfo
- 0x000f: 输出 AgoraLogFilterCritical、AgoraLogFilterError、AgoraLogFilterWarning 和 AgoraLogFilterInfo 级别的日志信息。我们推荐你将日志级别设为该等级。
- AgoraLogFilterWarning
- 0x000e: 输出 AgoraLogFilterCritical、AgoraLogFilterError 和 AgoraLogFilterWarning 级别的日志信息。
- AgoraLogFilterError
- 0x000c: 输出 AgoraLogFilterCritical 和 AgoraLogFilterError 级别的日志信息。
- AgoraLogFilterCritical
- 0x0008: 输出 AgoraLogFilterCritical 级别的日志信息。
AgoraLogLevel
日志输出等级。
枚举值
- AgoraLogLevelNone
- 0: 不输出任何日志。
- AgoraLogLevelInfo
- 0x0001:(默认)输出
FATAL
、ERROR
、WARN
、INFO
级别的日志。我们推荐你将日志级别设为该等级。 - AgoraLogLevelWarn
- 0x0002: 仅输出
FATAL
、ERROR
、WARN
级别的日志。 - AgoraLogLevelError
- 0x0004: 仅输出
FATAL
、ERROR
级别的日志。 - AgoraLogLevelFatal
- 0x0008: 仅输出
FATAL
级别的日志。
AgoraMediaDeviceType
设备类型。
枚举值
- AgoraMediaDeviceTypeAudioUnknown
- -1: 设备类型未知。
- AgoraMediaDeviceTypeAudioPlayout
- 0: 音频播放设备。
- AgoraMediaDeviceTypeAudioRecording
- 1: 音频采集设备。
- AgoraMediaDeviceTypeVideoRender
- 2: 视频渲染设备。
- AgoraMediaDeviceTypeVideoCapture
- 3: 视频采集设备。
AgoraMediaPlayerError
播放器的错误码。
枚举值
- AgoraMediaPlayerErrorNone
- 0: 没有错误。
- AgoraMediaPlayerErrorInvalidArguments
- -1: 不正确的参数。
- AgoraMediaPlayerErrorInternal
- -2: 内部错误。
- AgoraMediaPlayerErrorNoSource
- -3: 没有 resource。
- AgoraMediaPlayerErrorInvalidMediaSource
- -4: 无效的 resource。
- AgoraMediaPlayerErrorUnknowStreamType
- -5: 未知的媒体流类型。
- AgoraMediaPlayerErrorObjNotInitialized
- -6: 对象没有初始化。
- AgoraMediaPlayerErrorCodecNotSupported
- -7: 解码器不支持该 codec。
- AgoraMediaPlayerErrorVideoRenderFailed
- -8: 无效的 renderer。
- AgoraMediaPlayerErrorInvalidState
- -9: 播放器内部状态错误。
- AgoraMediaPlayerErrorUrlNotFound
- -10: 未找到该 URL。
- AgoraMediaPlayerErrorInvalidConnectState
- -11: 播放器与 Agora 服务器的连接无效。
- AgoraMediaPlayerErrorSrcBufferUnderflow
- -12: 播放缓冲区数据不足。
- AgoraMediaPlayerErrorInterrupted
- -13: 播放被异常打断而结束。
- AgoraMediaPlayerErrorNotSupported
- -14: SDK 不支持的接口调用。
- AgoraMediaPlayerErrorUnknown
- -17:未知错误。
AgoraMediaPlayerEvent
播放器事件。
枚举值
- AgoraMediaPlayerEventSeekBegin
- 0: 开始定位。
- AgoraMediaPlayerEventSeekComplete
- 1: 完成定位。
- AgoraMediaPlayerEventSeekError
- 2: 定位出错。
- AgoraMediaPlayerEventAudioTrackChanged
- 5: 当前音轨发生改变。
- AgoraMediaPlayerEventBufferLow
- 6: 当前缓冲的数据不足以支持播放。
- AgoraMediaPlayerEventBufferRecover
- 7: 当前缓冲的数据刚好能支持播放。
- AgoraMediaPlayerEventFreezeStart
- 8: 音频或视频出现卡顿。
- AgoraMediaPlayerEventFreezeStop
- 9: 音频和视频均停止卡顿。
- AgoraMediaPlayerEventSwitchBegin
- 10: 开始切换媒体资源。
- AgoraMediaPlayerEventSwitchComplete
- 11: 媒体资源切换完成。
- AgoraMediaPlayerEventSwitchError
- 12: 媒体资源切换出错。
- AgoraMediaPlayerEventFirstDisplayed
- 13: 视频首帧出图。
- AgoraMediaPlayerEventReachCacheFileMaxCount
- 14:达到可缓存文件的数量上限。
- AgoraMediaPlayerEventReachCacheFileMaxSize
- 15:达到可缓存文件的大小上限。
AgoraMediaPlayerMetaDataType
媒体附属信息数据类型。
枚举值
- AgoraMediaPlayerMetaDataTypeUnknown
- 0: 未知类型。
- AgoraMediaPlayerMetaDataTypeSEI
- 1: SEI (补充增强信息)类型。
AgoraMediaPlayerRenderMode
视频显示模式。
枚举值
- AgoraMediaPlayerRenderModeHidden
- 1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。
- AgoraMediaPlayerRenderModeFit
- 2: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。
AgoraMediaPlayerState
播放器的状态。
枚举值
- AgoraMediaPlayerStateIdle
- 0: 默认状态。播放器会在你打开媒体文件之前和结束播放之后返回该状态码。
- AgoraMediaPlayerStateOpening
- 正在打开媒体文件。
- AgoraMediaPlayerStateOpenCompleted
- 成功打开媒体文件。
- AgoraMediaPlayerStatePlaying
- 正在播放。
- AgoraMediaPlayerStatePaused
- 暂停播放。
- AgoraMediaPlayerStatePlayBackCompleted
- 播放完毕。
- AgoraMediaPlayerStatePlayBackAllLoopsCompleted
- 循环播放已结束。
- AgoraMediaPlayerStateStopped
- 播放已停止。
- AgoraMediaPlayerStateFailed
- 100: 播放失败。
AgoraMediaRecorderContainerFormat
录制文件的格式。
枚举值
- AgoraMediaRecorderContainerFormatMP4
- 1:(默认)MP4
AgoraMediaRecorderStreamType
录制内容。
枚举值
- AgoraMediaStreamTypeAudio
- 仅音频。
- AgoraMediaStreamTypeVideo
- 仅视频。
- AgoraMediaRecorderStreamTypeBoth
- (默认)音视频。
AgoraMediaSourceType
媒体源类型。
枚举值
- AgoraMediaSourceTypeAudioPlayout
- 0: 音频播放设备。
- AgoraMediaSourceTypeRecording
- 1: 音频采集设备。
- AgoraMediaSourceTypePrimaryCamera
- 2: 第一个摄像头
- AgoraMediaSourceTypeSecondaryCamera
- 3: 第二个摄像头。
- AgoraMediaSourceTypeUnknown
- 100: 未知媒体源。
AgoraMediaStreamType
媒体流的类型。
枚举值
- AgoraMediaStreamTypeUnknown
- 0: 未知类型。
- AgoraMediaStreamTypeVideo
- AgoraMediaRecorderStreamTypeAudio
- 1: 视频流。
- AgoraMediaStreamTypeAudio
- AgoraMediaRecorderStreamTypeVideo
- 2: 音频流。
- AgoraMediaStreamTypeSubtitle
- 3: 字幕流。
AgoraMetadataType
观测器的 Metadata 类型。当前仅支持视频类型的 Metadata 。
枚举值
- AgoraMetadataTypeUnknown
- Metadata 类型未知。
- AgoraMetadataTypeVideo
- Metadata 类型为视频。
AgoraNetworkType
网络连接类型。
枚举值
- AgoraNetworkTypeUnknown
- -1: 网络连接类型未知。
- AgoraNetworkTypeDisconnected
- 0: 网络连接已断开。
- AgoraNetworkTypeLAN
- 1: 网络类型为 LAN。
- AgoraNetworkTypeWIFI
- 2: 网络类型为 Wi-Fi (包含热点)。
- AgoraNetworkType2G
- 3: 网络类型为 2G 移动网络。
- AgoraNetworkType3G
- 4: 网络类型为 3G 移动网络。
- AgoraNetworkType4G
- 5: 网络类型为 4G 移动网络。
- AgoraNetworkType5G
- 6: 网络类型为 5G 移动网络。
AgoraVideoOutputOrientationMode
视频编码的方向模式。
枚举值
- AgoraVideoOutputOrientationModeAdaptative
-
0: (默认)该模式下 SDK 输出的视频方向与采集到的视频方向一致。接收端会根据收到的视频旋转信息对视频进行旋转。该模式适用于接收端可以调整视频方向的场景。
- 如果采集的视频是横屏模式,则输出的视频也是横屏模式。
- 如果采集的视频是竖屏模式,则输出的视频也是竖屏模式。
- AgoraVideoOutputOrientationModeFixedLandscape
- 1: 该模式下 SDK 固定输出风景(横屏)模式的视频。如果采集到的视频是竖屏模式,则视频编码器会对其进行裁剪。该模式适用于当接收端无法调整视频方向时,如使用旁路推流场景下。
- AgoraVideoOutputOrientationModeFixedPortrait
- 2: 该模式下 SDK 固定输出人像(竖屏)模式的视频,如果采集到的视频是横屏模式,则视频编码器会对其进行裁剪。该模式适用于当接收端无法调整视频方向时,如使用旁路推流场景下。
AgoraPermissionType
设备权限类型。
枚举值
- AgoraPermissionTypeRecordAudio
- 0: 音频采集设备的权限。
- AgoraPermissionTypeCamera
- 1: 摄像头权限。
AgoraMediaPlayerPreloadEvent
预加载媒体资源时发生的事件。
枚举值
- AgoraMediaPlayerPreloadEventBegin
- 0: 开始预加载媒体资源。
- AgoraMediaPlayerPreloadEventComplete
- 1: 预加载媒体资源完成。
- AgoraMediaPlayerPreloadEventError
- 2: 预加载媒体资源出错。
AgoraProxyType
代理类型。
枚举值
- AgoraNoneProxyType
- 0: 预留参数,暂不支持。
- AgoraUdpProxyType
- 1: UDP 协议的云代理,即 Force UDP 云代理模式。在该模式下,SDK 始终通过 UDP 协议传输数据。
- AgoraTcpProxyType·
- 2: TCP(加密)协议的云代理,即 Force TCP 云代理模式。在该模式下,SDK 始终通过 TLS 443 传输数据。
- AgoraLocalProxyType
- 3: 预留参数,暂不支持。
- AgoraTcpProxyAutoFallbackType
- 4: 自动模式。在该模式下,SDK 优先连接 SD-RTN™,如果连接失败,自动切换为 TLS 443。
AgoraVideoQualityAdaptIndication
自上次统计后本地视频质量的自适应情况(基于目标帧率和目标码率)。
枚举值
- AgoraVideoQualityAdaptNone
- 0:本地视频质量不变。
- AgoraVideoQualityAdaptUpBandwidth
- 1:因网络带宽增加,本地视频质量改善。
- AgoraVideoQualityAdaptDownBandwidth
- 2:因网络带宽减少,本地视频质量变差。
AgoraNetworkQuality
网络质量。
枚举值
- AgoraNetworkQualityUnknown
- 0: 网络质量未知。
- AgoraNetworkQualityExcellent
- 1: 网络质量极好。
- AgoraNetworkQualityGood
- 2: 用户主观感觉和 excellent 差不多,但码率可能略低于 excellent。
- AgoraNetworkQualityPoor
- 3: 用户主观感受有瑕疵但不影响沟通。
- AgoraNetworkQualityBad
- 4: 勉强能沟通但不顺畅。
- AgoraNetworkQualityVBad
- 5: 网络质量非常差,基本不能沟通。
- AgoraNetworkQualityDown
- 6: 完全无法沟通。
AgoraAudioRawFrameOperationMode
音频数据的使用模式。
枚举值
- AgoraAudioRawFrameOperationModeReadOnly
- 0: 只读模式,例如: 若用户通过 Agora SDK 采集数据,自己进行旁路推流,则可以选择该模式。
- AgoraAudioRawFrameOperationModeReadWrite
- 2: 读写模式, 例如: 若用户自己有音效处理模块,且想要根据实际需要对数据进行前处理(例如变声),则可以选择该模式。
AgoraMediaRecorderErrorCode
录制状态出错的原因。
枚举值
- AgoraMediaRecorderErrorCodeNoError
- 0: 一切正常。
- AgoraMediaRecorderErrorCodeWriteFailed
- 1: 录制文件写入失败。
- AgoraMediaRecorderErrorCodeNoStream
- 2: 没有可录制的音视频流或者录制的音视频流中断超过 5 秒。
- AgoraMediaRecorderErrorCodeOverMaxDuration
- 3: 录制时长超出上限。
- AgoraMediaRecorderErrorCodeConfigChange
- 4: 录制配置改变。
AgoraMediaRecorderState
当前的录制状态。
枚举值
- AgoraMediaRecorderStateError
- -1: 音视频流录制出错,错误原因详见 AgoraMediaRecorderErrorCode。
- AgoraMediaRecorderStateStarted
- 2: 音视频流录制开始。
- AgoraMediaRecorderStateStopped
- 3: 音视频流录制停止。
AgoraAudioRemoteReason
远端音频流状态切换原因。
枚举值
- AgoraAudioRemoteReasonInternal
- 0: 音频状态发生改变时,会报告该原因。
- AgoraAudioRemoteReasonNetworkCongestion
- 1: 网络阻塞。
- AgoraAudioRemoteReasonNetworkRecovery
- 2: 网络恢复正常。
- AgoraAudioRemoteReasonLocalMuted
- 3: 本地用户停止接收远端音频流或本地用户禁用音频模块。
- AgoraAudioRemoteReasonLocalUnmuted
- 4: 本地用户恢复接收远端音频流或本地用户启动音频模块。
- AgoraAudioRemoteReasonRemoteMuted
- 5: 远端用户停止发送音频流或远端用户禁用音频模块。
- AgoraAudioRemoteReasonRemoteUnmuted
- 6: 远端用户恢复发送音频流或远端用户启用音频模块。
- AgoraAudioRemoteReasonRemoteOffline
- 7: 远端用户离开频道。
AgoraAudioRemoteState
远端音频流状态。
枚举值
- AgoraAudioRemoteStateStopped
- 0: 远端音频默认初始状态。在 AgoraAudioRemoteReasonLocalMuted、AgoraAudioRemoteReasonRemoteMuted 或 AgoraAudioRemoteReasonRemoteOffline 的情况下,会报告该状态。
- AgoraAudioRemoteStateStarting
- 1: 本地用户已接收远端音频首包。
- AgoraAudioRemoteStateDecoding
- 2: 远端音频流正在解码,正常播放。在 AgoraAudioRemoteReasonNetworkRecovery、AgoraAudioRemoteReasonLocalUnmuted 或 AgoraAudioRemoteReasonRemoteUnmuted 的情况下,会报告该状态。
- AgoraAudioRemoteStateFrozen
- 3: 远端音频流卡顿。在 AgoraAudioRemoteReasonNetworkCongestion 的情况下,会报告该状态。
- AgoraAudioRemoteStateFailed
- 4: 远端音频流播放失败。在 AgoraAudioRemoteReasonInternal 的情况下,会报告该状态。
AgoraVideoRemoteReason
远端视频流状态切换原因。
枚举值
- AgoraVideoRemoteReasonInternal
- 0: 视频状态发生改变时,会报告该原因。
- AgoraVideoRemoteReasonCongestion
- 1: 网络阻塞。
- AgoraVideoRemoteReasonRecovery
- 2: 网络恢复正常。
- AgoraVideoRemoteReasonLocalMuted
- 3: 本地用户停止接收远端视频流或本地用户禁用视频模块。
- AgoraVideoRemoteReasonLocalUnmuted
- 4: 本地用户恢复接收远端视频流或本地用户启动视频模块。
- AgoraVideoRemoteReasonRemoteMuted
- 5: 远端用户停止发送视频流或远端用户禁用视频模块。
- AgoraVideoRemoteReasonRemoteUnmuted
- 6: 远端用户恢复发送视频流或远端用户启用视频模块。
- AgoraVideoRemoteReasonRemoteOffline
- 7: 远端用户离开频道。
AgoraVideoRemoteState
远端视频流状态。
枚举值
- AgoraVideoRemoteStateStopped
- 0: 远端视频默认初始状态。在 AgoraVideoRemoteReasonLocalMuted、AgoraVideoRemoteReasonRemoteMuted 或 AgoraVideoRemoteReasonRemoteOffline 的情况下,会报告该状态。
- AgoraVideoRemoteStateStarting
- 1: 本地用户已接收远端视频首包。
- AgoraVideoRemoteStateDecoding
- 2: 远端视频流正在解码,正常播放。在 AgoraVideoRemoteReasonRecovery、AgoraVideoRemoteReasonLocalUnmuted、AgoraVideoRemoteReasonRemoteUnmuted 或 AgoraVideoRemoteReasonAudioFallbackRecovery 的情况下,会报告该状态。
- AgoraVideoRemoteStateFrozen
- 3: 远端视频流卡顿。在 AgoraVideoRemoteReasonCongestion 或 AgoraVideoRemoteReasonAudioFallback 的情况下,会报告该状态。
- AgoraVideoRemoteStateFailed
- 4: 远端视频流播放失败。在 AgoraVideoRemoteReasonInternal 的情况下,会报告该状态。
AgoraVideoStreamType
视频流类型。
枚举值
- AgoraVideoStreamTypeHigh
- 0: 视频大流,即高分辨率、高码率视频流。
- AgoraVideoStreamTypeLow
- 1: 视频小流,即低分辨率、低码率视频流。
AgoraVideoRenderMode
视频显示模式。
枚举值
- AgoraVideoRenderModeHidden
- 1: 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。
- AgoraVideoRenderModeFit
- 2: 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。
AgoraRtmpStreamLifeCycle
服务端转码推流的生命周期。
- 弃用
枚举值
- AgoraRtmpStreamLifeCycleBindToChannel
- 跟频道生命周期绑定,即频道内所有主播离开,服务端转码推流会在 30 秒之后停止。
- AgoraRtmpStreamLifeCycleBindToOwner
- 跟启动服务端转码推流的主播生命周期绑定,即该主播离开,服务端转码推流会立即停止。
AgoraRtmpStreamingErrorCode
推流错误信息。
枚举值
- AgoraRtmpStreamingErrorCodeOK
- 0:推流成功。
- AgoraRtmpStreamingErrorCodeInvalidParameters
- 1:参数无效。请检查输入参数是否正确。
- AgoraRtmpStreamingErrorCodeEncryptedStreamNotAllowed
- 2:推流已加密,不能推流。
- AgoraRtmpStreamingErrorCodeConnectionTimeout
- 3:推流超时未成功。
- AgoraRtmpStreamingErrorCodeInternalServerError
- 4:推流服务器出现错误。
- AgoraRtmpStreamingErrorCodeRtmpServerError
- 5:CDN 服务器出现错误。
- AgoraRtmpStreamingErrorCodeTooOften
- 6:推流请求过于频繁。
- AgoraRtmpStreamingErrorCodeReachLimit
- 7:单个主播的推流地址数目达到上限 10。请删掉一些不用的推流地址再增加推流地址。
- AgoraRtmpStreamingErrorCodeNotAuthorized
- 8:主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。
- AgoraRtmpStreamingErrorCodeStreamNotFound
- 9:服务器未找到这个流。
- AgoraRtmpStreamingErrorCodeFormatNotSupported
- 10:推流地址格式有错误。请检查推流地址格式是否正确。
- AgoraRtmpStreamingErrorNotBroadcaster
- 11:用户角色不是主播,该用户无法使用推流功能。请检查你的应用代码逻辑。
- AgoraRtmpStreamingErrorTranscodingNoMixStream
- 13:非转码推流情况下,调用了 updateRtmpTranscoding 方法更新转码属性。请检查你的应用代码逻辑。
- AgoraRtmpStreamingErrorNetDown
- 14:主播的网络出错。
- AgoraRtmpStreamingErrorInvalidAppId
- 15:你的 App ID 没有使用 Agora 推流服务的权限。
- AgoraRtmpStreamingErrorCodeUnpublishOK
- 100:推流已正常结束。当你结束推流后,SDK 会返回该值。
AgoraRtmpStreamingState
推流状态。
枚举值
- AgoraRtmpStreamingStateIdle
- 0:推流未开始或已结束。
- AgoraRtmpStreamingStateConnecting
- 1:正在连接 Agora 推流服务器和 CDN 服务器。
- AgoraRtmpStreamingStateRunning
- 2:推流正在进行。成功推流后,会返回该状态。
- AgoraRtmpStreamingStateRecovering
-
3:正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。
- 如成功恢复推流,则进入状态 AgoraRtmpStreamingStateRunning(2)。
- 如服务器出错或 60 秒内未成功恢复,则进入状态 AgoraRtmpStreamingStateFailure(4)。如果觉得 60 秒太长,也可以主动尝试重连。
- AgoraRtmpStreamingStateFailure
- 4:推流失败。失败后,你可以通过返回的错误码排查错误原因。
- AgoraRtmpStreamingStateDisconnecting
- 5:SDK 正在与 Agora 推流服务器和 CDN 服务器断开连接。当你调用 stopRtmpStream 方法正常结束推流时,SDK 会依次报告推流状态为 AgoraRtmpStreamingStateDisconnecting、AgoraRtmpStreamingStateIdle。
AgoraRtmpStreamingEvent
旁路推流时发生的事件。
枚举值
- AgoraRtmpStreamingEventFailedLoadImage
- 1: 旁路推流时,添加背景图或水印出错。
- AgoraRtmpStreamingEventUrlAlreadyInUse
- 2: 该推流 URL 已用于推流。如果你想开始新的推流,请使用新的推流 URL。
- AgoraRtmpStreamingEventAdvancedFeatureNotSupport
- 3: 功能不支持。
- AgoraRtmpStreamingEventRequestTooOften
- 4: 预留参数。
AgoraScreenCaptureSourceType
共享目标的类型。在 AgoraScreenCaptureSourceInfo 中设置。
枚举值
- AgoraScreenCaptureSourceTypeUnknown
- -1:未知。
- AgoraScreenCaptureSourceTypeWindow
- 0:共享目标为某一个窗口。
- AgoraScreenCaptureSourceTypeScreen
- 1:共享目标为某一个显示器的屏幕。
- AgoraScreenCaptureSourceTypeCustom
- 2:预留参数。
AgoraScreenScenarioType
屏幕共享的场景。
枚举值
- AgoraScreenScenarioDocument
- 1:(默认)文档。该场景下,优先保障共享的画质,并降低了接收端看到共享视频的延时。如果你共享文档、幻灯片、表格,可以设置该场景。
- AgoraScreenScenarioGaming
- 2: 游戏。该场景下,优先保障共享的流畅性。如果你共享游戏,可以设置该场景。
- AgoraScreenScenarioVideo
- 3: 视频。该场景下,优先保障共享的流畅性。如果你共享电影、视频直播,可以设置该场景。
- AgoraScreenScenarioRDC
- 4: 远程控制。该场景下,优先保障共享的画质,并降低了接收端看到共享视频的延时。如果你共享被远程控制的设备桌面,可以设置该场景。
SegModelType
进行背景处理的算法。
枚举值
- SegModelAgoraAi
- 1: (默认) 适用于所有场景下的背景处理算法。
- SegModelAgoraGreen
- 2: 仅适用于绿幕背景下的背景处理算法。
AgoraStreamPublishState
发布状态。
枚举值
- AgoraStreamPublishStateIdle
- 0: 加入频道后的初始发布状态。
- AgoraStreamPublishStateNoPublished
-
1: 发布失败。可能是因为:
- 本地用户调用 muteLocalAudioStream(
YES
) 或 muteLocalVideoStream(YES
) 停止发送本地媒体流。 - 本地用户调用 disableAudio 或 disableVideo 关闭本地音频或视频模块。
- 本地用户调用 enableLocalAudio(
NO
) 或 enableLocalVideo(NO
) 关闭本地音频或视频采集。 - 本地用户角色为观众。
- 本地用户调用 muteLocalAudioStream(
- AgoraStreamPublishStatePublishing
- 2: 正在发布。
- AgoraStreamPublishStatePublished
- 3: 发布成功。
AgoraStreamSubscribeState
订阅状态。
枚举值
- AgoraStreamSubscribeStateIdle
- 0: 加入频道后的初始订阅状态。
- AgoraStreamSubscribeStateNoSubscribed
-
1: 订阅失败。可能是因为:
- 远端用户:
- 调用 muteLocalAudioStream(
YES
) 或 muteLocalVideoStream(YES
) 停止发送本地媒体流。 - 调用 disableAudio 或 disableVideo 关闭本地音频或视频模块。
- 调用 enableLocalAudio(NO) 或 enableLocalVideo(NO) 关闭本地音频或视频采集。
- 用户角色为观众。
- 调用 muteLocalAudioStream(
- 本地用户调用以下方法停止接收远端媒体流:
- 调用 muteRemoteAudioStream(YES)、 muteAllRemoteAudioStreams(YES) 停止接收远端音频流。
- 调用 muteRemoteVideoStream(YES)、 muteAllRemoteVideoStreams(YES) 停止接收远端视频流。
- 远端用户:
- AgoraStreamSubscribeStateSubscribing
- 2: 正在订阅。
- AgoraStreamSubscribeStateSubscribed
- 3: 收到了远端流,订阅成功。
AgoraUserOfflineReason
用户离线原因。
枚举值
- AgoraUserOfflineReasonQuit
- 0: 用户主动离开。
- AgoraUserOfflineReasonDropped
-
1: 因过长时间收不到对方数据包,超时掉线。
注意: 由于 SDK 使用的是不可靠通道,也有可能对方主动离开频道,但是本地没收到对方离开消息而误判为超时掉线。 - AgoraUserOfflineReasonBecomeAudience
- 2: 用户身份从主播切换为观众。
AgoraVideoFramePosition
视频观测位置。
枚举值
- AgoraVideoFramePositionPostCapture
- 1: 本地采集视频数据后的位置,对应 onCaptureVideoFrame 回调。
- AgoraVideoFramePositionPreRenderer
- 2: 接收远端发送视频前的位置,对应 onRenderVideoFrame 回调。
- AgoraVideoFramePositionPreEncoder
- 4: 本地视频编码前的位置,对应 onPreEncodeVideoFrame 回调。
AgoraVideoCodecProfileType
旁路推流输出视频的编解码规格。
- AgoraVideoCodecProfileTypeBaseLine
- 66: Baseline 级别的视频编码规格,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等。
- AgoraVideoCodecProfileTypeMain
- 77: Main 级别的视频编码规格,一般用于主流消费类电子产品,如 MP4、便携的视频播放器、PSP、iPad 等。
- AgoraVideoCodecProfileTypeHigh
- 100: (默认)High 级别的视频编码规格,一般用于广播、视频碟片存储、高清电视。
AgoraVideoCodecType
视频编码格式。
枚举值
- AgoraVideoCodecTypeVP8
- 1:标准 VP8。
- AgoraVideoCodecTypeH264
- 2:标准 H.264。
AgoraVideoCodecTypeForStream
转码输出视频流的编解码类型。
枚举值
- AgoraVideoCodecTypeH264ForStream
- 1:(默认)H.264。
- AgoraVideoCodecTypeH265ForStream
- 2:H.265。
AgoraVideoFrameProcessMode
视频帧处理模式。
枚举值
- AgoraVideoFrameProcessModeReadOnly
-
只读模式。
只读模式下,你不修改视频帧,视频观测器相当于渲染器。
- AgoraVideoFrameProcessModeReadWrite
-
读写模式。
读写模式下,你会修改视频帧,视频观测器相当于视频 filter。
AgoraVideoFrameType
视频帧类型。
枚举值
- AgoraVideoFrameTypeBlankFrame
- 0: 黑帧。
- AgoraVideoFrameTypeKeyFrame
- 3: 关键帧。
- AgoraVideoFrameTypeDeltaFrame
- 4: Delta 帧。
- AgoraVideoFrameTypeBFrame
- 5: B 帧。
- AgoraVideoFrameTypeDroppableFrame
- 6: 丢弃帧。
- AgoraVideoFrameTypeUnknow
- 未知帧。
AgoraVideoMirrorMode
镜像模式类型。
枚举值
- AgoraVideoMirrorModeAuto
- 0:(默认)由 SDK 决定镜像模式。
- AgoraVideoMirrorModeEnabled
- 1: 启用镜像模式。
- AgoraVideoMirrorModeDisabled
- 2: 关闭镜像模式。
AgoraVideoRotation
视频顺时针旋转信息。
枚举值
- AgoraVideoRotationNone
- 0:(默认)顺时针旋转 0 度。
- AgoraVideoRotation90
- 90: 顺时针旋转 90 度。
- AgoraVideoRotation180
- 180: 顺时针旋转 180 度。
- AgoraVideoRotation270
- 270: 顺时针旋转 270 度。
AgoraVideoFormat
视频像素格式。
枚举值
- AgoraVideoFormatDefault
- 0: 原始视频像素格式。
- AgoraVideoPixelFormatI420
- 1: I420 格式。
- AgoraVideoFormatRGBA
- 4: RGBA 格式。
- AgoraVideoFormatNV12
- 8: NV12 格式。
- AgoraVideoFormatCVPixelNV12
- 12: CVPixelBufferRef NV12 格式。
- AgoraVideoFormatCVPixelI420
- 13: CVPixelBufferRef I420 格式。
- AgoraVideoFormatCVPixelBGRA
- 14: CVPixelBufferRef BGRA 格式。
- AgoraVideoFormatI422
- 16: I422 格式。
AgoraVideoProfile
视频属性。
- 弃用
- 该类已废弃。
枚举值
- AgoraVideoProfileInvalid
- 无效的视频属性。
- AgoraVideoProfileLandscape120P
- 0:分辨率 160 × 120,帧率 15 fps,码率 65 Kbps。
- AgoraVideoProfileLandscape120P_3
- 2:分辨率 120 × 120,帧率 15 fps,码率 50 Kbps。
- AgoraVideoProfileLandscape180P
- 10:分辨率 320 × 180,帧率 15 fps,码率 140 Kbps。
- AgoraVideoProfileLandscape180P_3
- 12:分辨率 180 × 180,帧率 15 fps,码率 100 Kbps。
- AgoraVideoProfileLandscape180P_4
- 13:分辨率 240 × 180,帧率 15 fps,码率 120 Kbps。
- AgoraVideoProfileLandscape240P
- 20:分辨率 320 × 240,帧率 15 fps,码率 200 Kbps。
- AgoraVideoProfileLandscape240P_3
- 22:分辨率 240 × 240,帧率 15 fps,码率 140 Kbps。
- AgoraVideoProfileLandscape240P_4
- 23:分辨率 424 × 240,帧率 15 fps,码率 220 Kbps。
- AgoraVideoProfileLandscape360P
- 30:分辨率 640 × 360,帧率 15 fps,码率 400 Kbps。
- AgoraVideoProfileLandscape360P_3
- 32:分辨率 360 × 360,帧率 15 fps,码率 260 Kbps。
- AgoraVideoProfileLandscape360P_4
- 33:分辨率 640 × 360,帧率 30 fps,码率 600 Kbps。
- AgoraVideoProfileLandscape360P_6
- 35:分辨率 360 × 360,帧率 30 fps,码率 400 Kbps。
- AgoraVideoProfileLandscape360P_7
- 36:分辨率 480 × 360,帧率 15 fps,码率 320 Kbps。
- AgoraVideoProfileLandscape360P_8
- 37:分辨率 480 × 360,帧率 30 fps,码率 490 Kbps。
- AgoraVideoProfileLandscape360P_9
-
38:分辨率 640 × 360,帧率 15 fps,码率 800 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfileLandscape360P_10
-
39:分辨率 640 × 360,帧率 24 fps,码率 800 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfileLandscape360P_11
-
100: 分辨率 640 × 360,帧率 24 fps,码率 1000 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfileLandscape480P
- 40:分辨率 640 × 480,帧率 15 fps,码率 500 Kbps。
- AgoraVideoProfileLandscape480P_3
- 42:分辨率 480 × 480,帧率 15 fps,码率 400 Kbps。
- AgoraVideoProfileLandscape480P_4
- 43:分辨率 640 × 480,帧率 30 fps,码率 750 Kbps。
- AgoraVideoProfileLandscape480P_6
- 45:分辨率 480 × 480,帧率 30 fps,码率 600 Kbps。
- AgoraVideoProfileLandscape480P_8
- 47:分辨率 848 × 480,帧率 15 fps,码率 610 Kbps。
- AgoraVideoProfileLandscape480P_9
- 48:分辨率 848 × 480,帧率 30 fps,码率 930 Kbps。
- AgoraVideoProfileLandscape480P_10
- 49:分辨率 640 × 480,帧率 10 fps,码率 400 Kbps。
- AgoraVideoProfileLandscape720P
- 50:分辨率 1280 × 720,帧率 15 fps,码率 1130 Kbps。
- AgoraVideoProfileLandscape720P_3
- 52:分辨率 1280 × 720,帧率 30 fps,码率 1710 Kbps。
- AgoraVideoProfileLandscape720P_5
- 54:分辨率 960 × 720,帧率 15 fps,码率 910 Kbps。
- AgoraVideoProfileLandscape720P_6
- 55:分辨率 960 × 720,帧率 30 fps,码率 1380 Kbps。
- AgoraVideoProfileLandscape1080P
- 60:分辨率 1920 × 1080,帧率 15 fps,码率 2080 Kbps。
- AgoraVideoProfileLandscape1080P_3
- 62:分辨率 1920 × 1080,帧率 30 fps,码率 3150 Kbps。
- AgoraVideoProfileLandscape1080P_5
- 64:分辨率 1920 × 1080,帧率 60 fps,码率 4780 Kbps。
- AgoraVideoProfilePortrait120P
- 1000: 分辨率 120 × 160,帧率 15 fps,码率 65 Kbps。
- AgoraVideoProfilePortrait120P_3
- 1002: 分辨率 120 × 120,帧率 15 fps,码率 50 Kbps。
- AgoraVideoProfilePortrait180P
- 1010: 分辨率 180 × 320,帧率 15 fps,码率 140 Kbps。
- AgoraVideoProfilePortrait180P_3
- 1012: 分辨率 180 × 180,帧率 15 fps,码率 100 Kbps。
- AgoraVideoProfilePortrait180P_4
- 1013: 分辨率 180 × 240,帧率 15 fps,码率 120 Kbps。
- AgoraVideoProfilePortrait240P
- 1020: 分辨率 240 × 320,帧率 15 fps,码率 200 Kbps。
- AgoraVideoProfilePortrait240P_3
- 1022: 分辨率 240 × 240,帧率 15 fps,码率 140 Kbps。
- AgoraVideoProfilePortrait240P_4
- 1023: 分辨率 240 × 424,帧率 15 fps,码率 220 Kbps。
- AgoraVideoProfilePortrait360P
- 1030: 分辨率 360 × 640,帧率 15 fps,码率 400 Kbps。
- AgoraVideoProfilePortrait360P_3
- 1032: 分辨率 360 × 360,帧率 15 fps,码率 260 Kbps。
- AgoraVideoProfilePortrait360P_4
- 1033: 分辨率 360 × 640,帧率 30 fps,码率 600 Kbps。
- AgoraVideoProfilePortrait360P_6
- 1035: 分辨率 360 × 360,帧率 30 fps,码率 400 Kbps。
- AgoraVideoProfilePortrait360P_7
- 1036: 分辨率 360 × 480,帧率 15 fps,码率 320 Kbps。
- AgoraVideoProfilePortrait360P_8
- 1037: 分辨率 360 × 480,帧率 30 fps,码率 490 Kbps。
- AgoraVideoProfilePortrait360P_9
-
1038: 分辨率 360 × 640,帧率 15 fps,码率 800 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfilePortrait360P_10
-
1039: 分辨率 360 × 640,帧率 24 fps,码率 800 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfilePortrait360P_11
-
1100: 分辨率 360 × 640,帧率 24 fps,码率 1000 Kbps。
注意: 该视频属性仅适用于直播频道场景。 - AgoraVideoProfilePortrait480P
- 1040: 分辨率 480 × 640,帧率 15 fps,码率 500 Kbps。
- AgoraVideoProfilePortrait480P_3
- 1042: 分辨率 480 × 480,帧率 15 fps,码率 400 Kbps。
- AgoraVideoProfilePortrait480P_4
- 1043: 分辨率 480 × 640,帧率 30 fps,码率 750 Kbps。
- AgoraVideoProfilePortrait480P_6
- 1045: 分辨率 480 × 480,帧率 30 fps,码率 600 Kbps。
- AgoraVideoProfilePortrait480P_8
- 1047: 分辨率 480 × 848,帧率 15 fps,码率 610 Kbps。
- AgoraVideoProfilePortrait480P_9
- 1048: 分辨率 480 × 848,帧率 30 fps,码率 930 Kbps。
- AgoraVideoProfilePortrait480P_10
- 1049: 分辨率 480 × 640,帧率 10 fps,码率 400 Kbps。
- AgoraVideoProfilePortrait720P
- 1050: 分辨率 分辨率 720 × 1280,帧率 15 fps,码率 1130 Kbps。
- AgoraVideoProfilePortrait720P_3
- 1052: 分辨率 分辨率 720 × 1280,帧率 30 fps,码率 1710 Kbps。
- AgoraVideoProfilePortrait720P_5
- 1054: 分辨率 720 × 960,帧率 15 fps,码率 910 Kbps。
- AgoraVideoProfilePortrait720P_6
- 1055: 分辨率 720 × 960,帧率 30 fps,码率 1380 Kbps。
- AgoraVideoProfilePortrait1080P
- 1060: 分辨率 1080 × 1920,帧率 15 fps,码率 2080 Kbps。
- AgoraVideoProfilePortrait1080P_3
- 1062: 分辨率 1080 × 1920,帧率 30 fps,码率 3150 Kbps。
- AgoraVideoProfilePortrait1080P_5
- 1064: 分辨率 1080 × 1920,帧率 60 fps,码率 4780 Kbps。
- AgoraVideoProfileDEFAULT
- (默认)分辨率 640 × 360,帧率 15 fps,码率 400 Kbps。
AgoraVideoSourceType
视频源的类型。
枚举值
- AgoraVideoSourceTypeCamera
- 摄像头。
- AgoraVideoSourceTypeCameraSecondary
- 第二个摄像头。
- AgoraVideoSourceTypeScreen
- 屏幕。
- AgoraVideoSourceTypeScreenSecondary
- 第二个屏幕。
- AgoraVideoSourceTypeCustom
- 自定义的视频源。
- AgoraVideoSourceTypeMediaPlayer
- 媒体播放器共享的视频源。
- AgoraVideoSourceTypeImagePNG
- 视频源为 PNG 图片。
- AgoraVideoSourceTypeImageJPEG
- 视频源为 JPEG 图片。
- AgoraVideoSourceTypeImageGIF
- 视频源为 GIF 图片。
- AgoraVideoSourceTypeRemote
- 视频源为网络获取的远端视频。
- AgoraVideoSourceTypeTransCoded
- 转码后的视频源。
- AgoraVideoSourceTypeUnknown
- 未知的视频源。
AgoraVoiceBeautifierPreset
预设的美声效果选项。
枚举值
- AgoraVoiceBeautifierPresetOff
- 原声,即关闭美声效果。
- AgoraVoiceBeautifierPresetChatBeautifierMagnetic
磁性(男)。
注意: 该设置仅对男声有效,请勿用于设置女声,否则音频会失真。- AgoraVoiceBeautifierPresetChatBeautifierFresh
-
清新(女)。
注意: 该设置仅对女声有效,请勿用于设置男声,否则音频会失真。 - AgoraVoiceBeautifierPresetChatBeautifierVitality
-
活力(女)。
注意: 该设置仅对女声有效,请勿用于设置男声,否则音频会失真。 - AgoraVoiceBeautifierPresetSingingBeautifier
-
歌唱美声。
- 如果调用 setVoiceBeautifierPreset(AgoraVoiceBeautifierPresetSingingBeautifier),你可以美化男声并添加歌声在小房间的混响效果。请勿用于设置女声,否则音频会失真。
- 如果调用 setVoiceBeautifierParameters(AgoraVoiceBeautifierPresetSingingBeautifier, param1, param2),你可以美化男声或女声并添加混响效果。
- AgoraVoiceBeautifierTimbreTransformationVigorous
- 浑厚。
- AgoraVoiceBeautifierTimbreTransformationDeep
- 低沉。
- AgoraVoiceBeautifierTimbreTransformationMellow
- 圆润。
- AgoraVoiceBeautifierTimbreTransformationFalsetto
- 假音。
- AgoraVoiceBeautifierTimbreTransformationFull
- 饱满。
- AgoraVoiceBeautifierTimbreTransformationClear
- 清澈。
- AgoraVoiceBeautifierTimbreTransformationResounding
- 高亢。
- AgoraVoiceBeautifierTimbreTransformatRinging
- 嘹亮。
- AgoraVoiceBeautifierUltraHighQuality
- 超高音质,即让音频更清晰、细节更丰富。
- 为达到更好的效果,我们推荐在调用 setVoiceBeautifierPreset 前将 setAudioProfile [2/2] 的 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4) 或 AgoraAudioProfileMusicHighQualityStereo(5),且 scenario 参数设置为 AgoraAudioScenarioGameStreaming(3)。
- 如果用户的音频采集设备可以高度还原音频细节,Agora 建议你不要开启超高音质,否则 SDK 会过度还原音频细节,达不到预期效果。
AgoraAudioVoiceChanger
预设的语音变声效果。
枚举值
- AgoraAudioVoiceChangerOff
- 原声,即关闭语音变声。
- AgoraAudioVoiceChangerOldMan
- 变声:老男人。
- AgoraAudioVoiceChangerBabyBoy
- 变声:小男孩。
- AgoraAudioVoiceChangerBabyGirl
- 变声:小女孩。
- AgoraAudioVoiceChangerZhuBaJie
- 变声:猪八戒。
- AgoraAudioVoiceChangerEthereal
- 变声:空灵。
- AgoraAudioVoiceChangerHulk
- 变声:绿巨人。
- AgoraAudioVoiceBeautyVigorous
- 美音:浑厚。
- AgoraAudioVoiceBeautyDeep
- 美音:深沉。
- AgoraAudioVoiceBeautyMellow
- 美音:圆润。
- AgoraAudioVoiceBeautyFalsetto
- 美音:假音。
- AgoraAudioVoiceBeautyFull
- 美音:饱满。
- AgoraAudioVoiceBeautyClear
- 美音:清澈。
- AgoraAudioVoiceBeautyResounding
- 美音:高亢。
- AgoraAudioVoiceBeautyRinging
- 美音:嘹亮。
- VAgoraAudioVoiceBeautySpacial
- 美音:空旷。
- AgoraAudioGeneralBeautyVoiceMaleMagnetic
- 语聊美声:磁性(男)。此枚举为男声定制化效果,不适用于女声。若女声使用此音效设置,则音频可能会产生失真。
- AgoraAudioGeneralBeautyVoiceFemaleFresh
- 语聊美声:清新(女)。此枚举为女声定制化效果,不适用于男声。若男声使用此音效设置,则音频可能会产生失真。
- AgoraAudioGeneralBeautyVoiceFemaleVitality
- 语聊美声:活力(女)。此枚举为女声定制化效果,不适用于男声。若男声使用此音效设置,则音频可能会产生失真。
AgoraVoiceConversionPreset
预设的变声效果选项。
枚举值
- AgoraVoiceConversionPresetOff
- 原声,即关闭变声效果。
- AgoraVoiceConversionPresetNeutral
- 中性。为避免音频失真,请确保仅对女声设置该效果。
- AgoraVoiceConversionPresetSweet
- 甜美。为避免音频失真,请确保仅对女声设置该效果。
- AgoraVoiceConversionPresetChangerSolid
- 稳重。为避免音频失真,请确保仅对男声设置该效果。
- AgoraVoiceConversionPresetChangerBass
- 低沉。为避免音频失真,请确保仅对男声设置该效果。
AgoraRtcDeviceInfo
提供设备信息的类。
__attribute__((visibility("default"))) @interface AgoraRtcDeviceInfo : NSObject @property (assign, nonatomic) int __deprecated index; @property(assign, nonatomic) AgoraMediaDeviceType type; @property(copy, nonatomic) NSString *_Nullable deviceId; @property(copy, nonatomic) NSString *_Nullable deviceName; @end
属性
- type
- 设备类型,详见 AgoraMediaDeviceType。
- deviceId
- 设备 ID。
- deviceName
- 设备名称。
AgoraAudioEncodedFrameDelegateConfig
编码后音频的观测器设置。
__attribute__((visibility("default"))) @interface AgoraAudioEncodedFrameDelegateConfig: NSObject @property (assign, nonatomic) AgoraAudioEncodedFrameDelegatePosition postionType; @property (assign, nonatomic) AgoraAudioEncodingType encodingType; @end
属性
- postionType
-
音频编码内容。详见 AgoraAudioEncodedFrameDelegatePosition。
- encodingType
-
音频编码类型。详见 AgoraAudioEncodingType。
AgoraAudioFrame
原始音频数据。
__attribute__((visibility("default"))) @interface AgoraAudioFrame: NSObject @property (assign, nonatomic) NSInteger samplesPerChannel; @property (assign, nonatomic) NSInteger bytesPerSample; @property (assign, nonatomic) NSInteger channels; @property (assign, nonatomic) NSInteger samplesPerSec; @property (strong, nonatomic) NSData* _Nullable buffer; @property (assign, nonatomic) int64_t renderTimeMs; @property (assign, nonatomic) NSInteger avSyncType; @end
属性
- samplesPerChannel
- 每个声道的采样点数。
- bytesPerSample
- 每个采样点的字节数: 对于 PCM 来说,一般使用 16 bit,即两个字节。
- channels
-
声道数量(如果是立体声,数据是交叉的)。
- 1: 单声道
- 2: 双声道
- samplesPerSec
- 每声道每秒的采样点数。
- buffer
-
声音数据缓存区(如果是立体声,数据是交叉存储的)。
缓存区数据大小
buffer
=samples
×channels
×bytesPerSample
。 - renderTimeMs
-
外部音频帧的渲染时间戳。
你可以使用该时间戳还原音频帧顺序;在有视频的场景中(包含使用外部视频源的场景),该参数可以用于实现音视频同步。
- avsyncType
- 保留参数。
AgoraAudioParams
音频数据格式。
__attribute__((visibility("default"))) @interface AgoraAudioParams : NSObject @property (assign, nonatomic) NSInteger sampleRate; @property (assign, nonatomic) NSInteger channel; @property (assign, nonatomic) AgoraAudioRawFrameOperationMode mode; @property (assign, nonatomic) NSInteger samplesPerCall; @end
- getRecordAudioParams:设置 onRecordAudioFrame 回调的数据格式。
- getPlaybackAudioParams:设置 onPlaybackAudioFrame 回调的数据格式。
- getMixedAudioParams:设置 onMixedAudioFrame 回调的数据格式。
- SDK 会通过 AgoraAudioParams 中的 samplesPerCall、sampleRate 和 channel 参数计算采样间隔,并根据该采样间隔触发 onRecordAudioFrame、onPlaybackAudioFrame 和 onMixedAudioFrame 回调。
- 采样间隔 = samplesPerCall/(sampleRate × channel)。
- 请确保采样间隔不得小于 0.01 (s)。
属性
- sampleRate
- 数据的采样率,单位为 Hz,取值如下:
- 8000
- 16000(默认值)
- 32000
- 44100
- 48000
- channel
- 数据的声道数,取值如下:
- 1:单声道(默认值)
- 2:双声道
- mode
- 数据的使用模式。详见 AgoraAudioRawFrameOperationMode。
- samplesPerCall
- 数据的采样点数,如旁路推流应用中通常为 1024。
AgoraAudioRecordingConfiguration
录音配置。
__attribute__((visibility("default"))) @interface AgoraAudioRecordingConfiguration: NSObject @property (copy, nonatomic) NSString * _Nullable filePath; @property (assign, nonatomic) BOOL codec; @property (assign, nonatomic) NSUInteger sampleRate; @property (assign, nonatomic) AgoraAudioFileRecordingType fileRecordOption; @property (assign, nonatomic) AgoraAudioRecordingQuality quality; @property (assign, nonatomic) NSInteger recordingChannel; @end
属性
- filePath
- 录音文件在本地保存的绝对路径,需精确到文件名及格式。例如:
/var/mobile/Containers/Data/audio.mp4
。注意:请确保你指定的路径存在并且可写。
- codec
- 设置是否编码音频数据:
YES
: 将音频数据用 AAC 编码。NO
:(默认)不编码音频数据,直接保存录制的音频数据。
- sampleRate
- 录音采样率(Hz)。
- 16000
- 32000 (默认)
- 44100
- 48000
注意:如果把该参数设为 44100 或 48000,为保证录音效果,Agora 推荐录制 WAV 文件或 quality 为 AgoraAudioRecordingQualityMedium 或 AgoraAudioRecordingQualityHigh 的 AAC 文件。
- fileRecordOption
-
录音内容。详见 AgoraAudioFileRecordingType。
- quality
-
录音音质。详见 AgoraAudioRecordingQuality。
注意:该参数仅适用于 AAC 文件。
- recordingChannel
- 录制的音频声道。目前支持如下取值:
- 1:(默认)单声道。
- 2: 双声道。
注:实际录制的音频声道与你采集的音频声道有关:- 如果采集的音频为单声道,recordingChannel 设为
2
, 则录制的音频为经过单声道数据拷贝后的双声道数据,而不是立体声。 - 如果采集的音频为双声道,recordingChannel 设为
1
,则录制的音频为经过双声道数据混合后的单声道数据。
AgoraRtcAudioVolumeInfo
用户音量信息。
__attribute__((visibility("default"))) @interface AgoraRtcAudioVolumeInfo : NSObject @property(assign, nonatomic) NSUInteger uid; @property(assign, nonatomic) NSUInteger volume; @property(assign, nonatomic) NSUInteger vad; @property (assign, nonatomic) double voicePitch; @end
属性
- uid
-
用户 ID。
- 在本地用户的回调中,uid 为 0。
- 在远端用户的回调中,uid 为瞬时音量最高的远端用户(最多 3 位)的 ID。
- volume
- 用户的音量,取值范围为 [0,255]。如果用户调用了 startAudioMixing [2/2],则 volume 为用户混音后的音量。
- vad
-
本地用户的人声状态。
- 0:本地无人声。
- 1:本地有人声。
注意:- vad 无法报告远端用户的人声状态。对于远端用户,vad 的值始终为 1。
- 如需使用此参数,请在调用 enableAudioVolumeIndication 时设置 reportVad 为
YES
。
- voicePitch
-
本地用户的人声音调(Hz)。取值范围为 [0.0,4000.0]。
注意: voicePitch 无法报告远端用户的人声音调。对于远端用户,voicePitch 的值始终为 0.0。
AgoraBeautyOptions
美颜选项。
__attribute__((visibility("default"))) @interface AgoraBeautyOptions : NSObject @property(nonatomic, assign) AgoraLighteningContrastLevel lighteningContrastLevel; @property(nonatomic, assign) float lighteningLevel; @property(nonatomic, assign) float smoothnessLevel; @property(nonatomic, assign) float rednessLevel; @property(nonatomic, assign) float sharpnessLevel; @end
属性
- lighteningContrastLevel
-
对比度,常与 lighteningLevel 搭配使用。取值越大,明暗对比程度越大。详见 AgoraLighteningContrastLevel。
- lighteningLevel
-
美白程度,取值范围为 [0.0,1.0],其中 0.0 表示原始亮度,默认值为 。取值越大,美白程度越大。
- smoothnessLevel
-
磨皮程度,取值范围为 [0.0,1.0],其中 0.0 表示原始磨皮程度,默认值为 。取值越大,磨皮程度越大。
- rednessLevel
-
红润度,取值范围为 [0.0,1.0],其中 0.0 表示原始红润度,默认值为 。取值越大,红润程度越大。
- sharpnessLevel
-
锐化程度,取值范围为 [0.0,1.0],其中 0.0 表示原始锐度,默认值为 。取值越大,锐化程度越大。
AgoraMediaPlayerCacheStatistics
缓存文件的统计数据。
__attribute__((visibility("default"))) @interface AgoraMediaPlayerCacheStatistics : NSObject @property(assign, nonatomic) NSInteger fileSize; @property(assign, nonatomic) NSInteger cacheSize; @property(assign, nonatomic) NSInteger downloadSize; @end
属性
- fileSize
- 本次播放的媒体文件的大小,单位为字节。
- cacheSize
- 本次播放的媒体文件需缓存的数据大小,单位为字节。
- downloadSize
- 本次播放已下载的媒体文件大小,单位为字节。
AgoraCameraCapturerConfiguration
摄像头采集配置。
__attribute__((visibility("default"))) @interface AgoraCameraCapturerConfiguration: NSObject @property (assign, nonatomic) AgoraCameraDirection cameraDirection; @end
属性
- cameraDirection
- 摄像头方向设置。
AgoraChannelMediaRelayInfo
AgoraChannelMediaRelayInfo 类定义。
__attribute__((visibility("default"))) @interface AgoraChannelMediaRelayInfo: NSObject @property (copy, nonatomic) NSString * _Nullable token; @property (copy, nonatomic) NSString * _Nullable channelName; @property (assign, nonatomic) NSUInteger uid; - (instancetype _Nonnull)initWithToken:(NSString *_Nullable)token; @end
属性
- channelName
- 频道名。
- token
- 能加入频道的 Token。
- uid
- 用户 ID。
AgoraRtcChannelMediaOptions
频道媒体设置选项。
__attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCameraTrack; #if TARGET_OS_IPHONE @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishScreenCaptureVideo; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishScreenCaptureAudio; #elif TARGET_OS_MAC @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishScreenTrack; #endif @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCustomAudioTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishDirectCustomAudioTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCustomVideoTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishEncodedVideoTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishMediaPlayerAudioTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishMediaPlayerVideoTrack; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable publishMediaPlayerId; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable publishCustomAudioSourceId; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishMicrophoneTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable autoSubscribeAudio; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable autoSubscribeVideo; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable enableAudioRecordingOrPlayout; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable clientRoleType; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable audienceLatencyLevel; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable defaultVideoStreamType; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable channelProfile; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable audioDelayMs; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable mediaPlayerAudioDelayMs; @property(copy, nonatomic) NSString * _Nullable token; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable enableBuiltInMediaEncryption; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishRhythmPlayerTrack; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable customVideoTrackId; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable isAudioFilterable; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable isInteractiveAudience; @end
YES
;
publishCameraTrack、publishScreenTrack、publishCustomVideoTrack 或 publishEncodedVideoTrack 之中同一时间只能有一个为 YES
。属性
- publishCameraTrack
- 设置是否发布摄像头采集的视频:
YES
:(默认)发布摄像头采集的视频。NO
:不发布摄像头采集的视频。
- publishMicrophoneTrack
- 设置是否发布采集到的音频:
YES
:(默认)发布采集到的音频。NO
:不发布采集到的音频。
注: 自 v4.0.0 起,该参数名称由 publishAudioTrack 改为 publishMicrophoneTrack。 - publishScreenTrack
-
设置是否发布屏幕采集的视频:
-
YES
:发布屏幕采集到的视频。 -
NO
:(默认)不发布屏幕采集到的视频。
-
- publishScreenCaptureVideo
-
设置是否发布屏幕采集的视频:
-
YES
:发布屏幕采集到的视频。 -
NO
:(默认)不发布屏幕采集到的视频。
-
- publishScreenCaptureAudio
-
设置是否发布屏幕采集的音频:
YES
:发布屏幕采集到的音频。NO
:(默认)不发布屏幕采集到的音频。
- publishCustomAudioTrack
- 设置是否发布自定义采集的音频:
YES
:发布自定义采集到的音频。NO
:(默认)不发布自定义采集到的音频。
- publishCustomAudioSourceId
- 待发布的自定义音频源的 ID。默认值为 0。
如果你已在 setExternalAudioSource [2/2] 中设置了 sourceNumber 大于 1,SDK 会创建对应数量的自采集音频轨道,并从 0 开始为每一个音频轨道分配一个 ID。
- publishCustomVideoTrack
- 设置是否发布自定义采集的视频:
YES
:发布自定义采集的视频。NO
:(默认)不发布自定义采集到的视频。
- publishEncodedVideoTrack
- 设置是否发布编码后的视频:
YES
:发布编码后的视频 。NO
:(默认)不发布编码后的视频。
- publishMediaPlayerAudioTrack
- 设置是否发布媒体播放器的音频:
YES
:发布媒体播放器的音频。NO
:(默认)不发布媒体播放器的音频。
- publishMediaPlayerVideoTrack
- 设置是否发布媒体播放器的视频:
YES
:发布媒体播放器的视频。NO
:(默认)不发布媒体播放器的视频。
- autoSubscribeAudio
- 设置是否自动订阅所有音频流:
-
YES
:(默认)自动订阅所有音频流。 -
NO
:不自动订阅任何音频流。
-
- autoSubscribeVideo
- 设置是否自动订阅所有视频流:
-
YES
:(默认)自动订阅所有视频流。 -
NO
:不自动订阅任何视频流。
-
- enableAudioRecordingOrPlayout
- 设置是否开启音频录制或播放:
-
YES
:(默认)开启音频录制和播放。 -
NO
:不开启音频录制或播放。
-
- publishMediaPlayerId
- 待发布的媒体播放器的 ID。默认值为 0。
- clientRoleType
-
用户角色。详见 AgoraClientRole。
- audienceLatencyLevel
- 观众端延时级别。详见 AgoraAudienceLatencyLevelType。
- defaultVideoStreamType
-
默认订阅的视频流类型: AgoraVideoStreamType。
- channelProfile
-
频道使用场景。详见 AgoraChannelProfile。
- token
-
(可选)在服务端生成的用于鉴权的动态密钥。详见使用 Token 鉴权。
警告:- 该参数仅在调用 updateChannelWithMediaOptions 或 updateChannelExWithMediaOptions 时生效。
- 请确保用于生成 token 的 App ID、频道名和用户名和 sharedEngineWithConfig 方法初始化引擎时用的 App ID,以及 joinChannelByToken [2/4] 或 joinChannelExByToken 方法加入频道时设置的频道名和用户名是一致的。
- publishRhythmPlayerTrack
- 设置是否发布虚拟节拍器声音至远端:
YES
:(默认)发布。本地用户和远端用户都能听到节拍器。NO
:不发布。只有本地用户能听到节拍器。
- isInteractiveAudience
- 是否开启互动模式:
YES
:开启互动模式。成功开启后,本地用户收到低延时和流畅的远端用户视频。NO
:(默认)不开启互动模式。本地用户收到默认设置的远端用户视频。
注意:- 该参数用于实现跨直播间连麦场景。连麦主播需要调用 joinChannelExByToken 方法,以观众身份加入对方的直播间,并将 isInteractiveAudience 设置为
YES
。 - 仅当用户角色为 AgoraClientRoleAudience 时,该参数生效。
- customVideoTrackId
- 调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。
AgoraChannelMediaRelayConfiguration
AgoraChannelMediaRelayConfiguration 类定义。
__attribute__((visibility("default"))) @interface AgoraChannelMediaRelayConfiguration: NSObject @property (strong, nonatomic, readonly) NSDictionary<NSString *, AgoraChannelMediaRelayInfo *> *_Nullable destinationInfos; @property (strong, nonatomic) AgoraChannelMediaRelayInfo *_Nonnull sourceInfo; - (BOOL)setDestinationInfo:(AgoraChannelMediaRelayInfo *_Nonnull)destinationInfo forChannelName:(NSString *_Nonnull)channelName; - (BOOL)removeDestinationInfoForChannelName:(NSString *_Nonnull)channelName; @end
属性
- sourceInfo
-
源频道信息 AgoraChannelMediaRelayInfo,包含如下成员:
-
channelName
:源频道名。默认值为nil
,表示 SDK 填充当前的频道名。 -
uid
:标识源频道中的转发媒体流的 UID。默认值为 0,表示 SDK 随机分配一个uid
。请确保设为 0。 -
token
:能加入源频道的token
。由你在srcInfo
中设置的channelName
和uid
生成。- 如未启用 App Certificate,可直接将该参数设为默认值
nil
,表示 SDK 填充 App ID。 - 如已启用 App Certificate,则务必填入使用
channelName
和uid
生成的token
,且其中的uid
必须为 0。
- 如未启用 App Certificate,可直接将该参数设为默认值
-
- destinationInfos
-
目标频道信息 AgoraChannelMediaRelayInfo,包含如下成员:
-
channelName
:目标频道的频道名。 -
uid
:标识目标频道中的转发媒体流的 UID。取值范围为 0 到(2 32-1),请确保与目标频道中的所有 UID 不同。默认值为 0,表示 SDK 随机分配一个 UID。请确保不要将该参数设为目标频道的主播的 UID,并与目标频道中的所有 UID 都不同。 -
token
:能加入目标频道的token
。由你在destInfos
中设置的channelName
和uid
生成。- 如未启用 App Certificate,可直接将该参数设为默认值
nil
,表示 SDK 填充 App ID。 - 如已启用 App Certificate,则务必填入使用
channelName
和uid
生成的token
。
- 如未启用 App Certificate,可直接将该参数设为默认值
-
AgoraContentInspectConfig
视频内容审核配置。
__attribute__((visibility("default"))) @interface AgoraContentInspectConfig: NSObject
@property (nonatomic, copy) NSString* _Nullable extraInfo;
@property(copy, nonatomic) NSArray<AgoraContentInspectModule*>* _Nullable modules;
@end
参数
- extraInfo
-
视频内容审核的附加信息,最大长度为 1024 字节。
SDK 会将附加信息和截图一起上传至 Agora 内容审核服务器;审核完成后,Agora 内容审核服务器会将附加信息随审核结果一起发送给你的服务器。
- modules
-
视频内容审核模块。详见 AgoraContentInspectModule。
最多支持配置 32 个 AgoraContentInspectModule 实例,MAX_CONTENT_INSPECT_MODULE_COUNT 的取值范围为 [1,32] 中的整数。
注意: 一个视频内容审核模块最多只能配置一个实例。 - moduleCount
- 视频内容审核模块数,即配置的 AgoraContentInspectModule 实例的数量,必须与 modules 中配置的实例个数一致。最大值为 32。
AgoraContentInspectModule
AgoraContentInspectModule 结构体,用于配置视频内容审核模块的类型和频率。
__attribute__((visibility("default"))) @interface AgoraContentInspectModule: NSObject @property (assign, nonatomic) AgoraContentInspectType type; @property (assign, nonatomic) NSInteger interval; @end
属性
- type
- 视频内容审核模块的类型。详见 AgoraContentInspectType。
- interval
- 视频内容审核的间隔,单位为秒,取值必须大于 0。默认值为 0,表示不进行内容审核。推荐值为 10 秒,你也可以根据业务需求自行调整。
AgoraClientRoleOptions
用户角色具体设置。
__attribute__((visibility("default"))) @interface AgoraClientRoleOptions: NSObject @property (assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; @end
属性
- audienceLatencyLevel
- 观众端延时级别。详见 AgoraAudienceLatencyLevelType。
AgoraColorEnhanceOptions
色彩增强选项。
__attribute__((visibility("default"))) @interface AgoraColorEnhanceOptions : NSObject @property(nonatomic, assign) float strengthLevel; @property(nonatomic, assign) float skinProtectLevel; @end
属性
- strengthLevel
- 色彩增强程度。取值范围为 [0.0,1.0]。
0.0
表示不对视频进行色彩增强。取值越大,色彩增强的程度越大。默认值为0.5
。 - skinProtectLevel
肤色保护程度。取值范围为 [0.0,1.0]。
0.0
表示不对肤色进行保护。取值越大,肤色保护的程度越大。默认值为1.0
。- 当色彩增强程度较大时,人像肤色会明显失真,你需要设置肤色保护程度;
- 肤色保护程度较大时,色彩增强效果会略微降低。
AgoraDataStreamConfig
数据流设置。
__attribute__((visibility("default"))) @interface AgoraDataStreamConfig: NSObject @property (assign, nonatomic) BOOL ordered; @property (assign, nonatomic) BOOL syncWithAudio; @end
下表展示不同的参数设置下,SDK 的行为:
syncWithAudio |
ordered |
SDK 行为 |
---|---|---|
NO |
NO |
接收端接收到数据包后,SDK 立刻触发 receiveStreamMessageFromUid 回调。 |
YES |
NO |
如果数据包的延迟在音频延迟的范围内,SDK 会在播放音频的同时触发与该音频包同步的 receiveStreamMessageFromUid 回调。如果数据包的延迟超出了音频延迟,SDK 会在接收到该数据包时立刻触发 receiveStreamMessageFromUid 回调;此情况会造成音频包和数据包的不同步。 |
NO |
YES |
如果数据包的延迟在 5 秒以内,SDK 会修正数据包的乱序问题。如果数据包的延迟超出 5 秒,SDK 会丢弃该数据包。 |
YES |
YES |
如果数据包的延迟在音频延迟的范围内,SDK 会修正数据包的乱序问题。如果数据包的延迟超出音频延迟,SDK 会丢弃该数据包。 |
属性
- syncWithAudio
-
是否与本地发送的音频流同步。
YES
: 数据流与音频流同步。NO
: 数据流与音频流不同步。
- ordered
-
是否保证接收到的数据按发送的顺序排列。
YES
: 保证 SDK 按照发送方发送的顺序输出数据包。NO
: 不保证 SDK 按照发送方发送的顺序输出数据包。
YES
。
AgoraDirectCdnStreamingMediaOptions
主播端的媒体选项。
__attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingMediaOptions : NSObject @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCameraTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCustomAudioTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishCustomVideoTrack; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable publishMicrophoneTrack; @property(strong, nonatomic) AgoraRtcIntOptional* _Nullable customVideoTrackId; @end
属性
- publishCameraTrack
- 设置是否发布摄像头采集的视频。
YES
: 发布摄像头采集的视频。NO
:(默认)不发布摄像头采集的视频。
- publishMicrophoneTrack
- 设置是否发布麦克风采集的音频。
YES
: 发布麦克风采集的音频。NO
:(默认)不发布麦克风采集的音频。
- publishCustomAudioTrack
- 设置是否发布自定义采集的音频。
YES
: 发布自定义采集的音频。NO
:(默认)不发布自定义采集的音频。
- publishCustomVideoTrack
- 设置是否发布自定义采集的视频。
YES
: 发布自定义采集的视频。NO
:(默认)不发布自定义采集的视频。
- customVideoTrackId
- 调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。
AgoraDirectCdnStreamingStats
当前 CDN 推流的统计数据。
__attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingStats : NSObject @property(assign, nonatomic) NSUInteger videoWidth; @property(assign, nonatomic) NSUInteger videoHeight; @property(assign, nonatomic) NSUInteger fps; @property(assign, nonatomic) NSUInteger videoBitrate; @property(assign, nonatomic) NSUInteger audioBitrate; @end
属性
- videoWidth
- 视频的宽度(px)。
- videoHeight
- 视频的高度(px)。
- fps
- 当前视频帧率(fps)。
- videoBitrate
- 当前视频码率(bps)。
- audioBitrate
- 当前音频码率(bps)。
AgoraEchoTestConfiguration
音视频通话回路测试的配置。
NS_SWIFT_NAME(AgoraEchoTestConfiguration) __attribute__((visibility("default"))) @interface AgoraEchoTestConfiguration : NSObject @property(strong, nonatomic) VIEW_CLASS* _Nullable view NS_SWIFT_NAME(view); @property(assign, nonatomic) BOOL enableAudio NS_SWIFT_NAME(enableAudio); @property(assign, nonatomic) BOOL enableVideo NS_SWIFT_NAME(enableVideo); @property(copy, nonatomic) NSString* _Nullable token NS_SWIFT_NAME(token); @property(copy, nonatomic) NSString* _Nonnull channelId NS_SWIFT_NAME(channelId); @end
属性
- view
- 用于渲染本地用户视频的视图。该参数仅适用于测试视频设备的场景,即该结构体中 enableVideo 为 YES。
- enableAudio
- 是否开启音频设备:
- YES: (默认) 开启音频设备。如需测试音频设备,请设为 YES。
- NO: 关闭音频设备。
- enableVideo
- 是否开启视频设备:
- YES: (默认) 开启视频设备。如需测试视频设备,请设为 YES。
- NO: 关闭视频设备。
- token
- 用于保证音视频通话回路测试安全性的 Token。如果你在 Agora 控制台未启用 App 证书,则不需要向该参数传值;如果你在 Agora 控制台已启用 App 证书,则必须向该参数传入 Token,且在你生成 Token 时使用的
uid
必须为 0xFFFFFFFF,使用的频道名必须为标识每个音视频通话回路测试的频道名。服务端生成 Token 的方式请参考使用 Token 鉴权。 - channelId
- 标识每个音视频通话回路测试的频道名。为保证回路测试功能正常,同一个项目(App ID) 的各终端用户在不同设备上做音视频通话回路测试时,传入的标识每个回路测试的频道名不能相同。
AgoraEncodedAudioFrameInfo
编码后音频的信息。
__attribute__((visibility("default"))) @interface AgoraEncodedAudioFrameInfo: NSObject @property (assign, nonatomic) NSInteger samplesPerChannel; @property (assign, nonatomic) NSInteger channels; @property (assign, nonatomic) NSInteger samplesPerSec; @property (assign, nonatomic) AgoraAudioCodecType codecType; @end
属性
- codecType
- 音频编码规格: AgoraAudioCodecType。
- samplesPerSec
- 音频采样率 (Hz)。
- samplesPerChannel
- 每个声道的音频采样数。
- channels
- 声道数。
AgoraEncodedVideoFrameInfo
外部编码视频帧的信息。
__attribute__((visibility("default"))) @interface AgoraEncodedVideoFrameInfo: NSObject @property (assign, nonatomic) AgoraVideoCodecType codecType; @property (assign, nonatomic) NSInteger width; @property (assign, nonatomic) NSInteger height; @property (assign, nonatomic) NSInteger framesPerSecond; @property (assign, nonatomic) AgoraVideoFrameType frameType; @property (assign, nonatomic) NSInteger rotation; @property (assign, nonatomic) NSInteger trackId; @property (assign, nonatomic) NSInteger captureTimeMs; @property (assign, nonatomic) NSInteger uid; @property (assign, nonatomic) AgoraVideoStreamType streamType; @end
属性
- codecType
- 视频编码类型,详见 AgoraVideoCodecType。默认值为
AgoraVideoCodecTypeH264 (2)
。 - width
- 视频帧的宽度 (px)。
- height
- 视频帧的高度 (px)。
- framesPerSecond
-
每秒的视频帧数。
当该参数不为
0
时,你可以用它计算外部编码视频帧的 Unix 时间戳。 - frameType
- 视频帧的类型,详见 AgoraVideoFrameType。
- rotation
- 视频帧的旋转信息,详见 AgoraVideoRotation。
- trackId
- 预留参数。
- captureTimeMs
- 采集外部编码视频帧的 Unix 时间戳 (ms)。
- uid
- 推送外部编码视频帧的用户 ID。
- streamType
- 视频流类型。详见 AgoraVideoStreamType。
AgoraEncryptionConfig
配置内置加密模式和密钥。
__attribute__((visibility("default"))) @interface AgoraEncryptionConfig: NSObject @property (assign, nonatomic) AgoraEncryptionMode encryptionMode; @property (copy, nonatomic) NSString * _Nullable encryptionKey; @property (strong, nonatomic) NSData * _Nullable encryptionKdfSalt; @end
属性
- encryptionMode
-
内置加密模式。详见 AgoraEncryptionMode。Agora 推荐使用
AgoraEncryptionModeAES128GCM2
或AgoraEncryptionModeAES256GCM2
加密模式。这两种模式支持使用盐,安全性更高。 - encryptionKey
-
内置加密密钥,字符串类型,长度无限制。Agora 推荐使用 32 字节的密钥。
注意: 如果未指定该参数或将该参数设置为nil
,则无法启用内置加密,且 SDK 会返回错误码-2
。 - encryptionKdfSalt
-
盐,长度为 32 字节。Agora 推荐你在服务端使用 OpenSSL 生成盐。详见《媒体流加密》。
注意: 只有在AgoraEncryptionModeAES128GCM2
或AgoraEncryptionModeAES256GCM2
加密模式下,该参数才生效。此时,需确保填入该参数的值不全为0
。
AgoraVideoFrame
外部视频帧。
__attribute__((visibility("default"))) @interface AgoraVideoFrame : NSObject @property(assign, nonatomic) NSInteger format; @property(assign, nonatomic) CMTime time; @property(assign, nonatomic) int stride DEPRECATED_MSG_ATTRIBUTE("use strideInPixels instead"); @property(assign, nonatomic) int strideInPixels; @property(assign, nonatomic) int height; @property(assign, nonatomic) CVPixelBufferRef _Nullable textureBuf; @property(strong, nonatomic) NSData *_Nullable dataBuf; @property(assign, nonatomic) int cropLeft; @property(assign, nonatomic) int cropTop; @property(assign, nonatomic) int cropRight; @property(assign, nonatomic) int cropBottom; @property(assign, nonatomic) int rotation; @end
属性
- format
- 传入的视频帧的格式,必须指定为下面的某一个值:
- 1: I420。
- 2: BGRA。
- 3: NV21。
- 4: RGBA。
- 5: IMC2。
- 7: ARGB。
- 8: NV12。
- 12: iOS 纹理 (CVPixelBufferRef)。
- 16: I422。
- textureBuf
- iOS 纹理的 Buffer。
- stride
- 传入视频帧的行间距,单位为像素而不是字节。对于 Texture,该值指的是 Texture 的宽度。
- 弃用:
- 用 strideInPixels 代替。
- strideInPixels
- 该帧的行跨度,即相邻两行视频帧之间的像素点数。
注意:
- 该参数单位为像素,不是字节数。
- 如果视频为 Texture 格式,则将该参数设为 Texture 的宽度。
- 如果视频帧格式设为 12,则不使用该字段。
- height
- 传入视频帧的高度。
- 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的数据缓冲区,默认值为
NULL
。 - 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的大小,默认值为
0
。 - cropLeft
- 原始数据相关字段。指定左边裁剪掉的像素数量。默认为 0。
- cropTop
- 原始数据相关字段。指定顶边裁剪掉的像素数量。默认为 0。
- cropRight
- 原始数据相关字段。指定右边裁剪掉的像素数量。默认为 0。
- cropBottom
- 原始数据相关字段。指定底边裁剪掉的像素数量。默认为 0。
- rotation
- 原始数据相关字段。指定是否对传入的视频组做顺时针旋转操作,可选值为 0, 90, 180, 270。默认为 0。
- time
- 传入的视频帧的时间戳,以毫秒为单位。不正确的时间戳会导致丢帧或者音视频不同步。
AgoraImageTrackOptions
垫片图片的设置选项。
__attribute__((visibility("default"))) @interface AgoraImageTrackOptions : NSObject @property(copy, nonatomic) NSString *_Nullable imageUrl; @property(assign, nonatomic) int fps;
属性
- imageUrl
- 垫片图片的 URL,目前仅支持本地 PNG 格式的图片。支持从本地绝对路径或相对路径添加垫片图片。
- fps
- 视频帧率,取值范围为 [1,30]。默认值为 1。
AgoraLastmileProbeConfig
Last mile 网络探测配置。
__attribute__((visibility("default"))) @interface AgoraLastmileProbeConfig : NSObject @property (assign, nonatomic) BOOL probeUplink; @property (assign, nonatomic) BOOL probeDownlink; @property (assign, nonatomic) NSUInteger expectedUplinkBitrate; @property (assign, nonatomic) NSUInteger expectedDownlinkBitrate; @end
属性
- probeUplink
-
是否探测上行网络。有些用户,如直播频道中的普通观众,不需要进行网络探测:
YES
: 探测。NO
: 不探测。
- probeDownlink
-
是否探测下行网络。
YES
: 探测。NO
: 不探测。
- expectedUplinkBitrate
- 用户期望的最高发送码率,单位为 bps,范围为 [100000,5000000]。Agora 推荐参考 setVideoEncoderConfiguration 中的码率值设置该参数的值。
- expectedDownlinkBitrate
- 用户期望的最高接收码率,单位为 bps,范围为 [100000,5000000]。
AgoraLastmileProbeOneWayResult
上行或下行 Last mile 网络质量探测结果。
__attribute__((visibility("default"))) @interface AgoraLastmileProbeOneWayResult : NSObject @property (assign, nonatomic) NSUInteger packetLossRate; @property (assign, nonatomic) NSUInteger jitter; @property (assign, nonatomic) NSUInteger availableBandwidth; @end
属性
- packetLossRate
- 丢包率。
- jitter
- 网络抖动 (ms)。
- availableBandwidth
- 可用网络带宽预估 (bps)。
AgoraLastmileProbeResult
上下行 Last mile 网络质量探测结果。
__attribute__((visibility("default"))) @interface AgoraLastmileProbeResult : NSObject @property (assign, nonatomic) AgoraLastmileProbeResultState state; @property (assign, nonatomic) NSUInteger rtt; @property (strong, nonatomic) AgoraLastmileProbeOneWayResult *_Nonnull uplinkReport; @property (strong, nonatomic) AgoraLastmileProbeOneWayResult *_Nonnull downlinkReport; @end
属性
- state
-
Last mile 质量探测结果的状态。详见: AgoraLastmileProbeResultState 。
- uplinkReport
- 上行网络质量报告。详见 AgoraLastmileProbeOneWayResult。
- downlinkReport
- 下行网络质量报告。详见 AgoraLastmileProbeOneWayResult。
- rtt
- 往返时延 (ms)。
AgoraLeaveChannelOptions
离开频道的选项。
__attribute__((visibility("default"))) @interface AgoraLeaveChannelOptions : NSObject @property(nonatomic, assign) BOOL stopAudioMixing; @property(nonatomic, assign) BOOL stopAllEffect; @property(nonatomic, assign) BOOL stopMicrophoneRecording; @end
属性
- stopAudioMixing
- 离开频道时,是否停止播放音乐文件及混音:
YES
:(默认)停止播放音乐文件及混音。NO
: 不停止播放音乐文件及混音。
- stopAllEffect
- 离开频道时,是否停止播放音效:
YES
:(默认)停止播放音效。NO
: 不停止播放音效。
- stopMicrophoneRecording
- 离开频道时,是否停止麦克风采集:
YES
:(默认)停止麦克风采集。NO
: 不停止麦克风采集。
AgoraLiveTranscoding
旁路推流的转码属性。
__attribute__((visibility("default"))) @interface AgoraLiveTranscoding : NSObject @property(assign, nonatomic) CGSize size; @property(assign, nonatomic) NSInteger videoBitrate; @property(assign, nonatomic) NSInteger videoFramerate; @property(assign, nonatomic) BOOL lowLatency; @property(assign, nonatomic) NSInteger videoGop; @property(assign, nonatomic) AgoraVideoCodecProfileType videoCodecProfile; @property(assign, nonatomic) AgoraVideoCodecTypeForStream videoCodecType; @property(copy, nonatomic) NSArray<AgoraLiveTranscodingUser *> *_Nullable transcodingUsers; @property(copy, nonatomic) NSString *_Nullable transcodingExtraInfo; @property(strong, nonatomic) AgoraImage *_Nullable watermark; @property (copy, nonatomic) NSArray<AgoraImage *> *_Nullable watermarkArray; @property(strong, nonatomic) AgoraImage *_Nullable backgroundImage; @property (copy, nonatomic) NSArray<AgoraImage *> *_Nullable backgroundImageArray; @property(strong, nonatomic) COLOR_CLASS *_Nullable backgroundColor; @property(assign, nonatomic) AgoraAudioSampleRateType audioSampleRate; @property(assign, nonatomic) NSInteger audioBitrate; @property(assign, nonatomic) NSInteger audioChannels; @property(assign, nonatomic) AgoraAudioCodecProfileType audioCodecProfile; + (AgoraLiveTranscoding *_Nonnull)defaultTranscoding; - (int)addUser:(AgoraLiveTranscodingUser *_Nonnull)user; - (int)removeUser:(NSUInteger)uid; - (void)setAdvancedFeatures:(NSString* _Nonnull)featureName opened:(BOOL)opened; - (NSArray<AgoraLiveStreamAdvancedFeature*>* _Nullable)getAdvancedFeatures; @end
属性
- size
-
推流视频的总尺寸(宽和高),单位为像素。
- 如果推视频流,请注意:
- 宽的取值范围为 [64,1920]。如果取值低于 64,Agora 服务器会自动调整为 64;如果取值高于 1920,Agora 服务器会自动调整为 1920。
- 高的取值范围为 [64,1080]。如果取值低于 64,Agora 服务器会自动调整为 64;如果取值高于 1080,Agora 服务器会自动调整为 1080。
- 如果推音频流,请将宽和高都设为 0。
- 如果推视频流,请注意:
- videoBitrate
-
用于旁路直播的输出视频的码率。单位为 Kbps。400 Kbps 为默认值。
你可以根据视频属性参考表中的码率值进行设置;如果设置的码率超出合理范围,Agora 服务器会在合理区间内自动调整码率值。
- videoFrameRate
-
用于旁路直播的输出视频的帧率。取值范围是 (0,30],单位为 fps。15 fps 为默认值。
注意: Agora 服务器会将高于 30 fps 的帧率统一调整为 30 fps。 - lowLatency
-
- 弃用
- Agora 不推荐使用。
低延时模式
YES
: 低延时,不保证画质。NO
:(默认值)高延时,保证画质。
- videoGop
- 用于旁路直播的输出视频的 GOP(Group of Pictures)。单位为帧。默认值为 30。
- videoCodecProfile
-
用于旁路直播的输出视频的编码规格。可以设置为 66、77 或 100,详见 AgoraVideoCodecProfileType。
注意: 如果你把这个参数设为其他值,Agora 服务器会将其调整为默认值。 - videoCodecType
- 用于旁路直播的输出视频的编解码类型。详见 AgoraVideoCodecTypeForStream。
- transcodingUsers
-
用于管理参与旁路直播的视频转码合图的用户。最多支持 17 人同时参与转码合图。详见 AgoraLiveTranscodingUser。
- transcodingExtraInfo
-
预留参数:用户自定义的发送到旁路推流客户端的信息,用于填充 H264/H265 视频中 SEI 帧内容。长度限制:4096 字节。关于 SEI 的详细信息,详见 SEI 帧相关问题。
- backgroundColor
-
用于旁路直播的输出视频的背景色。
格式为 RGB 定义下的十六进制整数,不要带 # 号,如 0xFFB6C1 表示浅粉色。默认 0x000000,黑色。
COLOR_CLASS 为类型统称,具体为:- iOS: UIColor
- macOS: NSColor
- watermark
-
- 弃用
- 请改用 watermarkArray。
直播视频上的水印。图片格式需为 PNG。详见 AgoraImage。
- backgroundImage
-
- 弃用
- 请改用 backgroundImageArray。
直播视频上的背景图。图片格式需为 PNG。详见 AgoraImage。
- backgroundImageArray
- 直播视频上的背景图数组。详见 AgoraImage。你可以使用 backgroundImageArray 添加一张或多张背景图。图片格式需为 PNG。直播视频上的水印和背景图的总数量需大于等于 0 且小于等于 10。
- audioSampleRate
-
用于旁路推流的输出媒体流的音频采样率 (Hz),详见 AgoraAudioSampleRateType。
- audioBitrate
-
用于旁路直播的输出音频的码率。单位为 Kbps,默认值为 48,最大值为 128。
- audioChannels
-
用于旁路直播的输出音频的声道数,默认值为 1。取值范围为 [1,5] 中的整型,建议取 1 或 2。3、4、5 需要特殊播放器支持:
- 1: (默认)单声道
- 2: 双声道
- 3: 三声道
- 4: 四声道
- 5: 五声道
- audioCodecProfile
- 用于旁路直播输出音频的编码规格。详见 AgoraAudioCodecProfileType。
- watermarkArray
- 直播视频上的水印数组。详见 AgoraImage。你可以使用 watermarkArray 添加一张或多张水印。图片格式需为 PNG。直播视频上的水印和背景图的总数量需大于等于 0 且小于等于 10。
addUser
添加转码合图用户。
- (int)addUser:(AgoraLiveTranscodingUser* _Nonnull)user;
参数
- user
- 参与合图的用户,详见 AgoraLiveTranscodingUser。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
removeUser
删除转码合图用户。
- (int)removeUser:(NSUInteger)uid;
参数
- uid
- 待删除的用户 ID。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
defaultTranscoding
应用默认的转码设置。
+ (AgoraLiveTranscoding* _Nonnull)defaultTranscoding;
返回值
应用默认设置的 AgoraLiveTranscoding 对象。
getAdvancedFeatures
获取转码推流高级功能的开/关状态。
- (NSArray<AgoraLiveStreamAdvancedFeature*>* _Nullable)getAdvancedFeatures;
如需使用转码推流高级功能,请联系 sales@agora.io。
返回值
高级功能名称和该功能的开/关状态。详见 AgoraLiveStreamAdvancedFeature。
setAdvancedFeatures
设置是否启用转码推流的高级功能。
- (void)setAdvancedFeatures:(NSString* _Nonnull)featureName opened:(BOOL)opened;
如需使用转码推流高级功能,请联系 sales@agora.io。
参数
- featureName
- 转码推流高级功能的名称,包含 LBHQ(低码率的高清视频功能)和 VEO(优化的视频编码器功能)。
- opened
- 是否启用转码推流的高级功能:
YES
:开启转码推流的高级功能。NO
:(默认)关闭转码推流的高级功能。
AgoraLocalAccessPointConfiguration
Local Access Point 配置。
NS_SWIFT_NAME(AgoraLocalAccessPointConfiguration) __attribute__((visibility("default"))) @interface AgoraLocalAccessPointConfiguration : NSObject @property(copy, nonatomic) NSArray* _Nullable ipList NS_SWIFT_NAME(ipList); @property(copy, nonatomic) NSArray* _Nullable domainList NS_SWIFT_NAME(domainList); @property(copy, nonatomic) NSString* _Nullable verifyDomainName NS_SWIFT_NAME(verifyDomainName); @property(assign, nonatomic) AgoraLocalProxyMode mode NS_SWIFT_NAME(mode); @end
属性
- ipList
- Local Access Point 的对内 IP 地址列表。ipList 和 domainList 必须至少填一个。
- domainList
- Local Access Point 的域名列表。SDK 会根据你填入的域名解析出 Local Access Point 的 IP 地址。域名解析的超时时间为 10 秒。ipList 和 domainList 必须至少填一个。如果你同时指定 IP 地址和域名,SDK 会将根据域名解析出来的 IP 地址和你指定的 IP 地址合并、去重,然后随机连接一个 IP 来实现负载均衡。
- verifyDomainName
- 内网证书验证域名。如果传值为空,则用 SDK 默认的证书验证域名
secure-edge.local
。 - mode
-
连接模式。详见 AgoraLocalProxyMode。
AgoraLiveStreamAdvancedFeature
转码推流的高级功能配置。
__attribute__((visibility("default"))) @interface AgoraLiveStreamAdvancedFeature : NSObject @property(copy, nonatomic) NSString* _Nullable featureName; @property(assign, nonatomic) BOOL opened; @end
如需使用转码推流高级功能,请联系 sales@agora.io。
属性
- featureName
- 转码推流高级功能的名称,包含 LBHQ(低码率的高清视频功能) 和 VEO(优化的视频编码器功能)。
- opened
- 是否启用转码推流的高级功能:
YES
:开启转码推流的高级功能。NO
:(默认)关闭转码推流的高级功能。
AgoraRtcLocalAudioStats
本地音频统计数据。
__attribute__((visibility("default"))) @interface AgoraRtcLocalAudioStats : NSObject @property(assign, nonatomic) NSUInteger numChannels; @property(assign, nonatomic) NSUInteger sentSampleRate; @property(assign, nonatomic) NSUInteger sentBitrate; @property(assign, nonatomic) NSUInteger internalCodec; @property(assign, nonatomic) NSUInteger txPacketLossRate; @property(assign, nonatomic) NSUInteger audioDeviceDelay; @end
属性
- numChannels
- 声道数。
- sentSampleRate
- 发送本地音频的采样率,单位为 Hz。
- sentBitrate
- 发送本地音频的码率平均值,单位为 Kbps。
- txPacketLossRate
- 弱网对抗前本端到 Agora 边缘服务器的丢包率 (%)。
- internalCodec
- 内部的 payload 类型。
- audioDeviceDelay
- 播放或录制音频时,音频设备模块的延时。
AgoraRtcLocalVideoStats
本地视频流统计信息。
__attribute__((visibility("default"))) @interface AgoraRtcLocalVideoStats : NSObject @property(assign, nonatomic) NSUInteger sentBitrate; @property(assign, nonatomic) NSUInteger sentFrameRate; @property(assign, nonatomic) NSUInteger uid; @property(assign, nonatomic) NSInteger captureFrameRate; @property(assign, nonatomic) NSInteger captureFrameWidth; @property(assign, nonatomic) NSInteger captureFrameHeight; @property(assign, nonatomic) NSInteger regulatedCaptureFrameRate; @property(assign, nonatomic) NSInteger regulatedCaptureFrameWidth; @property(assign, nonatomic) NSInteger regulatedCaptureFrameHeight; @property(assign, nonatomic) NSInteger encoderOutputFrameRate; @property(assign, nonatomic) NSInteger rendererOutputFrameRate; @property(assign, nonatomic) NSInteger targetFrameRate; @property(assign, nonatomic) AgoraVideoQualityAdaptIndication qualityAdaptIndication; @property(assign, nonatomic) NSInteger targetBitrate; @property(assign, nonatomic) NSInteger encodedBitrate; @property(assign, nonatomic) NSInteger encodedFrameWidth; @property(assign, nonatomic) NSInteger encodedFrameHeight; @property(assign, nonatomic) NSInteger encodedFrameCount; @property(assign, nonatomic) AgoraVideoCodecType codecType; @property(assign, nonatomic) NSInteger txPacketLossRate; @property(assign, nonatomic) AgoraCaptureBrightnessLevelType captureBrightnessLevel NS_SWIFT_NAME(captureBrightnessLevel); @end
属性
- uid
- 本地用户的 ID。
- sentBitrate
-
实际发送码率 (Kbps)注意: 不包含丢包后重传视频等的发送码率。
- sentFrameRate
- 实际发送帧率 (fps)。
注意: 不包含丢包后重传视频等的发送帧率。
- captureFrameRate
- 本地视频采集帧率 (fps)。
- captureFrameWidth
- 本地视频采集宽度 (px)。
- captureFrameHeight
- 本地视频采集高度 (px)。
- regulatedCaptureFrameRate
- SDK 内置的视频采集适配器(regulator)调整后的摄像头采集视频帧率 (fps)。Regulator 根据视频编码配置对摄像头采集视频的帧率进行调整。
- regulatedCaptureFrameWidth
- SDK 内置的视频采集适配器(regulator)调整后的摄像头采集视频宽度 (px)。Regulator 根据视频编码配置对摄像头采集视频的宽高进行调整。
- regulatedCaptureFrameHeight
- SDK 内置的视频采集适配器(regulator)调整后的摄像头采集视频高度 (px)。Regulator 根据视频编码配置对摄像头采集视频的宽高进行调整。
- encoderOutputFrameRate
- 本地视频编码器的输出帧率,单位为 fps。
- rendererOutputFrameRate
- 本地视频渲染器的输出帧率,单位为 fps。
- targetBitrate
- 当前编码器的目标编码码率 (Kbps),该码率为 SDK 根据当前网络状况预估的一个值。
- targetFrameRate
- 当前编码器的目标编码帧率 (fps)。
- qualityAdaptIndication
- 统计周期内本地视频质量(基于目标帧率和目标码率)的自适应情况。详见 AgoraVideoQualityAdaptIndication。
- encodedBitrate
-
视频编码码率(Kbps)。注意: 不包含丢包后重传视频等的编码码率。
- encodedFrameHeight
- 视频编码高度(px)。
- encodedFrameWidth
- 视频编码宽度(px)。
- encodedFrameCount
- 视频发送的帧数,累计值。
- codecType
- 视频的编码类型。详见 AgoraVideoCodecType。
- txPacketLossRate
- 弱网对抗前本端到 Agora 边缘服务器的视频丢包率 (%)。
- captureBrightnessLevel
- 本地采集的画质亮度级别。详见 AgoraCaptureBrightnessLevelType。
AgoraLogConfig
Agora SDK 日志文件的配置。
__attribute__((visibility("default"))) @interface AgoraLogConfig: NSObject @property (copy, nonatomic) NSString * _Nullable filePath; @property (assign, nonatomic) NSInteger fileSizeInKB; @property (assign, nonatomic) AgoraLogLevel level; @end
属性
- filePath
-
日志文件的完整路径。请确保你指定的目录存在且可写。你可以通过该参数修改日志文件名。
默认路径为:- 开启沙盒: AppSandbox/Library/Logs/agorasdk.log,例如 /Users/<username>/Library/Containers/<AppBundleIdentifier>/Data/Library/Logs/agorasdk.log。
- 关闭沙盒: ~/Library/Logs/agorasdk.log
- fileSizeInKB
- 单个
agorasdk.log
日志文件的大小,单位为 KB,取值范围为 [128,1024],默认值为 1,024 KB。 如果你将fileSizeInKByte
设为小于 128 KB,SDK 会自动调整到 128 KB;如果你将fileSizeInKByte
设为大于 1,024 KB,SDK 会自动调整到 1,024 KB。 - level
-
Agora SDK 的日志输出等级,详见 AgoraLogLevel。
例如,如果你选择 WARN 级别,就可以看到在 FATAL、ERROR 和 WARN 级别上的所有日志信息。
AgoraLowlightEnhanceOptions
暗光增强选项。
__attribute__((visibility("default"))) @interface AgoraLowlightEnhanceOptions : NSObject @property(nonatomic, assign) AgoraLowlightEnhanceMode mode; @property(nonatomic, assign) AgoraLowlightEnhanceLevel level; @end
属性
- level
- 暗光增强等级。详见 AgoraLowlightEnhanceLevel。
- mode
- 暗光增强模式。详见 AgoraLowlightEnhanceMode。
AgoraLowlightEnhanceMode
暗光增强模式。
枚举值
- AgoraLowlightEnhanceModeAuto
- 0:(默认)自动模式。SDK 会根据环境光亮度自动开启或关闭暗光增强功能,以适时补光和防止过曝。
- AgoraLowlightEnhanceModeManual
- 1:手动模式。用户需手动开启或关闭暗光增强功能。
AgoraLowlightEnhanceLevel
暗光增强等级。
枚举值
- AgoraLowlightEnhanceLevelQuality
- 0:(默认)优先画质的暗光增强,会处理视频图像的亮度、细节、噪声,消耗的性能适中,处理速度适中,综合画质最优。
- AgoraLowlightEnhanceLevelFast
- 1:优先性能的暗光增强,会处理视频图像的亮度、细节,消耗的性能较少,处理速度较快。
AgoraMediaRecorderConfiguration
本地音视频流录制配置。
__attribute__((visibility("default"))) @interface AgoraMediaRecorderConfiguration : NSObject @property(copy, nonatomic) NSString* _Nonnull storagePath; @property(assign, nonatomic) AgoraMediaRecorderContainerFormat containerFormat; @property(assign, nonatomic) AgoraMediaRecorderStreamType streamType; @property(assign, nonatomic) NSUInteger maxDurationMs; @property(assign, nonatomic) NSUInteger recorderInfoUpdateInterval;
属性
- storagePath
- 录音文件在本地保存的绝对路径,需精确到文件名及格式。例如:
- Windows:
C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.mp4
- iOS:
/App Sandbox/Library/Caches/example.mp4
- macOS:
/Library/Logs/example.mp4
- Android:
/storage/emulated/0/Android/data/<package name>/files/example.mp4
注意: 请确保你指定的路径存在并且可写。 - Windows:
- containerFormat
- 录制文件的格式。详见 AgoraMediaRecorderContainerFormat。
- streamType
- 录制内容。详见 AgoraMediaRecorderStreamType。
- maxDurationMs
- 最大录制时长,单位为毫秒,默认值为 120000。
- recorderInfoUpdateInterval
- 录制信息更新间隔,单位为毫秒,取值范围为 [1000,10000]。SDK 会根据该值的设置触发 informationDidUpdated 回调,报告更新后的录制信息。
AgoraMediaSource
需播放的媒体文件的相关信息及播放设置。
__attribute__((visibility("default"))) @interface AgoraMediaSource : NSObject @property(copy, nonatomic) NSString *_Nullable url; @property(copy, nonatomic) NSString *_Nullable uri; @property(assign, nonatomic) NSUInteger startPos; @property(assign, nonatomic) BOOL enableCache; @property(assign, nonatomic) BOOL autoPlay; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable isAgoraSource; @property(strong, nonatomic) AgoraRtcBoolOptional* _Nullable isLiveSource; @property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnReadCallback _Nonnull playerOnReadCallback; @property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnSeekCallback _Nonnull playerOnSeekCallback; @end @end
属性
- url
-
需要播放的媒体资源的 URL。
注: 如果你打开媒体资源为自定义媒体资源,则无需向 url 传值。 - uri
- 媒体文件的 URI(Uniform Resource Identifier),可用于标识媒体文件。
- startPos
- 设置起始播放位置 (毫秒),默认值为 0。
- autoPlay
- 打开媒体文件后,是否开启自动播放:
YES
:(默认)开启自动播放。NO
:关闭自动播放。
注:如果你设置关闭自动播放,打开媒体文件后,还需再调用 play 方法来播放媒体文件。
- enableCache
- 此次播放是否开启实时缓存功能:
YES
:开启实时缓存。NO
:(默认)关闭实时缓存。
注:- 如需开启实时缓存,请向 uri 传值,否则播放器会以媒体文件的 url 作为缓存索引。
- 开启实时缓存后,播放器会预先缓存当前正在播放的媒体文件的部分数据到本地,当你下次播放该文件时播放器会直接从缓存中加载数据,可节省网络流量。当前缓存的媒体文件的相关统计数据会在媒体文件开始播放后每秒更新一次,详见 AgoraMediaPlayerCacheStatistics。
- isAgoraSource
- 打开的媒体资源是否为通过 Agora 融合 CDN 分发的直播或点播流:
YES
:打开的媒体资源是 Agora 融合 CDN 分发的直播或点播流。NO
:(默认)打开的媒体资源不是 Agora 融合 CDN 分发的直播或点播流。
注:如果你需要打开的媒体资源为 Agora 融合 CDN 分发的直播流或点播流,请向 url 传入直播或点播流的 URL 并将 isAgoraSource 设置为
YES
,否则无需设置 isAgoraSource。 - isLiveSource
- 打开的媒体资源是否为直播流:
YES
:直播流。NO
:(默认)非直播流。
如果你打开的媒体资源为直播流,Agora 推荐你将该参数设置为
YES
,可加快打开直播流的速度。注:仅当打开的媒体资源为直播流时,将 isLiveSource 设置为
YES
后才可加快媒体资源的打开速度。 - playerOnReadCallback
-
读取媒体资源数据回调。详见 AgoraRtcMediaPlayerCustomSourceOnReadCallback。
注:如果你需要打开自定义的媒体资源,例如需要自行解密的媒体资源,直接向 playerOnReadCallback 及 playerOnSeekCallback 传值,无需再向 url 传值。
- playerOnSeekCallback
-
定位媒体资源数据回调。详见 AgoraRtcMediaPlayerCustomSourceOnSeekCallback。
注:如果你需要打开自定义的媒体资源,例如需要自行解密的媒体资源,直接向 playerOnReadCallback 及 playerOnSeekCallback 传值,无需再向 url 传值。
AgoraRtcMediaStreamInfo
播放器媒体流的所有信息。
__attribute__((visibility("default"))) @interface AgoraMediaStreamInfo : NSObject @property(nonatomic, assign) NSInteger streamIndex; @property(nonatomic, assign) AgoraMediaStreamType streamType; @property(nonatomic, copy) NSString *_Nonnull codecName; @property(nonatomic, copy) NSString *_Nullable language; @property(nonatomic, assign) NSInteger videoFrameRate; @property(nonatomic, assign) NSInteger videoBitRate; @property(nonatomic, assign) NSInteger videoWidth; @property(nonatomic, assign) NSInteger videoHeight; @property(nonatomic, assign) NSInteger audioSampleRate; @property(nonatomic, assign) NSInteger audioChannels; @property(nonatomic, assign) NSInteger duration; @property(nonatomic, assign) NSInteger rotation; @end
属性
- streamIndex
- 媒体流的索引值。
- streamType
- 此条媒体流的类型。详见 AgoraMediaStreamType。
- codecName
- 此条媒体流的编码规格。
- language
- 此条媒体流的语言。
- videoFrameRate
- 该参数仅对视频流生效,表示视频帧率 (fps)。
- videoBitRate
- 该参数仅对视频流生效,表示视频码率 (bps)。
- videoWidth
- 该参数仅对视频流生效,表示视频宽度 (pixel)。
- videoHeight
- 该参数仅对视频流生效,表示视频高度 (pixel)。
- rotation
- 该参数仅对视频流生效,表示旋转角度。
- audioSampleRate
- 该参数仅对音频流生效,表示音频采样率 (Hz)。
- audioChannels
- 该参数仅对音频流生效,表示声道数。
- duration
- 媒体流的时长(秒)。
AgoraMediaPlayerUpdatedInfo
媒体播放器相关信息。
__attribute__((visibility("default"))) @interface AgoraMediaPlayerUpdatedInfo : NSObject @property(copy, nonatomic) NSString *_Nullable playerId; @property(copy, nonatomic) NSString *_Nullable deviceId; @property(strong, nonatomic) AgoraMediaPlayerCacheStatistics *_Nullable cacheStatistics; @end
属性
- playerId
- 播放器 ID,标识一个播放器。
- deviceId
- 设备 ID,标识一个设备。
- cacheStatistics
-
当前缓存的媒体文件的相关统计数据。
调用 openWithMediaSource 方法且设置 enableCache 成员为
YES
后,当前缓存的媒体文件的相关统计数据会在媒体文件开始播放后每秒更新一次,详见 AgoraMediaPlayerCacheStatistics。
AgoraMediaRecorderInfo
录制文件信息。
__attribute__((visibility("default"))) @interface AgoraMediaRecorderInfo : NSObject @property(copy, nonatomic) NSString* _Nonnull recorderFileName; @property(assign, nonatomic) NSUInteger durationMs; @property(assign, nonatomic) NSUInteger fileSize;
属性
- recorderFileName
- 录制文件的绝对存储路径。
- durationMs
- 录制文件的时长,单位为毫秒。
- fileSize
- 录制文件的大小,单位为字节。
AgoraRtcRemoteAudioStats
远端用户的音频统计数据。
__attribute__((visibility("default"))) @interface AgoraRtcRemoteAudioStats : NSObject @property(assign, nonatomic) NSUInteger uid; @property(assign, nonatomic) NSUInteger quality; @property(assign, nonatomic) NSUInteger networkTransportDelay; @property(assign, nonatomic) NSUInteger jitterBufferDelay; @property(assign, nonatomic) NSUInteger audioLossRate; @property(assign, nonatomic) NSUInteger numChannels; @property(assign, nonatomic) NSUInteger receivedSampleRate; @property(assign, nonatomic) NSUInteger receivedBitrate; @property(assign, nonatomic) NSUInteger totalFrozenTime; @property(assign, nonatomic) NSUInteger totalActiveTime; @property(assign, nonatomic) NSInteger publishDuration; @property(assign, nonatomic) NSUInteger frozenRate; @property(assign, nonatomic) NSUInteger mosValue; @property(assign, nonatomic) NSInteger qoeQuality; @property(assign, nonatomic) AgoraExperiencePoorReason qualityChangedReason; @end
属性
- uid
- 远端用户的用户 ID。
- quality
-
远端用户发送的音频流质量。详见 AgoraNetworkQuality。
- networkTransportDelay
- 音频发送端到接收端的网络延迟(毫秒)。
- jitterBufferDelay
-
音频接收端到网络抖动缓冲的网络延迟(毫秒)。
- audioLossRate
- 统计周期内的远端音频流的丢帧率 (%)。
- numChannels
- 声道数。
- receivedSampleRate
- 统计周期内接收到的远端音频流的采样率。
- receivedBitrate
- 接收到的远端音频流在统计周期内的平均码率(Kbps)。
- totalFrozenTime
- 远端用户在加入频道后发生音频卡顿的累计时长(毫秒)。通话过程中,音频丢帧率达到 4% 即记为一次音频卡顿。
- frozenRate
- 音频卡顿的累计时长占音频总有效时长的百分比 (%)。音频有效时长是指远端用户加入频道后音频未被停止发送或禁用的时长。
- totalActiveTime
-
远端用户在音频通话开始到本次回调之间的有效时长(毫秒)。
有效时长是指去除了远端用户进入静音状态的总时长。
- publishDuration
-
远端音频流的累计发布时长(毫秒)。
- qoeQuality
-
接收远端音频时,本地用户的主观体验质量。详见 AgoraExperienceQuality。
- qualityChangedReason
-
接收远端音频时,本地用户主观体验质量较差的原因。详见 AgoraExperiencePoorReason。
- mosValue
-
统计周期内,Agora 实时音频 MOS(平均主观意见分)评估方法对接收到的远端音频流的质量评分。返回值范围为 [0,500]。返回值除以 100 即可得到 MOS 分数,范围为 [0,5] 分,分数越高,音频质量越好。
Agora 实时音频 MOS 评分对应的主观音质感受如下:MOS 分数 音质感受 大于 4 分 音频质量佳,清晰流畅。 3.5 - 4 分 音频质量较好,偶有音质损伤,但依然清晰。 3 - 3.5 分 音频质量一般,偶有卡顿,不是非常流畅,需要一点注意力才能听清。 2.5 - 3 分 音频质量较差,卡顿频繁,需要集中精力才能听清。 2 - 2.5 分 音频质量很差,偶有杂音,部分语义丢失,难以交流。 小于 2 分 音频质量非常差,杂音频现,大量语义丢失,完全无法交流。
AgoraRtcRemoteVideoStats
远端视频流的统计信息。
__attribute__((visibility("default"))) @interface AgoraRtcRemoteVideoStats : NSObject @property(assign, nonatomic) NSUInteger uid; @property(assign, nonatomic) NSUInteger delay __deprecated; @property(assign, nonatomic) NSUInteger width; @property(assign, nonatomic) NSUInteger height; @property(assign, nonatomic) NSUInteger receivedBitrate; @property(assign, nonatomic) NSUInteger receivedFrameRate; @property(assign, nonatomic) AgoraVideoStreamType rxStreamType; @property(assign, nonatomic) NSInteger decoderOutputFrameRate; @property(assign, nonatomic) NSInteger rendererOutputFrameRate; @property(assign, nonatomic) NSInteger frameLossRate; @property(assign, nonatomic) NSInteger packetLossRate; @property(assign, nonatomic) NSInteger totalFrozenTime; @property(assign, nonatomic) NSInteger frozenRate; @property(assign, nonatomic) NSUInteger totalActiveTime; @property(assign, nonatomic) NSInteger publishDuration; @property(assign, nonatomic) NSInteger avSyncTimeMs; @property(assign, nonatomic) NSInteger superResolutionType; @end
属性
- uid
- 用户 ID,指定是哪个用户的视频流。
- delay
-
- 弃用:
- 在有音画同步机制的音视频场景中,你可以参考 AgoraRtcRemoteAudioStats 里的 networkTransportDelay 和 jitterBufferDelay 成员的值,了解视频的延迟数据。
延时(毫秒)。
- width
- 视频流宽(像素)。
- height
- 视频流高(像素)。
- receivedBitrate
- (上次统计后)接收到的码率(Kbps)。
- receivedFramerate
- (上次统计后)接收到的帧率 (fps)。
- decoderOutputFrameRate
- 远端视频解码器的输出帧率,单位为 fps。
- rendererOutputFrameRate
- 远端视频渲染器的输出帧率,单位为 fps。
- frameLossRate
- 远端视频丢包率(%)。
- packetLossRate
- 远端视频在使用抗丢包技术之后的丢包率(%)。
- rxStreamType
- 视频流类型,大流或小流。详见 AgoraVideoStreamType。
- totalFrozenTime
- 远端用户在加入频道后发生视频卡顿的累计时长(ms)。通话过程中,视频帧率设置不低于 5 fps 时,连续渲染的两帧视频之间间隔超过 500 ms,则记为一次视频卡顿。
- frozenRate
- 远端用户在加入频道后发生视频卡顿的累计时长占视频总有效时长的百分比 (%)。视频有效时长是指远端用户加入频道后视频未被停止发送或禁用的时长。
- totalActiveTime
-
视频有效时长(毫秒)。
视频总有效时长是远端用户或主播加入频道后,既没有停止发送视频流,也没有禁用视频模块的通话时长。
- publishDuration
-
远端视频流的累计发布时长(毫秒)。
- superResolutionType
- 超分辨率的开启状态:
- >0:超分辨率已开启。
- =0:超分辨率未开启。
- avSyncTimeMs
- 音频超前视频的时间 (ms)。
注意: 如果为负值,则代表音频落后于视频。
AgoraRemoteVoicePositionInfo
远端用户或媒体播放器的空间位置信息。
__attribute__((visibility("default"))) @interface AgoraRemoteVoicePositionInfo : NSObject @property(strong, nonatomic) NSArray<NSNumber*> * _Nonnull position; @property(strong, nonatomic) NSArray<NSNumber*> * _Nullable forward; @end
属性
- position
- 在世界坐标系中的坐标。该参数是长度为 3 的数组,三个值依次表示前、右、上的坐标值。
- forward
- 在世界坐标系前轴的单位向量。该参数是长度为 3 的数组,三个值依次表示前、右、上的坐标值。
AgoraRtcConnection
包含连接信息的类。
__attribute__((visibility("default"))) @interface AgoraRtcConnection: NSObject <NSCopying> @property (nonatomic, copy) NSString *_Nonnull channelId; @property (nonatomic, assign) NSUInteger localUid; @end
属性
- channelId
- 频道名。
- localUid
- 本地用户 ID。
AgoraRtcEngineConfig
AgoraRtcEngineConfig 定义。
__attribute__((visibility("default"))) @interface AgoraRtcEngineConfig: NSObject @property (copy, nonatomic) NSString * _Nullable appId; @property (assign, nonatomic) AgoraChannelProfile channelProfile; @property (assign, nonatomic) AgoraAudioScenario audioScenario; @property (assign, nonatomic) AgoraAreaCodeType areaCode; @property (strong, nonatomic) AgoraLogConfig * _Nullable logConfig; @property (copy, nonatomic) NSArray<id<AgoraMediaFilterExtensionDelegate>>* _Nullable mediaFilterExtensions; @property (weak, nonatomic) id<AgoraMediaFilterEventDelegate> _Nullable eventDelegate; @end
属性
- appId
- Agora 为 app 开发者签发的 App ID。 使用同一个 App ID 的 app 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 AgoraRtcEngineKit。如需更换 App ID,必须先调用 destroy 销毁当前 AgoraRtcEngineKit 再重新创建。
- channelProfile
-
频道使用场景。详见 AgoraChannelProfile。
- audioScenario
- 音频场景。详见 AgoraAudioScenario 。不同的音频场景下,设备的音量类型是不同的。
- areaCode
- 服务器的访问区域。该功能为高级设置,适用于有访问安全限制的场景。支持的区域详见 AgoraAreaCodeType。区域码支持位操作。
- logConfig
-
设置 Agora SDK 输出的日志文件。详见 AgoraLogConfig。
默认情况下,SDK 会生成 5 个 SDK 日志文件和 5 个 API 调用日志文件,规则如下:
- SDK 日志文件的名称分别为:
agorasdk.log
、agorasdk.1.log
、agorasdk.2.log
、agorasdk.3.log
、agorasdk.4.log
。 - API 调用日志文件的名称分别为:
agoraapi.log
、agoraapi.1.log
、agoraapi.2.log
、agoraapi.3.log
、agoraapi.4.log
。 - 每个 SDK 日志文件的默认大小为 1,024 KB;API 调用日志文件的默认大小为 2,048 KB。日志文件均为 UTF-8 编码。
- 最新的日志永远写在
agorasdk.log
和agoraapi.log
中。 - 当
agorasdk.log
写满后,SDK 会按照以下顺序对日志文件进行操作:- 删除
agorasdk.4.log
文件(如有)。 - 将
agorasdk.3.log
重命名为agorasdk.4.log
。 - 将
agorasdk.2.log
重命名为agorasdk.3.log
。 - 将
agorasdk.1.log
重命名为agorasdk.2.log
。 - 新建
agorasdk.log
文件。
- 删除
agoraapi.log
文件的覆盖规则与agorasdk.log
相同。
- SDK 日志文件的名称分别为:
- eventDelegate
- AgoraMediaFilterEventDelegate 实例。
- mediaFilterExtensions
- AgoraMediaFilterExtensionDelegate 实例。
AgoraImage
图像属性。
__attribute__((visibility("default"))) @interface AgoraImage : NSObject @property(strong, nonatomic) NSURL *_Nonnull url; @property(assign, nonatomic) CGRect rect; @property (assign, nonatomic) NSInteger zOrder; @property(assign, nonatomic) double alpha; @end
用于设置直播视频的水印和背景图片的属性。
属性
- url
- 直播视频上图片的 HTTP/HTTPS 地址。字符长度不得超过 1024 字节。
- rect
- 图片在视频画面上的位置和大小,类型为 CGRect。
- zOrder
- 水印或背景图的图层编号。使用水印数组添加单张或多张水印时,必须向 zOrder 传值,取值范围为 [1,255],否则 SDK 会报错。其余情况,zOrder 可选传值,取值范围为 [0,255],0 为默认值。0 代表图层的最下层,255 代表图层的最上层。
- alpha
- 水印或背景图片的透明度。取值范围为 [0.0,1.0]:
- 0.0: 完全透明。
- 1.0:(默认)完全不透明。
AgoraChannelStats
通话相关的统计信息。
__attribute__((visibility("default"))) @interface AgoraChannelStats : NSObject @property(assign, nonatomic) NSUInteger duration; @property(assign, nonatomic) NSUInteger txBytes; @property(assign, nonatomic) NSUInteger rxBytes; @property(assign, nonatomic) NSUInteger txAudioKBitrate; @property(assign, nonatomic) NSUInteger rxAudioKBitrate; @property(assign, nonatomic) NSUInteger txVideoKBitrate; @property(assign, nonatomic) NSUInteger rxVideoKBitrate; @property(assign, nonatomic) NSUInteger txAudioBytes; @property(assign, nonatomic) NSUInteger txVideoBytes; @property(assign, nonatomic) NSUInteger rxAudioBytes; @property(assign, nonatomic) NSUInteger rxVideoBytes; @property(assign, nonatomic) NSUInteger lastmileDelay; @property(assign, nonatomic) NSUInteger userCount; @property(assign, nonatomic) double cpuAppUsage; @property(assign, nonatomic) double cpuTotalUsage; @property(assign, nonatomic) NSInteger gatewayRtt; @property(assign, nonatomic) double memoryAppUsageRatio; @property(assign, nonatomic) double memoryTotalUsageRatio; @property(assign, nonatomic) NSInteger memoryAppUsageInKbytes; @property(assign, nonatomic) NSInteger connectTimeMs; @property(assign, nonatomic) NSUInteger txKBitRate; @property(assign, nonatomic) NSUInteger rxKBitRate; @property(assign, nonatomic) NSInteger txPacketLossRate; @property(assign, nonatomic) NSInteger rxPacketLossRate; @end
属性
- duration
- 本地用户通话时长(秒),累计值。
- txBytes
- 发送字节数(bytes)。
- rxBytes
- 接收字节数(bytes)。
- txAudioBytes
- 发送音频字节数(bytes),累计值。
- txVideoBytes
- 发送视频字节数(bytes),累计值。
- rxAudioBytes
- 接收音频字节数(bytes),累计值。
- rxVideoBytes
- 接收视频字节数(bytes),累计值。
- txKBitRate
- 发送码率(Kbps)。
- rxKBitRate
- 接收码率(Kbps)。
- rxAudioKBitRate
- 音频接收码率 (Kbps)。
- txAudioKBitRate
- 音频包的发送码率 (Kbps)。
- rxVideoKBitRate
- 视频接收码率 (Kbps)。
- txVideoKBitRate
- 视频发送码率 (Kbps)。
- lastmileDelay
- 客户端-接入服务器延时 (毫秒)。
- txPacketLossRate
- 使用抗丢包技术前,客户端上行发送到服务器丢包率 (%)。
- rxPacketLossRate
- 使用抗丢包技术前,服务器下行发送到客户端丢包率 (%)。
- userCount
- 当前频道内的用户人数。
- cpuAppUsage
- 当前 App 的 CPU 使用率 (%)。
注意:
- didLeaveChannelWithStats 回调中报告的 cpuAppUsage 恒为 0。
- cpuTotalUsage
-
当前系统的 CPU 使用率 (%)。
注意:- didLeaveChannelWithStats 回调中报告的 cpuTotalUsage 恒为 0。
- connectTimeMs
- 从开始建立连接到成功连接的时间(毫秒)。如报告 0,则表示无效。
- gatewayRtt
- 客户端到本地路由器的往返时延 (ms)。
- memoryAppUsageRatio
-
当前 App 的内存占比 (%)。
注意: 该值仅作参考。受系统限制可能无法获取。 - memoryTotalUsageRatio
-
当前系统的内存占比 (%)。
注意: 该值仅作参考。受系统限制可能无法获取。 - memoryAppUsageInKbytes
-
当前 App 的内存大小 (KB)。
注意: 该值仅作参考。受系统限制可能无法获取。
AgoraScreenCaptureParameters
屏幕共享的参数配置。
__attribute__((visibility("default"))) @interface AgoraScreenCaptureParameters: NSObject @property (assign, nonatomic) CGSize dimensions; @property (assign, nonatomic) NSInteger frameRate; @property (assign, nonatomic) NSInteger bitrate; @property(assign, nonatomic) BOOL captureMouseCursor; @property(assign, nonatomic) BOOL windowFocus; @property(copy, nonatomic) NSArray* _Nullable excludeWindowList; @property(assign, nonatomic) BOOL highLighted; @property(strong, nonatomic) COLOR_CLASS* _Nullable highLightColor; @property(assign, nonatomic) NSUInteger highLightWidth; @end
属性
- dimensions
-
共享的屏幕流的视频编码分辨率。
当共享的屏幕分辨率宽高比与该值设置不一致时,SDK 按如下策略进行编码。假设 dimensions 设为 1920 × 1080:- 如果屏幕分辨率小于 dimensions,如 1000 × 1000,SDK 直接按 1000 × 1000 进行编码。
- 如果屏幕分辨率大于 dimensions,如 2000 × 1500,SDK 按屏幕分辨率的宽高比,即 4:3,取 dimensions 以内的最大分辨率进行编码,即 1440 × 1080。
- frameRate
- 共享的屏幕流的视频编码帧率。单位为 fps;默认值为 5,建议不要超过 15。
- bitrate
- 共享的屏幕流的视频编码码率。单位为 Kbps;默认值为 0,表示 SDK 根据当前共享屏幕的分辨率计算出一个合理的值。
- captureMouseCursor
-
是否采集鼠标用于屏幕共享:
YES
:(默认)采集鼠标。NO
: 不采集鼠标。
- windowFocus
-
调用 startScreenCaptureByWindowId 方法共享窗口时,是否将该窗口前置:
YES
: 前置窗口。NO
:(默认)不前置窗口。
- excludeWindowList
- 待屏蔽窗口的 ID 列表。调用 startScreenCaptureByDisplayId 开启屏幕共享时,你可以通过该参数屏蔽指定的窗口。你可以在调用 updateScreenCaptureParameters 更新屏幕共享的配置参数时,通过该参数动态屏蔽指定的窗口。
- highLighted
- 是否对共享的窗口或屏幕进行描边:
YES
: 描边。NO
: (默认)不描边。
注: 当你在共享窗口或屏幕的部分区域时,如果将该参数设置为YES
,SDK 会对整个窗口或屏幕进行描边。 - highLightColor
- 描边的 RGBA 颜色。默认值为 0xFF8CBF26。
注: 在 macOS 平台上,
COLOR_CLASS
指NSColor
。 - highLightWidth
- 描边的宽度 (px)。默认值为 5,取值范围为 (0,50]。
注: 该参数仅在 highLighted 设置为
YES
时生效。
AgoraScreenCaptureSourceInfo
可共享窗口或屏幕的信息。
__attribute__((visibility("default"))) @interface AgoraScreenCaptureSourceInfo : NSObject @property(assign, nonatomic) AgoraScreenCaptureSourceType type; @property(assign, nonatomic) CGWindowID sourceId; @property(copy, nonatomic) NSString* _Nonnull sourceName; @property(strong, nonatomic) NSImage* _Nonnull thumbImage; @property(strong, nonatomic) NSImage* _Nullable iconImage; @property(copy, nonatomic) NSString* _Nonnull processPath; @property(copy, nonatomic) NSString* _Nonnull sourceTitle; @property(assign, nonatomic) BOOL primaryMonitor; @end
属性
- type
- 共享目标的类型。详见 AgoraScreenCaptureSourceType。
- sourceId
- 对于窗口,表示窗口 ID(Window ID);对于屏幕,表示屏幕 ID(Display ID)。
- sourceName
- 窗口或屏幕的名称。UTF-8 编码。
- thumbImage
- 缩略图的图像内容。详见 NSImage。
- iconImage
- 图标的图像内容。详见 NSImage。
- processPath
- 窗口所属的进程。UTF-8 编码。
- sourceTitle
- 窗口标题。UTF-8 编码。
- primaryMonitor
- 屏幕是否为主显示屏:
YES
: 是。NO
: 否。
AgoraSegmentationProperty
背景图像的处理属性。
__attribute__((visibility("default"))) @interface AgoraSegmentationProperty: NSObject @property(nonatomic, assign) SegModelType modelType; @property(nonatomic, assign) float greenCapacity; @end
属性
- modelType
- 进行背景处理的算法。详见 SegModelType。
- greenCapacity
-
对画面中绿颜色(即不同程度的绿色)识别的精度范围。取值范围为 [0,1],默认值为 0.5。取值越大,代表可识别的绿色范围越大。当该参数取值过大时,人像边缘和人像范围内的绿色也会被识别。Agora 推荐你根据实际效果动态调整该参数的值。
注: 该参数仅在 modelType 设置为 SegModelAgoraGreen 时生效。
AgoraSimulcastStreamConfig
视频小流的配置。
__attribute__((visibility("default"))) @interface AgoraSimulcastStreamConfig: NSObject @property (assign, nonatomic) int bitrate; @property (assign, nonatomic) int framerate; @property (assign, nonatomic) CGSize dimensions; @end
属性
- dimensions
- 视频尺寸。默认值为 160 × 120。
- bitrate
- 视频码率 (Kbps)。默认值为 65。
- framerate
- 视频帧率 (fps)。默认值为 5。
AgoraMediaPlayerSrcInfo
媒体资源播放时的视频码率相关信息。
__attribute__((visibility("default"))) @interface AgoraMediaPlayerSrcInfo : NSObject @property(assign, nonatomic) int bitrateInKbps; @property(copy, nonatomic) NSString *_Nullable name; @end
属性
- bitrateInKbps
- 媒体资源播放时的视频码率(Kbps)。
- name
- 媒体资源的名字。
AgoraLiveTranscodingUser
参与转码合流的每个主播的设置。
__attribute__((visibility("default"))) @interface AgoraLiveTranscodingUser : NSObject @property(assign, nonatomic) NSUInteger uid; @property(assign, nonatomic) CGRect rect; @property(assign, nonatomic) NSInteger zOrder; @property(assign, nonatomic) double alpha; @property(assign, nonatomic) NSInteger audioChannel; @end
属性
- uid
-
主播的用户 ID。
- rect
- 主播视频画面在输出视频画面的位置和大小,类型为 CGRect。
- zOrder
-
主播视频画面的图层编号。取值范围为 [0,100]。
- 0:(默认)视频画面位于图层的最下层。
- 100: 视频画面位于图层的最上层。
注意:- 如果取值小于 0 或大于 100,会返回错误 AgoraErrorCodeInvalidArgument。
- 从 v2.3 开始,支持将 zOrder 设置为 0。
- alpha
-
主播视频画面的透明度。取值范围为 [0.0,1.0]。
- 0.0: 完全透明。
- 1.0:(默认)完全不透明。
- audioChannel
-
主播音频在输出音频中占用的声道。默认值为 0,取值范围为 [0,5]:
0
: (推荐)默认混音设置,最多支持双声道,与主播上行音频相关。1
: 主播音频在输出音频的 FL 声道。如果主播上行音频是多声道,Agora 服务器会先把多声道混音成单声道。2
: 主播音频在输出音频的 FC 声道。如果主播上行音频是多声道,Agora 服务器会先把多声道混音成单声道。3
: 主播音频在输出音频的 FR 声道。如果主播上行音频是多声道,Agora 服务器会先把多声道混音成单声道。4
: 主播音频在输出音频的 BL 声道。如果主播上行音频是多声道,Agora 服务器会先把多声道混音成单声道。5
: 主播音频在输出音频的 BR 声道。如果主播上行音频是多声道,Agora 服务器会先把多声道混音成单声道。0xFF
或取值大于5
: 该主播音频静音,Agora 服务器移除该主播的音频。
注意: 取值不为0
时,需要使用特殊的播放器。
AgoraUplinkNetworkInfo
上行网络信息。
__attribute__((visibility("default"))) @interface AgoraUplinkNetworkInfo : NSObject @property(nonatomic, assign) int videoEncoderTargetBitrateBps; @end
属性
- videoEncoderTargetBitrateBps
- 目标视频编码器的码率 (bps)。
AgoraAudioSpectrumInfo
远端用户的音频频谱信息。
__attribute__((visibility("default"))) @interface AgoraAudioSpectrumInfo : NSObject @property(nonatomic, assign) NSInteger uid; @property(nonatomic, strong) NSArray<NSNumber *> * _Nullable audioSpectrumData; @end
属性
- uid
- 远端用户 ID。
- audioSpectrumData
-
远端用户的音频频谱数据。
AgoraUserInfo
用户的信息。
__attribute__((visibility("default"))) @interface AgoraUserInfo: NSObject @property(assign, nonatomic) NSUInteger uid; @property (copy, nonatomic) NSString * _Nullable userAccount; @end
属性
- uid
- 用户 ID。
- userAccount
- 用户 Account。
AgoraRtcVideoCanvas
视频画布对象的属性。
__attribute__((visibility("default"))) @interface AgoraRtcVideoCanvas : NSObject @property(strong, nonatomic) VIEW_CLASS *_Nullable view; @property(assign, nonatomic) AgoraVideoRenderMode renderMode; @property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; @property(assign, nonatomic) NSUInteger uid; @property(copy, nonatomic) NSString *_Nullable userId; @property(nonatomic, assign) AgoraVideoSourceType sourceType; @property(nonatomic, assign) int sourceId; @end
属性
- view
- 视频显示窗口。
- renderMode
-
视频渲染模式,详见 AgoraVideoRenderMode。
- mirrorMode
-
视图镜像模式,详见 AgoraVideoMirrorMode。
注意:- 本地视图镜像模式:如果你使用前置摄像头,默认启动本地视图镜像模式;如果你使用后置摄像头,默认关闭本地视图镜像模式。
- 远端用户视图镜像模式:默认关闭远端用户的镜像模式。
- uid
- 用户 ID。
- sourceType
- 视频源的类型,详见 AgoraVideoSourceType。
- sourceId
- 视频源 ID。
AgoraVideoDenoiserOptions
视频降噪选项。
__attribute__((visibility("default"))) @interface AgoraVideoDenoiserOptions : NSObject @property(nonatomic, assign) AgoraVideoDenoiserMode mode; @property(nonatomic, assign) AgoraVideoDenoiserLevel level; @end
属性
- level
- 视频降噪等级。详见 AgoraVideoDenoiserLevel。
- mode
- 视频降噪模式。详见 AgoraVideoDenoiserMode。
AgoraVideoDenoiserMode
视频降噪模式。
枚举值
- AgoraVideoDenoiserModeAuto
- 0:(默认)自动模式。SDK 会根据环境光亮度自动开启或关闭视频降噪功能。
- AgoraVideoDenoiserModeManual
- 1:手动模式。用户需手动开启或关闭视频降噪功能。
AgoraVideoDenoiserLevel
视频降噪等级。
枚举值
- AgoraVideoDenoiserLevelHighQuality
- 0:(默认)优先画质的视频降噪。是在性能消耗和视频降噪效果中取平衡的等级。性能消耗适中,视频降噪速度适中,综合画质最优。
- AgoraVideoDenoiserLevelFast
- 1:优先性能的视频降噪。是在性能消耗和视频降噪效果中侧重于节省性能的等级。性能消耗较少,视频降噪速度较快。为避免处理后的视频有明显的拖影效果,Agora 推荐你在摄像头固定的情况下使用该设置。
- AgoraVideoDenoiserLevelStrength
- 2:强效的视频降噪。是在性能消耗和视频降噪效果中侧重于视频降噪效果的等级。性能消耗较多,视频降噪速度较慢,视频降噪效果较好。如果 AgoraVideoDenoiserLevelHighQuality 不能满足你的视频降噪需求,你可以使用该设置。
AgoraVideoEncoderConfiguration
视频编码器的配置。
__attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject @property(assign, nonatomic) CGSize dimensions; @property(assign, nonatomic) AgoraVideoCodecType codecType; @property(assign, nonatomic) AgoraVideoFrameRate frameRate; @property(assign, nonatomic) NSInteger bitrate; @property(assign, nonatomic) NSInteger minBitrate; @property(assign, nonatomic) AgoraVideoOutputOrientationMode orientationMode; @property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; @property (assign, nonatomic) AgoraDegradationPreference degradationPreference; - (instancetype _Nonnull)initWithSize:(CGSize)size frameRate:(AgoraVideoFrameRate)frameRate bitrate:(NSInteger)bitrate orientationMode:(AgoraVideoOutputOrientationMode)orientationMode mirrorMode:(AgoraVideoMirrorMode)mirrorMode; - (instancetype _Nonnull)initWithWidth:(NSInteger)width height:(NSInteger)height frameRate:(AgoraVideoFrameRate)frameRate bitrate:(NSInteger)bitrate orientationMode:(AgoraVideoOutputOrientationMode)orientationMode mirrorMode:(AgoraVideoMirrorMode)mirrorMode; @end
属性
- dimensions
- 视频编码的分辨率(px),用于衡量编码质量,以长 × 宽表示。默认值为 640 × 360。
- codecType
- 视频编码类型,详见 AgoraVideoCodecType。
- frameRate
- 视频编码的帧率(fps),默认值为 15。详见 AgoraVideoFrameRate。
- minFramerate
- 视频的最小帧率。默认值为 -1。
- bitrate
-
视频编码码率,单位为 Kbps。
- STANDARD_BITRATE: (推荐) 标准码率模式。该模式下,视频的码率是基准码率的两倍。
- COMPATIBLE_BITRATE: 适配码率模式。该模式下,视频码率与基准码率一致。直播时如果选择该模式,视频帧率可能会低于设置的值。
- minBitrate
-
最低编码码率,单位为 Kbps。
SDK 会根据网络状况自动调整视频编码码率。将参数设为高于默认值可强制视频编码器输出高质量图片,但在网络状况不佳情况下可能导致网络丢包并影响视频播放的流畅度造成卡顿。因此如非对画质有特殊需求,声网建议不要修改该参数的值。
注意: 该参数仅适用于直播场景。 - orientationMode
- 视频编码的方向模式,详见 AgoraVideoOutputOrientationMode。
- degradationPreference
- 带宽受限时,视频编码降级偏好。详见 AgoraDegradationPreference 。
- mirrorMode
-
发送编码视频时是否开启镜像模式,只影响远端用户看到的视频画面。详见 AgoraVideoMirrorMode。
注意: 默认关闭镜像模式。
initWithSize
指定视频分辨率并初始化一个 AgoraVideoEncoderConfiguration 对象。
- (instancetype _Nonnull)initWithSize:(CGSize)size frameRate:(AgoraVideoFrameRate)frameRate bitrate:(NSInteger)bitrate orientationMode:(AgoraVideoOutputOrientationMode)orientationMode mirrorMode:(AgoraVideoMirrorMode)mirrorMode;
参数
- size
- 视频分辨率。
- frameRate
- 视频帧率。详见 AgoraVideoFrameRate。
- bitrate
- 视频码率。
- orientationMode
- 视频方向。详见 AgoraVideoOutputOrientationMode。
- mirrorMode
- 发送编码视频时是否开启镜像模式,只影响远端用户看到的视频画面。详见 AgoraVideoMirrorMode。
返回值
初始化的 AgoraVideoEncoderConfiguration 对象。
initWithWidth
指定视频宽和高并初始化一个 AgoraVideoEncoderConfiguration 对象。
- (instancetype _Nonnull)initWithWidth:(NSInteger)width height:(NSInteger)height frameRate:(AgoraVideoFrameRate)frameRate bitrate:(NSInteger)bitrate orientationMode:(AgoraVideoOutputOrientationMode)orientationMode mirrorMode:(AgoraVideoMirrorMode)mirrorMode;
参数
- width
- 视频宽度。
- height
- 视频高度。
- frameRate
- 视频帧率。详见 AgoraVideoFrameRate。
- bitrate
- 视频码率。
- orientationMode
- 视频方向。详见 AgoraVideoOutputOrientationMode。
- mirrorMode
- 发送编码视频时是否开启镜像模式,只影响远端用户看到的视频画面。详见 AgoraVideoMirrorMode。
返回值
初始化的 AgoraVideoEncoderConfiguration 对象。
AgoraOutputVideoFrame
视频帧的属性设置。
__attribute__((visibility("default"))) @interface AgoraOutputVideoFrame : NSObject @property (nonatomic, assign) NSInteger type; @property (nonatomic, assign) int width; @property (nonatomic, assign) int height; @property (nonatomic, assign) int yStride; @property (nonatomic, assign) int uStride; @property (nonatomic, assign) int vStride; @property (nonatomic, assign) uint8_t* _Nullable yBuffer; @property (nonatomic, assign) uint8_t* _Nullable uBuffer; @property (nonatomic, assign) uint8_t* _Nullable vBuffer; @property (nonatomic, assign) int rotation; @property (nonatomic, assign) int64_t renderTimeMs; @property (nonatomic, assign) int avSyncType; @property(assign, nonatomic) CVPixelBufferRef _Nullable pixelBuffer; @end
视频数据的格式为 YUV420。缓冲区给出的是指向指针的指针,该接口不能修改缓冲区的指针,只能修改缓冲区的内容。
属性
- type
- 传入的视频帧的格式,必须指定为下面的某一个值:
- 1: I420。
- 2: BGRA。
- 3: NV21。
- 4: RGBA。
- 5: IMC2。
- 7: ARGB。
- 8: NV12。
- 12: iOS 纹理 (CVPixelBufferRef)。
- 16: I422。
- width
- 视频像素宽度。
- height
- 视频像素高度。
- yStride
- 对 YUV 数据,表示 Y 缓冲区的行跨度;对 RGBA 数据,表示总的数据长度。
- uStride
- 对 YUV 数据,表示 U 缓冲区的行跨度;对 RGBA 数据,值为 0。
- vStride
- 对 YUV 数据,表示 V 缓冲区的行跨度;对 RGBA 数据,值为 0。
- yBuffer
- 对 YUV 数据,表示 Y 缓冲区的指针;对 RGBA 数据,表示数据缓冲区。
- uBuffer
- 对 YUV 数据,表示 U 缓冲区的指针;对 RGBA 数据,值为空。
- vBuffer
- 对 YUV 数据,表示 V 缓冲区的指针;对 RGBA 数据,值为空。
- rotation
- 在渲染视频前设置该帧的顺时针旋转角度,目前支持 0 度、90 度、180 度,和 270 度。
- renderTimeMs
- 视频帧被渲染时的 Unix 时间戳(毫秒)。该时间戳可用于指导渲染视频帧。该参数为必填。
- avsync_type
- 保留参数。
- 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的数据缓冲区,默认值为
NULL
。 - 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的大小,默认值为
0
。 - pixelBuffer
- 将数据填充到 CVPixelBuffer。
- alphaBuffer
-
表示人像分割算法的输出数据,跟视频帧的尺寸一致。每个像素点的取值范围为 [0,255],其中 0 表示背景;255 代表前景(人像)。
在用户自定义视频渲染场景下,该参数可帮助实现将视频背景自渲染为各种效果,例如:透明、纯色、图片、视频等等。注: 该参数需要联系技术支持开通。
AgoraVirtualBackgroundSource
自定义的背景。
__attribute__((visibility("default"))) @interface AgoraVirtualBackgroundSource : NSObject @property(nonatomic, assign) AgoraVirtualBackgroundSourceType backgroundSourceType NS_SWIFT_NAME(backgroundSourceType); @property(nonatomic, assign) NSUInteger color NS_SWIFT_NAME(color); @property(nonatomic, copy) NSString* _Nullable source NS_SWIFT_NAME(source); @property(nonatomic, assign) AgoraBlurDegree blurDegree; @end
属性
- backgroundSourceType
- 自定义的背景图类型。详见 AgoraVirtualBackgroundSourceType。
- color
- 自定义的背景图颜色。格式为 RGB 定义下的十六进制整数,不要带 # 号,如 0xFFB6C1 表示浅粉色。 默认值为 0xFFFFFF,表示白色。 取值范围为 [0x000000,0xffffff]。如果取值非法,SDK 会用白色背景图替换原背景图。
注意: 该参数仅在自定义背景图类型为 AgoraVirtualBackgroundColor 时生效。
- source
- 自定义背景图的本地绝对路径。支持 PNG 和 JPG 格式。如果路径无效,SDK 会用白色背景图替换原背景图。
注意: 该参数仅在自定义背景图类型为 AgoraVirtualBackgroundImg 时生效。
- blurDegree
- 自定义背景图的模糊程度。详见 AgoraBlurDegree。
注意: 该参数仅在自定义背景图类型为 AgoraVirtualBackgroundBlur 时生效。
WatermarkOptions
水印图片的设置。
__attribute__((visibility("default"))) @interface WatermarkOptions : NSObject @property(assign, nonatomic) BOOL visibleInPreview; @property(assign, nonatomic) CGRect positionInLandscapeMode; @property(assign, nonatomic) CGRect positionInPortraitMode; @end
属性
- visibleInPreview
- 预留参数。
- positionInLandscapeMode
- 横屏模式下,显示水印图片的区域。该参数包含以下成员:
- x:水印相对左上角的横向偏移。
- y:水印相对左上角的纵向偏移。
- width:水印区域的宽(pixel)。
- height:水印区域的高(pixel)。
- positionInPortraitMode
- 竖屏模式下,显示水印图片的区域。该参数包含以下成员:
- x:水印相对左上角的横向偏移。
- y:水印相对左上角的纵向偏移。
- width:水印区域的宽(pixel)。
- height:水印区域的高(pixel)。