#include <IAgoraRtcEngine.h>
被 agora::rtc::IRtcEngine2 继承.
Public 类型 | |
typedef unsigned int | WindowIDType |
typedef HWND | WindowIDType |
Public 成员函数 | |
virtual int | initialize (const RtcEngineContext &context)=0 |
virtual int | setChannelProfile (CHANNEL_PROFILE_TYPE profile)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role)=0 |
virtual int | setClientRole (CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0 |
virtual int | joinChannel (const char *token, const char *channelId, const char *info, uid_t uid)=0 |
virtual int | joinChannel (const char *token, const char *channelId, const char *info, uid_t uid, const ChannelMediaOptions &options)=0 |
virtual int | switchChannel (const char *token, const char *channelId)=0 |
virtual int | switchChannel (const char *token, const char *channelId, const ChannelMediaOptions &options)=0 |
virtual int | leaveChannel ()=0 |
virtual int | setAVSyncSource (const char *channelId, uid_t uid)=0 |
virtual int | renewToken (const char *token)=0 |
virtual int | queryInterface (INTERFACE_ID_TYPE iid, void **inter)=0 |
virtual int | registerLocalUserAccount (const char *appId, const char *userAccount)=0 |
virtual int | joinChannelWithUserAccount (const char *token, const char *channelId, const char *userAccount)=0 |
virtual int | joinChannelWithUserAccount (const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options)=0 |
virtual int | getUserInfoByUserAccount (const char *userAccount, UserInfo *userInfo)=0 |
virtual int | getUserInfoByUid (uid_t uid, UserInfo *userInfo)=0 |
virtual int | startEchoTest ()=0 |
virtual int | startEchoTest (int intervalInSeconds)=0 |
virtual int | startEchoTest (const EchoTestConfiguration &config)=0 |
virtual int | stopEchoTest ()=0 |
virtual int | setCloudProxy (CLOUD_PROXY_TYPE proxyType)=0 |
virtual int | enableVideo ()=0 |
virtual int | disableVideo ()=0 |
virtual int | setVideoProfile (VIDEO_PROFILE_TYPE profile, bool swapWidthAndHeight)=0 |
virtual int | setVideoEncoderConfiguration (const VideoEncoderConfiguration &config)=0 |
virtual int | setCameraCapturerConfiguration (const CameraCapturerConfiguration &config)=0 |
virtual int | setupLocalVideo (const VideoCanvas &canvas)=0 |
virtual int | setupRemoteVideo (const VideoCanvas &canvas)=0 |
virtual int | startPreview ()=0 |
virtual int | setRemoteUserPriority (uid_t uid, PRIORITY_TYPE userPriority)=0 |
virtual int | stopPreview ()=0 |
virtual int | enableAudio ()=0 |
virtual int | enableLocalAudio (bool enabled)=0 |
virtual int | disableAudio ()=0 |
virtual int | setAudioProfile (AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario)=0 |
virtual int | muteLocalAudioStream (bool mute)=0 |
virtual int | muteAllRemoteAudioStreams (bool mute)=0 |
virtual int | setDefaultMuteAllRemoteAudioStreams (bool mute)=0 |
virtual int | adjustUserPlaybackSignalVolume (unsigned int uid, int volume)=0 |
virtual int | muteRemoteAudioStream (uid_t userId, bool mute)=0 |
virtual int | muteLocalVideoStream (bool mute)=0 |
virtual int | enableLocalVideo (bool enabled)=0 |
virtual int | muteAllRemoteVideoStreams (bool mute)=0 |
virtual int | setDefaultMuteAllRemoteVideoStreams (bool mute)=0 |
virtual int | muteRemoteVideoStream (uid_t userId, bool mute)=0 |
virtual int | setRemoteVideoStreamType (uid_t userId, REMOTE_VIDEO_STREAM_TYPE streamType)=0 |
virtual int | setRemoteDefaultVideoStreamType (REMOTE_VIDEO_STREAM_TYPE streamType)=0 |
virtual int | enableWirelessAccelerate (bool enabled)=0 |
virtual int | enableAudioVolumeIndication (int interval, int smooth, bool report_vad)=0 |
virtual int | enableLocalVoicePitchCallback (int interval)=0 |
virtual int | startAudioRecording (const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0 |
virtual int | startAudioRecording (const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)=0 |
virtual int | startAudioRecording (const AudioRecordingConfiguration &config)=0 |
virtual int | stopAudioRecording ()=0 |
virtual int | startAudioMixing (const char *filePath, bool loopback, bool replace, int cycle)=0 |
virtual int | startAudioMixing (const char *filePath, bool loopback, bool replace, int cycle, int startPos)=0 |
virtual int | setAudioMixingPlaybackSpeed (int speed)=0 |
virtual int | stopAudioMixing ()=0 |
virtual int | pauseAudioMixing ()=0 |
virtual int | selectAudioTrack (int index)=0 |
virtual int | getAudioTrackCount ()=0 |
virtual int | setAudioMixingDualMonoMode (agora::media::AUDIO_MIXING_DUAL_MONO_MODE mode)=0 |
virtual int | resumeAudioMixing ()=0 |
virtual int | setHighQualityAudioParameters (bool fullband, bool stereo, bool fullBitrate)=0 |
virtual int | adjustAudioMixingVolume (int volume)=0 |
virtual int | adjustAudioMixingPlayoutVolume (int volume)=0 |
virtual int | getAudioMixingPlayoutVolume ()=0 |
virtual int | adjustAudioMixingPublishVolume (int volume)=0 |
virtual int | getAudioMixingPublishVolume ()=0 |
virtual int | getAudioMixingDuration ()=0 |
virtual int | getAudioMixingCurrentPosition ()=0 |
virtual int | setAudioMixingPosition (int pos)=0 |
virtual int | setAudioMixingPitch (int pitch)=0 |
virtual int | getEffectsVolume ()=0 |
virtual int | setEffectsVolume (int volume)=0 |
virtual int | setVolumeOfEffect (int soundId, int volume)=0 |
virtual int | enableFaceDetection (bool enable)=0 |
virtual int | playEffect (int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false)=0 |
virtual int | playEffect (int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish, int startPos)=0 |
virtual int | stopEffect (int soundId)=0 |
virtual int | stopAllEffects ()=0 |
virtual int | preloadEffect (int soundId, const char *filePath)=0 |
virtual int | unloadEffect (int soundId)=0 |
virtual int | pauseEffect (int soundId)=0 |
virtual int | pauseAllEffects ()=0 |
virtual int | resumeEffect (int soundId)=0 |
virtual int | resumeAllEffects ()=0 |
virtual int | getEffectDuration (const char *filePath)=0 |
virtual int | setEffectPosition (int soundId, int pos)=0 |
virtual int | getEffectCurrentPosition (int soundId)=0 |
virtual int | getAudioFileInfo (const char *filePath)=0 |
virtual int | enableDeepLearningDenoise (bool enable)=0 |
virtual int | enableSoundPositionIndication (bool enabled)=0 |
virtual int | setRemoteVoicePosition (uid_t uid, double pan, double gain)=0 |
virtual int | setLocalVoicePitch (double pitch)=0 |
virtual int | setLocalVoiceEqualization (AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0 |
virtual int | setLocalVoiceReverb (AUDIO_REVERB_TYPE reverbKey, int value)=0 |
virtual int | setLocalVoiceChanger (VOICE_CHANGER_PRESET voiceChanger)=0 |
virtual int | setLocalVoiceReverbPreset (AUDIO_REVERB_PRESET reverbPreset)=0 |
virtual int | setVoiceBeautifierPreset (VOICE_BEAUTIFIER_PRESET preset)=0 |
virtual int | setAudioEffectPreset (AUDIO_EFFECT_PRESET preset)=0 |
virtual int | setVoiceConversionPreset (VOICE_CONVERSION_PRESET preset)=0 |
virtual int | setAudioEffectParameters (AUDIO_EFFECT_PRESET preset, int param1, int param2)=0 |
virtual int | setVoiceBeautifierParameters (VOICE_BEAUTIFIER_PRESET preset, int param1, int param2)=0 |
virtual int | setLogFile (const char *filePath)=0 |
virtual int | setLogFilter (unsigned int filter)=0 |
virtual int | setLogFileSize (unsigned int fileSizeInKBytes)=0 |
virtual int | setLocalRenderMode (RENDER_MODE_TYPE renderMode)=0 |
virtual int | setLocalRenderMode (RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | setRemoteRenderMode (uid_t userId, RENDER_MODE_TYPE renderMode)=0 |
virtual int | setRemoteRenderMode (uid_t userId, RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | setLocalVideoMirrorMode (VIDEO_MIRROR_MODE_TYPE mirrorMode)=0 |
virtual int | enableDualStreamMode (bool enabled)=0 |
virtual int | setExternalAudioSource (bool enabled, int sampleRate, int channels)=0 |
virtual int | setExternalAudioSink (bool enabled, int sampleRate, int channels)=0 |
virtual int | setRecordingAudioFrameParameters (int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0 |
virtual int | setPlaybackAudioFrameParameters (int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0 |
virtual int | setMixedAudioFrameParameters (int sampleRate, int samplesPerCall)=0 |
virtual int | adjustRecordingSignalVolume (int volume)=0 |
virtual int | adjustPlaybackSignalVolume (int volume)=0 |
virtual int | adjustLoopbackRecordingSignalVolume (int volume)=0 |
virtual int | enableWebSdkInteroperability (bool enabled)=0 |
virtual int | setVideoQualityParameters (bool preferFrameRateOverImageQuality)=0 |
virtual int | setLocalPublishFallbackOption (STREAM_FALLBACK_OPTIONS option)=0 |
virtual int | setRemoteSubscribeFallbackOption (STREAM_FALLBACK_OPTIONS option)=0 |
virtual int | switchCamera ()=0 |
virtual int | setDefaultAudioRouteToSpeakerphone (bool defaultToSpeaker)=0 |
virtual int | setEnableSpeakerphone (bool speakerOn)=0 |
virtual int | enableInEarMonitoring (bool enabled)=0 |
virtual int | setInEarMonitoringVolume (int volume)=0 |
virtual bool | isSpeakerphoneEnabled ()=0 |
virtual int | setAudioSessionOperationRestriction (AUDIO_SESSION_OPERATION_RESTRICTION restriction)=0 |
virtual int | enableLoopbackRecording (bool enabled, const char *deviceName=NULL)=0 |
virtual IScreenCaptureSourceList * | getScreenCaptureSources (const SIZE &thumbSize, const SIZE &iconSize, const bool includeScreen)=0 |
virtual int | startScreenCaptureByDisplayId (unsigned int displayId, const Rectangle ®ionRect, const ScreenCaptureParameters &captureParams)=0 |
virtual int | startScreenCaptureByScreenRect (const Rectangle &screenRect, const Rectangle ®ionRect, const ScreenCaptureParameters &captureParams)=0 |
virtual int | startScreenCaptureByWindowId (view_t windowId, const Rectangle ®ionRect, const ScreenCaptureParameters &captureParams)=0 |
virtual int | setScreenCaptureContentHint (VideoContentHint contentHint)=0 |
virtual int | setScreenCaptureScenario (SCREEN_SCENARIO_TYPE screenScenario)=0 |
virtual int | updateScreenCaptureParameters (const ScreenCaptureParameters &captureParams)=0 |
virtual int | updateScreenCaptureRegion (const Rectangle ®ionRect)=0 |
virtual int | stopScreenCapture ()=0 |
virtual int | startScreenCapture (WindowIDType windowId, int captureFreq, const Rect *rect, int bitrate)=0 |
virtual int | updateScreenCaptureRegion (const Rect *rect)=0 |
virtual bool | setVideoSource (IVideoSource *source)=0 |
virtual int | getCallId (agora::util::AString &callId)=0 |
virtual int | rate (const char *callId, int rating, const char *description)=0 |
virtual int | complain (const char *callId, const char *description)=0 |
virtual const char * | getVersion (int *build)=0 |
virtual int | enableLastmileTest ()=0 |
virtual int | disableLastmileTest ()=0 |
virtual int | startLastmileProbeTest (const LastmileProbeConfig &config)=0 |
virtual int | stopLastmileProbeTest ()=0 |
virtual const char * | getErrorDescription (int code)=0 |
virtual int | setEncryptionSecret (const char *secret)=0 |
virtual int | setEncryptionMode (const char *encryptionMode)=0 |
virtual int | enableEncryption (bool enabled, const EncryptionConfig &config)=0 |
virtual int | registerPacketObserver (IPacketObserver *observer)=0 |
virtual int | createDataStream (int *streamId, bool reliable, bool ordered)=0 |
virtual int | createDataStream (int *streamId, DataStreamConfig &config)=0 |
virtual int | sendStreamMessage (int streamId, const char *data, size_t length)=0 |
virtual int | addPublishStreamUrl (const char *url, bool transcodingEnabled)=0 |
virtual int | removePublishStreamUrl (const char *url)=0 |
virtual int | setLiveTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | startRtmpStreamWithoutTranscoding (const char *url)=0 |
virtual int | startRtmpStreamWithTranscoding (const char *url, const LiveTranscoding &transcoding)=0 |
virtual int | updateRtmpTranscoding (const LiveTranscoding &transcoding)=0 |
virtual int | stopRtmpStream (const char *url)=0 |
virtual int | addVideoWatermark (const RtcImage &watermark)=0 |
virtual int | addVideoWatermark (const char *watermarkUrl, const WatermarkOptions &options)=0 |
virtual int | clearVideoWatermarks ()=0 |
virtual int | setBeautyEffectOptions (bool enabled, BeautyOptions options)=0 |
virtual int | setColorEnhanceOptions (bool enabled, ColorEnhanceOptions options)=0 |
virtual int | setLowlightEnhanceOptions (bool enabled, LowLightEnhanceOptions options)=0 |
virtual int | setVideoDenoiserOptions (bool enabled, VideoDenoiserOptions options)=0 |
virtual int | enableVirtualBackground (bool enabled, VirtualBackgroundSource backgroundSource)=0 |
virtual int | startChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | updateChannelMediaRelay (const ChannelMediaRelayConfiguration &configuration)=0 |
virtual int | pauseAllChannelMediaRelay ()=0 |
virtual int | resumeAllChannelMediaRelay ()=0 |
virtual int | stopChannelMediaRelay ()=0 |
virtual bool | registerEventHandler (IRtcEngineEventHandler *eventHandler)=0 |
virtual bool | unregisterEventHandler (IRtcEngineEventHandler *eventHandler)=0 |
virtual int | sendCustomReportMessage (const char *id, const char *category, const char *event, const char *label, int value)=0 |
virtual CONNECTION_STATE_TYPE | getConnectionState ()=0 |
virtual int | enableRemoteSuperResolution (uid_t userId, bool enable) AGORA_DEPRECATED_ATTRIBUTE=0 |
virtual int | enableRemoteSuperResolution (bool enabled, SR_MODE mode, uid_t userId)=0 |
virtual int | registerMediaMetadataObserver (IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0 |
virtual int | setParameters (const char *parameters)=0 |
virtual int | setLocalVideoRenderer (IVideoSink *videoSink)=0 |
virtual int | setRemoteVideoRenderer (uid_t uid, IVideoSink *videoSink)=0 |
virtual int | setLocalAccessPoint (const LocalAccessPointConfiguration &config)=0 |
virtual int | setCameraTorchOn (bool isOn)=0 |
virtual bool | isCameraTorchSupported ()=0 |
virtual int | takeSnapshot (const char *channel, uid_t uid, const char *filePath)=0 |
virtual int | enableContentInspect (bool enabled, const ContentInspectConfig &config)=0 |
静态 Public 成员函数 | |
static AGORA_CPP_API void | release (bool sync=false) |
Protected 成员函数 | |
virtual | ~IRtcEngine () |
IRtcEngine 类提供了供 App 调用的主要接口方法。
IRtcEngine 是声网 Native SDK 的基础接口类。创建一个 IRtcEngine 对象并调用这个对象的方法可以激活 Native SDK 的通信功能。
typedef unsigned int agora::rtc::IRtcEngine::WindowIDType |
typedef HWND agora::rtc::IRtcEngine::WindowIDType |
|
inlineprotectedvirtual |
|
pure virtual |
初始化 SDK 服务。
请确保在调用其他 API 前先调用 createAgoraRtcEngine 和 initialize 创建并初始化 IRtcEngine。
context | 详见 RtcEngineContext 。 |
|
static |
销毁 IRtcEngine 对象。
该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作, 该方法适用于此类情况。调用 release
方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能, 你必须重新依次调用 createAgoraRtcEngine 和 initialize 方法创建一个新的 IRtcEngine
对象。
IRtcEngine
对象,需要等待 release
方法执行结束后再创建实例。sync |
|
|
pure virtual |
设置频道场景。
SDK 初始化后默认的频道场景为通信场景,你可以调用该方法设置声网频道的使用场景。声网会针对不同的使用场景采用不同的优化策略,如通信场景偏好流畅,直播场景偏好画质。
profile | 频道使用场景: CHANNEL_PROFILE_TYPE |
|
pure virtual |
设置直播场景下的用户角色。
调用 setChannelProfile (CHANNEL_PROFILE_LIVE_BROADCASTING) 后,SDK 会默认设置用户 角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
role | 直播场景里的用户角色: CLIENT_ROLE_TYPE |
options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。
|
pure virtual |
设置直播场景下的用户角色。
直播场景下,SDK 会默认设置用户角色为观众,你可以调用 setClientRole
设置用户角色为主播。
该方法在加入频道前后均可调用。如果你在加入频道后调用该方法切换用户角色,调用成功后,SDK 会自动进行如下操作:
role
)确定用户在 SDK 层的权限,包含是否可以发送流、是否可以接收流、是否可以推流到 CDN 等。level
)需要与角色结合使用,确定用户在其权限范围内,可以操作和享受到的服务级别。例如对于观众,选择接收低延时还是超低延时的视频流。**用户级别会影响计费**。role | 直播场景中的用户角色,详见 CLIENT_ROLE_TYPE |
options | 用户具体设置,包含用户级别,详见 ClientRoleOptions |
options
参数的 joinChannel
,并使用默认设置 publishLocalAudio = true
或 publishLocalVideo = true
。setClientRole
,并设置用户角色为主播。muteLocalAudioStream(false)
或 muteLocalVideoStream(false)
。
|
pure virtual |
加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。 使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。 成功调用该方加入频道后,本地会触发 onJoinChannelSuccess 回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 onUserJoined 回调。 在网络状况不理想的情况下,客户端可能会与声网的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 onRejoinChannelSuccess 回调。
用户成功加入(切换)频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
info | (非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
uid | (非必选项) 用户 ID,32位无符号整数。建议设置范围:1到 232-1,并保证唯一性。如果不指定(即设为0),SDK 会自动分配一个,并在 onJoinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
-2(ERR_INVALID_ARGUMENT)
: 参数无效。-3(ERR_NOT_READY)
: SDK 初始化失败,请尝试重新初始化 SDK。-5(ERR_REFUSED)
: 调用被拒绝。可能有如下两个原因:-7(ERR_NOT_INITIALIZED)
: SDK 尚未初始化,就调用该方法。请确认在调用 API 之前已创建 IRtcEngine 对象并完成初始化。-17(ERR_JOIN_CHANNEL_REJECTED)
: 加入频道被拒绝。由于 SDK 仅支持用户同一时间加入一个 IRtcEngine 频道, 当已经加入 IRtcEngine 频道的用户使用有效的频道名再次调用 IRtcEngine 类中的加入频道方法时,会返回此错误码。
|
pure virtual |
加入频道并设置是否发布或自动订阅音频或视频流。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的 App 是不能互通的。 如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方法加入频道后,本地会触发 onJoinChannelSuccess 回调; 通信场景下的用户和直播场景下的主播加入频道后,远端会触发 onUserJoined 回调。
在网络状况不理想的情况下,客户端可能会与声网的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 onRejoinChannelSuccess 回调。
options
参数,用于配置用户加入频道时是否发布或自动订阅音视频流。默认情况下,用户发布本地音视频流并自动订阅频道内所有其他用户的音视频流。 订阅音视频流会产生用量并影响计费。如果想取消订阅,可以通过设置 options
参数或相应的 mute
方法实现。token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
info | (非必选项) 预留参数。 |
uid | (非必选项) 用户 ID,32位无符号整数。建议设置范围:1到 232-1,并保证唯一性。如果不指定(即设为0),SDK 会自动分配一个, 并在 onJoinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 请注意:频道内每个用户的 UID 必须是唯一的。如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 UID 是不同的。 |
options | 频道媒体设置选项: ChannelMediaOptions |
-2(ERR_INVALID_ARGUMENT)
: 参数无效。-3(ERR_NOT_READY)
: SDK 初始化失败,请尝试重新初始化 SDK。-5(ERR_REFUSED)
: 调用被拒绝。可能有如下两个原因:-7(ERR_NOT_INITIALIZED)
: SDK 尚未初始化,就调用该方法。请确认在调用 API 之前已创建 IRtcEngine 对象并完成初始化。-17(ERR_JOIN_CHANNEL_REJECTED)
: 加入频道被拒绝。由于 SDK 仅支持用户同一时间加入一个 IRtcEngine 频道, 当已经加入 IRtcEngine 频道的用户使用有效的频道名再次调用 IRtcEngine 类中的加入频道方法时,会返回此错误码。
|
pure virtual |
快速切换直播频道。
当直播频道中的观众想从一个频道切换到另一个频道时,可以调用该方法,实现快速切换。
成功调用该方切换频道后,本地会先收到离开原频道的回调 onLeaveChannel,再收到成功加入新频道的回调 onJoinChannelSuccess。
用户成功加入(切换)频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围 (共 89 个字符):
|
|
pure virtual |
快速切换直播频道,并设置是否自动订阅音频流或视频流。
当直播频道中的观众想从一个频道切换到另一个频道时,可以调用该方法,实现快速切换。
成功调用该方切换频道后,本地会先收到离开原频道的回调 onLeaveChannel,再收到成功加入新频道的回调 onJoinChannelSuccess。
用户成功切换频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
options
参数,用于配置终端用户在切换到新的频道时是否自动订阅频道内所有远端音视频流。token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围 (共 89 个字符):
|
options | 频道媒体设置选项: ChannelMediaOptions |
|
pure virtual |
离开频道。
离开频道,即挂断或退出通话。
当调用 joinChannel 方法后,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用 leaveChannel,没有副作用。该方法会把会话相关的所有资源释放掉。 该方法是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK 会触发 onLeaveChannel 回调。 成功调用该方法离开频道后,本地会触发 onLeaveChannel 回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 onUserOffline 回调。
|
pure virtual |
设置发流端音画同步。
同一用户可能使用两个设备分别发送音频流和视频流,为保证接收端听到和看到的音频和视频的时间同步性,你可以在视频发送端调用该方法,并传入音频发送端的频道名、用户 ID。 SDK 会以发送的音频流的时间戳为基准进行自动调节发送的视频流,以保证即使在两个发送端的上行网络情况不一致(如分别使用 Wi-Fi 和 4G 网络)的情况下,也能让接收到的音视频具有时间同步性。
channelId | 标识音频发送端所在频道的频道名。 |
uid | 音频发送端的用户 ID。 |
|
pure virtual |
更新 Token。
该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
App 应重新获取 Token,然后调用该方法更新 Token,否则 SDK 无法和服务器建立连接。
token | 新的 Token。 |
|
pure virtual |
获取设备管理员对象的指针。
iid | 想要获取的接口的接口。 |
inter | 指向 DeviceManager 对象的指针。 |
|
pure virtual |
注册本地用户 User Account。
该方法为本地用户注册一个 User Account。注册成功后,该 User Account 即可标识该本地用户的身份,用户可以使用它加入频道。成功注册 User Account 后,本地会触发 onLocalUserRegistered 回调,告知本地用户的 UID 和 User Account。
该方法为可选。如果你希望用户使用 User Account 加入频道,可以选用以下两种方式:
两种方式的区别在于,提前调用 registerLocalUserAccount,可以缩短使用 joinChannelWithUserAccount 进入频道的时间。
userAccount
不能为空,否则该方法不生效。userAccount
在频道中的唯一性。appId | 你的项目在声网控制台注册的 App ID |
userAccount | 用户 User Account。该参数为必填,最大不超过 255 字节,不可填 null 。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
|
pure virtual |
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
用户成功加入频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
|
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null 。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
ERR_JOIN_CHANNEL_REJECTED(-17)
: 加入频道被拒绝。由于 SDK 仅支持用户同一时间加入一个 IRtcEngine 频道, 当已经加入 IRtcEngine 频道的用户使用有效的频道名再次调用 IRtcEngine 类中的加入频道方法时,会返回此错误码。
|
pure virtual |
使用 User Account 加入频道,并设置是否发布或自动订阅音频或视频流。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
用户成功加入频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
options
参数,用于配置用户加入频道时是否发布或自动订阅音视频流。默认情况下,用户发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。如果想取消订阅, 可以通过设置 options
参数或相应的 mute
方法实现。token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
|
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null 。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
options | 频道媒体设置选项: ChannelMediaOptions |
ERR_JOIN_CHANNEL_REJECTED(-17)
: 加入频道被拒绝。由于 SDK 仅支持用户同一时间加入一个 IRtcEngine 频道, 当已经加入 IRtcEngine 频道的用户使用有效的频道名再次调用 IRtcEngine 类中的加入频道方法时,会返回此错误码。
|
pure virtual |
通过 User Account 获取用户信息。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发 onUserInfoUpdated 回调。收到这个回调后,你可以调用该方法, 通过传入 User Account 获取包含了指定用户 UID 的 UserInfo
对象。
userAccount | 用户 User Account。该参数为必填 | |
[in,out] | userInfo | 标识用户信息的 UserInfo 对象:
|
|
pure virtual |
通过 UID 获取用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发 onUserInfoUpdated 回调。收到这个回调后,你可以调用该方法, 通过传入 UID 获取包含了指定用户 User Account 的 UserInfo
对象。
uid | 用户 UID。该参数为必填 | |
[in,out] | userInfo | 标识用户信息的 UserInfo 对象:
|
|
pure virtual |
该方法自 v2.4.0 起废弃。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。在测试过程中,用户先说一段话,声音会在设置的时间间隔(单位为秒)后回放出来。如果用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。
|
pure virtual |
开始语音通话回路测试。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。 在测试过程中,用户先说一段话,声音会在设置的时间间隔(单位为秒)后回放出来。 如果用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。
intervalInSeconds | 设置返回语音通话回路测试结果的时间间隔,取值范围为 [2, 10],单位为秒,默认为 10 秒。 |
|
pure virtual |
开始音视频通话回路测试。
加入频道前,为测试用户本地发流、收流是否正常,你可以调用该方法进行音视频通话回路测试,即测试系统的音视频设备和用户的上下行网络是否正常。
开始测试后,用户需发出声音或面对摄像头,音频或视频会在约 2 秒后播放出来。如果音频播放正常,则表示系统音频设备和用户上下行网络均正常; 如果视频播放正常,则表示系统视频设备和用户上下行网络均正常。
config | 音视频通话回路测试的配置。详见 EchoTestConfiguration。 |
|
pure virtual |
停止通话回路测试。
调用 startEchoTest [2/3]
或 startEchoTest [3/3]
后,如果你想停止通话回路测试,请调用本方法。
|
pure virtual |
设置声网云代理服务。
当用户的网络访问受到防火墙限制时,你需要将声网提供的 IP 和端口号添加到防火墙白名单,然后调用该方法开启云代理,并通过 proxyType
参数设置云代理类型。
成功连接云代理后,SDK 会触发 onConnectionStateChanged (CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER) 回调。
自 v3.6.2 起,当用户调用该方法并成功加入频道后,SDK 会触发 onProxyConnected 回调,报告用户 ID、连接的代理类型和用户调用 joinChannel 到 SDK 触发该回调的经过的时间等。
如果你想关闭已设置的云代理,请调用 setCloudProxy(NONE_PROXY)
。如果你想更改已设置的云代理类型, 请先调用 setCloudProxy(NONE_PROXY)
,再调用 setCloudProxy
并传入你期望的 proxyType
值。
proxyType | 云代理类型,详见 CLOUD_PROXY_TYPE 。该参数为必填参数,如果你不赋值,SDK 会报错。 |
-2(ERR_INVALID_ARGUMENT)
: 传入的参数无效-7(ERR_NOT_INITIALIZED)
: SDK 尚未初始化
|
pure virtual |
启用视频模块。
该方法可以在加入频道前或者通话中调用,在加入频道前调用则自动开启视频模块;在通话中调用则由音频模式切换为视频模式。 调用 disableVideo 方法可关闭视频模式。 成功调用该方法后,远端会触发 onUserEnableVideo (true) 回调。
|
pure virtual |
关闭视频模块。
该方法可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频模式。 调用 enableVideo 方法可开启视频模式。 成功调用该方法后,远端会触发 onUserEnableVideo (false) 回调
|
pure virtual |
设置视频编码配置。
该方法自 v2.3 起废弃。请改用 setVideoEncoderConfiguration 方法。
该方法设置视频编码属性(Profile)。每个属性对应一套视频参数,如分辨率、帧率、码率等。 当设备的摄像头不支持指定的分辨率时,SDK 会自动选择一个合适的摄像头分辨率,但是编码分辨率仍然用 setVideoProfile 指定的。
profile | 视频属性。详见: VIDEO_PROFILE_TYPE 。 |
swapWidthAndHeight | SDK 会按照你选择的视频属性 (profile) 输出固定宽高的视频。该参数设置是否交换宽和高:
|
你可以直接通过视频属性 (profile) 来定义输出的视频是 Landscape(横屏)还是 Portrait(竖屏)模式,因此 声网建议你将参数设置为默认值。
|
pure virtual |
设置视频编码属性。
设置本地视频的编码属性。
config | 视频编码参数配置。详见: VideoEncoderConfiguration 。 |
|
pure virtual |
设置摄像头采集配置。
一般的视频通话或直播中,默认由 SDK 自动控制摄像头的输出参数。在如下特殊场景中,默认的参数通常无法满足需求,或可能引起设备性能问题,我们推荐调用该方法设置摄像头的采集偏好:
config | 摄像头采集配置,详见 CameraCapturerConfiguration 。 |
|
pure virtual |
初始化本地视图。
该方法初始化本地视图并设置本地用户视频显示信息,只影响本地用户看到的视频画面,不影响本地发布视频。调用该方法绑定本地视频流的显示视窗(view),并设置本地用户视图的渲染模式和镜像模式。
在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效,如果需要解除绑定,可以指定空(NULL)View 调用 setupLocalVideo。
canvas | 视频画布信息: VideoCanvas 。 |
|
pure virtual |
初始化远端用户视图。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
调用该接口时需要指定远端视频的 uid,一般可以在进频道前提前设置好。
如果 App 不能事先知道对方的 uid,可以在 APP 收到 onUserJoined 事件时设置。 如果启用了视频录制功能,视频录制服务会做为一个哑客户端加入频道,因此其他客户端也会收到它的 onUserJoined 事件,App 不应给它绑定视图(因为它不会发送视频流),如果 App 不能识别哑客户端,可以在 onFirstRemoteVideoDecoded 事件时再绑定视图。 解除某个用户的绑定视图可以把 view 设置为空。退出频道后,SDK 会把远端用户的绑定关系清除掉。
canvas | 视频画布信息: VideoCanvas 。 |
|
pure virtual |
开启视频预览。
该方法用于在进入频道前启动本地视频预览。调用该 API 前,必须:
启用了本地视频预览后,如果调用 leaveChannel 退出频道,本地预览依然处于启动状态,如需要关闭本地预览,需要调用 stopPreview。
|
pure virtual |
设置远端用户流的优先级。
设置远端用户的优先级。如果将某个用户的优先级设为高,那么发给这个用户的音视频流的优先级就会高于其他用户。 弱网下 SDK 会优先保证高优先级用户收到的流的质量。
uid | 远端用户的 ID。 |
userPriority | 远端用户的需求优先级。详见: PRIORITY_TYPE 。 |
|
pure virtual |
停止本地视频预览。
调用 startPreview 后,如果你想关闭本地视频预览,请调用 stopPreview
。
|
pure virtual |
启用音频模块。
启用音频模块(默认为开启状态)。
|
pure virtual |
开关本地音频采集。
当用户加入频道时,语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收远端音频流,enableLocalAudio(false) 适用于只听不发的用户场景。
语音功能关闭或重新开启后,会收到回调 onLocalAudioStateChanged, 并报告 LOCAL_AUDIO_STREAM_STATE_STOPPED(0)
或 LOCAL_AUDIO_STREAM_STATE_RECORDING(1)
。
enableLocalAudio
关闭或开启本地采集后,本地听远端播放会有短暂中断。enabled |
|
|
pure virtual |
关闭音频模块。
|
pure virtual |
设置音频编码属性。
profile | 设置采样率,码率,编码模式和声道数: AUDIO_PROFILE_TYPE 。 |
scenario | 设置音频应用场景: AUDIO_SCENARIO_TYPE 。不同的音频场景下,设备的音量类型是不同的。详见如何区分媒体音量和通话音量。 |
|
pure virtual |
取消或恢复发布本地音频流。
自 v3.4.5 起,该方法仅设置用户在 IRtcEngine 频道中的音频发布状态。
成功调用该方法后,远端会触发 onUserMuteAudio 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 muteLocalAudioStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地音频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。
|
pure virtual |
取消或恢复订阅所有远端用户的音频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
muteAllRemoteAudioStreams
和 setDefaultMuteAllRemoteAudioStreams
,否则设置可能会不生效。详见《设置订阅状态》。mute | 是否取消订阅所有远端用户的音频流。
|
|
pure virtual |
默认取消或恢复订阅远端用户的音频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的音频流:
|
|
pure virtual |
调节本地播放的指定远端用户信号音量。
你可以在通话中调用该方法调节指定远端用户在本地播放的音量。如需调节多个用户在本地播放的音量,则需多次调用该方法。
uid | 远端用户 ID。 |
volume | 播放音量,取值范围为 [0,100],其中:
|
|
pure virtual |
取消或恢复订阅指定远端用户的音频流。
userId | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的音频流。
|
|
pure virtual |
取消或恢复发布本地视频流。
自 v3.4.5 起,该方法仅设置用户在 IRtcEngine 频道中的视频发布状态。
成功调用该方法后,远端会触发 onUserMuteVideo 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 muteLocalVideoStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地视频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。
|
pure virtual |
开关本地视频采集。
该方法禁用或重新启用本地视频采集,不影响接收远端视频。
调用 enableVideo 后,本地视频即默认开启。你可以调用 enableLocalVideo(false) 关闭本地视频采集。关闭后如果想要重新开启,则可调用 enableLocalVideo(true)。
成功禁用或启用本地视频采集后,远端会触发 onUserEnableLocalVideo 回调。
enabled |
|
|
pure virtual |
取消或恢复订阅所有远端用户的视频流。
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
mute | 是否取消订阅所有远端用户的视频流。
|
|
pure virtual |
默认取消或恢复订阅远端用户的视频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的视频流:
|
|
pure virtual |
取消或恢复订阅指定远端用户的视频流。
userId | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的视频流。
|
|
pure virtual |
设置订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode (false) 关闭双流模式,接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需接收小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 onApiCallExecuted 中返回。
setRemoteVideoStreamType
,也调用了 setRemoteDefaultVideoStreamType,则 SDK 以 setRemoteVideoStreamType
中的设置为准。userId | 用户 ID。 |
streamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE 。 |
|
pure virtual |
设置默认订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode (false) 关闭双流模式, 接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流, 小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需默认接收所有用户的视频小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认 的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 onApiCallExecuted 中返回。
setRemoteVideoStreamType
,则 SDK 以 setRemoteVideoStreamType
中的设置为准。streamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE 。 |
|
pure virtual |
开启或关闭 Wi-Fi 加速功能。
当 SDK 发现集成加速插件的 Wi-Fi 路由器后,该功能才会生效,使路由器合理分配 Wi-Fi 频谱资源,以降低丢包率和时延,从而减少音视频卡顿。
当路由器提供加速服务后,SDK 会周期性触发 onWlAccStats 回调,报告 Wi-Fi 连接优化数据,并在 Wi-Fi 连接质量不佳时触发 onWlAccMessage 回调,报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。
enableWirelessAccelerate(false)
关闭加速功能。enabled | 设置是否开启 Wi-Fi 加速功能:
|
|
pure virtual |
启用用户音量提示。
该方法允许 SDK 定期向 app 报告本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息。启用该方法后,只要频道内有发流用户, SDK 会在加入频道后按设置的时间间隔触发 onAudioVolumeIndication 回调。
interval | 指定音量提示的时间间隔:
|
smooth | 平滑系数,指定音量提示的灵敏度。取值范围为 [0,10],建议值为 3。数字越大,波动越灵敏;数字越小,波动越平滑。 |
report_vad |
|
|
pure virtual |
开启本地语音音调回调。
该方法允许 SDK 定期向 app 报告本地用户的语音音调。开启本地音频采集并调用该方法后,SDK 会按设置的时间间隔触发 onLocalVoicePitchInHz 回调。
interval | 设置 SDK 触发 onLocalVoicePitchInHz 回调的时间间隔:
|
|
pure virtual |
开始客户端录音。
SDK 支持通话过程中在客户端进行录音。该方法录制频道内所有用户的音频,并生成一个包含所有用户声音的录音文件,录音文件格式可以为:
请确保 App 里指定的目录存在且可写。该接口需在 joinChannel 之后调用。如果调用 leaveChannel 时还在录音,录音会自动停止。
filePath | 录音文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/dir1/dir2/dir3/audio.aac。 |
quality | AUDIO_RECORDING_QUALITY_TYPE 。 |
|
pure virtual |
开始客户端录音。
SDK 支持通话过程中在客户端进行录音。调用该方法后,你可以录制频道内所有用户的音频,并得到一个包含所有用户声音的录音文件。录音文件格式可以为:
sampleRate
设为 44.1 kHz 或 48 kHz 时,建议将 quality
设为 AUDIO_RECORDING_QUALITY_MEDIUM 或 AUDIO_RECORDING_QUALITY_HIGH 。filePath | 录音文件在本地保存的绝对路径,由用户自行指定,需精确到文件名及格式,例如:c:/music/audio.aac。 |
sampleRate | 录音采样率(Hz),可以设为以下值:
|
quality | 录音音质。详见 AUDIO_RECORDING_QUALITY_TYPE 。 |
|
pure virtual |
开始客户端录音。
SDK 支持通话过程中在客户端进行录音。调用该方法后,你可以录制频道内用户的音频,并得到一个录音文件。录音文件格式可以为:
一旦用户离开频道,录音会自动停止。
config | 录音配置。详见 AudioRecordingConfiguration。 |
-160(ERR_ALREADY_IN_RECORDING)
: 客户端正在录音。如需开始新的录音, 请先调用 stopAudioRecording 停止当前录音, 再调用 startAudioRecording
|
pure virtual |
停止客户端录音。
|
pure virtual |
开始播放音乐文件。
指定本地或在线音频文件来和麦克风采集的音频流进行混音和替换。替换是指用音频文件替换音频采集设备采集的音频流。该方法可以选择是否让对方听到本地播 放的音频并指定循环播放的次数。成功调用该方法后,本地会触发 onAudioMixingStateChanged (PLAY) 回调。播放结束后, 会收到 onAudioMixingStateChanged (STOPPED) 回调。
app/Manifests/AndroidManifest.xml
文件中添加 android:usesCleartextTraffic="true"
。filePath | 音乐文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如:C:\music\audio.mp4 。 在 Android 上访问本地文件时,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopback |
|
replace |
|
cycle | 循环播放次数:
|
|
pure virtual |
开始播放音乐文件。
该方法支持将本地或在线音乐文件和麦克风采集的音频进行混音或替换。成功播放音乐文件后,本地 会触发 onAudioMixingStateChanged(AUDIO_MIXING_STATE_PLAYING,AUDIO_MIXING_REASON_STARTED_BY_USER) 回调。 播放结束后,本地会触发 onAudioMixingStateChanged(AUDIO_MIXING_STATE_STOPPED,AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED) 回调。
startAudioMixing
,请确保调用间隔大于 500 ms。/sdcard/
目录下,且格式为 MP3。/app/Manifests/AndroidManifest.xml
文件中添加 android:usesCleartextTraffic="true"
。filePath | 音乐文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如:C:\music\audio.mp4 。 在 Android 上访问本地文件时,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopback | 是否只在本地播放音乐文件:
|
replace | 是否用音乐文件替换麦克风采集的音频:
|
cycle | 音乐文件的播放次数。
|
startPos | 音乐文件的播放位置,单位为毫秒。 |
|
pure virtual |
设置当前音乐文件的播放速度。
speed | 播放速度。推荐取值范围为 [50,400],其中:
|
|
pure virtual |
停止播放音乐文件。
该方法停止播放音乐文件。请在频道内调用该方法。
|
pure virtual |
暂停播放音乐文件。
该方法暂停播放音乐文件。请在频道内调用该方法。
|
pure virtual |
指定当前音乐文件的播放音轨。
获取音乐文件的音轨数量后,你可以调用该方法指定任一音轨进行播放。例如,如果一个多音轨文件的 不同音轨存放了不同语言的歌曲,则你可以调用该方法设置音乐文件的播放语言。
index | 指定的播放音轨。取值范围为 [0, getAudioTrackCount() ). |
|
pure virtual |
获取当前音乐文件的音轨数量。
|
pure virtual |
设置当前音乐文件的声道模式。
在双声道音乐文件中,左声道和右声道可以存储不同的音频数据。根据实际需要,你可以设置声道模式为原始模式、 左声道模式、右声道模式或混合模式。例如,在 KTV 场景中,音乐文件的左声道存储了伴奏,右声道存储了原唱的歌声。 如果你只需听伴奏,调用该方法设置音乐文件的声道模式为左声道模式;如果你需要同时听伴奏和原唱,调用该方法设置声 道模式为混合模式。
mode | 声道模式。详见 AUDIO_MIXING_DUAL_MONO_MODE。 |
|
pure virtual |
恢复播放音乐文件及混音。
该方法恢复混音,继续播放伴奏。请在频道内调用该方法。
|
pure virtual |
设置音频高音质选项。
fullband | 全频带编解码器(48 kHz 采样率), 不兼容 v1.7.4 以前版本
|
stereo | 立体声编解码器,不兼容 v1.7.4 以前版本
|
fullBitrate | 高码率模式,建议仅在纯音频模式下使用
|
|
pure virtual |
调节音乐文件的播放音量。
该方法调节混音音乐文件在本端和远端的播放音量大小。
volume | 音乐文件音量范围为 0~100。100 (默认值)为原始文件音量。 |
|
pure virtual |
调节音乐文件本端播放音量。
该方法调节混音音乐文件在本端的播放音量大小。
volume | 音乐文件音量范围为 0~100。100 (默认值) 为原始文件音量。 |
|
pure virtual |
获取音乐文件的本地播放音量。
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
|
pure virtual |
调节音乐文件远端播放音量。
该方法调节混音音乐文件在远端的播放音量大小。
volume | 音乐文件音量范围为 0~100。100 (默认值) 为原始文件音量。 |
|
pure virtual |
获取音乐文件的远端播放音量
该接口可以方便开发者排查音量相关问题。
|
pure virtual |
获取音乐文件总时长。
该方法获取音乐文件总时长,单位为毫秒。请在频道内调用该方法。
|
pure virtual |
获取音乐文件的播放进度。
该方法获取当前音乐文件播放进度,单位为毫秒。请在频道内调用该方法。
getAudioMixingCurrentPosition
,请确保调用间隔大于 500 ms。
|
pure virtual |
设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。
pos | 整数。进度条位置,单位为毫秒。 |
|
pure virtual |
调整本地播放的音乐文件的音调。
本地人声和播放的音乐文件混音时,调用该方法可以仅调节音乐文件的音调。
pitch | 按半音音阶调整本地播放的音乐文件的音调,默认值为 0,即不调整音调。取值范围为 [-12,12], 每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。 |
|
pure virtual |
|
pure virtual |
设置音效文件的播放音量。
音量范围为 0~100。100 (默认值)为原始文件音量。
volume | 该方法设置音效的音量。 |
|
pure virtual |
实时调整音效文件的播放音量。
soundId | 指定音效的 ID。每个音效均有唯一的 ID。 |
volume | 播放音量。音量范围为 0~100。100 (默认值)为原始文件音量。 |
|
pure virtual |
开启/关闭本地人脸检测。仅适用于 Android 和 iOS。
开启本地人脸检测后,SDK 会触发 onFacePositionChanged 回调向你报告人脸检测的信息:
enable | 是否开启人脸检测:
|
|
pure virtual |
播放指定音效文件。
你可以多次调用该方法,通过传入不同的音效文件的 soundID
和 filePath
,同时播放多个音效文件,实现音效叠加。为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。在 macOS 和 Windows 上,该方法不支持同时播放多个在线音效文件。
app/Manifests/AndroidManifest.xml
文件中添加 android:usesCleartextTraffic="true"
。playEffect
播放在线音效文件,声网建议你将在线音效文件缓存到本地设备,调用 preloadEffect 将缓存的音效文件预加载到内存中,再调用 playEffect
播放音效。否则,可能出现因在线音效文件加载超时、加载失败而导致的播放失败和无声的问题。soundId | 指定音效的 ID。每个音效均有唯一的 ID。如果你已通过 preloadEffect 将音效加载至内存,确保这里设置的 soundId 与 preloadEffect 设置的 soundId 相同。 |
filePath | 音效文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如:C:\music\audio.mp4 。 在 Android 上访问本地文件时,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopCount | 设置音效循环播放的次数:
|
pitch | 设置音效的音调 取值范围为 [0.5, 2]。默认值为 1.0,表示不需要修改音调。取值越小,则音调越低。 |
pan | 设置是否改变音效的空间位置。取值范围为 [-1.0, 1.0]:
|
gain | 设置是否改变单个音效的音量。取值范围为 [0.0, 100.0]。默认值为 100.0。取值越小,则音效的音量越低。 |
publish | 设置是否将音效传到远端:
|
|
pure virtual |
播放指定的本地或在线音效文件。
你可以多次调用该方法,传入不同的 soundId
和 filePath
,同时播放多个音效文件。 为获得最佳用户体验,声网推荐同时播放的音效文件不超过 3 个。
音效文件播放结束后,SDK 会触发 onAudioEffectFinished 回调。
app/Manifests/AndroidManifest.xml
文件中添加 android:usesCleartextTraffic="true"
。playEffect
播放在线音效文件,声网建议你将在线音效文件缓存到本地设备,调用 preloadEffect 将缓存的音效文件预加载到内存中,再调用 playEffect
播放音效。否则,可能出现因在线音效文件加载超时、加载失败而导致的播放失败和无声的问题。soundId | 音效的 ID。每个音效的 ID 具有唯一性。 如果你已通过 preloadEffect 将音效加载至内存, 请确保该参数与 preloadEffect 中设置的 soundId 相同。 |
filePath | 音效文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如:C:\music\audio.mp4 。 如果你已通过 preloadEffect 将音效加载至内存, 请确保该参数与 preloadEffect 中设置的 filePath 相同。 在 Android 上访问本地文件时,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopCount | 音效循环播放的次数。
|
pitch | 音效的音调,取值范围为 [0.5,2.0]。默认值为 1.0,表示原始音调。取值越小,则音调越低。 |
pan | 音效的空间位置。取值范围为 [-1.0,1.0],例如:
|
gain | 音效的音量。取值范围为 [0.0,100.0]。默认值为 100.0,表示原始音量。取值越小,则音量越低。 |
publish | 是否将音效发布至远端:
|
startPos | 音效文件的播放位置,单位为毫秒。 |
|
pure virtual |
停止播放指定音效文件。
soundId | 指定音效文件的 ID。每个音效文件均有唯一的 ID。 |
|
pure virtual |
停止播放所有音效文件。
|
pure virtual |
将音效文件加载至内存。
该方法将指定音效文件预加载至内存。
soundId | 指定音效文件的 ID。每个音效文件均有唯一的 ID。 |
filePath | 音效文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如:C:\music\audio.mp4 。 在 Android 上访问本地文件时,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
|
pure virtual |
从内存释放某个预加载的音效文件。
soundId | 指定音效文件的 ID。每个音效文件均有唯一的 ID |
|
pure virtual |
暂停音效文件播放。
soundId | 指定音效文件的 ID。每个音效文件均有唯一的 ID。 |
|
pure virtual |
暂停所有音效文件播放。
|
pure virtual |
恢复播放指定音效文件。
soundId | 指定音效文件的 ID。每个音效文件均有唯一的 ID。 |
|
pure virtual |
恢复播放所有音效文件。
|
pure virtual |
获取指定音频文件信息。
成功调用该方法后,SDK 会触发 onRequestAudioFileInfo 回调, 报告指定音频文件的时长等信息。你可以多次调用该方法,获取多个音频文件的信息。
getEffectDuration
的行为从“获取指定音效文件总时长”变更为“获取音频文件信息”。filePath | 文件路径:
|
|
pure virtual |
设置指定音效文件的播放位置。
成功设置后,本地音效文件会在指定位置开始播放。
soundId | 音效 ID。请确保与 playEffect 中设置的 soundId 一致。 |
pos | 音效文件的播放位置,单位为毫秒。 |
-22(ERR_RESOURCE_LIMITED)
: 无法找到音效文件。请填写正确的 soundId
|
pure virtual |
获取指定音效文件的播放进度
soundId | 音效 ID。请确保与 playEffect 中设置的 soundId 一致。 |
-22(ERR_RESOURCE_LIMITED)
: 无法找到音效文件。请填写正确的 soundId
|
pure virtual |
获取指定音频文件信息。
成功调用该方法后,SDK 会触发 onRequestAudioFileInfo 回调, 报告指定音频文件的时长等信息。你可以多次调用该方法,获取多个音频文件的信息。
filePath | 文件路径:
|
|
pure virtual |
开启或关闭 AI 降噪模式。
SDK 默认开启传统降噪模式,以消除大部分平稳噪声。如果你还需要消除非平稳噪声,声网推荐你按如下步骤开启 AI 降噪模式:
libagora_ai_denoise_extension.so
AgoraAIDenoiseExtension.xcframework
libagora_ai_denoise_extension.dll
enableDeepLearningDenoise(true)
。AI 降噪模式对设备性能有要求。只有在设备性能良好的情况下,SDK 才会成功开启 AI 降噪模式。例如, 支持在如下设备及其之后的型号中开启 AI 降噪模式:
成功开启 AI 降噪模式后,如果 SDK 检测到当前设备的性能不足,SDK 会自动关闭 AI 降噪模式,并开启传统降噪模式。
在频道内,如果你调用了 enableDeepLearningDenoise(false)
或 SDK 自动关闭了 AI 降噪模式,当你需要重新开启 AI 降噪模式时, 你需要先调用 leaveChannel,再调用 enableDeepLearningDenoise(true)
。
enable | 是否开启 AI 降噪模式:
|
|
pure virtual |
开启/关闭远端用户的语音立体声。
如果想调用 setRemoteVoicePosition 实现听声辨位的功能,请确保在加入频道前调用该方法开启远端用户的语音立体声。
enabled | 是否开启远端用户语音立体声:
|
|
pure virtual |
设置远端用户的语音位置。
设置远端用户声音的空间位置和音量,方便本地用户听声辨位。
通过调用该接口设置远端用户声音出现的位置,左右声道的声音差异会产生声音的方位感,从而判断出远端用户的实时位置。在多人在线游戏场景,如吃鸡游戏中,该方法能有效增加游戏角色的方位感,模拟真实场景。
uid | 远端用户的 ID |
pan | 设置远端用户声音的空间位置,取值范围为 [-1.0,1.0]:
|
gain | 设置远端用户声音的音量,取值范围为 [0.0,100.0],默认值为 100.0,表示该用户的原始音量。取值越小,则音量越低。 |
|
pure virtual |
设置本地语音音调。
pitch | 语音频率可以 [0.5,2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。 |
|
pure virtual |
设置本地语音音效均衡。
bandFrequency | 频谱子带索引。取值范围是 [0,9],分别代表音效的 10 个频带。对应的中心频率为 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。详见 AUDIO_EQUALIZATION_BAND_FREQUENCY 。 |
bandGain | 每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15]。 |
|
pure virtual |
设置本地音效混响。
SDK 在 v3.2.0 版本中提供一个使用更为简便的方法 setAudioEffectPreset, 直接实现流行、R&B、KTV 等预置的混响效果。
reverbKey | 混响音效 Key。该方法共有 5 个混响音效 Key: AUDIO_REVERB_TYPE 。 |
value | 各混响音效 Key 所对应的值。详见 AUDIO_REVERB_TYPE |
|
pure virtual |
设置本地语音变声、美音或语聊美声效果。
通信场景下的用户或直播场景下的主播均可调用该方法为本地语音设置以下效果。成功设置以后,频道内的所有用户均可听到声音效果。
VOICE_CHANGER
为前缀。效果包括老男人、小男孩、小女孩、猪八戒、空灵和绿巨人,通常用于语聊场景。VOICE_BEAUTY
为前缀。效果包括浑厚、低沉、圆润、假音、饱满、清澈、高亢、嘹亮和空旷,通常用于语聊和唱歌场景。GENERAL_BEAUTY_VOICE
为前缀。效果包括磁性(男)、清新(女)和活力(女),通常用于语聊场景。该功能主要细化了男声和女声各自的特点。profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY (4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO (5)voiceChanger | 预设本地语音变声、美音或语聊美声效果选项,默认值为 VOICE_CHANGER_OFF ,即原声。详见 VOICE_CHANGER_PRESET 。 |
|
pure virtual |
设置本地语音混响(含虚拟立体声效果)。
通信场景下的用户或直播场景下的主播均可调用该方法设置本地语音混响。成功设置以后,频道内的所有用户均可听到声音效果。
AUDIO_REVERB_FX
为前缀的枚举值时,请确保在调用该方法前将 setAudioProfile 的 profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY (4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO (5) ,否则该方法设置无效。AUDIO_VIRTUAL_STEREO
时,声网推荐在调用该方法前将 setAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO (5)reverbPreset | 本地语音混响选项,默认值为 AUDIO_REVERB_OFF ,即原声。详见 AUDIO_REVERB_PRESET 。 为达到更好的混响效果,声网推荐使用以 AUDIO_REVERB_FX 为前缀的枚举值。 |
|
pure virtual |
设置 SDK 预设的美声效果。
调用该方法可以为本地发流用户设置 SDK 预设的人声美化效果。设置美声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置 不同的美声效果,各美声效果的适用场景可参考《设置人声效果》。
为获取更好的人声效果,声网推荐你在调用该方法前将 setAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
,并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。
profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | 预设的美声效果选项,详见 VOICE_BEAUTIFIER_PRESET |
|
pure virtual |
设置 SDK 预设的人声音效。
调用该方法可以为本地发流用户设置 SDK 预设的人声音效,且不会改变原声的性别特征。设置音效后,频道内所有用户都能听到该效果。
根据不同的场景,你可以为用户设置不同的音效,各音效的适用场景可参考《设置人声效果》。
为获取更好的人声效果,声网推荐你在调用该方法前将 setAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
。
profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。或
PITCH_CORRECTION` 外的枚举,请勿再 调用 setAudioEffectParameters,否则该方法设置的效果会被覆盖。preset | 预设的音效选项,详见 AUDIO_EFFECT_PRESET |
|
pure virtual |
设置 SDK 预设的变声效果。
调用该方法可以为本地发流用户设置 SDK 预设的变声效果。设置变声效果后,频道内所有用户都能听到该效果。根据不同的场景, 你可以为用户设置不同的变声效果,各变声效果的适用场景可参考《设置人声效果》。
为获取更好的人声效果,声网推荐你在调用该方法前将 setAudioProfile 的 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY (4) 或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO (5),并将 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING (3)。
setAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD (1) 或 AUDIO_PROFILE_IOT (6),否则该方法不生效。preset | 预设的变声效果选项: VOICE_CONVERSION_PRESET |
|
pure virtual |
设置 SDK 预设人声音效的参数。
调用该方法可以对本地发流用户进行如下设置:
设置后,频道内所有用户都能听到该效果。
scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
。profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | SDK 预设的音效:
|
param1 |
|
param2 |
|
|
pure virtual |
设置 SDK 预设美声效果的参数。
调用该方法可以设置歌唱美声效果的性别特征和混响效果。该方法对本地发流用户进行设置。设置后,频道内所有用户都能听到该效果。
为获取更好的人声效果,声网推荐你在调用该方法前将 setAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
,并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。
profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | SDK 预设的音效:
|
param1 | 歌声的性别特征:
|
param2 | 歌声的混响效果:
|
|
pure virtual |
设置 SDK 输出的日志文件。
logConfig
。默认情况下,SDK 会生成 agorasdk.log
、agorasdk_1.log
、agorasdk_2.log
、agorasdk_3.log
、agorasdk_4.log
这 5 个日志文件。 每个文件的默认大小为 1024 KB。日志文件为 UTF-8 编码。最新的日志永远写在 agorasdk.log
中。agorasdk.log
写满后,SDK 会从 1-4 中删除修改时间最早的一个文件, 然后将 agorasdk.log
重命名为该文件,并建立新的 agorasdk.log
写入最新的日志。
filePath | 日志文件的完整路径。默认路径为 C:\Users\<user_name>\AppData\Local\Agora\<process_name>\agorasdk.log 。请确保指定的目录存在而且可写。你可通过该参数修改日志文件名。 |
|
pure virtual |
设置日志输出等级。
logConfig
。设置 SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。
例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
filter | 设置过滤等级: LOG_FILTER_TYPE 。 |
|
pure virtual |
设置 SDK 输出的单个日志文件大小。
logConfig
。默认情况下,SDK 会生成 agorasdk.log
、agorasdk_1.log
、agorasdk_2.log
、agorasdk_3.log
、agorasdk_4.log
这 5 个日志文件。 每个文件的默认大小为 1024 KB。日志文件为 UTF-8 编码。最新的日志永远写在 agorasdk.log
中。agorasdk.log
写满后,SDK 会从 1-4 中删除修改时间最早的一个文件, 然后将 agorasdk.log
重命名为该文件,并建立新的 agorasdk.log
写入最新的日志。
fileSizeInKBytes | 单个日志文件的大小,单位为 KB。默认值为 1024 KB。如果你将 fileSizeInKByte 设为 1024 KB,SDK 会最多输出 5 MB 的日志文件。如果你将 fileSizeInKByte 设为小于 1024 KB,单个日志文件最大仍为 1024 KB。 |
|
pure virtual |
设置本地视图显示模式。
该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。
renderMode | RENDER_MODE_TYPE 。 |
|
pure virtual |
更新本地视图显示模式。
初始化本地用户视图后,你可以调用该方法更新本地用户视图的渲染和镜像模式。该方法只影响本地用户看到的视频画面,不影响本地发布视频。
renderMode | 本地视图的渲染模式,详见 RENDER_MODE_TYPE |
mirrorMode |
|
|
pure virtual |
设置远端视图显示模式。
该方法设置远端视图显示模式。App 可以多次调用此方法更改显示模式。
userId | 远端用户 ID。 |
renderMode | RENDER_MODE_TYPE 。 |
|
pure virtual |
更新远端视图显示模式。
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。
userId | 远端用户 ID。 |
renderMode | 远端用户视图的渲染模式,详见 RENDER_MODE_TYPE |
mirrorMode |
|
|
pure virtual |
设置本地视频镜像模式。
mirrorMode | 详见 VIDEO_MIRROR_MODE_TYPE |
|
pure virtual |
开关双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
enabled |
|
|
pure virtual |
设置外部音频采集参数。
enabled |
|
sampleRate | 外部音频源的采样率 (Hz),可设置为 8000,16000,32000,44100 或 48000。 |
channels | 外部音频源的通道数,可设置为 1 或 2:
|
|
pure virtual |
设置外部音频渲染。
该方法适用于需要自行渲染音频的场景。开启外部音频渲染后,你可以通过调用 pullAudioFrame 方法拉取远端音频数据。 App 可以对拉取到的原始音频数据进行处理后再渲染,获取想要的音频效果。
enabled |
|
sampleRate | 外部音频渲染的采样率 (Hz),可设置为 16000,32000,44100 或 48000。 |
channels | 外部音频渲染的声道数,可设置为 1 或 2:
|
|
pure virtual |
设置采集的音频格式。
该方法设置 onRecordAudioFrame 回调的采集音频格式。
sampleRate | 指定 onRecordAudioFrame 中返回数据的采样率,可设置为 8000、 16000、 32000、 44100 或 48000。 |
channel | 指定 onRecordAudioFrame 中返回数据的通道数,可设置为 1 或 2:
|
mode | onRecordAudioFrame 回调的使用模式: RAW_AUDIO_FRAME_OP_MODE_TYPE 。 |
samplesPerCall | 指定 onRecordAudioFrame 中返回数据的采样点数,如 RTMP/RTMPS 推流应用中通常为 1024。 |
onRecordAudioFrame
回调。请确保采样间隔不得小于 0.01 (s)。其中,采样间隔 = samplesPerCall/(sampleRate × channel)。
|
pure virtual |
设置播放的声音格式。
sampleRate | 指定 onPlaybackAudioFrame 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000。 |
channel | 指定 onPlaybackAudioFrame 中返回数据的通道数,可设置为 1 或 2:
|
mode | 指定 onPlaybackAudioFrame 的使用模式: RAW_AUDIO_FRAME_OP_MODE_TYPE 。 |
samplesPerCall | 指定 onPlaybackAudioFrame 中返回数据的采样点数,如RTMP推流应用中通常为 1024。 |
onPlaybackAudioFrame
回调。请确保采样间隔不得小于 0.01 (s)。其中,采样间隔 = samplesPerCall/(sampleRate × channel)。
|
pure virtual |
设置采集与播放声音混音后的数据格式
sampleRate | 指定 onMixedAudioFrame 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000。 |
samplesPerCall | 指定 onMixedAudioFrame 中返回数据的采样点数,如 RTMP/RTMPS 推流应用中通常为 1024。 |
onMixedAudioFrame
回调。请确保采样间隔不得小于 0.01 (s)。其中,采样间隔 = samplesPerCall/(sampleRate × channels)。
|
pure virtual |
调节麦克风采集信号音量。
volume | 麦克风采集信号音量。取值范围为 [0,400],其中:
|
|
pure virtual |
调节本地播放的所有远端用户信号音量。
adjustPlaybackSignalVolume
和 adjustAudioMixingPlayoutVolume 方法,并将 volume
设置为 0
。volume | 播放音量。取值范围为 [0,400],其中:
|
|
pure virtual |
调节声卡采集信号音量。
调用 enableLoopbackRecording 开启声卡采集后,你可以调用该方法调节声卡采集的信号音量。
volume | 声卡采集信号音量。取值范围为 [0,100],其中:
|
|
pure virtual |
打开直播场景下与 Web SDK 的互通。
enabled |
|
|
pure virtual |
degradationPrefer
参数设置视频质量偏好。该方法允许用户设置视频的优化选项。设置视频优化选项(仅适用于直播)。
preferFrameRateOverImageQuality | 支持两种优化选项:
|
|
pure virtual |
设置弱网条件下发布的音视频流回退选项。
网络不理想的环境下,实时通信音视频的质量都会下降。使用该接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY (2) 后,SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,从而保证或提高音频质量。同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。当本地推流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发本地发布的媒体流已回退为音频流 onLocalPublishFallbackToAudioOnly 回调。
STREAM_FALLBACK_OPTION_AUDIO_ONLY (2)
可能导致 CDN 观众听到的声音有所延迟。声网不建议主播使用视频流回退机制。option | 本地发流回退处理选项:
|
|
pure virtual |
设置弱网条件下订阅的音视频流的回退选项。
默认 option
为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW (1) 。 如果你使用本方法并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY (2), SDK 会在下行弱网且音视频质量严重受影响时,将视频流切换为小流,或关断视频流,从而保证或提高音频质量。 同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。 当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 onRemoteSubscribeFallbackToAudioOnly 回调。
option | 详见 STREAM_FALLBACK_OPTIONS 。 |
|
pure virtual |
切换前置/后置摄像头
|
pure virtual |
设置默认的音频路由。
如果 SDK 默认的音频路由(见《设置音频路由》)无法满足你的需求,你可以调用该方法切换默认的音频路由。成功切换音频路由后, SDK 会触发 onAudioRouteChanged 回调提示音频路由已更改。
defaultToSpeaker | 设置默认的音频路由:
|
|
pure virtual |
开启/关闭扬声器播放。
如果 SDK 默认的音频路由(见《设置音频路由》)或 setDefaultAudioRouteToSpeakerphone 的设置无法满足你的需求,你可以调用 setEnableSpeakerphone
切换当前的音频路由。成功切换音频路由后,SDK 会触发 onAudioRouteChanged 回调提示音频路由已更改。
该方法只设置用户在当前频道内使用的音频路由,不会影响 SDK 默认的音频路由。如果用户离开当前频道并加入新的频道,则用户还是会使用 SDK 默认的音频路由。
speakerOn | 设置是否开启扬声器播放:
|
|
pure virtual |
开启耳返功能。
该方法打开或关闭耳返功能。
enabled | 开启/关闭耳返功能:
|
|
pure virtual |
设置耳返音量
volume | 设置耳返音量,取值范围在 [0,100]。默认值为 100 |
|
pure virtual |
查询扬声器启用状态
|
pure virtual |
设置 SDK 对 Audio Session 的操作权限。
在默认情况下,SDK 和 app 对 Audio Session 都有操作权限。如果你只需使用 app 对 Audio Session 进行操作,你可以调用该方法限制 SDK 对 Audio Session 的操作权限。
该方法在加入频道前后都能调用。一旦调用该方法限制了 SDK 对 Audio Session 的操作权限,该限制会在 SDK 需要更改 Audio Session 时生效。
restriction | SDK 对 Audio Session 的操作权限,详见: AUDIO_SESSION_OPERATION_RESTRICTION 。该参数为 Bit Mask,每个 Bit 对应一个权限。 |
|
pure virtual |
开启声卡采集
启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
deviceName
参数。声网推荐你启用 AgoraALD (Agora Audio Loopback Device) 并向该参数传入 "AgoraALD"
。enabled | 设置是否开启声卡采集:
|
deviceName | 声卡的设备名。默认为空,代表使用当前声卡采集。如果你使用虚拟声卡,如 AgoraALD(Agora Audio Loopback Device),你可以将该参数设置为声卡的名称("AgoraALD" )。 |
|
pure virtual |
获取可共享的屏幕和窗口对象列表。
屏幕共享或窗口共享前,你可以调用该方法获取可共享的屏幕和窗口的对象列表,方便用户通过列表中的缩略图选择共享某个显示器的屏幕或某个窗口。 列表中包含窗口 ID 和屏幕 ID 等重要信息,你可以获取到 ID 后再调用 startScreenCaptureByWindowId 或 startScreenCaptureByDisplayId 开启共享。
thumbSize | 屏幕或窗口的缩略图的目标尺寸(宽高单位为像素)。详见 SIZE。 SDK 会在保证原图不变形的前提下,缩放原图,使图片最长边和目标尺寸的最长边的长度一致。例如,原图宽高为 400 × 300,thumbSize 为 100 x 100,缩略图实际尺寸为 100 × 75。如果目标尺寸大于原图尺寸,缩略图即为原图,SDK 不进行缩放操作。 |
iconSize | 程序所对应的图标的目标尺寸(宽高单位为像素)。详见 SIZE。 SDK 会在保证原图不变形的前提下,缩放原图,使图片最长边和目标尺寸的最长边的长度一致。例如,原图宽高为 400 × 300,iconSize 为 100 × 100,图标实际尺寸为 100 × 75。如果目标尺寸大于原图尺寸,图标即为原图,SDK 不进行缩放操作。 |
includeScreen | 除了窗口信息外,SDK 是否还返回屏幕信息:
|
|
pure virtual |
通过屏幕 ID 共享屏幕。
共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 ID。
displayId | 指定待共享的屏幕 ID。开发者需要通过该参数指定你要共享的那个屏幕。关于如何获取屏幕 ID,请参考基础功能《共享屏幕》 或从 getScreenCaptureSources 返回的 sourceId 获取。 |
regionRect | (可选)指定待共享区域相对于整个屏幕的位置。如不填,则表示共享整个屏幕。详见: Rectangle 。如果设置的共享区域超出了屏幕的边界,则只共享屏幕视窗内的内容;如果宽或高为 0,则共享整个屏幕。 |
captureParams | 屏幕共享的参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
|
pure virtual |
通过指定区域共享屏幕。
共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
startScreenCaptureByDisplayId
。screenRect | 指定待共享的屏幕相对于虚拟屏的位置。关于如何获取屏幕位置,请参考基础功能《共享屏幕》。 |
regionRect | (可选)指定待共享区域相对于整个屏幕的位置。如不填,则表示共享整个屏幕。详见: Rectangle 。 如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0 ,则共享整个屏幕。 |
captureParams | 屏幕共享的编码参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
|
pure virtual |
通过窗口 ID 共享窗口。
共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 ID。
captureMouseCursor(false)
不生效的现象。详见 IsCursorCapture。自 v3.7.0 起,窗口共享支持大多数的通用 Windows 平台(UWP)应用窗口。支持情况如下:
设备系统 | 应用 | 是否支持 |
---|---|---|
Windows 10 | Google Chrome、Microsoft Office、WPS Office、Windows Media Player 等主流应用 | 是 |
Windows 8 | Google Chrome、Microsoft Office、WPS Office、Windows Media Player 等主流应用 | 是 |
Windows 7 | Microsoft Office、WPS PPT (11.1.0.9098) | 是 |
Windows 7 | Google Chrome、Windows Media Player、WPS Word (11.1.0.9098)、WPS Excel (11.1.0.9098) | 否 |
windowId | 指定待共享的窗口 ID。关于如何获取窗口 ID,请参考基础功能《共享屏幕》。 |
regionRect | (可选)指定待共享的区域相对于整个窗口的位置。如不填,则表示共享整个窗口。详见: Rectangle 。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。 |
captureParams | 屏幕共享的编码参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见 ScreenCaptureParameters 。 |
|
pure virtual |
设置屏幕共享内容类型。
设置屏幕共享的内容类型。声网 SDK 会根据不同的内容类型,使用不同的算法对共享效果进行优化。如果不调用该方法,SDK 会将屏幕共享的内容默认为 CONTENT_HINT_NONE ,即无指定的内容类型。
contentHint | 指定屏幕共享的内容类型。详见: VideoContentHint 。 |
|
pure virtual |
设置屏幕共享的场景。
开启屏幕共享或窗口共享时,你可以调用该方法设置屏幕共享的场景,SDK 会根据你设置的场景调整共享画质和体验。
screenScenario | 屏幕共享的场景,详见 SCREEN_SCENARIO_TYPE 。 |
|
pure virtual |
更新屏幕共享的参数配置。
captureParams | 屏幕共享的编码参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
|
pure virtual |
更新屏幕共享区域。
regionRect | 待共享区域相对于整个屏幕或窗口的位置,如不填,则表示共享整个屏幕或窗口。详见: Rectangle 。如果设置的共享区域超出了屏幕或窗口的边界,则只共享屏幕或窗口内的内容;如果将 width 或 height 设为 0 ,则共享整个屏幕或窗口。 |
|
pure virtual |
停止屏幕共享。
|
pure virtual |
开始屏幕共享。
该方法共享整个屏幕,指定窗口,或指定区域:
windowId | 共享屏幕区域。 详见: WindowIDType。 |
captureFreq | 共享屏幕的帧率,必须设置,范围是 1 到 15 fps。 |
rect | 当 windowsId 设为 0 时该参数有效;当你将 rect 设为 NULL 时,整个屏幕被共享。 |
bitrate | 共享屏幕的码率。 |
|
pure virtual |
更新屏幕共享区域。
rect | 待共享区域相对于整个屏幕的位置,如不填,则表示共享整个屏幕。 详见: Rect。 如果设置的共享区域超出了屏幕或窗口的边界,则只共享屏幕或窗口内的内容;如果将 width 或 height 设为 0 ,则共享整个屏幕或窗口。 |
|
pure virtual |
设置自定义的视频源。
实时通信过程中,SDK 会启动默认的视频输入设备,即内置的摄像头,采集视频。但是,如果你需要自定义视频输入设备, 你可以先通过 IVideoSource 类自定义视频源,再调用该方法将自定义的视频源加入到 SDK 中。
source | 自定义的视频源。详细定义见 IVideoSource。 |
|
pure virtual |
获取当前通话 ID。
客户端在每次 joinChannel 后会生成一个对应的 callId,标识该客户端的此次通话。有些方法如 rate 、 complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId 参数。使用这些反馈方法,需要在通话过程中调用 getCallId 方法获取 CallId,在通话结束后在反馈方法中作为参数传入。
callId | 当前的通话 ID。 |
|
pure virtual |
给通话评分。
该方法能够让用户为通话评分,一般在通话结束后调用。
callId | 通话 getCallId 函数获取的通话 ID。 |
rating | 给通话的评分,最低 1 分,最高 5 分。如超过这个范围,SDK 会返回 ERR_INVALID_ARGUMENT (2) 错误。 |
description | (非必选项) 给通话的描述,可选,长度应小于 800 字节。 |
|
pure virtual |
投诉通话质量。
该方法让用户就通话质量进行投诉。一般在通话结束后调用。
callId | 通话 getCallId 函数获取的通话 ID。 |
description | (非必选项) 给通话的描述,可选,长度应小于 800 字节。 |
|
pure virtual |
查询 SDK 版本号。
build | 编译号。 |
|
pure virtual |
启动网络测试。
该方法启用网络连接质量测试,用于检测用户目前的网络接入质量(上行网络质量)。默认该功能为关闭状态。该方法主要用于以下场景:
无论哪种场景,启用该方法均会消耗网络流量,影响通话质量。用户必须在收到 onLastmileQuality 回调后须调用 disableLastmileTest 停止测试,再加入频道或切换为主播。
|
pure virtual |
关闭网络测试。
|
pure virtual |
开始通话前网络质量探测。
开始通话前网络质量探测,向用户反馈上下行网络的带宽、丢包、网络抖动和往返时延数据。
启用该方法后,SDK 会依次返回如下 2 个回调:
该方法主要用于以下两种场景:
config | Last mile 网络探测配置,详见 LastmileProbeConfig 。 |
|
pure virtual |
停止通话前网络质量探测。
|
pure virtual |
|
pure virtual |
启用内置加密,并设置数据加密密码。
在加入频道之前,App 需调用 setEncryptionSecret 方法指定 secret 来启用内置的加密功能,同一频道内的所有用户应设置相同的 secret。当用户离开频道时,该频道的 secret 会自动清除。如果未指定 secret 或将 secret 设置为空,则无法激活加密功能。
secret | 加密密码。 |
|
pure virtual |
启用内置的加密方案。
视频 SDK 支持内置加密方案,默认支持 AES-128-XTS。如需采用其他加密方案,可以调用本方法。同一频道内的所有用户必须设置相同的加密方式和 secret 才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
encryptionMode | 加密模式:
|
|
pure virtual |
开启或关闭内置加密。
在安全要求较高的场景下,声网建议你在加入频道前,调用 enableEncryption
方法开启内置加密。
用户离开频道后,SDK 会自动关闭加密。如需重新开启加密,你需要在用户再次加入频道前调用该方法。
自 v3.4.5 起,声网推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。 这两种模式支持设置盐,安全性更高。设置方法详见《媒体流加密》。
enabled | 是否开启内置加密:
|
config | 配置内置加密方案。详见 EncryptionConfig |
IRtcEngine
对象并完成初始化。
|
pure virtual |
注册数据包观测器。
该方法注册数据包观测器 (Packet Observer)。在 SDK 发送/接收(语音、视频)网络包时,会回调 IPacketObserver 定义的接口,App 可用此接口对数据做处理,例如加解密。
observer | IPacketObserver 。 |
|
pure virtual |
创建数据流。
该方法用于创建数据流。RtcEngine 生命周期内,每个用户最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 App 报错。
reliable
设为 true
且 ordered
设为 false
。[out] | streamId | 数据流 ID。 |
reliable |
| |
ordered |
|
|
pure virtual |
创建数据流。
该方法用于创建数据流。每个用户在每个频道内最多只能创建 5 个数据流。
相比 createDataStream [1/2],本方法不支持数据可靠,接收方会丢弃超出发送时间 5 秒后的数据包。
[out] | streamId | 数据流 ID |
config | 数据流设置: DataStreamConfig |
|
pure virtual |
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 API 须对数据通道的传送速率进行控制: 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。 成功调用该方法后,远端会触发 onStreamMessage 回调,远端用户可以在该回调中获取接收到的流消息;若调用失败,远端会触发 onStreamMessageError 回调。
streamId | 由 createDataStream 返回的数据流 ID。 |
data | 自定义数据。 |
length | 数据长度。 |
|
pure virtual |
增加旁路推流地址。
调用该方法后,你可以向 CDN 推送 RTMP 或 RTMPS 协议的媒体流。SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告增加旁路推流地址的状态。
url | CDN 推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。url 不支持中文字符等特殊字符。 |
transcodingEnabled |
|
|
pure virtual |
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告删除旁路推流地址的状态。
url | 待删除的旁路推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。 |
|
pure virtual |
设置直播推流转码。
该方法用于旁路推流的视图布局及音频设置等。调用该方法更新转码设置后本地会触发 onTranscodingUpdated 回调。
onTranscodingUpdated
回调。transcoding | 详见 LiveTranscoding 。 |
|
pure virtual |
开始非转码推流。
调用该方法,你可以向指定的 CDN 推流地址推送直播音视频流。该方法每次只能向一个地址推送媒体流,如果你需要向多个地址推流,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
|
pure virtual |
开始 CDN 直播推流并设置转码属性。
调用该方法,你可以向指定的 CDN 推流地址推送直播音视频流并设置转码属性。该方法每次只能向一个地址推送媒体流,如果你需要向多个地址转码推流,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
transcoding | CDN 直播推流的转码属性,详见 LiveTranscoding 类。 |
|
pure virtual |
更新转码属性。
开启转码推流后,你可以根据场景需求,动态更新转码属性。转码属性更新后,SDK 会触发 onTranscodingUpdated 回调。
transcoding | CDN 直播推流的转码属性,详见 LiveTranscoding 类。 |
|
pure virtual |
结束 CDN 直播推流。
调用该方法,你可以结束指定的 CDN 推流地址上的直播。该方法每次只能结束一个推流地址上的直播,如果你需要结束多个推流地址的直播,则需多次调用该方法。
调用该方法后,SDK 会在本地触发 onRtmpStreamingStateChanged 回调,报告推流的状态。
url | CDN 推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文字符等特殊字符。 |
|
pure virtual |
添加本地视频水印。
该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的观众,旁路推流观众,甚至采集设备都能看到或采集到该水印图片。 如果你仅仅希望在旁路直播推流中添加水印,请参考 setLiveTranscoding 中描述的用法。
watermark | 待添加在本地直播推流中的水印图片: RtcImage 。 |
|
pure virtual |
添加本地视频水印。
该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的观众、旁路直播观众和采集设备都能看到或采集到该水印图片。声网当前只支持在直播视频流中添加一个水印,后添加的水印会替换掉之前添加的水印。
水印坐标和 setVideoEncoderConfiguration 方法中的设置有依赖关系:
setVideoEncoderConfiguration
方法中设置的视频尺寸,否则超出部分将被裁剪。visibleInPreview
可设置水印在预览时是否可见。watermarkUrl | 待添加的水印图片的本地路径。本方法支持从本地绝对/相对路径添加水印图片。**Note**:在 Android 上,声网推荐填入 URI 地址或以 /assets/ 开头的路径。 |
options | 待添加的水印图片的设置选项,详见 WatermarkOptions 。 |
|
pure virtual |
删除已添加的视频水印。
|
pure virtual |
设置美颜效果选项。
开启本地美颜功能,并设置美颜效果选项。
libagora_video_process_extension.so
AgoraVideoProcessExtension.xcframework
libagora_video_process_extension.dll
enabled | 是否开启美颜功能:
|
options | 美颜选项。详见: BeautyOptions |
-4(ERR_NOT_SUPPORTED)
:当前设备版本低于 Android 5.0,不支持使用美颜功能。
|
pure virtual |
设置色彩增强功能。
摄像头采集到的视频画面可能存在色彩失真的现象。色彩增强功能可以通过智能调节饱和度和对比度等视频特性,提升视频色彩丰富度和色彩还原度,最终使视频画面更生动。
你可以调用该方法开启色彩增强功能并设置色彩增强的效果。
libagora_segmentation_extension.so
AgoraVideoSegmentationExtension.xcframework
libagora_segmentation_extension.dll
enabled | 是否开启色彩增强功能:
|
options | 色彩增强选项,用于设置色彩增强的效果。详见 ColorEnhanceOptions 。 |
|
pure virtual |
设置暗光增强功能。
暗光增强功能可以在光线亮度偏低(如背光、阴天、暗场景)和亮度不均匀的环境下自适应调整视频画面的亮度值,恢复或凸显图像的细节信息,最终提升视频图像的整体视觉效果。
你可以调用该方法开启暗光增强功能并设置暗光增强的效果。
libagora_segmentation_extension.so
AgoraVideoSegmentationExtension.xcframework
libagora_segmentation_extension.dll
enabled | 是否开启暗光增强功能:
|
options | 暗光增强选项,用于设置暗光增强的效果。详见 LowLightEnhanceOptions 。 |
|
pure virtual |
设置视频降噪功能。
采光不足的环境和低端视频采集设备会使视频图像含有明显的噪声,影响视频画质。在实时互动场景下,视频噪声还会在编码过程中占用码流资源并降低编码效率。
你可以调用该方法开启视频降噪功能并设置视频降噪的效果。
libagora_segmentation_extension.so
AgoraVideoSegmentationExtension.xcframework
libagora_segmentation_extension.dll
enabled | 是否开启视频降噪功能:
|
options | 视频降噪选项,用于设置视频降噪的效果。详见 VideoDenoiserOptions 。 |
|
pure virtual |
开启/关闭虚拟背景。
自 v3.4.5 支持 macOS 和 Windows 平台,自 v3.5.0 支持 Android 和 iOS 平台。
开启虚拟背景功能后,你可以使用自定义的背景图替代本地用户原来的背景图。替换后,频道内所有用户都能看到自定义的背景图。 你可以从 onVirtualBackgroundSourceEnabled 回调了解虚拟 背景是否成功开启和相应的出错原因。
libagora_segmentation_extension.so
AgoraVideoSegmentationExtension.xcframework
libagora_segmentation_extension.dll
enabled | 设置是否开启虚拟背景:
|
backgroundSource | 自定义的背景图。详见 VirtualBackgroundSource 。Note: 为将自定义背景图的分辨率与 SDK 的视频采集分辨率适配, SDK 会在保证自定义背景图内容不变形的前提下,对自定义背景图进行缩放和裁剪。 |
|
pure virtual |
开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 和 onChannelMediaRelayEvent 回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
configuration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
|
pure virtual |
更新媒体流转发的频道。成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道, 或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调, 并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL (7)。
configuration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
|
pure virtual |
暂停向所有目标频道转发媒体流。
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转 发,可以调用 resumeAllChannelMediaRelay 方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调, 并在回调中报告是否成功暂停媒体流转发。
|
pure virtual |
恢复向所有目标频道转发媒体流。
调用 pauseAllChannelMediaRelay 方法后,如果你需要恢复向所有目标频道转发媒体流, 可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent 回调,并在 回调中报告是否成功恢复媒体流转发。
|
pure virtual |
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调。如果报告 RELAY_STATE_IDLE (0) 和 RELAY_OK (0),则表示已停止转发媒体流。
|
pure virtual |
|
pure virtual |
|
pure virtual |
声网提供自定义数据上报和分析服务。
该服务当前处于免费内测期。内测期提供的能力为 6 秒内最多上报 10 条数据,每条自定义数据不能超过 256 字节,每个字符串不能超过 100 字节。如需试用该服务,请联系 sales@agora.io 开通并商定自定义数据格式。
|
pure virtual |
|
pure virtual |
开启/关闭远端视频超分辨率。(beta 功能)
该功能可以有效地提升本地用户看到的远端视频画面的分辨率。远端用户视频的原始分辨率为 a × b,开启该功能后,本地设备会以 2a × 2b 的分辨率显示该远端视频。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled 回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
AgoraSuperResolutionExtension.xcframework
userId | 远端用户 ID。 |
enable | 是否对远端视频开启超级分辨率:
|
-157 (ERR_MODULE_NOT_FOUND)
: 未集成超分辨率动态库
|
pure virtual |
开启/关闭远端视频超分辨率。(beta 功能)
该功能可以有效地提升用户看到的远端视频画面的分辨率,即对接收到的某个远端用户的视频宽和高均扩大为 2 倍像素。
调用该方法后,SDK 会触发 onUserSuperResolutionEnabled 回调报告超分辨率是否成功开启。
libagora_super_resolution_extension.so
AgoraSuperResolutionExtension.xcframework
libagora_super_resolution_extension.dll
使用限制 超分辨率功能会额外耗费系统资源。为平衡视觉体验和系统消耗,该功能有如下使用限制:
enabled | 是否对远端视频开启超级分辨率:
|
mode | 超分辨率的模式。详见 SR_MODE |
userId | 远端用户 ID。该参数仅在 mode 为 SR_MODE_MANUAL(0) 时生效。 |
-157 (ERR_MODULE_NOT_FOUND)
: 未集成超分辨率动态库
|
pure virtual |
注册媒体 metadata 观测器用于接收或发送 metadata。
observer | 指向已注册的 metadata 观测器的指针。详见: IMetadataObserver 。 |
type | 用户希望在观测器中使用的 METADATA 类型 。目前仅支持 VIDEO_METADATA 。详见: METADATA_TYPE 。 |
|
pure virtual |
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 选项默认不公开。声网工程师正在努力寻求以标准化方式公开 JSON 选项。
parameters | JSON 字符串形式的参数 |
|
pure virtual |
自定义本地视频渲染。
实时音视频互动过程中,SDK 会启动默认的渲染器渲染本地视频。如果你想要自定义本地视频渲染, 可以先通过 IVideoSink 类自定义视频渲染器,再调用该方法使用自定义的渲染器渲染本地视频。
videoSink | 自定义的视频渲染器。详细定义见 IVideoSink |
|
pure virtual |
自定义远端视频渲染。
实时音视频互动过程中,SDK 会启动默认的渲染器渲染远端视频。如果你想要自定义远端视频渲染, 可以先通过 IVideoSink 类自定义视频渲染器,再调用该方法使用自定义的渲染器渲染远端视频。
uid | 远端用户 ID。 |
videoSink | 自定义的视频渲染器。详见 IVideoSink |
|
pure virtual |
设置本地代理。
成功部署声网混合云或声网私有化平台并在内网终端集成声网 Native SDK 后,你需要调用该方法指定 Local Access Point 来设置本地代理。成功设置本地代理后,SDK 会自动将日志上传到声网日志服务器。如果你需要将日志上传到指定的服务器,可以在通过 LocalAccessPointConfiguration 的 advancedConfig
字段设置。
config | Local Access Point 的配置。详见 LocalAccessPointConfiguration。 |
|
pure virtual |
设置是否打开闪光灯。
true
,也可能因系统问题导致你无法通过 setCameraTorchOn
成功开启闪光灯。isOn | 是否打开闪光灯:
|
|
pure virtual |
检查设备是否支持打开闪光灯。
SDK 默认使用前置摄像头,因此如果你直接调用 isCameraTorchSupported
,你可以从返回值中了解使用前置摄像头时是否支持打开闪光灯。 如果你想检查使用后置摄像头时设备是否支持打开闪光灯, 请先调用 switchCamera 切换 SDK 使用的摄像头为后置摄像头, 再调用 isCameraTorchSupported
。
isCameraTorchSupported
返回 true
,也可能因系统问题导致你无法通过 setCameraTorchOn 成功开启闪光灯。
|
pure virtual |
获取视频截图。
该方法用于对指定用户的视频流进行截图,生成一张 JPG 格式的图片,并保存至指定的路径。
该方法是异步操作,调用返回时 SDK 并没有真正获取截图。成功调用该方法后,SDK 会触发 onSnapshotTaken 回调报告截图是否成功和获取截图的详情。
相比 enableContentInspect 方法,本方法是即时截图,截图会保存在你指定的本地路径。
channel | 频道名。 |
uid | 用户 ID。如果要对本地用户的视频截图,uid 设为 0。 |
filePath | 截图的本地保存路径,需精确到文件名及格式, 例如:C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg (Windows)或 /App Sandbox/Library/Caches/example.jpg (iOS)或 ~/Library/Logs/example.jpg (macOS) 或 /storage/emulated/0/Android/data/<package name>/files/example.jpg (Android)。请确保目录存在且可写。 |
|
pure virtual |
开启/关闭视频截图上传。
开启视频截图上传后,SDK 会根据你在 ContentInspectConfig 中设置的视频截图上传模块类型和频率对本地用户发送的视频进行截图、上传。截图完成后,声网服务器会以 HTTPS 请求的形式通知你的服务器并将所有截图发送至你指定的第三方云存储。
相比 takeSnapshot 方法,本方法可以按照你设置的截图频率进行周期性截图,并将截图发送至你指定的的第三方云存储。
libagora_ci_extension.so
AgoraCIExtension.xcframework
libagora_ci_extension.dll
enabled | 设置是否开启视频截图上传:
|
config | 视频截图上传配置。详见 ContentInspectConfig 。 |