diff --git a/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_metadatamaxsize.dita b/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_metadatamaxsize.dita new file mode 100644 index 00000000000..3a72abb7f33 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_metadatamaxsize.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="metadataMaxSize"/> + 当 SDK 请求元数据的最大大小时触发。当 SDK 请求元数据的最大大小时触发。 + + + + + + + + +
+

+ - (NSInteger)metadataMaxSize NS_SWIFT_NAME(metadataMaxSize()); + - (NSInteger)metadataMaxSize NS_SWIFT_NAME(metadataMaxSize()); +

+
+
+

调用 方法成功注册后,SDK 每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。

+

调用 方法成功注册后,SDK 每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。

+
+
+ 返回值 +

方法调用成功,返回你希望使用的元数据缓冲区的最大大小,单位为字节。最大值为 1024 字节。

+

方法调用成功,返回你希望使用的元数据缓冲区的最大大小,单位为字节。最大值为 1024 字节。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_readytosendmetadataattimestamp.dita b/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_readytosendmetadataattimestamp.dita new file mode 100644 index 00000000000..9fcf43297a0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_agoramediametadatadatasource_readytosendmetadataattimestamp.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="readyToSendMetadataAtTimestamp"/> + 当 SDK 准备好发送元数据时触发回调。当 SDK 准备好发送元数据时触发回调。 + + + + + + + + +
+

+ - (NSData * _Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(readyToSendMetadata(atTimestamp:sourceType:)); + - (NSData * _Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(readyToSendMetadata(atTimestamp:sourceType:)); +

+
+
+

该回调在 SDK 准备好发送元数据时触发。

+

该回调在 SDK 准备好发送元数据时触发。

+ 请确保元数据的大小不超过 回调中设置的值。 + 请确保元数据的大小不超过 回调中设置的值。 +
+
+ 调用时机 +

当 SDK 准备好发送元数据时触发。

+

当 SDK 准备好发送元数据时触发。

+
+
+ 参数 + + + timestamp + 时间戳。 + + + sourceType + 视频数据类型,详见 + + + timestamp + 时间戳。 + + + sourceType + 视频数据类型,详见 + + +
+
+ 返回值 +

你希望发送的元数据,格式为 NSData,包含以下参数: +

    +
  • uid:发送元数据的远端用户 ID。
  • +
  • size:元数据的大小。
  • +
  • buffer:元数据内容。
  • +
  • timeStampMs:发送元数据时的 NTP 时间戳(毫秒)。
  • +
+

+

你希望发送的元数据,格式为 NSData,包含以下参数: +

    +
  • uid:发送元数据的远端用户 ID。
  • +
  • size:元数据的大小。
  • +
  • buffer:元数据内容。
  • +
  • timeStampMs:发送元数据时的 NTP 时间戳(毫秒)。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_agorartcmediaplayergetvideopixelformat.dita b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_agorartcmediaplayergetvideopixelformat.dita new file mode 100644 index 00000000000..afeecac1334 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_agorartcmediaplayergetvideopixelformat.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="AgoraRtcMediaPlayerGetVideoPixelFormat"/> + 设置原始视频数据的格式。设置原始视频数据的格式。 + + + + + + + + +
+

+ - (AgoraVideoFormat)AgoraRtcMediaPlayerGetVideoPixelFormat NS_SWIFT_NAME(AgoraRtcMediaPlayerGetVideoPixelFormat()); + - (AgoraVideoFormat)AgoraRtcMediaPlayerGetVideoPixelFormat NS_SWIFT_NAME(AgoraRtcMediaPlayerGetVideoPixelFormat()); +

+
+
+

你需要在调用 方法时注册回调。当媒体播放器接收到每一帧视频时,会触发该回调。你可以在该回调的返回值中设置期望的视频数据格式。

+

你需要在调用 方法时注册回调。当媒体播放器接收到每一帧视频时,会触发该回调。你可以在该回调的返回值中设置期望的视频数据格式。

+
+
+ 返回值 +

你为原始视频数据设置的期望格式,详见 。默认情况下,原始视频像素格式(AgoraVideoFormatDefault)可能是 I420CVPixelBufferRef

+

你为原始视频数据设置的期望格式,详见 。默认情况下,原始视频像素格式(AgoraVideoFormatDefault)可能是 I420CVPixelBufferRef

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivepixelbuffer.dita b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivepixelbuffer.dita new file mode 100644 index 00000000000..82e95025e60 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivepixelbuffer.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="didReceivePixelBuffer"/> + 媒体播放器接收到视频源的像素缓冲区时触发的回调。媒体播放器接收到视频源的像素缓冲区时触发的回调。 + + + + + + + + +
+

+ - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceivePixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceivePixelBuffer:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceivePixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceivePixelBuffer:)); +

+
+
+

触发该回调以报告类型为 CVPixelBufferRef 的像素缓冲区的详细信息。你可以使用这些信息进行图像处理与分析、自定义渲染等。

+

触发该回调以报告类型为 CVPixelBufferRef 的像素缓冲区的详细信息。你可以使用这些信息进行图像处理与分析、自定义渲染等。

+
+
+ 调用时机 +

该回调在媒体播放器接收到视频源的像素缓冲区时被触发。

+

该回调在媒体播放器接收到视频源的像素缓冲区时被触发。

+
+
+ 参数 + + + playerKit + 媒体播放器对象,详见 + + + pixelBuffer + 包含像素缓冲区详细信息的 CVPixelBufferRef 对象。 + + + playerKit + 媒体播放器对象,详见 + + + pixelBuffer + 包含像素缓冲区详细信息的 CVPixelBufferRef 对象。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivevideoframe.dita b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivevideoframe.dita new file mode 100644 index 00000000000..70c5eff4b0b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_agorartcmediaplayervideoframedelegate_didreceivevideoframe.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="didReceiveVideoFrame"/> + 每次播放器接收到视频帧时触发的回调。每次播放器接收到视频帧时触发的回调。 + + + + + + + + +
+

+ - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveVideoFrame:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveVideoFrame:)); +

+
+
+
+ 调用时机 +

该回调在播放器每次接收到视频帧时被触发。

+

该回调在播放器每次接收到视频帧时被触发。

+
+
+ 参数 + + + playerKit + 播放器对象。详见 + + + videoFrame + 视频帧信息。详见 + + + playerKit + 播放器对象。详见 + + + videoFrame + 视频帧信息。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvas_addview.dita b/dita/RTC-AIDOC/API/api_canvas_addview.dita new file mode 100644 index 00000000000..0d32b01b863 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvas_addview.dita @@ -0,0 +1,142 @@ + + + + <ph keyref="AddView"/> + 添加一个渲染视图。添加一个渲染视图。添加一个渲染视图。添加一个渲染视图。 + + + + + + + + +
+

+ bool AddView(View *view, ViewConfig *config, rte::Error *err = nullptr) + public void addView(View view, ViewConfig viewConfig) throws RteException + - (BOOL)addView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error; + - (BOOL)addView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

当你需要使用播放器播放视频时,可以调用该方法向视频渲染器添加一个视图,以显示视频内容。

+

当你需要使用播放器播放视频时,可以调用该方法将视图添加到视频渲染器中,以显示视频内容。

+

你可以调用该方法将视图添加到视频渲染器中,以显示视频内容。

+

你可以调用该方法将视图添加到视频渲染器中,以显示视频内容。

+ 当前仅支持一个视图。 + 当前仅支持一个视图。 + 当前仅支持一个视图。 + 当前仅支持一个视图。 +
+
+ 适用场景 +

当你需要使用播放器播放视频时,可以调用此方法将视图添加到视频渲染器中,以显示视频内容。

+
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

必须在调用 之前调用该方法。

+

你必须在调用 之前调用此方法。

+

你必须在调用 之前调用此方法。

+
+
+ 参数 + + + view + HWND 窗口句柄。 + + + config + View 对象的设置,当前传入 + + + err + 状态或错误信息,详见 + + + view + SurfaceView 对象。 + + + viewConfig + 视图的相关设置。 + + + view + 视图对象的指针。 +
    +
  • iOS:一个 UIView 对象。
  • +
  • macOS:一个 NSView 对象。
  • +
+
+
+ + config + 视图对象的配置。当前请传入 + + + error + 状态或错误信息,详见 + + + view + 视图对象的指针。 +
    +
  • iOS:一个 UIView 对象。
  • +
  • macOS:一个 NSView 对象。
  • +
+
+
+ + config + 视图对象的配置。当前请传入 + + + error + 状态或错误信息,详见 + +
+
+
+ 返回值 +

视图是否添加成功: +

    +
  • :视图添加成功。
  • +
  • :添加视图失败。
  • +
+

+

+

    +
  • :添加视图成功。
  • +
  • :添加视图失败。
  • +
+

+

+

    +
  • :添加视图成功。
  • +
  • :添加视图失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvas_canvas_canvas.dita b/dita/RTC-AIDOC/API/api_canvas_canvas_canvas.dita new file mode 100644 index 00000000000..ff3a07721a8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvas_canvas_canvas.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="Canvas_Canvas"/> + 构造一个 对象。构造一个 对象。构造一个 对象。构造一个 对象。 + + + + + + + + +
+

+ Canvas(Rte *rte, CanvasInitialConfig *initial_config = nullptr) + public Canvas(Rte rte, CanvasInitialConfig config) + - (instancetype _Nonnull)initWithRte:(AgoraRte* _Nonnull)rte initialConfig:(AgoraRteCanvasInitialConfig * _Nullable)config; + - (instancetype _Nonnull)initWithRte:(AgoraRte* _Nonnull)rte initialConfig:(AgoraRteCanvasInitialConfig * _Nullable)config; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 之后调用该方法。

+
+
+ 参数 + + + rte + 对象。详见 + + + initial_config + 的配置对象。该参数可传入 + + + rte + 用于构造 对象,详见 + + + config + 初始化配置对象。你可以传入 null + + + rte + 用于构造 对象。详见 + + + config + 用于初始化的配置对象。你可以传入 + + + rte + 用于构造 对象。详见 + + + config + 用于初始化的配置对象。你可以传入 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvas_getconfigs_canvas.dita b/dita/RTC-AIDOC/API/api_canvas_getconfigs_canvas.dita new file mode 100644 index 00000000000..0edfe312c0b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvas_getconfigs_canvas.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="GetConfigs_Canvas"/> + 获取当前播放器的视频渲染配置。获取播放器当前的视频渲染配置。获取当前播放器的视频渲染配置。获取当前播放器的视频渲染配置。 + + + + + + + + +
+

+ bool GetConfigs(CanvasConfig *config, Error *err = nullptr) + public void getConfigs(CanvasConfig config) throws RteException + - (BOOL)getConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error; + - (BOOL)getConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 之后调用该方法。

+

你必须在调用 之后调用此方法。

+

你需要在调用 方法之后调用该方法。

+

你需要在调用 方法之后调用该方法。

+
+
+ 参数 + + + config + 输出参数,表示 对象的设置,详见 + + + err + 输出参数,状态或错误信息,详见 + + + config + 对象的设置,详见 + + + config + 视频画布配置,详见 + + + error + 状态或错误信息,详见 + + + config + 视频画布配置,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvas_removeview.dita b/dita/RTC-AIDOC/API/api_canvas_removeview.dita new file mode 100644 index 00000000000..fe752c83e7b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvas_removeview.dita @@ -0,0 +1,128 @@ + + + + <ph keyref="RemoveView"/> + 移除一个渲染视图。移除一个渲染视图。移除一个渲染视图。移除一个渲染视图。 + + + + + + + + +
+

+ bool RemoveView(View *view, ViewConfig *config, rte::Error *err = nullptr) + public void removeView(View view, ViewConfig viewConfig) throws RteException + - (BOOL)removeView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error; + - (BOOL)removeView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

调用 添加视图后,如有需要,可以调用该方法移除该视图。

+

调用 方法添加视图后,可以调用该方法移除渲染视图。

+

调用 方法添加视图后,可以调用该方法移除渲染视图。

+ 每次只能移除一个视图。 + 每次只能移除一个视图。 + 每次只能移除一个视图。 + 每次只能移除一个视图。 +
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+

必须在调用 方法之后调用。

+

必须在调用 方法之后调用。

+
+
+ 参数 + + + view + 要移除的视图对象。 + + + config + 视图对象的设置,目前传入 + + + err + 输出参数,状态或错误信息,详见 + + + view + 要移除的视图对象。 + + + viewConfig + view 对象的设置。 + + + view + 要移除的视图对象,详见 AgoraRteView + + + config + 视图对象的配置。目前传入 + + + error + 状态或错误信息,详见 + + + view + 要移除的视图对象,详见 AgoraRteView + + + config + 视图对象的配置。目前传入 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :视图移除成功。
  • +
  • :视图移除失败。
  • +
+

+

调用失败时,SDK 会抛出异常,并返回相应的错误信息。你需要捕获异常并进行处理。

+

+

    +
  • :视图移除成功。
  • +
  • :视图移除失败。
  • +
+

+

+

    +
  • :视图移除成功。
  • +
  • :视图移除失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvas_setconfigs_canvas.dita b/dita/RTC-AIDOC/API/api_canvas_setconfigs_canvas.dita new file mode 100644 index 00000000000..84de57ca0c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvas_setconfigs_canvas.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="SetConfigs_Canvas"/> + 设置播放器的视频渲染配置。设置播放器的视频渲染配置。设置播放器的视频渲染配置。设置播放器的视频渲染配置。 + + + + + + + + +
+

+ bool SetConfigs(CanvasConfig *config, Error *err = nullptr) + public void setConfigs(CanvasConfig config) throws RteException + - (BOOL)setConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error; + - (BOOL)setConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

该方法需要在调用 之前调用。

+

你必须在调用 之前调用此方法。

+

你必须在调用 之前调用此方法。

+
+
+ 参数 + + + config + 用于设置 对象的配置,详见 + + + err + 状态或错误信息,详见 + + + config + 用于设置 对象的配置,详见 + + + config + Canvas 对象的设置,详见 + + + error + 状态或错误信息,详见 + + + config + Canvas 对象的设置,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

配置是否成功: +

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvasconfig_getmirrormode.dita b/dita/RTC-AIDOC/API/api_canvasconfig_getmirrormode.dita new file mode 100644 index 00000000000..20d28514e60 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvasconfig_getmirrormode.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="GetMirrorMode"/> + 获取当前设置的视频镜像模式。获取视频镜像模式。获取当前设置的镜像模式。获取当前设置的镜像模式。 + + + + + + + + +
+

+ VideoMirrorMode GetMirrorMode(Error *err = nullptr) + public Constants.VideoMirrorMode getVideoMirrorMode() throws RteException + - (AgoraRteVideoMirrorMode)videoMirrorMode:(AgoraRteError * _Nullable)error; + - (AgoraRteVideoMirrorMode)videoMirrorMode:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 GetConfigs 之后调用。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回当前设置的镜像模式,详见

+

方法调用成功,返回视频镜像模式,详见

+

当前设置的镜像模式,详见

+

当前设置的镜像模式,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvasconfig_getrendermode.dita b/dita/RTC-AIDOC/API/api_canvasconfig_getrendermode.dita new file mode 100644 index 00000000000..346ca16076e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvasconfig_getrendermode.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="GetRenderMode"/> + 获取当前设置的视频渲染模式。获取当前设置的视频镜像模式。获取当前设置的视频渲染模式。获取当前设置的视频渲染模式。 + + + + + + + + +
+

+ VideoRenderMode GetRenderMode(Error *err = nullptr) + public Constants.VideoRenderMode getVideoRenderMode() throws RteException + - (AgoraRteVideoRenderMode)videoRenderMode:(AgoraRteError * _Nullable)error; + - (AgoraRteVideoRenderMode)videoRenderMode:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 GetConfigs 之后调用。

+

你需要在调用 getConfigs 之后调用此方法。

+

你需要在调用 之后调用此方法。

+

你需要在调用 之后调用此方法。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

当前设置的视频渲染模式,详见

+

方法调用成功,返回当前设置的视频镜像模式。详见

+

当前设置的视频渲染模式。详见

+

当前设置的视频渲染模式。详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvasconfig_setmirrormode.dita b/dita/RTC-AIDOC/API/api_canvasconfig_setmirrormode.dita new file mode 100644 index 00000000000..9b5b87e9b7e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvasconfig_setmirrormode.dita @@ -0,0 +1,89 @@ + + + + <ph keyref="SetMirrorMode"/> + 设置视频的镜像模式。设置视频镜像模式。设置视频镜像模式。设置视频镜像模式。 + + + + + + + + +
+

+ void SetMirrorMode(VideoMirrorMode mode, Error *err = nullptr) + public void setVideoMirrorMode(Constants.VideoMirrorMode mode) throws RteException + - (void)setVideoMirrorMode:(AgoraRteVideoMirrorMode)mode error:(AgoraRteError* _Nullable)error; + - (void)setVideoMirrorMode:(AgoraRteVideoMirrorMode)mode error:(AgoraRteError* _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你必须在调用 setConfigs 方法之前调用此方法。

+
+
+ 调用时机 +

该方法必须在调用 SetConfigs 之前调用。

+

你必须在调用 setConfigs 之前调用此方法。

+

你必须在调用 之前调用此方法。

+

你必须在调用 之前调用此方法。

+
+
+ 参数 + + + mode + 镜像模式,详见 。 +
    +
  • 默认值为 kRteVideoMirrorModeAuto,由 SDK 自动决定镜像模式。
  • +
  • 默认情况下,远端用户的镜像模式为关闭状态。
  • +
+
+
+ + err + 输出参数,状态或错误信息,详见 + + + mode + 镜像模式,详见 。默认值为 AUTO,由 SDK 自动决定镜像模式。 + + + mode + 镜像模式,详见 。默认值为 AgoraRteVideoMirrorModeAuto,表示由 SDK 自动决定镜像模式。默认情况下,远端用户的视频镜像模式为关闭状态。 + + + error + 状态或错误信息,详见 + + + mode + 镜像模式,详见 。默认值为 AgoraRteVideoMirrorModeAuto,表示由 SDK 自动决定镜像模式。默认情况下,远端用户的视频镜像模式为关闭状态。 + + + error + 状态或错误信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_canvasconfig_setrendermode_canvasconfig.dita b/dita/RTC-AIDOC/API/api_canvasconfig_setrendermode_canvasconfig.dita new file mode 100644 index 00000000000..998c8ecbdf4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_canvasconfig_setrendermode_canvasconfig.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="SetRenderMode_CanvasConfig"/> + 设置视频渲染模式。设置视频渲染模式。设置视频渲染模式。设置视频渲染模式。 + + + + + + + + +
+

+ void SetRenderMode(VideoRenderMode mode, Error *err = nullptr) + public void setVideoRenderMode(Constants.VideoRenderMode mode) throws RteException + - (void)setVideoRenderMode:(AgoraRteVideoRenderMode)mode error:(AgoraRteError * _Nullable)error; + - (void)setVideoRenderMode:(AgoraRteVideoRenderMode)mode error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 SetConfigs 之前调用。

+
+
+ 参数 + + + mode + 渲染模式,详见 。默认值为 kRteVideoRenderModeHidden,该模式按比例缩放视频并优先填满视图窗口。 + + + err + 输出参数,状态或错误信息,详见 + + + mode + 要设置的视频渲染模式,详见 。 + 默认值为 VideoRenderMode.HIDDEN + + + + mode + 要设置的视频渲染模式,详见 。默认值为 AgoraRteVideoRenderModeHidden + + + error + 状态或错误信息。 +
    +
  • AgoraRteOk:成功。
  • +
  • AgoraRteErrorInvalidArgumentmode 参数设置为非法值。详见
  • +
+
+
+ + mode + 要设置的视频渲染模式,详见 。默认值为 AgoraRteVideoRenderModeHidden + + + error + 状态或错误信息。 +
    +
  • AgoraRteOk:成功。
  • +
  • AgoraRteErrorInvalidArgumentmode 参数设置为非法值。详见
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_removedestchannelinfo.dita b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_removedestchannelinfo.dita new file mode 100644 index 00000000000..b2cb4a6082c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_removedestchannelinfo.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="removeDestChannelInfo"/> + 删除目标频道的信息。移除目标频道。删除目标频道的信息。 + + + + + + + + +
+

+ - (BOOL)removeDestinationInfoForChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(removeDestinationInfo(forChannelName:)); + public void removeDestChannelInfo(String channelName) + - (BOOL)removeDestinationInfoForChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(removeDestinationInfo(forChannelName:)); +

+
+
+
+ 参数 + + + channelName + 目标频道的频道名称。 + + + channelName + 要移除的目标频道名称。 + + + channelName + 目标频道的频道名称。 + + +
+
+ 返回值 +

+

    +
  • :删除目标频道信息成功。
  • +
  • :删除目标频道信息失败。
  • +
+

+

+

    +
  • :删除目标频道信息成功。
  • +
  • :删除目标频道信息失败。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setdestchannelinfo.dita b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setdestchannelinfo.dita new file mode 100644 index 00000000000..1cb6c29654d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setdestchannelinfo.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setDestChannelInfo"/> + 设置目标频道的信息。设置目标频道的信息。设置目标频道的信息。 + + + + + + + + +
+

+ - (BOOL)setDestinationInfo:(AgoraChannelMediaRelayInfo *_Nonnull)destinationInfo forChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(setDestinationInfo(_:forChannelName:)); + public void setDestChannelInfo(String channelName, ChannelMediaInfo destInfo) + - (BOOL)setDestinationInfo:(AgoraChannelMediaRelayInfo *_Nonnull)destinationInfo forChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(setDestinationInfo(_:forChannelName:)); +

+
+
+

如果你希望将媒体流转发到多个频道,最多可调用该方法四次。

+ 如果任一目标频道的 Token 过期,整个跨频道媒体流转发将停止。因此,声网建议你为所有目标频道指定相同的 Token 过期时间。 + 如果任一目标频道的 Token 过期,整个跨频道媒体流转发将停止。因此,声网建议你为所有目标频道指定相同的 Token 过期时间。 +
+
+ 参数 + + + destinationInfo + 目标频道的信息。包含以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • uid:用于标识目标频道中转发流的唯一用户 ID,取值范围为 0 到 (2^32-1)。为避免用户 ID 冲突,该用户 ID 必须不同于目标频道中的其他用户 ID。默认值为 0,表示 SDK 会随机生成一个用户 ID。
  • +
  • token:加入目标频道所需的 Token,由你在 destinationInfo 中设置的 channelNameuid 生成。 +
      +
    • 如果你未启用 App 证书,请将该参数设置为默认值 ,表示 SDK 使用 App ID。
    • +
    • 如果你已启用 App 证书,则必须使用根据 channelNameuid 生成的 Token。
    • +
    +
  • +
详见
+
+ + channelName + 目标频道的频道名称。 + + + channelName + 目标频道的名称。该值必须与 destInfochannelName 成员的值一致。 + + + destInfo + 目标频道的信息。包括以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • uid:目标频道中主播的用户 ID,取值范围为 0 到 (2<sup>32</sup> - 1)。为避免用户 ID 冲突,该值必须与目标频道中其他用户 ID 不同。默认值为 0,表示 SDK 会随机生成一个用户 ID。
  • +
  • token:加入目标频道所需的 Token。该 Token 是根据 channelNameuid 生成的。 +
      +
    • 如果未启用 App Certificate,将该参数设置为 null,表示 SDK 使用 App ID。
    • +
    • 如果已启用 App Certificate,必须使用根据 channelNameuid 生成的 Token。
    • +
    +
  • +
详见
+
+ + destinationInfo + 目标频道的信息。包含以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • uid:用于标识目标频道中转发流的唯一用户 ID,取值范围为 0 到 (2^32-1)。为避免用户 ID 冲突,该用户 ID 必须不同于目标频道中的其他用户 ID。默认值为 0,表示 SDK 会随机生成一个用户 ID。
  • +
  • token:加入目标频道所需的 Token,由你在 destinationInfo 中设置的 channelNameuid 生成。 +
      +
    • 如果你未启用 App 证书,请将该参数设置为默认值 ,表示 SDK 使用 App ID。
    • +
    • 如果你已启用 App 证书,则必须使用根据 channelNameuid 生成的 Token。
    • +
    +
  • +
详见
+
+ + channelName + 目标频道的频道名称。 + +
+
+
+ 返回值 +

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setsrcchannelinfo.dita b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setsrcchannelinfo.dita new file mode 100644 index 00000000000..eda2604e4aa --- /dev/null +++ b/dita/RTC-AIDOC/API/api_channelmediarelayconfiguration_setsrcchannelinfo.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setSrcChannelInfo"/> + 设置源频道的信息。 + + + + + + + + +
+

+ public void setSrcChannelInfo(ChannelMediaInfo srcInfo) +

+
+
+
+ 参数 + + + srcInfo + 源频道的信息,详见 。 +
    +
  • channelName:源频道的频道名。默认值为 null,表示 SDK 使用当前频道的频道名。
  • +
  • uid:要转发媒体流的主播的用户 ID。默认值为 0,表示 SDK 自动生成一个随机的用户 ID。你必须将其设置为 0。
  • +
  • token:加入源频道所需的 Token。该 Token 是根据你在 srcInfo 中设置的 channelNameuid 生成的。 +
      +
    • 如果你未启用 App 证书,请将该参数设置为默认值 null,表示 SDK 使用 App ID。
    • +
    • 如果你已启用 App 证书,必须使用根据 channelNameuid 生成的 Token,且 uid 必须设置为 0。
    • +
    +
  • +
+
+
+
+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_config_getappid.dita b/dita/RTC-AIDOC/API/api_config_getappid.dita new file mode 100644 index 00000000000..e71fee47544 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_config_getappid.dita @@ -0,0 +1,91 @@ + + + + <ph keyref="GetAppId"/> + 获取已配置的声网 App ID。获取已设置的 App ID。获取你已设置的声网 App ID。获取你已设置的声网 App ID。 + + + + + + + + +
+

+ std::string GetAppId(Error *err = nullptr) + public String getAppId() throws RteException + - (NSString* _Nullable)appId:(AgoraRteError * _Nullable)error; + - (NSString* _Nullable)appId:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 错误信息对象,可能返回以下错误码,详见 : +
    +
  • AgoraRteOk:调用成功。
  • +
+
+
+ + error + 错误信息对象,可能返回以下错误码,详见 : +
    +
  • AgoraRteOk:调用成功。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回已配置的声网 App ID。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

方法调用成功时,返回已设置的 App ID。 +方法调用失败,返回空字符串。

+

+

    +
  • 方法调用成功时,返回你已设置的声网 App ID。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回你已设置的声网 App ID。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_config_getjsonparameter_config.dita b/dita/RTC-AIDOC/API/api_config_getjsonparameter_config.dita new file mode 100644 index 00000000000..5f3269dc805 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_config_getjsonparameter_config.dita @@ -0,0 +1,94 @@ + + + + <ph keyref="GetJsonParameter_Config"/> + 获取已配置的 SDK JSON 配置信息。获取已配置的 SDK JSON 设置。获取当前配置的 RTE 私有参数。获取当前配置的 RTE 私有参数。 + + + + + + + + +
+

+ std::string GetJsonParameter(Error *err = nullptr) + public String getJsonParameter() throws RteException + - (NSString * _Nullable)jsonParameter:(AgoraRteError * _Nullable)error; + - (NSString * _Nullable)jsonParameter:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

调用 设置 JSON 配置后,可调用本方法获取已配置的信息。

+

调用 设置 JSON 配置后,可以调用该方法获取已配置的设置。

+
+
+ 调用时机 +

必须在调用 GetConfigs 之后调用此方法。

+

该方法必须在调用 getConfigs 之后调用。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息。详见 。 +
    +
  • AgoraRteOk:调用成功。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回已配置的 JSON 信息。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

方法调用成功时,返回已配置的 JSON 设置。 +方法调用失败,返回空字符串。

+

+

    +
  • 方法调用成功时,返回已设置的 JSON 格式参数集。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回已设置的 JSON 格式参数集。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_config_setappid.dita b/dita/RTC-AIDOC/API/api_config_setappid.dita new file mode 100644 index 00000000000..ec4af25c980 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_config_setappid.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="SetAppId"/> + 设置声网 App ID。设置项目的声网 App ID。设置声网 App ID。设置声网 App ID。 + + + + + + + + +
+

+ void SetAppId(const char *app_id, Error *err = nullptr) + public void setAppId(String appId) throws RteException + - (void)setAppId:(NSString * _Nullable)appId error:(AgoraRteError * _Nullable)error; + - (void)setAppId:(NSString * _Nullable)appId error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

你必须在调用 之前调用此方法。

+

你必须在调用 之前调用此方法。

+

你必须在调用 之前调用此方法。

+
+
+ 参数 + + + app_id + 你的项目的声网 App ID,可从声网控制台获取。 + + + err + 输出参数,状态或错误信息。详见 + + + appId + 声网 App ID,可从控制台获取。 + + + appId + 项目的声网 App ID,可从控制台获取。 + + + error + 状态或错误信息,详见 + + + appId + 项目的声网 App ID,可从控制台获取。 + + + error + 状态或错误信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_config_setjsonparameter_config.dita b/dita/RTC-AIDOC/API/api_config_setjsonparameter_config.dita new file mode 100644 index 00000000000..dae219fec0d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_config_setjsonparameter_config.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="SetJsonParameter_Config"/> + 使用 JSON 配置 SDK 的技术预览或自定义功能。设置播放器的私有参数。通过 JSON 配置 SDK 提供的技术预览或定制功能。通过 JSON 配置 SDK 提供的技术预览或定制功能。 + + + + + + + + +
+

+ void SetJsonParameter(const char *json_parameter, Error *err = nullptr) + public void setJsonParameter(String jsonParameter) throws RteException + - (void)setJsonParameter:(NSString * _Nonnull)jsonParameter error:(AgoraRteError * _Nullable)error; + - (void)setJsonParameter:(NSString * _Nullable)jsonParameter error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以在需要设置私有参数或使用自定义功能时调用此方法。

+

你可以根据实际需求设置播放器的私有参数,具体设置方式可参考声网 SA 的建议。

+

当你需要设置私有参数或使用定制功能时,可以调用此方法。

+

当你需要设置私有参数或使用定制功能时,可以调用此方法。

+ 你必须在调用 之前调用此方法。 + 你必须在调用 之前调用此方法。 +
+
+ 适用场景 +

当你需要设置私有参数或使用定制化功能时,可以调用此方法。

+
+
+ 调用时机 +

该方法必须在调用 SetConfigs 之前调用。

+
+
+ 参数 + + + json_parameter + JSON 字符串格式的参数。 + + + err + 输出参数,表示状态或错误信息。详见 + + + jsonParameter + JSON 字符串格式的参数。 + + + jsonParameter + JSON 格式的字符串。 + + + error + 输出参数,状态或错误信息,详见 。 +
    +
  • AgoraRteOk:成功。
  • +
  • AgoraRteErrorInvalidArgument:表示 jsonParameter 参数为空。
  • +
+
+
+ + jsonParameter + 以 JSON 字符串形式传入的参数。 + + + error + 状态或错误信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_error_code.dita b/dita/RTC-AIDOC/API/api_error_code.dita new file mode 100644 index 00000000000..c23eb03c2ba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_error_code.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="Code"/> + 获取 API 调用失败时返回的错误码。获取 API 调用失败时返回的错误码。获取 API 调用返回的错误码。获取 API 调用返回的错误码。 + + + + + + + + +
+

+ ErrorCode Code() const + public Constants.ErrorCode code() + - (AgoraRteErrorCode)code; + - (AgoraRteErrorCode)code; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

当 API 调用失败时,你可以调用该方法获取错误码。

+

当 API 调用失败时,你可以调用该方法获取错误码。

+
+
+ 调用时机 +

当 API 调用失败时,可以调用此方法获取错误码。

+

你可以在 API 调用失败时调用此方法获取错误码。

+

当 API 调用失败时,你可以调用该方法获取错误码。

+

当 API 调用失败时,你可以调用该方法获取错误码。

+
+
+ 返回值 +

方法调用成功,返回错误码,详见

+

+

    +
  • 方法调用失败时,返回错误码。详见
  • +
+

+

方法调用成功时,返回错误码,详见

+

方法调用成功时,返回错误码,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_error_message.dita b/dita/RTC-AIDOC/API/api_error_message.dita new file mode 100644 index 00000000000..7d3b1dbb697 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_error_message.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="Message"/> + 获取详细错误信息。获取详细的错误信息。获取详细错误信息。获取详细错误信息。 + + + + + + + + +
+

+ const char *Message() const + public String message() + - (NSString * _Nullable)message; + - (NSString * _Nullable)message; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

当 API 调用失败时,你可以调用该方法获取错误信息,以帮助排查问题。

+

当 API 调用失败时,可以调用该方法获取错误信息,以帮助排查问题。

+

当 API 调用失败时,你可以调用此方法获取错误信息,以帮助排查问题。

+

当 API 调用失败时,你可以调用此方法获取错误信息,以帮助排查问题。

+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回错误信息字符串。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回错误信息字符串。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回错误信息字符串。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回错误信息字符串。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getapplicationvolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getapplicationvolume.dita new file mode 100644 index 00000000000..4257e56e672 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getapplicationvolume.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getApplicationVolume"/> + 获取 App 的音量。 + + + + + + + + +
+

+ virtual int getApplicationVolume(int &volume) = 0; +

+
+
+
+ 参数 + + + volume + 输出参数,表示 App 的音量,取值范围为 [0,255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getcount_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getcount_iaudiodevicecollection.dita new file mode 100644 index 00000000000..69af9c7bdfc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getcount_iaudiodevicecollection.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="getCount_IAudioDeviceCollection"/> + 获取音频播放设备或音频采集设备的总数。 + + + + + + + + +
+

+ virtual int getCount() = 0; +

+
+
+

如果在调用该方法前调用了 ,SDK 会返回音频播放设备的数量;如果在调用该方法前调用了 ,SDK 会返回音频采集设备的数量。

+
+
+ 返回值 +

方法调用成功,返回音频播放设备或音频采集设备的总数。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice2_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice2_iaudiodevicecollection.dita new file mode 100644 index 00000000000..39eb7aac8ac --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice2_iaudiodevicecollection.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getDefaultDevice2_IAudioDeviceCollection"/> + 获取系统默认音频设备及其类型。 + + + + + + + + +
+

+ virtual int getDefaultDevice(char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

该方法仅适用于 macOS 平台。调用该方法前,你需要先调用 获取设备列表。

+
+
+ 参数 + + + deviceName + 输出参数,系统默认音频设备的名称。 + + + deviceTypeName + 输出参数,音频设备的类型,例如内置设备、USB 或 HDMI。 + + + deviceId + 输出参数,系统默认音频设备的设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice_iaudiodevicecollection.dita new file mode 100644 index 00000000000..68909c697bf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdefaultdevice_iaudiodevicecollection.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="getDefaultDevice_IAudioDeviceCollection"/> + 获取系统默认音频设备。 + + + + + + + + +
+

+ virtual int getDefaultDevice(char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

+

    +
  • 该方法仅适用于 Windows 和 macOS 平台。
  • +
  • 在调用该方法前,你需要先调用 获取设备列表。
  • +
+

+
+
+ 参数 + + + deviceName + 输出参数,系统默认音频设备的名称。 + + + deviceId + 输出参数,系统默认音频设备的设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice2_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice2_iaudiodevicecollection.dita new file mode 100644 index 00000000000..0ef6f25c43f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice2_iaudiodevicecollection.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="getDevice2_IAudioDeviceCollection"/> + 按索引获取音频设备的名称、类型和 ID。 + + + + + + + + +
+

+ virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 macOS 平台。 +
+
+ 参数 + + + index + 设备的索引。 + + + deviceName + 输出参数,设备名称。 + + + deviceTypeName + 输出参数,音频设备的类型,例如内建、USB 和 HDMI。 + + + deviceId + 输出参数,设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice_iaudiodevicecollection.dita new file mode 100644 index 00000000000..0f51a2a9b4d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_getdevice_iaudiodevicecollection.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="getDevice_IAudioDeviceCollection"/> + 获取指定索引的视频设备的信息。 + + + + + + + + +
+

+ virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+
+ 参数 + + + index + 视频设备的索引值。该值必须小于 返回的设备数量。 + + + deviceName + 输出参数,表示设备名称。最大长度为 + + + deviceId + 输出参数,表示视频设备的设备 ID。最大长度为 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_isapplicationmute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_isapplicationmute.dita new file mode 100644 index 00000000000..928bbd3c385 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_isapplicationmute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="isApplicationMute"/> + 检查应用是否处于静音状态。 + + + + + + + + +
+

+ virtual int isApplicationMute(bool &mute) = 0; +

+
+
+
+ 参数 + + + mute + 输出参数,表示应用是否处于静音状态: +
    +
  • :应用处于静音状态。
  • +
  • :应用未处于静音状态。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_release_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_release_iaudiodevicecollection.dita new file mode 100644 index 00000000000..bcf70ad5824 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_release_iaudiodevicecollection.dita @@ -0,0 +1,21 @@ + + + + <ph keyref="release_IAudioDeviceCollection"/> + 释放 对象占用的所有资源。 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationmute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationmute.dita new file mode 100644 index 00000000000..8865193a146 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationmute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="setApplicationMute"/> + 设置是否静音 App。 + + + + + + + + +
+

+ virtual int setApplicationMute(bool mute) = 0; +

+
+
+
+ 参数 + + + mute + 是否静音 App: +
    +
  • :静音 App。
  • +
  • :取消静音 App。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationvolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationvolume.dita new file mode 100644 index 00000000000..9cbe5f8c309 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setapplicationvolume.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="setApplicationVolume"/> + 设置应用程序的音量。 + + + + + + + + +
+

+ virtual int setApplicationVolume(int volume) = 0; +

+
+
+
+ 参数 + + + volume + 应用程序的音量,取值范围为 [0, 255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setdevice_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setdevice_iaudiodevicecollection.dita new file mode 100644 index 00000000000..d3bf9bc41fd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicecollection_setdevice_iaudiodevicecollection.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="setDevice_IAudioDeviceCollection"/> + 指定视频采集设备的设备 ID。 + + + + + + + + +
+

+ virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ +
    +
  • 插拔设备不会改变其设备 ID。
  • +
  • 该方法仅适用于 Windows 和 macOS 平台。
  • +
+
+
+
+ 参数 + + + deviceId + 设备 ID。你可以通过调用 获取。 + 最大长度为 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumerateplaybackdevices.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumerateplaybackdevices.dita new file mode 100644 index 00000000000..bc21d17866b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumerateplaybackdevices.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="enumeratePlaybackDevices"/> + 枚举系统中的音频播放设备。 + + + + + + + + +
+

+ virtual IAudioDeviceCollection *enumeratePlaybackDevices() = 0; +

+
+
+

该方法返回一个 对象,包含系统中的所有音频播放设备。使用该对象后,必须调用 方法释放资源。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回一个 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumeraterecordingdevices.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumeraterecordingdevices.dita new file mode 100644 index 00000000000..b6b822f4ea8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_enumeraterecordingdevices.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="enumerateRecordingDevices"/> + 枚举音频采集设备。 + + + + + + + + +
+

+ virtual IAudioDeviceCollection *enumerateRecordingDevices() = 0; +

+
+
+

该方法返回一个 对象,其中包含系统中的所有音频采集设备。使用该对象后,你必须调用 方法释放资源。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemloopbackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemloopbackdevice.dita new file mode 100644 index 00000000000..f6f1c2549be --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemloopbackdevice.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="followSystemLoopbackDevice"/> + 设置是否跟随系统默认音频播放设备。 + + + + + + + + +
+

+ virtual int followSystemLoopbackDevice(bool enable) = 0; +

+
+
+

该方法仅适用于 Windows 和 macOS 平台。

+
+
+ 参数 + + + enable + 是否跟随系统默认音频播放设备: +
    +
  • :跟随系统默认音频播放设备。当系统默认播放设备发生变化时,SDK 会立即切换到对应的声卡采集设备。
  • +
  • :不跟随系统默认音频播放设备。仅当当前音频播放设备断开连接时,SDK 才会将声卡采集设备切换为系统默认音频播放设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemplaybackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemplaybackdevice.dita new file mode 100644 index 00000000000..4ae863797ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemplaybackdevice.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="followSystemPlaybackDevice"/> + 设置 SDK 是否跟随系统默认音频播放设备。 + + + + + + + + +
+

+ virtual int followSystemPlaybackDevice(bool enable) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + enable + 是否跟随系统默认音频播放设备: +
    +
  • :跟随系统默认音频播放设备。当系统默认音频播放设备发生变化时,SDK 会立即切换音频播放设备。
  • +
  • :不跟随系统默认音频播放设备。仅当当前使用的音频播放设备断开连接时,SDK 才会切换到系统默认音频播放设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemrecordingdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemrecordingdevice.dita new file mode 100644 index 00000000000..22503e6efaa --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_followsystemrecordingdevice.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="followSystemRecordingDevice"/> + 设置 SDK 是否跟随系统默认音频录制设备。 + + + + + + + + +
+

+ virtual int followSystemRecordingDevice(bool enable) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + enable + 是否跟随系统默认音频录制设备: +
    +
  • :跟随系统默认音频录制设备。当系统默认设备发生变化时,SDK 会立即切换。
  • +
  • :不跟随系统默认音频录制设备。仅当当前设备断开连接时,SDK 才会切换到系统默认设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getloopbackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getloopbackdevice.dita new file mode 100644 index 00000000000..10c3b8433f5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getloopbackdevice.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getLoopbackDevice"/> + 获取当前的声卡采集设备。 + + + + + + + + +
+

+ virtual int getLoopbackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

该方法仅适用于 Windows 和 macOS 平台。

+
+
+ 参数 + + + deviceId + 输出参数,当前声卡采集设备的 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevice.dita new file mode 100644 index 00000000000..f2d4bd0f034 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevice.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getPlaybackDevice"/> + 检索与设备 ID 关联的音频播放设备。 + + + + + + + + +
+

+ virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 输出参数,表示音频播放设备的设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo.dita new file mode 100644 index 00000000000..64c67ff41f5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="getPlaybackDeviceInfo"/> + 获取音频播放设备的信息。 + + + + + + + + +
+

+ virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 音频播放设备的 ID,最大长度为 + + + deviceName + 输出参数,播放设备的名称,最大长度为 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo2.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo2.dita new file mode 100644 index 00000000000..7ac93bb5368 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdeviceinfo2.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getPlaybackDeviceInfo2"/> + 获取音频播放设备的信息和类型。 + + + + + + + + +
+

+ virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

该方法仅适用于 macOS 平台。

+
+
+ 参数 + + + deviceId + 音频播放设备的 ID。 + + + deviceName + 输出参数,播放设备的名称。 + + + deviceTypeName + 输出参数,音频播放设备的类型,例如内置设备、USB 和 HDMI。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicemute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicemute.dita new file mode 100644 index 00000000000..142d4341d89 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicemute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="getPlaybackDeviceMute"/> + 获取音频播放设备的静音状态。 + + + + + + + + +
+

+ virtual int getPlaybackDeviceMute(bool *mute) = 0; +

+
+
+
+ 参数 + + + mute + 输出参数,表示音频播放设备是否被静音。 +
    +
  • :音频播放设备被静音。
  • +
  • :音频播放设备未被静音。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicevolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicevolume.dita new file mode 100644 index 00000000000..94a4419c0af --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getplaybackdevicevolume.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getPlaybackDeviceVolume"/> + 获取音频播放设备的音量。 + + + + + + + + +
+

+ virtual int getPlaybackDeviceVolume(int *volume) = 0; +

+
+
+
+ 参数 + + + volume + 输出参数,表示音频播放设备的音量,取值范围为 [0, 255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevice.dita new file mode 100644 index 00000000000..f69bf1ed5f8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevice.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getRecordingDevice"/> + 获取当前音频录制设备的设备 ID。 + + + + + + + + +
+

+ virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 输出参数,当前音频录制设备的设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo.dita new file mode 100644 index 00000000000..43d4a312928 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="getRecordingDeviceInfo"/> + 获取音频录制设备的信息。 + + + + + + + + +
+

+ virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 音频录制设备的 ID。 + + + deviceName + 输出参数,录制设备的名称。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo2.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo2.dita new file mode 100644 index 00000000000..0ce17cb34e5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdeviceinfo2.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getRecordingDeviceInfo2"/> + 获取音频采集设备的信息和类型。 + + + + + + + + +
+

+ virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH], char deviceTypeName[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

该方法仅适用于 macOS 平台。

+
+
+ 参数 + + + deviceId + 音频播放设备的 ID,最大长度为 + + + deviceName + 输出参数,表示播放设备的名称,最大长度为 + + + deviceTypeName + 输出参数,表示音频采集设备的类型,例如内置设备、USB 和 HDMI,最大长度为 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicemute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicemute.dita new file mode 100644 index 00000000000..d5b671e2979 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicemute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="getRecordingDeviceMute"/> + 获取音频采集设备的静音状态。 + + + + + + + + +
+

+ virtual int getRecordingDeviceMute(bool *mute) = 0; +

+
+
+
+ 参数 + + + mute + 输出参数,表示音频采集设备是否处于静音状态。默认值为 。 +
    +
  • :麦克风处于静音状态。
  • +
  • :麦克风处于非静音状态。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicevolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicevolume.dita new file mode 100644 index 00000000000..3f376ec3649 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_getrecordingdevicevolume.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getRecordingDeviceVolume"/> + 获取音频录制设备的音量。 + + + + + + + + +
+

+ virtual int getRecordingDeviceVolume(int *volume) = 0; +

+
+
+ 该方法仅适用于 Windows 平台。 +
+
+ 参数 + + + volume + 输出参数,表示音频录制设备的音量,取值范围为 [0, 255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_release_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_release_iaudiodevicemanager.dita new file mode 100644 index 00000000000..ad6b24333ff --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_release_iaudiodevicemanager.dita @@ -0,0 +1,21 @@ + + + + <ph keyref="release_IAudioDeviceManager"/> + 释放 对象占用的所有资源。 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setloopbackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setloopbackdevice.dita new file mode 100644 index 00000000000..bc17d299182 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setloopbackdevice.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="setLoopbackDevice"/> + 设置 SDK 的声卡采集设备。 + + + + + + + + +
+

+ virtual int setLoopbackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

SDK 默认使用当前播放设备作为声卡采集设备。如果你希望指定其他音频设备作为声卡采集设备,可以调用该方法,并将 deviceId 设置为目标设备。你可以通过该方法更改当前使用的音频路由,但不会更改默认音频路由。例如,若默认音频路由为麦克风,在加入频道前调用该方法将音频路由设置为声卡并开始设备测试,SDK 会在声卡上进行测试。测试完成并加入频道后,SDK 仍使用麦克风进行音频采集。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 适用场景 +

该方法适用的典型场景如下: +使用 App A 通过蓝牙耳机播放音乐,同时使用 App B 进行视频通话并通过扬声器播放: +

    +
  • 如果将声卡采集设备设置为蓝牙耳机,SDK 会将 App A 播放的音乐发布到远端。
  • +
  • 如果将声卡采集设备设置为扬声器,SDK 不会将 App A 播放的音乐发布到远端。
  • +
  • 如果先将声卡采集设备设置为蓝牙耳机,之后改用有线耳机播放 App A 的音乐,则需要再次调用该方法,将声卡采集设备设置为有线耳机,SDK 才会继续将音乐发布到远端。
  • +
+

+
+
+ 参数 + + + deviceId + 指定 SDK 的声卡采集设备。你可以通过调用 获取设备 ID。最大长度为 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevice.dita new file mode 100644 index 00000000000..66c8ce3fcf9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevice.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="setPlaybackDevice"/> + 设置音频播放设备。 + + + + + + + + +
+

+ virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

你可以调用此方法更改当前使用的音频路由,但不会更改默认音频路由。例如,若默认音频路由为扬声器 1,在加入频道前调用此方法将音频路由设置为扬声器 2 并开始设备测试,SDK 会在扬声器 2 上进行设备测试。设备测试完成并加入频道后,SDK 仍会使用默认音频路由扬声器 1。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 指定音频播放设备的 ID。你可以通过调用 获取设备 ID。连接或断开音频设备不会改变 deviceId 的值。 + 最大长度为 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicemute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicemute.dita new file mode 100644 index 00000000000..7409019105a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicemute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="setPlaybackDeviceMute"/> + 设置是否静音音频播放设备。 + + + + + + + + +
+

+ virtual int setPlaybackDeviceMute(bool mute) = 0; +

+
+
+
+ 参数 + + + mute + 是否静音音频播放设备: +
    +
  • :静音音频播放设备。
  • +
  • :取消静音音频播放设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicevolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicevolume.dita new file mode 100644 index 00000000000..b693d5d35ac --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setplaybackdevicevolume.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setPlaybackDeviceVolume"/> + 设置音频播放设备的音量。 + + + + + + + + +
+

+ virtual int setPlaybackDeviceVolume(int volume) = 0; +

+
+
+ 该方法仅适用于 Windows 平台。 +
+
+ 参数 + + + volume + 音频播放设备的音量,取值范围为 [0,255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevice.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevice.dita new file mode 100644 index 00000000000..13e1980e562 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevice.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="setRecordingDevice"/> + 设置音频采集设备。 + + + + + + + + +
+

+ virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+

你可以调用此方法更改当前使用的音频路由,但不会更改默认音频路由。例如,默认音频路由为麦克风,在加入频道前调用此方法将音频路由设置为蓝牙耳机并开始设备测试,SDK 会在蓝牙耳机上进行设备测试。设备测试完成并加入频道后,SDK 仍使用麦克风进行音频采集。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 音频采集设备的 ID。你可以通过调用 获取设备 ID。连接或断开音频设备不会改变 deviceId 的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicemute.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicemute.dita new file mode 100644 index 00000000000..05a641bb5ec --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicemute.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="setRecordingDeviceMute"/> + 设置音频采集设备的静音状态。 + + + + + + + + +
+

+ virtual int setRecordingDeviceMute(bool mute) = 0; +

+
+
+
+ 参数 + + + mute + 是否将音频采集设备静音: +
    +
  • :静音音频采集设备。
  • +
  • :取消静音音频采集设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicevolume.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicevolume.dita new file mode 100644 index 00000000000..4f7673c756a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_setrecordingdevicevolume.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setRecordingDeviceVolume"/> + 设置音频采集设备的音量。 + + + + + + + + +
+

+ virtual int setRecordingDeviceVolume(int volume) = 0; +

+
+
+

该方法仅适用于 Windows 和 macOS 平台。

+
+
+ 参数 + + + volume + 音频采集设备的音量,取值范围为 [0, 255]。0 表示静音,255 表示最大音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startaudiodeviceloopbacktest.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startaudiodeviceloopbacktest.dita new file mode 100644 index 00000000000..9600b5751d7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startaudiodeviceloopbacktest.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="startAudioDeviceLoopbackTest"/> + 开始音频设备回路测试。 + + + + + + + + +
+

+ virtual int startAudioDeviceLoopbackTest(int indicationInterval) = 0; +

+
+
+

该方法用于测试本地音频采集设备和播放设备是否正常工作。调用该方法后,音频采集设备会采集本地音频,音频播放设备会播放采集到的音频。SDK 会按照设置的时间间隔触发两个独立的 回调,分别报告采集设备(uid = 0)和播放设备(uid = 1)的音量信息。

+ +
    +
  • 该方法仅适用于 Windows 和 macOS 平台。
  • +
  • 可以在加入频道前或加入频道后调用该方法。
  • +
  • 该方法仅在主播角色调用时生效。
  • +
  • 该方法仅测试本地音频设备,不涉及网络状况。
  • +
  • 测试完成后,请调用 停止音频设备回路测试。
  • +
+
+
+
+ 参数 + + + indicationInterval + SDK 触发 回调的时间间隔(毫秒)。建议设置为大于 200 毫秒的值。该值不能小于 10 毫秒,否则无法收到 回调。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startplaybackdevicetest_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startplaybackdevicetest_iaudiodevicemanager.dita new file mode 100644 index 00000000000..cde8d458a5d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startplaybackdevicetest_iaudiodevicemanager.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="startPlaybackDeviceTest_IAudioDeviceManager"/> + 开始本地音频播放设备测试。 + + + + + + + + +
+

+ virtual int startPlaybackDeviceTest(const char *testAudioFilePath) = 0; +

+
+
+

该方法用于测试本地音频播放设备是否正常工作。调用该方法后,SDK 会播放你指定的音频文件。如果你能听到声音,说明播放设备工作正常。调用该方法后,SDK 每 100 毫秒触发一次 回调,报告 uid = 1 及播放设备的音量信息。该方法与 的区别在于, 仅检测本地音频播放设备是否正常,而 可同时检测音视频设备和网络状况。

+ 请在加入频道前调用该方法。测试完成后,请调用 停止测试,再加入频道。 +
+
+ 参数 + + + testAudioFilePath + 音频文件路径,UTF-8 编码的字符串。支持的文件格式包括 wav、mp3、m4a 和 aac。支持的采样率包括 8000、16000、32000、44100 和 48000 Hz。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startrecordingdevicetest_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startrecordingdevicetest_iaudiodevicemanager.dita new file mode 100644 index 00000000000..bfad86923f1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_startrecordingdevicetest_iaudiodevicemanager.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="startRecordingDeviceTest_IAudioDeviceManager"/> + 开始音频采集设备测试。 + + + + + + + + +
+

+ virtual int startRecordingDeviceTest(int indicationInterval) = 0; +

+
+
+

调用该方法可以测试本地音频采集设备是否正常工作。调用后,SDK 会按照设定的时间间隔触发 回调,报告 uid 为 0 的采集设备音量信息。该方法仅检测本地音频采集设备,而 方法还可检测音视频设备和网络状况。

+ 请在加入频道前调用该方法。测试完成后,请在加入频道前调用 停止测试。 +
+
+ 参数 + + + indicationInterval + 触发 回调的时间间隔(毫秒)。该值必须大于 10,否则无法收到 回调,且 SDK 返回错误码 -2。建议设置为 100。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,请检查参数设置。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopaudiodeviceloopbacktest.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopaudiodeviceloopbacktest.dita new file mode 100644 index 00000000000..bc1edf259d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopaudiodeviceloopbacktest.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="stopAudioDeviceLoopbackTest"/> + 停止音频设备回路测试。 + + + + + + + + +
+

+ virtual int stopAudioDeviceLoopbackTest() = 0; +

+
+
+ 方法仅适用于 Windows 和 macOS 平台。你可以在加入频道前或加入频道后调用该方法。该方法仅在主播角色调用时生效。调用 方法开始回路测试后,请确保调用该方法停止回路测试。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopplaybackdevicetest_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopplaybackdevicetest_iaudiodevicemanager.dita new file mode 100644 index 00000000000..e7204b24c34 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stopplaybackdevicetest_iaudiodevicemanager.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="stopPlaybackDeviceTest_IAudioDeviceManager"/> + 停止音频播放设备测试。 + + + + + + + + +
+

+ virtual int stopPlaybackDeviceTest() = 0; +

+
+
+

调用 开始测试后,必须调用该方法停止测试。

+ 请在加入频道前调用该方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stoprecordingdevicetest_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stoprecordingdevicetest_iaudiodevicemanager.dita new file mode 100644 index 00000000000..f0e402e8eb1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudiodevicemanager_stoprecordingdevicetest_iaudiodevicemanager.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="stopRecordingDeviceTest_IAudioDeviceManager"/> + 停止音频采集设备测试。 + + + + + + + + +
+

+ virtual int stopRecordingDeviceTest() = 0; +

+
+
+

调用 开始音频采集设备测试后,必须调用该方法停止测试。

+ 请在加入频道前调用该方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserver_getearmonitoringaudioparams.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getearmonitoringaudioparams.dita new file mode 100644 index 00000000000..66c7fb93079 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getearmonitoringaudioparams.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="getEarMonitoringAudioParams"/> + 设置 回调的音频格式。 回调的音频格式设置方法。设置 回调的音频格式。 + + + + + + + + +
+

+ - (AgoraAudioParams* _Nonnull)getEarMonitoringAudioParams NS_SWIFT_NAME(getEarMonitoringAudioParams()); + @CalledByNative public abstract AudioParams getEarMonitoringAudioParams(); + - (AgoraAudioParams* _Nonnull)getEarMonitoringAudioParams NS_SWIFT_NAME(getEarMonitoringAudioParams()); +

+
+
+

你需要在调用 方法注册回调后,才能设置音频格式。成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+

调用 注册音频帧观察者时,需要实现该回调。SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+

你需要在调用 方法注册回调后,才能设置音频格式。成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的 计算采样间隔,并以该间隔触发 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的采样间隔计算公式触发 回调。采样间隔(秒) = samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的 计算采样间隔,并以该间隔触发 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功,返回耳返音频数据格式对象,详见

+

耳返音频数据格式,详见

+

方法调用成功,返回耳返音频数据格式对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserver_getmixedaudioparams.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getmixedaudioparams.dita new file mode 100644 index 00000000000..dae779768f7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getmixedaudioparams.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="getMixedAudioParams"/> + 设置 回调的音频格式。设置 回调的音频格式。设置 回调的音频格式。 + + + + + + + + +
+

+ - (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams()); + @CalledByNative public abstract AudioParams getMixedAudioParams(); + - (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams()); +

+
+
+

你需要在调用 方法时注册该回调。在成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+

调用 注册音频帧观察者时,需要实现该回调。成功注册音频帧观察者后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+

你需要在调用 方法时注册该回调。在成功注册音频观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的采样间隔触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的采样间隔计算公式触发 回调。采样间隔(秒) = samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的采样间隔触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功,返回混合后的采集和播放音频数据对象,详见

+

方法调用成功,返回 对象。详见

+

方法调用成功,返回混合后的采集和播放音频数据对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserver_getobservedaudioframeposition.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getobservedaudioframeposition.dita new file mode 100644 index 00000000000..b1bea5b4075 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getobservedaudioframeposition.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="getObservedAudioFramePosition"/> + 设置音频数据观察位置。设置音频数据观察位置。设置音频数据观察位置。 + + + + + + + + +
+

+ - (AgoraAudioFramePosition)getObservedAudioFramePosition NS_SWIFT_NAME(getObservedAudioFramePosition()); + @CalledByNative public abstract int getObservedAudioFramePosition(); + - (AgoraAudioFramePosition)getObservedAudioFramePosition NS_SWIFT_NAME(getObservedAudioFramePosition()); +

+
+
+

成功注册音频数据观察器后,SDK 会在每个特定的音频帧处理节点使用该回调,以判断是否触发以下回调: +

    +
  • +
  • +
  • +
  • +
  • +
你可以根据场景需求,通过修改 的返回值设置需要观察的一个或多个位置。当你需要观察多个位置时,需使用 |(或运算符)。为节省系统资源,建议减少观察位置的数量。

+

成功注册音频数据观察器后,SDK 会在每个特定的音频帧处理节点调用该回调,以判断是否触发以下回调: +

    +
  • +
  • +
  • +
  • +
  • +
你可以根据场景需求,通过修改 的返回值设置需要观察的一个或多个位置。当需要观察多个位置时,需使用 |(或运算符)。为节省系统资源,建议减少观察的帧位置数量。

+

成功注册音频数据观察器后,SDK 会在每个特定的音频帧处理节点使用该回调,以判断是否触发以下回调: +

    +
  • +
  • +
  • +
  • +
  • +
你可以根据场景需求,通过修改 的返回值设置需要观察的一个或多个位置。当你需要观察多个位置时,需使用 |(或运算符)。为节省系统资源,建议减少观察位置的数量。

+
+
+ 返回值 +

返回一个位掩码,用于设置观察位置,具体取值如下,详见 AgoraAudioFramePosition: +

    +
  • AgoraAudioFramePositionPlayback(0x0001):该位置可观察所有远端用户混音后的播放音频。对应 onPlaybackAudioFrame: 回调。
  • +
  • AgoraAudioFramePositionRecord(0x0002):该位置可观察本地用户采集的音频。对应 回调。
  • +
  • AgoraAudioFramePositionMixed(0x0004):该位置可观察本地用户与所有远端用户混音后的播放音频。对应 回调。
  • +
  • AgoraAudioFramePositionBeforeMixing(0x0008):该位置可观察单个远端用户混音前的音频。对应 回调。
  • +
  • AgoraAudioFramePositionEarMonitoring(0x0010):该位置可观察本地用户的耳返音频。对应 回调。
  • +
+

+

返回一个位掩码,用于设置观察位置,具体取值如下: +

    +
  • POSITION_PLAYBACK(0x0001):可观察所有远端用户混音后的播放音频,对应 回调。
  • +
  • POSITION_RECORD(0x0002):可观察本地用户采集的音频,对应 回调。
  • +
  • POSITION_MIXED(0x0004):可观察本地用户与所有远端用户混音后的播放音频,对应 回调。
  • +
  • POSITION_BEFORE_MIXING(0x0008):可观察单个远端用户混音前的音频,对应 回调。
  • +
  • POSITION_EAR_MONITORING(0x0010):可观察本地用户的耳返音频,对应 回调。
  • +
+

+

返回一个位掩码,用于设置观察位置,具体取值如下,详见 AgoraAudioFramePosition: +

    +
  • AgoraAudioFramePositionPlayback(0x0001):该位置可观察所有远端用户混音后的播放音频。对应 onPlaybackAudioFrame: 回调。
  • +
  • AgoraAudioFramePositionRecord(0x0002):该位置可观察本地用户采集的音频。对应 回调。
  • +
  • AgoraAudioFramePositionMixed(0x0004):该位置可观察本地用户与所有远端用户混音后的播放音频。对应 回调。
  • +
  • AgoraAudioFramePositionBeforeMixing(0x0008):该位置可观察单个远端用户混音前的音频。对应 回调。
  • +
  • AgoraAudioFramePositionEarMonitoring(0x0010):该位置可观察本地用户的耳返音频。对应 回调。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserver_getplaybackaudioparams.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getplaybackaudioparams.dita new file mode 100644 index 00000000000..3cba604cb92 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getplaybackaudioparams.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="getPlaybackAudioParams"/> + 设置 onPlaybackAudioFrame: 回调的音频格式。 回调的音频格式设置方法。设置 onPlaybackAudioFrame: 回调的音频格式。 + + + + + + + + +
+

+ - (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams()); + public abstract AudioParams getPlaybackAudioParams() + - (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams()); +

+
+
+

你需要在调用 方法时注册回调。成功注册音频观察器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+

你需要在调用 方法时注册回调。在成功注册音频观测器后,SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。

+

你需要在调用 方法时注册回调。成功注册音频观察器后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 onPlaybackAudioFrame: 回调。采样间隔(秒)= samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 onPlaybackAudioFrame: 回调。采样间隔(秒)= samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功,返回用于播放的音频参数对象,详见

+

方法调用成功,返回 对象。详见

+

方法调用成功,返回用于播放的音频参数对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserver_getrecordaudioparams.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getrecordaudioparams.dita new file mode 100644 index 00000000000..34cb7b3ad74 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserver_getrecordaudioparams.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="getRecordAudioParams"/> + 设置 回调的音频格式。设置 回调的音频格式。设置 回调的音频格式。 + + + + + + + + +
+

+ - (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams()); + @CalledByNative public abstract AudioParams getRecordAudioParams(); + - (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams()); +

+
+
+

调用 方法注册回调后,SDK 会触发 回调。你可以在该回调的返回值中设置音频格式。

+

调用 注册回调后,SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。

+

调用 方法注册回调后,SDK 会触发 回调。你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的采样间隔计算公式触发 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的 计算采样间隔并触发 回调。采样间隔(秒) = samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 + SDK 会根据你在返回值中设置的采样间隔计算公式触发 回调。采样间隔(秒) = samplePerCall / (sampleRate × channel)。确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功,返回采集的音频参数对象,详见

+

方法调用成功,返回 对象。

+

方法调用成功,返回采集的音频参数对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getearmonitoringaudioparams_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getearmonitoringaudioparams_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..2f03ee1639f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getearmonitoringaudioparams_iaudioframeobserverbase.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="getEarMonitoringAudioParams_IAudioFrameObserverBase"/> + 回调的音频格式设置回调。 + + + + + + + + +
+

+ virtual AudioParams getEarMonitoringAudioParams() = 0; +

+
+
+

调用 注册音频帧观察者时,需要实现该回调。注册成功后,SDK 会触发该回调,你可以在返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的采样间隔计算公式触发 回调。计算公式为:采样间隔(秒) = samplePerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功时,返回一个 对象,表示耳返音频数据格式,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getmixedaudioparams_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getmixedaudioparams_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..1c258708230 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getmixedaudioparams_iaudioframeobserverbase.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="getMixedAudioParams_IAudioFrameObserverBase"/> + 回调的音频格式设置回调。 + + + + + + + + +
+

+ virtual AudioParams getMixedAudioParams() = 0; +

+
+
+

调用 方法注册音频帧观察器时,你需要实现该回调。在成功注册音频帧观察器后,SDK 会触发该回调,你可以通过该回调的返回值设置音频格式。

+ SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功时,返回一个 实例,表示混合后的采集和播放音频数据,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getobservedaudioframeposition_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getobservedaudioframeposition_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..2cc6f48aee5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getobservedaudioframeposition_iaudioframeobserverbase.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="getObservedAudioFramePosition_IAudioFrameObserverBase"/> + 设置音频数据观察位置。 + + + + + + + + +
+

+ virtual int getObservedAudioFramePosition() = 0; +

+
+
+

成功注册音频数据观察器后,SDK 会在每个特定的音频帧处理节点调用该回调,以判断是否触发以下回调: +

    +
  • +
  • +
  • +
  • +
  • +
你可以根据实际场景,通过修改 的返回值设置需要观察的一个或多个位置。如果需要同时观察多个位置,需使用按位或运算符(|)。为节省系统资源,建议只设置必要的观察位置。

+
+
+ 返回值 +

一个位掩码,用于设置观察位置,具体取值如下: +

    +
  • AUDIO_FRAME_POSITION_PLAYBACK(0x0001):可观察所有远端用户混音后的播放音频。对应回调为
  • +
  • AUDIO_FRAME_POSITION_RECORD(0x0002):可观察本地用户采集的音频。对应回调为
  • +
  • AUDIO_FRAME_POSITION_MIXED(0x0004):可观察本地用户与所有远端用户混音后的播放音频。对应回调为
  • +
  • AUDIO_FRAME_POSITION_BEFORE_MIXING(0x0008):可观察单个远端用户混音前的音频。对应回调为
  • +
  • AUDIO_FRAME_POSITION_EAR_MONITORING(0x0010):可观察本地用户的耳返音频。对应回调为
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getplaybackaudioparams_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getplaybackaudioparams_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..9cd54a59a01 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getplaybackaudioparams_iaudioframeobserverbase.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="getPlaybackAudioParams_IAudioFrameObserverBase"/> + 设置 回调的音频格式。 + + + + + + + + +
+

+ virtual AudioParams getPlaybackAudioParams() = 0; +

+
+
+

你需要在调用 方法时注册回调。注册成功后,SDK 会触发该回调,你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功时,返回一个用于播放的音频参数,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getrecordaudioparams_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getrecordaudioparams_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..01628d5f71f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iaudioframeobserverbase_getrecordaudioparams_iaudioframeobserverbase.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="getRecordAudioParams_IAudioFrameObserverBase"/> + 回调的音频格式设置回调。 + + + + + + + + +
+

+ virtual AudioParams getRecordAudioParams() = 0; +

+
+
+

调用 注册音频帧观察者后,SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。

+ SDK 会根据你在返回值中设置的 计算采样间隔,并以此触发 回调。采样间隔的计算公式为:采样间隔(秒) = samplePerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。 +
+
+ 返回值 +

方法调用成功时,返回一个 实例,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_clearremotepositions.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_clearremotepositions.dita new file mode 100644 index 00000000000..96af2aff001 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_clearremotepositions.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="clearRemotePositions"/> + 移除所有远端用户的空间位置。移除所有远端用户的空间位置。移除所有远端用户的空间位置。 + + + + + + + + +
+

+ - (int)clearRemotePositions NS_SWIFT_NAME(clearRemotePositions()); + public abstract int clearRemotePositions(); + - (int)clearRemotePositions NS_SWIFT_NAME(clearRemotePositions()); +

+
+
+

调用该方法后,你将无法再听到任何远端用户的声音。离开频道后,为避免资源浪费,也可以调用该方法。

+

调用该方法后,本地用户将无法再听到任何远端用户的声音。你也可以在离开频道后调用该方法以释放资源。

+

调用该方法后,你将无法再听到任何远端用户的声音。离开频道后,为避免资源浪费,也可以调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteallremoteaudiostreams_ibasespatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteallremoteaudiostreams_ibasespatialaudioengine.dita new file mode 100644 index 00000000000..c9bd4901eea --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteallremoteaudiostreams_ibasespatialaudioengine.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="muteAllRemoteAudioStreams_IBaseSpatialAudioEngine"/> + 停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。 + + + + + + + + +
+

+ - (int)muteAllRemoteAudioStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteAudioStreams(_:)); + public abstract int muteAllRemoteAudioStreams(boolean mute); + - (int)muteAllRemoteAudioStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteAudioStreams(_:)); +

+
+
+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括后续加入频道的用户。

+

调用该方法后,本地用户将停止或恢复订阅所有远端用户的音频流,包括后续加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括后续加入频道的用户。

+ +
    +
  • 请在调用 joinChannelByToken 方法后再调用此方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅所有远端用户的音频流,声网建议调用此方法,而非 方法。
  • +
  • 调用此方法后,你需要调用 updateSelfPositionupdateRemotePosition 方法更新本地用户和远端用户的空间位置,否则该方法的设置不会生效。
  • +
+
+ +
    +
  • 请在调用 joinChannel 方法后调用本方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅所有远端用户的音频流,声网推荐使用本方法,而非 下的同名方法。
  • +
  • 调用本方法后,需要调用 方法更新本地用户和远端用户的空间位置,否则本方法的设置不会生效。
  • +
+
+ +
    +
  • 请在调用 joinChannelByToken 方法后再调用此方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅所有远端用户的音频流,声网建议调用此方法,而非 方法。
  • +
  • 调用此方法后,你需要调用 updateSelfPositionupdateRemotePosition 方法更新本地用户和远端用户的空间位置,否则该方法的设置不会生效。
  • +
+
+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :订阅所有远端用户的音频流。
  • +
+
+
+ + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :订阅所有远端用户的音频流。
  • +
+
+
+ + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :订阅所有远端用户的音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_mutelocalaudiostream_ibasespatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_mutelocalaudiostream_ibasespatialaudioengine.dita new file mode 100644 index 00000000000..7802f5d530c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_mutelocalaudiostream_ibasespatialaudioengine.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="muteLocalAudioStream_IBaseSpatialAudioEngine"/> + 停止或恢复发布本地音频流。停止或恢复发布本地音频流。停止或恢复发布本地音频流。 + + + + + + + + +
+

+ - (int)muteLocalAudioStream:(BOOL)mute NS_SWIFT_NAME(muteLocalAudioStream(_:)); + public abstract int muteLocalAudioStream(boolean mute); + - (int)muteLocalAudioStream:(BOOL)mute NS_SWIFT_NAME(muteLocalAudioStream(_:)); +

+
+
+

你可以通过该方法停止或恢复发布本地音频流。 + +该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 +使用空间音效时,如果你需要设置是否停止订阅指定用户的音频流,声网推荐你调用该方法,而不是 AgoraRtcEngine 下的同名方法。

+

你可以通过该方法停止或恢复发布本地音频流。 + +该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 +使用空间音效时,如果你需要设置是否停止订阅指定用户的音频流,声网推荐你调用该方法,而不是 AgoraRtcEngine 下的同名方法。

+ 方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 +请在调用 joinChannel 方法之后调用该方法。 +使用空间音效时,如果需要设置是否停止发布本地音频流,声网推荐调用该方法,而不是 下的同名方法。 +该方法成功调用后会在远端客户端触发 回调。 +
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+ +
+ 参数 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :发布本地音频流。
  • +
+
+
+ + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :发布本地音频流。
  • +
+
+
+ + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :发布本地音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteremoteaudiostream_ibasespatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteremoteaudiostream_ibasespatialaudioengine.dita new file mode 100644 index 00000000000..421cb04f045 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_muteremoteaudiostream_ibasespatialaudioengine.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="muteRemoteAudioStream_IBaseSpatialAudioEngine"/> + 停止或恢复订阅指定用户的音频流。停止或恢复订阅指定远端用户的音频流。停止或恢复订阅指定用户的音频流。 + + + + + + + + +
+

+ - (int)muteRemoteAudioStream:(NSUInteger)uid mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudioStream(_:mute:)); + public abstract int muteRemoteAudioStream(int uid, boolean mute); + - (int)muteRemoteAudioStream:(NSUInteger)uid mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudioStream(_:mute:)); +

+
+
+ 调用该方法需在 方法之后进行。使用空间音效时,如需设置是否停止订阅指定用户的音频流,声网建议使用此方法,而非 方法。 + +
    +
  • 请在调用 joinChannel 方法后调用此方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅指定用户的音频流,声网推荐调用此方法,而非 方法。
  • +
+
+ 调用该方法需在 方法之后进行。使用空间音效时,如需设置是否停止订阅指定用户的音频流,声网建议使用此方法,而非 方法。 +
+
+ 参数 + + + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + mute + 是否订阅指定远端用户的音频流。 +
    +
  • :停止订阅指定用户的音频流。
  • +
  • (默认):订阅指定用户的音频流。SDK 会根据本地用户与远端用户之间的距离决定是否订阅。
  • +
+
+
+ + uid + 远端用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + mute + 是否订阅指定远端用户的音频流: +
    +
  • :停止订阅指定用户的音频流。
  • +
  • :(默认)订阅指定用户的音频流。SDK 会根据本地用户与远端用户之间的距离决定是否订阅。
  • +
+
+
+ + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + mute + 是否订阅指定远端用户的音频流。 +
    +
  • :停止订阅指定用户的音频流。
  • +
  • (默认):订阅指定用户的音频流。SDK 会根据本地用户与远端用户之间的距离决定是否订阅。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setaudiorecvrange.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setaudiorecvrange.dita new file mode 100644 index 00000000000..e74bebc7c85 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setaudiorecvrange.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="setAudioRecvRange"/> + 设置你可接收的音频范围。设置本地用户的音频接收范围。设置你可接收的音频范围。 + + + + + + + + +
+

+ - (int)setAudioRecvRange:(float)range NS_SWIFT_NAME(setAudioRecvRange(_:)); + public abstract int setAudioRecvRange(float range); + - (int)setAudioRecvRange:(float)range NS_SWIFT_NAME(setAudioRecvRange(_:)); +

+
+
+

设置成功后,你只能听到在设定范围内或与你属于同一队伍的远端用户的音频。你可以在任意时刻调用该方法以更新音频接收范围。

+

你可以在任意时间调用该方法以更新音频接收范围。设置成功后,本地用户只能接收设定范围内或同一队伍中远端用户的音频。

+

设置成功后,你只能听到在设定范围内或与你属于同一队伍的远端用户的音频。你可以在任意时刻调用该方法以更新音频接收范围。

+
+
+ 参数 + + + range + 最大音频接收范围,单位为米。该参数的值必须大于 0,默认值为 20。 + + + range + 最大音频接收范围,单位为米。该参数必须大于 0。(默认值为 20) + + + range + 最大音频接收范围,单位为米。该参数的值必须大于 0,默认值为 20。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setdistanceunit.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setdistanceunit.dita new file mode 100644 index 00000000000..623da204941 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setdistanceunit.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="setDistanceUnit"/> + 设置游戏引擎中每个单位距离对应的米数。设置游戏引擎中每个单位距离对应的米数。设置游戏引擎中每个单位距离对应的米数。 + + + + + + + + +
+

+ - (int)setDistanceUnit:(float)unit NS_SWIFT_NAME(setDistanceUnit(_:)); + public abstract int setDistanceUnit(float unit); + - (int)setDistanceUnit:(float)unit NS_SWIFT_NAME(setDistanceUnit(_:)); +

+
+
+

声网的空间音效算法中,距离以米为单位进行测量。SDK 默认将游戏引擎中的每个单位距离转换为 1 米。你可以调用 方法将游戏引擎中的每个单位距离转换为指定的米数。

+

在声网的空间音效算法中,距离以米为单位进行计算。SDK 默认将游戏引擎中的每个单位距离转换为 1 米。你可以调用该方法将游戏引擎中的每个单位距离转换为指定的米数。

+

声网的空间音效算法中,距离以米为单位进行测量。SDK 默认将游戏引擎中的每个单位距离转换为 1 米。你可以调用 方法将游戏引擎中的每个单位距离转换为指定的米数。

+
+
+ 参数 + + + unit + 游戏引擎中每个单位距离对应的米数。该参数的值必须大于 0.00,默认值为 1.00(默认)。例如,将 unit 设置为 2.00 表示游戏引擎中每个单位距离等于 2 米。值越大,当远端用户远离你时,你听到的声音衰减得越快。 + + + unit + 游戏引擎中每个单位距离对应的米数。该参数必须大于 0.00,默认值为 1.00。例如,将该参数设置为 2.00 表示游戏引擎中每个单位距离等于 2 米。该值越大,当远端用户远离本地用户时,本地用户听到的声音衰减得越快。 + + + unit + 游戏引擎中每个单位距离对应的米数。该参数的值必须大于 0.00,默认值为 1.00(默认)。例如,将 unit 设置为 2.00 表示游戏引擎中每个单位距离等于 2 米。值越大,当远端用户远离你时,你听到的声音衰减得越快。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setmaxaudiorecvcount.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setmaxaudiorecvcount.dita new file mode 100644 index 00000000000..b3f2dbc0de3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setmaxaudiorecvcount.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="setMaxAudioRecvCount"/> + 设置你在指定音频接收范围内可接收的最大音频流数量。设置你在指定音频接收范围内可接收的最大音频流数量。设置你在指定音频接收范围内可接收的最大音频流数量。 + + + + + + + + +
+

+ - (int)setMaxAudioRecvCount:(NSUInteger)maxCount NS_SWIFT_NAME(setMaxAudioRecvCount(_:)); + public abstract int setMaxAudioRecvCount(int maxCount); + - (int)setMaxAudioRecvCount:(NSUInteger)maxCount NS_SWIFT_NAME(setMaxAudioRecvCount(_:)); +

+
+
+

如果可接收的音频流数量超过该设置值,你将接收距离你最近的 maxCount 条音频流。

+

如果可接收的音频流数量超过该设置值,本地用户将接收距离其最近的 maxCount 条音频流。

+

如果可接收的音频流数量超过该设置值,你将接收距离你最近的 maxCount 条音频流。

+
+
+ 参数 + + + maxCount + 你在指定音频接收范围内可接收的最大音频流数量。该值应小于或等于 16,默认值为 10。 + + + maxCount + 你在指定音频接收范围内可接收的最大音频流数量。该参数的取值应小于或等于 16。(默认值为 10) + + + maxCount + 你在指定音频接收范围内可接收的最大音频流数量。该值应小于或等于 16,默认值为 10。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setplayerattenuation.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setplayerattenuation.dita new file mode 100644 index 00000000000..c9e7a20b0c6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setplayerattenuation.dita @@ -0,0 +1,136 @@ + + + + <ph keyref="setPlayerAttenuation"/> + 设置媒体播放器的声音衰减属性。设置媒体播放器的声音衰减属性。设置媒体播放器的声音衰减属性。 + + + + + + + + +
+

+ - (int)setPlayerAttenuation:(double)attenuation playerId:(NSUInteger)playerId forceSet:(BOOL)forceSet NS_SWIFT_NAME(setPlayerAttenuation(_:playerId:forceSet:)); + public abstract int setPlayerAttenuation(int playerId, double attenuation, boolean forceSet); + - (int)setPlayerAttenuation:(double)attenuation playerId:(NSUInteger)playerId forceSet:(BOOL)forceSet NS_SWIFT_NAME(setPlayerAttenuation(_:playerId:forceSet:)); +

+
+
+
+ 参数 + + + attenuation + 远端用户或媒体播放器的声音衰减系数,取值范围为 [0,1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中迅速衰减。
  • +
+
+
+ + playerId + 媒体播放器的 ID。你可以通过调用 获取设备 ID。 + + + forceSet + 是否强制设置媒体播放器的声音衰减效果: +
    +
  • :强制使用 attenuation 设置媒体播放器的衰减效果,此时在 中通过 audioAttenuation 设置的隔音区衰减系数对媒体播放器无效。
  • +
  • :不强制使用 attenuation 设置媒体播放器的声音衰减效果,具体如下: +
      +
    • 如果声源和听众分别位于隔音区内外,声音衰减效果由 中的 audioAttenuation 决定。
    • +
    • 如果声源和听众位于同一隔音区内,或都在隔音区外,声音衰减效果由本方法中的 attenuation 参数决定。
    • +
    +
  • +
+
+
+ + playerId + 媒体播放器的 ID。你可以通过调用 获取该 ID。 + + + attenuation + 远端用户或媒体播放器的声音衰减系数,取值范围为 [0,1]。具体说明如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减,本地用户听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中迅速衰减。
  • +
+
+
+ + forceSet + 是否强制设置媒体播放器的声音衰减效果: +
    +
  • :强制使用 attenuation 设置媒体播放器的衰减效果,此时 audioAttenuation 设置的隔音区衰减系数对媒体播放器无效。
  • +
  • :不强制使用 attenuation 设置媒体播放器的声音衰减效果,具体如下: +
      +
    • 如果声源和听众分别位于隔音区内外,声音衰减效果由 中的 audioAttenuation 决定。
    • +
    • 如果声源和听众位于同一隔音区内或同一隔音区外,声音衰减效果由本方法中的 attenuation 参数决定。
    • +
    +
  • +
+
+
+ + attenuation + 远端用户或媒体播放器的声音衰减系数,取值范围为 [0,1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中迅速衰减。
  • +
+
+
+ + playerId + 媒体播放器的 ID。你可以通过调用 获取设备 ID。 + + + forceSet + 是否强制设置媒体播放器的声音衰减效果: +
    +
  • :强制使用 attenuation 设置媒体播放器的衰减效果,此时在 中通过 audioAttenuation 设置的隔音区衰减系数对媒体播放器无效。
  • +
  • :不强制使用 attenuation 设置媒体播放器的声音衰减效果,具体如下: +
      +
    • 如果声源和听众分别位于隔音区内外,声音衰减效果由 中的 audioAttenuation 决定。
    • +
    • 如果声源和听众位于同一隔音区内,或都在隔音区外,声音衰减效果由本方法中的 attenuation 参数决定。
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setzones.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setzones.dita new file mode 100644 index 00000000000..e3e766ff7d7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_setzones.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="setZones"/> + 设置声源隔音区域。设置隔音区域。设置声源隔音区域。 + + + + + + + + +
+

+ - (int)setZones:(NSArray<AgoraSpatialAudioZone*> * _Nullable)zones NS_SWIFT_NAME(setZones(_:)); + public abstract int setZones(SpatialAudioZone[] zones); + - (int)setZones:(NSArray<AgoraSpatialAudioZone*> * _Nullable)zones NS_SWIFT_NAME(setZones(_:)); +

+
+
+

在虚拟互动场景中,你可以使用此方法设置隔音区域和声音衰减系数。 +

    +
  • 当声源(可以是用户或媒体播放器)和接收者分别处于隔音区域的内外部时,声音的衰减效果由 中的声音衰减系数决定。
  • +
  • 如果用户或媒体播放器处于同一个隔音区域内,则不受 的影响,声音衰减效果由 setRemoteAudioAttenuation:userId:forceSet: 中的 attenuation 参数决定。如果你未调用上述方法,SDK 默认的声音衰减系数为 0.5,用于模拟真实环境中的声音衰减。
  • +
  • 如果声源和接收者分别处于两个不同的隔音区域内,接收者将无法听到声源的声音。
  • +
+

+

在虚拟互动场景中,你可以使用该方法设置隔音区域及声音衰减系数。当声源(可以是用户或媒体播放器)和接收者分别处于隔音区域的内外时,可以体验到类似真实环境中声音遇到建筑隔断时的衰减效果: +

    +
  • 当声源和接收者分别处于隔音区域的内外时,声音的衰减效果由 中的声音衰减系数决定。
  • +
  • 如果用户或媒体播放器处于同一个隔音区域内,则声音衰减效果由 中的 attenuation 参数决定。如果你未调用 ,SDK 默认的声音衰减系数为 0.5,用于模拟真实环境中的声音衰减。
  • +
  • 如果声源和接收者分别处于两个不同的隔音区域,接收者将无法听到声源。
  • +
+

+

在虚拟互动场景中,你可以使用此方法设置隔音区域和声音衰减系数。 +

    +
  • 当声源(可以是用户或媒体播放器)和接收者分别处于隔音区域的内外部时,声音的衰减效果由 中的声音衰减系数决定。
  • +
  • 如果用户或媒体播放器处于同一个隔音区域内,则不受 的影响,声音衰减效果由 setRemoteAudioAttenuation:userId:forceSet: 中的 attenuation 参数决定。如果你未调用上述方法,SDK 默认的声音衰减系数为 0.5,用于模拟真实环境中的声音衰减。
  • +
  • 如果声源和接收者分别处于两个不同的隔音区域内,接收者将无法听到声源的声音。
  • +
+

+ 如果多次调用该方法,以最后一次设置的隔音区域为准。 + 如果多次调用该方法,以最后一次设置的隔音区域为准。 + 如果多次调用该方法,以最后一次设置的隔音区域为准。 +
+
+ 参数 + + + zones + 隔音区域设置。当该参数设置为 时,表示清除所有隔音区域。详见 + + + zones + 隔音区域设置。当该参数设置为 null 时,表示清除所有隔音区域。详见 + + + zones + 隔音区域设置。当该参数设置为 时,表示清除所有隔音区域。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateplayerpositioninfo.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateplayerpositioninfo.dita new file mode 100644 index 00000000000..031bb6365d4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateplayerpositioninfo.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="updatePlayerPositionInfo"/> + 更新媒体播放器的空间位置。更新媒体播放器的空间位置。更新媒体播放器的空间位置。 + + + + + + + + +
+

+ - (int)updatePlayerPositionInfo:(NSInteger)playerId positionInfo:(AgoraRemoteVoicePositionInfo* _Nonnull)positionInfo NS_SWIFT_NAME(updatePlayerPositionInfo(_:positionInfo:)); + public abstract int updatePlayerPositionInfo(int playerId, RemoteVoicePositionInfo positionInfo); + - (int)updatePlayerPositionInfo:(NSInteger)playerId positionInfo:(AgoraRemoteVoicePositionInfo* _Nonnull)positionInfo NS_SWIFT_NAME(updatePlayerPositionInfo(_:positionInfo:)); +

+
+
+

调用该方法后,本地用户可以听到媒体播放器空间位置的变化。

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

该方法可以在加入频道前或加入频道后调用。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + playerId + 媒体播放器的 ID。你可以通过调用 获取设备 ID。 + + + positionInfo + 媒体播放器的空间位置信息,详见 + + + playerId + 媒体播放器的 ID。你可以通过调用 获取该 ID。 + + + positionInfo + 媒体播放器的空间位置,详见 + + + playerId + 媒体播放器的 ID。你可以通过调用 获取设备 ID。 + + + positionInfo + 媒体播放器的空间位置信息,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselfposition.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselfposition.dita new file mode 100644 index 00000000000..34b7adc95db --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselfposition.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="updateSelfPosition"/> + 更新本地用户的空间位置。更新本地用户的空间位置。更新本地用户的空间位置。 + + + + + + + + +
+

+ - (int)updateSelfPosition:(simd_float3)position axisForward:(simd_float3)axisForward axisRight:(simd_float3)axisRight axisUp:(simd_float3)axisUp NS_SWIFT_NAME(updateSelfPosition(_:axisForward:axisRight:axisUp:)); + public abstract int updateSelfPosition(float[] position, float[] axisForward, float[] axisRight, float[] axisUp); + - (int)updateSelfPosition:(simd_float3)position axisForward:(simd_float3)axisForward axisRight:(simd_float3)axisRight axisUp:(simd_float3)axisUp NS_SWIFT_NAME(updateSelfPosition(_:axisForward:axisRight:axisUp:)); +

+
+
+

你需要将该方法与 方法配合使用。SDK 会根据这两个方法中的参数设置计算本地用户与远端用户之间的相对位置,并据此计算空间音效参数。

+

需要与 搭配使用。SDK 会根据该方法和 中的参数设置,计算本地用户与远端用户之间的相对位置,并据此计算空间音效参数。

+

你需要将该方法与 方法配合使用。SDK 会根据这两个方法中的参数设置计算本地用户与远端用户之间的相对位置,并据此计算空间音效参数。

+
+
+ 参数 + + + position + 世界坐标系中的坐标。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisForward + 坐标系中 x 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisRight + 坐标系中 y 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisUp + 坐标系中 z 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + position + 世界坐标系中的坐标。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisForward + 坐标系中 x 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisRight + 坐标系中 y 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisUp + 坐标系中 z 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + position + 世界坐标系中的坐标。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisForward + 坐标系中 x 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisRight + 坐标系中 y 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisUp + 坐标系中 z 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselftransform.dita b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselftransform.dita new file mode 100644 index 00000000000..300bddbfc52 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ibasespatialaudioengine_updateselftransform.dita @@ -0,0 +1,43 @@ + + + + <ph keyref="updateSelfTransform"/> + 更新坐标转换。 + + + + + + + + +
+

+ - (int)updateSelfTransform:(simd_float4x4)transform NS_SWIFT_NAME(updateSelfTransform(_:)); +

+
+
+
+ 适用场景 +

当你使用原生 iOS 框架(如 SceneKitRealityKit)时,可以调用此方法将位置向量直接传递给上述框架进行渲染。

+
+
+ 参数 + + + transform + 转换参数。是一个 4 × 4 的矩阵。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_clearremotepositions_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_clearremotepositions_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..0ad5231c372 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_clearremotepositions_ilocalspatialaudioengine.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="clearRemotePositions_ILocalSpatialAudioEngine"/> + 移除所有远端用户的空间位置。 + + + + + + + + +
+

+ virtual int clearRemotePositions() = 0; +

+
+
+

成功调用该方法后,你将无法听到任何远端用户的声音。离开频道后,为避免资源浪费,也可以调用该方法移除所有远端用户的空间位置。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_create_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_create_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..18ac7fcde5d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_create_ilocalspatialaudioengine.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="create_ILocalSpatialAudioEngine"/> + 创建一个 实例。 + + + + + + + + +
+

+ public static synchronized ILocalSpatialAudioEngine create() +

+
+
+

在调用 之前调用该方法。

+
+
+ 返回值 +

方法调用成功,返回 实例。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_initialize_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_initialize_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..d7827338621 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_initialize_ilocalspatialaudioengine.dita @@ -0,0 +1,91 @@ + + + + <ph keyref="initialize_ILocalSpatialAudioEngine"/> + 初始化 初始化 初始化 实例。初始化 实例。 + + + + + + + + +
+

+ virtual int initialize(const LocalSpatialAudioConfig& config) = 0; + public abstract int initialize(LocalSpatialAudioConfig config); + + (instancetype _Nonnull)sharedLocalSpatialAudioWithConfig:(AgoraLocalSpatialAudioConfig*)config NS_SWIFT_NAME(sharedLocalSpatialAudio(with:)); + + (instancetype _Nonnull)sharedLocalSpatialAudioWithConfig:(AgoraLocalSpatialAudioConfig*)config NS_SWIFT_NAME(sharedLocalSpatialAudio(with:)); +

+
+
+

在调用 的其他方法前,你必须先调用 获取接口实例,并通过该方法初始化 。每个 App 仅支持创建一个 实例。

+ +
    +
  • 请在调用 方法后调用此方法。
  • +
  • 在调用 的其他方法前,必须先调用 初始化
  • +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+ 在调用 的其他方法前,你必须先调用 方法初始化 实例。 +
    +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+ 在调用 的其他方法前,你必须先调用 方法初始化 实例。 +
    +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+
+
+ 参数 + + + config + 的配置,详见 + + + config + 的配置。详见 + + + config + 的配置。详见 + + + config + 的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteallremoteaudiostreams_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteallremoteaudiostreams_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..1e1135f612b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteallremoteaudiostreams_ilocalspatialaudioengine.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="muteAllRemoteAudioStreams_ILocalSpatialAudioEngine"/> + 停止或恢复订阅所有远端用户的音频流。 + + + + + + + + +
+

+ virtual int muteAllRemoteAudioStreams(bool mute) = 0; +

+
+
+

调用该方法后,本地用户将停止或恢复订阅所有远端用户的音频流,包括后续加入频道的用户。

+ +
    +
  • 请在调用 joinChannel 方法后调用本方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅所有远端用户的音频流,声网推荐使用本方法,而非 下的同名方法。
  • +
  • 调用本方法后,需要调用 更新本地用户和远端用户的空间位置,否则本方法的设置不会生效。
  • +
+
+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :订阅所有远端用户的音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_mutelocalaudiostream_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_mutelocalaudiostream_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..f7ef3ac5c6d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_mutelocalaudiostream_ilocalspatialaudioengine.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="muteLocalAudioStream_ILocalSpatialAudioEngine"/> + 停止或恢复发布本地音频流。 + + + + + + + + +
+

+ virtual int muteLocalAudioStream(bool mute) = 0; +

+
+
+ 该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 +请在调用 joinChannel 方法之后调用该方法。 +使用空间音效时,如果需要设置是否停止发布本地音频流,建议调用该方法,而不是 下的同名方法。 +
+ +
+ 参数 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :发布本地音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteremoteaudiostream_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteremoteaudiostream_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..bc2501213fc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_muteremoteaudiostream_ilocalspatialaudioengine.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="muteRemoteAudioStream_ILocalSpatialAudioEngine"/> + 停止或恢复订阅指定远端用户的音频流。 + + + + + + + + +
+

+ virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0; +

+
+
+ +
    +
  • 请在调用 joinChannel 方法后调用此方法。
  • +
  • 使用空间音效时,如需设置是否停止订阅指定用户的音频流,声网建议调用此方法,而非 方法。
  • +
+
+
+
+ 参数 + + + uid + 用户 ID。该值必须与用户加入频道时传入的用户 ID 相同。 + + + mute + 是否订阅指定远端用户的音频流: +
    +
  • :停止订阅该用户的音频流。
  • +
  • :(默认)订阅该用户的音频流。SDK 会根据本地用户与远端用户之间的距离决定是否订阅。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_release_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_release_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..b5476e2f8fb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_release_ilocalspatialaudioengine.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="release_ILocalSpatialAudioEngine"/> + 释放 的所有资源。销毁 实例。销毁 实例。销毁 实例。 + + + + + + + + +
+

+ virtual void release() = 0; + public static synchronized void destroy() + + (void)destroy NS_SWIFT_NAME(destroy()); + + (void)destroy NS_SWIFT_NAME(destroy()); +

+
+
+

调用该方法可释放 下的所有资源。调用该方法后,将无法再使用 下的任何 API。

+

调用该方法后,将无法再使用 下的任何 API。如需再次使用空间音效功能,需等待 方法执行完成后,再调用 创建新的 实例。

+

该方法会释放 下的所有资源。当你不再需要使用空间音效时,可以调用该方法释放资源。调用该方法后,将无法再使用 下的任何 API。如需再次使用空间音效,需等待 方法执行完成后,再调用 创建新的 实例。

+

该方法会释放 下的所有资源。当你不再需要使用空间音效时,可以调用该方法释放资源。调用该方法后,将无法再使用 下的任何 API。如需再次使用空间音效,需等待 方法执行完成后,再调用 创建新的 实例。

+ 请在调用 方法之前调用该方法。 + 请在调用 方法之前调用此方法。 + 请在调用 方法之前调用此方法。 + 请在调用 方法之前调用此方法。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_removeremoteposition.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_removeremoteposition.dita new file mode 100644 index 00000000000..5daa5cdf2fc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_removeremoteposition.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="removeRemotePosition"/> + 移除指定远端用户的空间位置信息。移除指定远端用户的空间位置信息。移除指定远端用户的空间位置。移除指定远端用户的空间位置。 + + + + + + + + +
+

+ virtual int removeRemotePosition(uid_t uid) = 0; + public abstract int removeRemotePosition(int uid); + - (int)removeRemotePosition:(NSUInteger)uid NS_SWIFT_NAME(removeRemotePosition(_:)); + - (int)removeRemotePosition:(NSUInteger)uid NS_SWIFT_NAME(removeRemotePosition(_:)); +

+
+
+

调用该方法后,本地用户将无法再听到指定远端用户的声音。离开频道后,为避免浪费计算资源,建议调用该方法移除该远端用户的空间位置信息,否则该信息将持续保留。当远端用户数量超过通过 设置的最大可接收音频流数量时,系统会根据相对距离自动取消订阅距离最远用户的音频流。

+

调用该方法成功后,你将不再听到指定远端用户的声音。离开频道后,为避免浪费计算资源,建议调用该方法移除指定远端用户的空间位置信息。否则,该用户的空间位置信息将持续保留。当远端用户数量超过通过 设置的可接收音频流数量时,系统会根据相对距离自动取消订阅距离最远用户的音频流。

+

调用该方法后,你将不再听到该远端用户的声音。离开频道后,为避免浪费计算资源,建议调用该方法删除指定远端用户的空间位置信息。否则,该用户的空间位置信息将持续保留。当远端用户数量超过通过 设置的可接收音频流数量时,系统会根据相对距离自动取消订阅距离最远用户的音频流。

+

调用该方法后,你将不再听到该远端用户的声音。离开频道后,为避免浪费计算资源,建议调用该方法删除指定远端用户的空间位置信息。否则,该用户的空间位置信息将持续保留。当远端用户数量超过通过 设置的可接收音频流数量时,系统会根据相对距离自动取消订阅距离最远用户的音频流。

+
+
+ 参数 + + + uid + uid。该值必须与用户加入频道时传入的用户 ID 相同。 + + + uid + uid。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + uid + uid。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + uid + uid。该参数必须与用户加入频道时传入的用户 ID 相同。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setaudiorecvrange_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setaudiorecvrange_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..85077f76c8b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setaudiorecvrange_ilocalspatialaudioengine.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setAudioRecvRange_ILocalSpatialAudioEngine"/> + 设置本地用户的音频接收范围。 + + + + + + + + +
+

+ virtual int setAudioRecvRange(float range) = 0; +

+
+
+

设置成功后,本地用户只能听到在设定范围内或属于同一队伍的远端用户的音频。你可以随时调用该方法更新音频接收范围。

+
+
+ 参数 + + + range + 最大音频接收范围,单位为米。该参数必须大于 0。(默认)为 20。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setdistanceunit_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setdistanceunit_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..2eb7eb0b8f3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setdistanceunit_ilocalspatialaudioengine.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setDistanceUnit_ILocalSpatialAudioEngine"/> + 设置游戏引擎中每个单位距离对应的米数。 + + + + + + + + +
+

+ virtual int setDistanceUnit(float unit) = 0; +

+
+
+

在声网的空间音效算法中,距离以米为单位进行测量,而游戏引擎中的距离单位是自定义的。SDK 默认将游戏引擎中的每个单位距离转换为 1 米。你可以调用 方法,将游戏引擎中的单位距离转换为指定的米数。

+
+
+ 参数 + + + unit + 游戏引擎中每个单位距离对应的米数。该参数的值必须大于 0.00,默认值为 1.00。例如,将 unit 设置为 2.00 表示游戏引擎中每个单位距离等于 2 米。值越大,当远端用户远离本地用户时,本地用户听到的声音衰减得越快。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setmaxaudiorecvcount_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setmaxaudiorecvcount_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..83c4c9585b4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setmaxaudiorecvcount_ilocalspatialaudioengine.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="setMaxAudioRecvCount_ILocalSpatialAudioEngine"/> + 设置你在指定音频接收范围内可接收的最大音频流数量。 + + + + + + + + +
+

+ virtual int setMaxAudioRecvCount(int maxCount) = 0; +

+
+
+

如果可接收的音频流数量超过该值,本地用户将接收距离其最近的 maxCount 条音频流。

+
+
+ 参数 + + + maxCount + 你在指定音频接收范围内可接收的最大音频流数量。该值应小于或等于 16。默认值为 10。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setplayerattenuation_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setplayerattenuation_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..496662c4bb3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setplayerattenuation_ilocalspatialaudioengine.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="setPlayerAttenuation_ILocalSpatialAudioEngine"/> + 设置媒体播放器的声音衰减属性。 + + + + + + + + +
+

+ virtual int setPlayerAttenuation(int playerId, double attenuation, bool forceSet) = 0; +

+
+
+
+ 参数 + + + playerId + 媒体播放器的 ID。你可以通过调用 获取设备 ID。 + + + attenuation + 远端用户或媒体播放器的声音衰减系数,取值范围为 [0, 1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,本地用户听到的音量和音色不会随距离变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + forceSet + 是否强制设置媒体播放器的声音衰减效果: +
    +
  • :强制使用 attenuation 设置媒体播放器的衰减效果,此时 中通过 audioAttenuation 设置的隔音区衰减系数对媒体播放器无效。
  • +
  • :不强制使用 attenuation 设置媒体播放器的声音衰减效果,具体如下: +
      +
    • 如果声源和收听者分别位于隔音区内外,声音衰减效果由 中的 audioAttenuation 决定。
    • +
    • 如果声源和收听者位于同一隔音区内或同一隔音区外,声音衰减效果由本方法中的 attenuation 决定。
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setremoteaudioattenuation.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setremoteaudioattenuation.dita new file mode 100644 index 00000000000..2b45fa3b0c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setremoteaudioattenuation.dita @@ -0,0 +1,172 @@ + + + + <ph keyref="setRemoteAudioAttenuation"/> + 设置指定用户的声音衰减效果。设置指定用户的声音衰减效果。设置指定用户的声音衰减效果。设置指定用户的声音衰减效果。 + + + + + + + + +
+

+ virtual int setRemoteAudioAttenuation(uid_t uid, double attenuation, bool forceSet) = 0; + public abstract int setRemoteAudioAttenuation(int uid, double attenuation, boolean forceSet); + - (int)setRemoteAudioAttenuation:(double)attenuation uid:(NSUInteger)uid forceSet:(BOOL)forceSet NS_SWIFT_NAME(setRemoteAudioAttenuation(_:uid:forceSet:)); + - (int)setRemoteAudioAttenuation:(double)attenuation uid:(NSUInteger)uid forceSet:(BOOL)forceSet NS_SWIFT_NAME(setRemoteAudioAttenuation(_:uid:forceSet:)); +

+
+
+
+ 参数 + + + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + attenuation + 用户的声音衰减系数,取值范围为 [0,1]。各取值含义如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,本地用户听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中迅速衰减。
  • +
+
+
+ + forceSet + 是否强制设置用户的声音衰减效果: +
    +
  • :强制使用 attenuation 设置用户的声音衰减效果,此时 audioAttenuation 设置的隔音区衰减系数对该用户无效。
  • +
  • :不强制使用 attenuation 设置用户的声音衰减效果,具体如下: +
      +
    • 若声源和接收者分别位于隔音区内外,衰减效果由 中的 audioAttenuation 决定;
    • +
    • 若声源和接收者位于同一隔音区或同在隔音区外,衰减效果由本方法中的 attenuation 决定。
    • +
    +
  • +
+
+
+ + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + attenuation + 用户的声音衰减系数,取值范围为 [0, 1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,本地用户听到的音量和音色不会因距离变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离大于真实环境。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + forceSet + 是否强制设置用户的声音衰减效果: +
    +
  • :强制使用 attenuation 设置用户的声音衰减效果,此时 audioAttenuation 设置的隔音区衰减系数对该用户无效。
  • +
  • :不强制使用 attenuation 设置用户的声音衰减效果,具体如下: +
      +
    • 若声源和接收者分别位于隔音区内外,衰减效果由 中的 audioAttenuation 决定;
    • +
    • 若声源和接收者位于同一隔音区或同一隔音区外,衰减效果由本方法中的 attenuation 决定。
    • +
    +
  • +
+
+
+ + attenuation + 用户的声音衰减系数,取值范围为 [0,1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,你听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + uid + 用户 ID。该参数必须与你加入频道时传入的用户 ID 相同。 + + + forceSet + 是否强制设置该用户的声音衰减效果: +
    +
  • :强制使用 attenuation 设置该用户的声音衰减效果,此时 audioAttenuation 设置的隔音区衰减系数对该用户无效。
  • +
  • :不强制使用 attenuation 设置该用户的声音衰减效果,具体如下: +
      +
    • 若声源和接收者分别位于隔音区内外,衰减效果由 中的 audioAttenuation 决定;
    • +
    • 若声源和接收者位于同一隔音区内或同一隔音区外,衰减效果由本方法中的 attenuation 决定。
    • +
    +
  • +
+
+
+ + attenuation + 用户的声音衰减系数,取值范围为 [0,1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不会随距离衰减,你听到的音量和音色不会因距离变化而变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + uid + 用户 ID。该参数必须与你加入频道时传入的用户 ID 相同。 + + + forceSet + 是否强制设置该用户的声音衰减效果: +
    +
  • :强制使用 attenuation 设置该用户的声音衰减效果,此时 audioAttenuation 设置的隔音区衰减系数对该用户无效。
  • +
  • :不强制使用 attenuation 设置该用户的声音衰减效果,具体如下: +
      +
    • 若声源和接收者分别位于隔音区内外,衰减效果由 中的 audioAttenuation 决定;
    • +
    • 若声源和接收者位于同一隔音区内或同一隔音区外,衰减效果由本方法中的 attenuation 决定。
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setzones_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setzones_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..3bc3b0a01b3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_setzones_ilocalspatialaudioengine.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="setZones_ILocalSpatialAudioEngine"/> + 设置隔音区域。 + + + + + + + + +
+

+ virtual int setZones(const SpatialAudioZone *zones, unsigned int zoneCount) = 0; +

+
+
+

在虚拟互动场景中,你可以使用该方法设置隔音区域及其声音衰减系数。当声源(用户或媒体播放器)和接收者分别位于隔音区域的内外时,可以模拟现实中声音被建筑物阻隔时的衰减效果: +

    +
  • 当声源和接收者分别位于隔音区域的内外时,声音的衰减效果由 中的衰减系数决定。
  • +
  • 当用户或媒体播放器处于同一个隔音区域内时,不受 的影响,声音衰减效果由 中的 attenuation 参数决定。若未调用上述方法,SDK 默认使用 0.5 的声音衰减系数。
  • +
  • 当声源和接收者分别位于两个不同的隔音区域中,接收者将无法听到声源。
  • +
+

+ 如果多次调用该方法,以最后一次设置的隔音区域为准。 +
+
+ 参数 + + + zones + 隔音区域设置。设置为 表示清除所有隔音区域。详见 。 + 在 Windows 平台上,必须确保 zones 数组中的成员数量等于 zoneCount 的值,否则可能导致崩溃。 + + + + zoneCount + 隔音区域的数量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateplayerpositioninfo_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateplayerpositioninfo_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..d3acace25e9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateplayerpositioninfo_ilocalspatialaudioengine.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="updatePlayerPositionInfo_ILocalSpatialAudioEngine"/> + 更新媒体播放器的空间位置。 + + + + + + + + +
+

+ virtual int updatePlayerPositionInfo(int playerId, const RemoteVoicePositionInfo& positionInfo) = 0; +

+
+
+

调用该方法后,本地用户可以听到媒体播放器空间位置的变化。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + playerId + 媒体播放器的 ID。你可以通过调用 获取该 ID。 + + + positionInfo + 媒体播放器的空间位置信息,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateremoteposition.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateremoteposition.dita new file mode 100644 index 00000000000..3ade92dcdfc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateremoteposition.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="updateRemotePosition"/> + 更新指定远端用户的空间位置。更新指定远端用户的空间位置。更新指定远端用户的空间位置。更新指定远端用户的空间位置。 + + + + + + + + +
+

+ virtual int updateRemotePosition(uid_t uid, const RemoteVoicePositionInfo &posInfo) = 0; + public abstract int updateRemotePosition(int uid, RemoteVoicePositionInfo posInfo); + - (int)updateRemotePosition:(NSUInteger)uid positionInfo:(AgoraRemoteVoicePositionInfo*)posInfo NS_SWIFT_NAME(updateRemotePosition(_:positionInfo:)); + - (int)updateRemotePosition:(NSUInteger)uid positionInfo:(AgoraRemoteVoicePositionInfo*)posInfo NS_SWIFT_NAME(updateRemotePosition(_:positionInfo:)); +

+
+
+

调用该方法后,SDK 会根据本地用户与远端用户之间的相对位置计算空间音效参数。

+

成功调用该方法后,SDK 会根据本地用户与远端用户之间的相对位置计算空间音效参数。

+

成功调用该方法后,SDK 会根据本地用户与远端用户之间的相对位置计算空间音效参数。

+ 请在调用 joinChannel 方法后再调用此方法。 + 请在调用 joinChannelByToken 方法后再调用此方法。 + 请在调用 joinChannelByToken 方法后再调用此方法。 +
+
+ 调用时机 +

请在调用 joinChannel 方法后调用该方法。

+
+
+ 参数 + + + uid + 用户 ID。该值必须与用户加入频道时传入的用户 ID 相同。 + + + posInfo + 远端用户的空间位置。详见 + + + uid + 用户 ID,必须与该用户加入频道时传入的用户 ID 相同。 + + + posInfo + 远端用户的空间位置。详见 + + + uid + 远端用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + posInfo + 远端用户的空间位置。详见 + + + uid + 远端用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + posInfo + 远端用户的空间位置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateselfposition_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateselfposition_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..0c2dfa100b1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ilocalspatialaudioengine_updateselfposition_ilocalspatialaudioengine.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="updateSelfPosition_ILocalSpatialAudioEngine"/> + 更新本地用户的空间位置。 + + + + + + + + +
+

+ virtual int updateSelfPosition(const float position[3], const float axisForward[3], const float axisRight[3], const float axisUp[3]) = 0; +

+
+
+

该方法属于 类,需要与 搭配使用。SDK 会根据该方法和 中的参数设置,计算本地用户与远端用户之间的相对位置,并据此生成空间音效参数。

+
+
+ 参数 + + + position + 世界坐标系中的位置坐标。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisForward + 坐标系中 x 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisRight + 坐标系中 y 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + axisUp + 坐标系中 z 轴的单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_createcustomaudiotrack_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_createcustomaudiotrack_imediaengine.dita new file mode 100644 index 00000000000..c89e110392b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_createcustomaudiotrack_imediaengine.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="createCustomAudioTrack_IMediaEngine"/> + 创建自定义音频轨道。 + + + + + + + + +
+

+ virtual rtc::track_id_t createCustomAudioTrack(rtc::AUDIO_TRACK_TYPE trackType, const rtc::AudioTrackConfig& config) = 0; +

+
+
+

要发布自定义音频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 publishCustomAudioTrackId 设置为你要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
  5. 调用 ,并将 trackId 设置为步骤 2 中设置的音频轨道 ID,即可在频道中发布对应的自定义音频源。
  6. +
+

+
+
+ 调用时机 +

该方法需要在加入频道前调用。

+
+
+ 参数 + + + trackType + 自定义音频轨道的类型,详见 。 + 如果该参数设置为 AUDIO_TRACK_DIRECT,则在调用 joinChannel 加入频道时,必须将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + + config + 自定义音频轨道的配置,详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回音频轨道 ID,作为该音频轨道的唯一标识符。
  • +
  • 方法调用失败,返回 0xffffffff
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_destroycustomaudiotrack_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_destroycustomaudiotrack_imediaengine.dita new file mode 100644 index 00000000000..123d6663c49 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_destroycustomaudiotrack_imediaengine.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="destroyCustomAudioTrack_IMediaEngine"/> + 销毁指定的音频轨道。 + + + + + + + + +
+

+ virtual int destroyCustomAudioTrack(rtc::track_id_t trackId) = 0; +

+
+
+
+ 参数 + + + trackId + 返回的自定义音频轨道 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_pullaudioframe_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_pullaudioframe_imediaengine.dita new file mode 100644 index 00000000000..89d11d809f7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_pullaudioframe_imediaengine.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="pullAudioFrame_IMediaEngine"/> + 拉取远端混音后的音频数据。 + + + + + + + + +
+

+ virtual int pullAudioFrame(IAudioFrameObserverBase::AudioFrame* frame) = 0; +

+
+
+

调用该方法后,App 会拉取解码并混音后的音频数据用于播放。该方法需要在加入频道后调用。在调用该方法前,请先调用 启用并设置外部音频渲染。

+ 回调都可用于获取远端混音后的音频数据。启用外部音频渲染(调用 )后,App 将无法再通过 回调获取数据。请根据实际业务需求选择使用该方法或 回调。两者的区别如下: +
    +
  • 调用 后,App 会自动从 SDK 拉取音频数据。通过设置音频数据参数,SDK 会调整帧缓冲区,帮助 App 处理延迟,有效避免音频播放抖动。
  • +
  • 注册 回调后,SDK 会通过回调将音频数据发送给 App。若 App 处理音频帧的过程存在延迟,可能会导致音频抖动。
  • +
该方法仅用于获取远端混音后的音频数据。如果你需要获取采集、播放等不同音频处理阶段的数据,可以通过调用 注册相应的回调。
+
+
+ 调用时机 +

该方法需要在加入频道后调用。

+
+
+ 参数 + + + frame + 输出参数,指向 的指针。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_pushaudioframe.dita b/dita/RTC-AIDOC/API/api_imediaengine_pushaudioframe.dita new file mode 100644 index 00000000000..80909771ab6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_pushaudioframe.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="pushAudioFrame"/> + 推送外部音频帧。 + + + + + + + + +
+

+ virtual int pushAudioFrame(IAudioFrameObserverBase::AudioFrame* frame, rtc::track_id_t trackId = 0) = 0; +

+
+
+
+ 调用时机 +

在调用该方法推送外部音频数据前,请先完成以下操作: +

    +
  1. 调用 创建自定义音频轨道并获取音频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 publishCustomAudioTrackId 设置为你希望发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
+

+
+
+ 参数 + + + frame + 外部音频帧。详见 + + + trackId + 音频轨道 ID。如果你希望发布自定义音频源,请将该参数设置为对应的自定义音频轨道 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_pushvideoframe_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_pushvideoframe_imediaengine.dita new file mode 100644 index 00000000000..80e3a037578 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_pushvideoframe_imediaengine.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="pushVideoFrame_IMediaEngine"/> + 通过视频轨道将外部原始视频帧推送到 SDK。 + + + + + + + + +
+

+ virtual int pushVideoFrame(base::ExternalVideoFrame* frame, unsigned int videoTrackId = 0) = 0; +

+
+
+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用 创建视频轨道并获取视频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 ,并将 videoTrackId 设置为第 2 步中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
+

+ 如果你只需向频道中推送一个自定义视频源,可以直接调用 方法,SDK 会自动创建一个 videoTrackId 为 0 的视频轨道。 +警告:调用 后,即使你停止向 SDK 推送外部视频帧,自定义视频流仍会计入视频时长并产生费用。声网建议你根据实际情况采取适当措施以避免此类视频计费: +
    +
  • 如果你不再需要采集外部视频数据,可以调用 销毁自定义视频轨道。
  • +
  • 如果你只想将外部视频数据用于本地预览而不在频道中发布,可以调用 停止发送视频流,或调用 publishCustomVideoTrack 设置为
  • +
+
+
+
+ 适用场景 +

自 v4.2.3 起,SDK 支持 ID3D11Texture2D 视频格式,该格式广泛应用于游戏场景。当你需要将此类视频帧推送到 SDK 时,调用 ,并将 frame 中的 format 设置为 VIDEO_TEXTURE_ID3D11TEXTURE2D,设置 d3d11_texture_2dtexture_slice_index 成员,并将视频帧格式设置为 ID3D11Texture2D

+
+
+ 参数 + + + frame + 要推送的外部原始视频帧。详见 + + + videoTrackId + 调用 返回的视频轨道 ID。 + 如果你只需推送一个自定义视频源,请将 videoTrackId 设置为 0。 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_registeraudioframeobserver_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_registeraudioframeobserver_imediaengine.dita new file mode 100644 index 00000000000..a31aaee30c2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_registeraudioframeobserver_imediaengine.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="registerAudioFrameObserver_IMediaEngine"/> + 注册音频帧观测器对象。 + + + + + + + + +
+

+ virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0; +

+
+
+

调用该方法可注册音频帧观测器对象。当你需要 SDK 触发 回调时,需调用该方法进行注册。

+
+
+ 调用时机 +

在加入频道前调用该方法。

+
+
+ 参数 + + + observer + 音频帧观测器实例。设置为 可释放该实例。建议在收到 回调后调用该方法释放音频帧观测器对象。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_registervideoencodedframeobserver_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_registervideoencodedframeobserver_imediaengine.dita new file mode 100644 index 00000000000..d421fab994b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_registervideoencodedframeobserver_imediaengine.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="registerVideoEncodedFrameObserver_IMediaEngine"/> + 注册用于接收编码后视频帧的观察器对象。 + + + + + + + + +
+

+ virtual int registerVideoEncodedFrameObserver(IVideoEncodedFrameObserver* observer) = 0; +

+
+
+

如果你只需要监听编码后的视频帧(例如 H.264 格式),而不进行解码和渲染,建议通过此方法注册一个自定义的 实例。

+ 请在加入频道前调用此方法。 +
+
+ 参数 + + + observer + 编码后视频帧观察器对象。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_registervideoframeobserver_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_registervideoframeobserver_imediaengine.dita new file mode 100644 index 00000000000..8ecb9d466fc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_registervideoframeobserver_imediaengine.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="registerVideoFrameObserver_IMediaEngine"/> + 注册原始视频帧观察器对象。 + + + + + + + + +
+

+ virtual int registerVideoFrameObserver(IVideoFrameObserver* observer) = 0; +

+
+
+

通过此方法注册自定义的 实例,可以观察原始视频帧(如 YUV 或 RGBA 格式)。注册成功后,每当接收到视频帧时,SDK 会触发相应的回调。你可以在虚拟背景、图像增强等视频预处理场景中使用这些原始视频数据。

+ 处理回调中返回的视频数据时,请注意 widthheight 参数可能会发生变化,具体情况如下: +
    +
  • 当网络状况恶化时,视频分辨率会逐步降低。
  • +
  • 当用户调整视频配置文件时,回调中返回的视频分辨率也会随之变化。
  • +
+
+
+
+ 调用时机 +

在加入频道前调用此方法。

+
+
+ 参数 + + + observer + 观察器实例。若要释放该实例,请将该值设为 。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosink_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosink_imediaengine.dita new file mode 100644 index 00000000000..8bc1123169d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosink_imediaengine.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="setExternalAudioSink_IMediaEngine"/> + 设置外部音频渲染器。 + + + + + + + + +
+

+ virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0; +

+
+
+

启用外部音频渲染器后,你可以调用 方法拉取远端音频帧,处理后使用自定义音效进行播放,适用于需要使用外部音频数据播放的场景。

+ 启用外部音频渲染器后,应用将无法从 回调中获取任何音频数据。 +
+
+ 调用时机 +

请在加入频道前调用该方法。

+
+
+ 参数 + + + enabled + 是否启用外部音频渲染器: +
    +
  • :启用外部音频渲染器。
  • +
  • :(默认)禁用外部音频渲染器。
  • +
+
+
+ + sampleRate + 外部音频渲染器的采样率(Hz),可设置为 16000、32000、44100 或 48000。 + + + channels + 外部音频渲染器的声道数: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosource_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosource_imediaengine.dita new file mode 100644 index 00000000000..1d91490baf8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_setexternalaudiosource_imediaengine.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="setExternalAudioSource_IMediaEngine"/> + 设置外部音频源参数。 + + + + + + + + +
+

+ virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, bool localPlayback = false, bool publish = true) __deprecated = 0; +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 调用时机 +

在加入频道前调用该方法。

+
+
+ 参数 + + + enabled + 是否启用外部音频源: +
    +
  • :启用外部音频源。
  • +
  • :(默认)不启用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + localPlayback + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + publish + 是否向远端用户发布音频: +
    +
  • :(默认)发布音频到远端用户。
  • +
  • :不发布音频到远端用户。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_setexternalremoteeglcontext_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_setexternalremoteeglcontext_imediaengine.dita new file mode 100644 index 00000000000..2f530ebdda8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_setexternalremoteeglcontext_imediaengine.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="setExternalRemoteEglContext_IMediaEngine"/> + 设置用于渲染远端视频流的 EGL 上下文。 + + + + + + + + +
+

+ virtual int setExternalRemoteEglContext(void* eglContext) = 0; +

+
+
+

该方法用于替换 SDK 默认的远端 EGL 上下文,便于你自行管理 EGL 上下文。当引擎被销毁时,SDK 会自动释放该上下文。

+ 该方法仅适用于 Android 平台。 +
+
+ 调用时机 +

请在加入频道前调用该方法。

+
+
+ 参数 + + + eglContext + 用于渲染远端视频流的 EGL 上下文。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaengine_setexternalvideosource_imediaengine.dita b/dita/RTC-AIDOC/API/api_imediaengine_setexternalvideosource_imediaengine.dita new file mode 100644 index 00000000000..53f4e4b7924 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaengine_setexternalvideosource_imediaengine.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="setExternalVideoSource_IMediaEngine"/> + 配置外部视频源。 + + + + + + + + +
+

+ virtual int setExternalVideoSource(bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType = VIDEO_FRAME, rtc::SenderOptions encodedVideoOption = rtc::SenderOptions()) = 0; +

+
+
+

调用该方法启用外部视频源后,可以调用 向 SDK 推送外部视频数据。

+ 频道内不支持动态切换视频源。如需从外部视频源切换为内部视频源,必须先离开频道,调用该方法关闭外部视频源,再重新加入频道。 +
+
+ 调用时机 +

请在加入频道前调用该方法。

+
+
+ 参数 + + + enabled + 是否使用外部视频源: +
    +
  • :使用外部视频源,SDK 会准备接收外部视频帧。
  • +
  • :(默认)不使用外部视频源。
  • +
+
+
+ + useTexture + 是否使用 Texture 格式的外部视频帧: +
    +
  • :使用 Texture 格式的视频帧。
  • +
  • :(默认)不使用 Texture 格式的视频帧。
  • +
+
+
+ + sourceType + 外部视频帧类型,是否为编码格式。详见 + + + encodedVideoOption + 视频编码选项。仅当 sourceTypeENCODED_VIDEO_FRAME 时需设置该参数。 + 设置该参数请[联系技术支持](https://ticket.shengwang.cn/)。 + + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_adjustplayoutvolume.dita b/dita/RTC-AIDOC/API/api_imediaplayer_adjustplayoutvolume.dita index 4b8134ef0db..a81b7224fac 100644 --- a/dita/RTC-AIDOC/API/api_imediaplayer_adjustplayoutvolume.dita +++ b/dita/RTC-AIDOC/API/api_imediaplayer_adjustplayoutvolume.dita @@ -1,12 +1,8 @@ - - <ph keyref="adjustPlayoutVolume"/> - - - 调整本地播放音量。 - + <ph keyref="adjustPlayoutVolume"/> + 调整本地播放音量。调节本地播放音量。调整本地播放音量。调整本地播放音量。 @@ -15,20 +11,82 @@ -
+
+

+ virtual int adjustPlayoutVolume(int volume) = 0; + int adjustPlayoutVolume(int volume); + - (int)adjustPlayoutVolume:(int)volume NS_SWIFT_NAME(adjustPlayoutVolume(_:)); + - (int)adjustPlayoutVolume:(int)volume NS_SWIFT_NAME(adjustPlayoutVolume(_:)); +

+
+
+
调用时机 -

加入频道前后均可调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

-
- 调用限制 -

无。

+
+ 参数 + + + volume + 本地播放音量,取值范围为 0 到 100。0 表示静音,100(默认)表示原始音量。 + + + volume + 本地播放音量,取值范围为 0 到 100: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
+
+
+ + volume + 本地播放音量,取值范围为 0 到 100: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
+
+
+ + volume + 本地播放音量,取值范围为 0 到 100: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
+
+
+
-
+
返回值 -

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

  • 0:方法调用成功。
  • -
  • < 0:方法调用失败。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。

diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_adjustpublishsignalvolume.dita b/dita/RTC-AIDOC/API/api_imediaplayer_adjustpublishsignalvolume.dita new file mode 100644 index 00000000000..f41d93cdc7a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_adjustpublishsignalvolume.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="adjustPublishSignalVolume"/> + 调节用于发布的媒体文件音量。调节用于发布的媒体文件音量。调节用于发布的媒体文件音量。调节用于发布的媒体文件音量。 + + + + + + + + +
+

+ virtual int adjustPublishSignalVolume(int volume) = 0; + int adjustPublishSignalVolume(int volume); + - (int)adjustPublishSignalVolume:(int)volume NS_SWIFT_NAME(adjustPublishSignalVolume(_:)); + - (int)adjustPublishSignalVolume:(int)volume NS_SWIFT_NAME(adjustPublishSignalVolume(_:)); +

+
+
+

你可以调用该方法调节远端用户听到的媒体文件音量。

+

你可以调用该方法调节远端用户听到的媒体文件音量。该方法可以在加入频道前或加入频道后调用。

+

你可以调用该方法调节远端用户听到的媒体文件音量。该方法可以在加入频道前或加入频道后调用。

+
+
+ 调用时机 +

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + volume + 音量,范围为 0 到 400: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 音量,取值范围为 0 到 400: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 音量,取值范围为 0 到 400: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 音量,取值范围为 0 到 400: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_destroy_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_destroy_imediaplayer.dita new file mode 100644 index 00000000000..ef668ce8e6a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_destroy_imediaplayer.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="destroy_IMediaPlayer"/> + 销毁媒体播放器实例。 + + + + + + + + +
+

+ int destroy(); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getduration.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getduration.dita new file mode 100644 index 00000000000..49ec2238d2f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getduration.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="getDuration"/> + 获取媒体资源的时长。获取媒体资源的时长。获取媒体资源的时长。获取媒体资源的时长。 + + + + + + + + +
+

+ virtual int getDuration(int64_t& duration) = 0; + long getDuration(); + - (NSInteger)getDuration NS_SWIFT_NAME(getDuration()); + - (NSInteger)getDuration NS_SWIFT_NAME(getDuration()); +

+
+
+
+ 参数 + + + duration + 输出参数,媒体文件的总时长(毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回媒体文件的总时长(毫秒)。
  • +
  • 方法调用失败时,返回小于 0 的值。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getmediaplayerid.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getmediaplayerid.dita new file mode 100644 index 00000000000..c891efe39fc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getmediaplayerid.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="getMediaPlayerId"/> + 获取媒体播放器的 ID。获取媒体播放器的 ID。获取媒体播放器的 ID。获取媒体播放器的 ID。 + + + + + + + + +
+

+ virtual int getMediaPlayerId() const = 0; + int getMediaPlayerId(); + - (int)getMediaPlayerId NS_SWIFT_NAME(getMediaPlayerId()); + - (int)getMediaPlayerId NS_SWIFT_NAME(getMediaPlayerId()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回媒体播放器的 ID。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回媒体播放器的 ID。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getmute.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getmute.dita new file mode 100644 index 00000000000..d82981e4b9c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getmute.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="getMute"/> + 查询媒体资源是否处于静音状态。报告媒体资源是否被静音。报告媒体资源是否被静音。报告媒体资源是否被静音。 + + + + + + + + +
+

+ virtual int getMute(bool& muted) = 0; + boolean getMute(); + - (BOOL)getMute NS_SWIFT_NAME(getMute()); + - (BOOL)getMute NS_SWIFT_NAME(getMute()); +

+
+
+
+ 参数 + + + muted + 输出参数。媒体资源是否处于静音状态: +
    +
  • :已静音。
  • +
  • :未静音。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

:媒体资源已被静音。 +:媒体资源未被静音。

+

+

    +
  • :媒体资源已静音。
  • +
  • :媒体资源未静音。
  • +
+

+

+

    +
  • :媒体资源已静音。
  • +
  • :媒体资源未静音。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getplayoutvolume.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getplayoutvolume.dita new file mode 100644 index 00000000000..ed4db08439a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getplayoutvolume.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="getPlayoutVolume"/> + 获取本地播放音量。获取本地播放音量。获取本地播放音量。获取本地播放音量。 + + + + + + + + +
+

+ virtual int getPlayoutVolume(int& volume) = 0; + int getPlayoutVolume(); + - (int)getPlayoutVolume NS_SWIFT_NAME(getPlayoutVolume()); + - (int)getPlayoutVolume NS_SWIFT_NAME(getPlayoutVolume()); +

+
+
+

你可以通过该方法获取本地播放音量,取值范围为 0 到 100。

+

你可以通过该方法获取本地播放音量,取值范围为 0 到 100。

+
+
+ 参数 + + + volume + 输出参数,本地播放音量,取值范围为 0 到 100: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功,返回本地播放音量,取值范围为 0 到 100。 +0 表示静音,100(默认)表示原始音量。

+

方法调用成功,返回本地播放音量,取值范围为 0 到 100。 +0 表示静音,100(默认)表示原始音量。

+

方法调用成功,返回本地播放音量,取值范围为 0 到 100。 +0 表示静音,100(默认)表示原始音量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getplayposition.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getplayposition.dita new file mode 100644 index 00000000000..1b80fd02615 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getplayposition.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="getPlayPosition"/> + 获取当前音效文件的本地播放进度。获取当前本地播放进度。获取当前本地播放进度。获取当前本地播放进度。 + + + + + + + + +
+

+ virtual int getPlayPosition(int64_t& pos) = 0; + long getPlayPosition(); + - (NSInteger)getPosition NS_SWIFT_NAME(getPosition()); + - (NSInteger)getPosition NS_SWIFT_NAME(getPosition()); +

+
+
+
+ 参数 + + + pos + 输出参数,音效文件的播放位置(单位:毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 方法调用成功时,返回当前播放进度(单位为毫秒)。
  • +
  • 方法调用失败时,返回小于 0 的值,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getplaysrc_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getplaysrc_imediaplayer.dita new file mode 100644 index 00000000000..340b8bea153 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getplaysrc_imediaplayer.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getPlaySrc_IMediaPlayer"/> + 获取当前正在播放的媒体资源路径。获取当前正在播放的媒体资源路径。获取正在播放的媒体资源路径。获取正在播放的媒体资源路径。 + + + + + + + + +
+

+ virtual const char* getPlaySrc() = 0; + String getPlaySrc(); + - (NSString *)getPlaySrc NS_SWIFT_NAME(getPlaySrc()); + - (NSString *)getPlaySrc NS_SWIFT_NAME(getPlaySrc()); +

+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回当前正在播放的媒体资源路径。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

方法调用成功时,返回当前正在播放的媒体资源路径。 +方法调用失败,返回空字符串。

+

方法调用成功时,返回正在播放的媒体资源路径。 +方法调用失败时,返回空字符串。

+

方法调用成功时,返回正在播放的媒体资源路径。 +方法调用失败时,返回空字符串。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getpublishsignalvolume.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getpublishsignalvolume.dita new file mode 100644 index 00000000000..57d153c8b1b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getpublishsignalvolume.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="getPublishSignalVolume"/> + 获取用于发布的媒体文件音量。获取用于发布的媒体文件音量。获取用于发布的媒体文件音量。获取用于发布的媒体文件音量。 + + + + + + + + +
+

+ virtual int getPublishSignalVolume(int& volume) = 0; + int getPublishSignalVolume(); + - (int)getPublishSignalVolume NS_SWIFT_NAME(getPublishSignalVolume()); + - (int)getPublishSignalVolume NS_SWIFT_NAME(getPublishSignalVolume()); +

+
+
+
+ 参数 + + + volume + 输出参数,用于获取远端播放的音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getstate.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getstate.dita new file mode 100644 index 00000000000..660a8519a6f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getstate.dita @@ -0,0 +1,31 @@ + + + + <ph keyref="getState"/> + 获取当前播放状态。获取当前播放状态。获取当前播放状态。获取当前播放状态。 + + + + + + + + +
+

+ virtual media::base::MEDIA_PLAYER_STATE getState() = 0; + Constants.MediaPlayerState getState(); + - (AgoraMediaPlayerState)getPlayerState NS_SWIFT_NAME(getPlayerState()); + - (AgoraMediaPlayerState)getPlayerState NS_SWIFT_NAME(getPlayerState()); +

+
+
+
+ 返回值 +

方法调用成功,返回当前播放状态,详见

+

方法调用成功,返回当前播放状态。详见

+

方法调用成功,返回当前播放状态,详见

+

方法调用成功,返回当前播放状态,详见

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getstreamcount.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getstreamcount.dita new file mode 100644 index 00000000000..ce6dd3bb94d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getstreamcount.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="getStreamCount"/> + 获取媒体资源中的媒体流数量。获取媒体资源中媒体流的数量。获取媒体资源中的流的数量。获取媒体资源中的流的数量。 + + + + + + + + +
+

+ virtual int getStreamCount(int64_t& count) = 0; + int getStreamCount(); + - (NSInteger)getStreamCount NS_SWIFT_NAME(getStreamCount()); + - (NSInteger)getStreamCount NS_SWIFT_NAME(getStreamCount()); +

+
+
+ 在调用该方法前,请先调用 方法,并等待 回调报告状态 PLAYER_STATE_OPEN_COMPLETED + 调用该方法前,请先调用 open 方法,并等待 回调报告状态 OPEN_COMPLETED + 在调用该方法前,请先调用 方法,并等待 didChangedToState:reason: 回调报告 AgoraMediaPlayerStateOpenCompleted 状态。 + 在调用该方法前,请先调用 方法,并等待 didChangedToState:reason: 回调报告 AgoraMediaPlayerStateOpenCompleted 状态。 +
+
+ 参数 + + + count + 输出参数,媒体资源中的媒体流数量。详见 int64_t + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 方法调用成功,返回媒体资源中的媒体流数量。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_getstreaminfo.dita b/dita/RTC-AIDOC/API/api_imediaplayer_getstreaminfo.dita new file mode 100644 index 00000000000..734d055cc0a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_getstreaminfo.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="getStreamInfo"/> + 获取媒体流的详细信息。获取媒体流的详细信息。获取媒体流的详细信息。获取媒体流的详细信息。 + + + + + + + + +
+

+ virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo* info) = 0; + MediaStreamInfo getStreamInfo(int index); + - (AgoraRtcMediaStreamInfo *_Nullable)getStreamByIndex:(int)index NS_SWIFT_NAME(getStreamBy(_:)); + - (AgoraRtcMediaStreamInfo *_Nullable)getStreamByIndex:(int)index NS_SWIFT_NAME(getStreamBy(_:)); +

+
+
+

调用 后,调用该方法获取指定索引的媒体流的详细信息。

+

调用该方法可获取指定索引的媒体流的详细信息。

+

调用该方法可获取指定索引的媒体流的详细信息。

+
+
+ 调用时机 +

在调用 方法之后调用该方法。

+

在调用 方法之后调用。

+

在调用 方法之后调用该方法。

+

在调用 方法之后调用该方法。

+
+
+ 参数 + + + index + 媒体流的索引。该参数需小于 返回的 count 值。 + + + info + 输出参数,媒体流的详细信息。详见 + + + index + 媒体流的索引。该参数必须小于 的返回值。 + + + index + 媒体流的索引。该参数必须小于 的返回值。 + + + index + 媒体流的索引。该参数必须小于 的返回值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回 null
  • +
+

+

+

    +
  • 方法调用成功,返回一个 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回一个 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_mute.dita b/dita/RTC-AIDOC/API/api_imediaplayer_mute.dita new file mode 100644 index 00000000000..63252859dc8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_mute.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="mute"/> + 设置是否将媒体文件静音。设置是否静音媒体文件。设置是否静音媒体文件。设置是否静音媒体文件。 + + + + + + + + +
+

+ virtual int mute(bool muted) = 0; + int mute(boolean muted); + - (int)mute:(BOOL)isMute NS_SWIFT_NAME(mute(_:)); + - (int)mute:(BOOL)isMute NS_SWIFT_NAME(mute(_:)); +

+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + muted + 是否将媒体文件静音: +
    +
  • :静音媒体文件。
  • +
  • :(默认)取消静音媒体文件。
  • +
+
+
+ + muted + 是否静音媒体文件: +
    +
  • :静音媒体文件。
  • +
  • :(默认)取消静音媒体文件。
  • +
+
+
+ + isMute + 是否静音媒体文件: +
    +
  • :静音媒体文件。
  • +
  • :(默认)取消静音媒体文件。
  • +
+
+
+ + isMute + 是否静音媒体文件: +
    +
  • :静音媒体文件。
  • +
  • :(默认)取消静音媒体文件。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_open.dita b/dita/RTC-AIDOC/API/api_imediaplayer_open.dita new file mode 100644 index 00000000000..365fb139f13 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_open.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="open"/> + 打开媒体资源。打开媒体资源。打开媒体资源。打开媒体资源。 + + + + + + + + +
+

+ virtual int open(const char* url, int64_t startPos) = 0; + int open(String url, long startPos); + - (int)open:(NSString *)url startPos:(NSInteger)startPos NS_SWIFT_NAME(open(_:startPos:)); + - (int)open:(NSString *)url startPos:(NSInteger)startPos NS_SWIFT_NAME(open(_:startPos:)); +

+
+
+

支持播放以 content:// 开头的 URI 文件。

+ 为异步调用。 + 该方法为异步调用。 + 该方法为异步调用。 + 该方法为异步调用。 +
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+ +
+ 参数 + + + url + 媒体文件路径,支持本地路径和在线路径。 + + + startPos + 播放起始位置,单位为毫秒。默认值为 0。 + + + url + 媒体文件的路径,支持本地路径和在线路径。 + + + startPos + 播放的起始位置(毫秒,默认值为 0)。 + + + url + 媒体文件的路径,支持本地路径和在线路径。 + + + startPos + 播放的起始位置(毫秒)。默认值为 0。 + + + url + 媒体文件的路径,支持本地路径和在线路径。 + + + startPos + 播放的起始位置(毫秒)。默认值为 0。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_open2.dita b/dita/RTC-AIDOC/API/api_imediaplayer_open2.dita new file mode 100644 index 00000000000..d49a10c9744 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_open2.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="open2"/> + 通过 URI 地址打开媒体文件。 + + + + + + + + +
+

+ int open(Uri uri, long startPos); +

+
+
+ 该方法为异步调用。 +
+
+ 参数 + + + uri + 媒体文件的 URI 地址。 + + + startPos + 播放的起始位置,单位为毫秒。(默认值为 0) + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_openwithmediasource.dita b/dita/RTC-AIDOC/API/api_imediaplayer_openwithmediasource.dita new file mode 100644 index 00000000000..a9ebc471a59 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_openwithmediasource.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="openWithMediaSource"/> + 打开媒体文件并配置播放场景。打开媒体文件并配置播放场景。打开媒体文件并配置播放场景。打开媒体文件并配置播放场景。 + + + + + + + + +
+

+ virtual int openWithMediaSource(const media::base::MediaSource &source) = 0; + int openWithMediaSource(MediaPlayerSource source); + - (int)openWithMediaSource:(AgoraMediaSource *)source NS_SWIFT_NAME(open(with:)); + - (int)openWithMediaSource:(AgoraMediaSource *)source NS_SWIFT_NAME(open(with:)); +

+
+
+

该方法支持打开来自不同来源的媒体文件,包括自定义媒体源,并允许你配置播放场景。

+

该方法支持打开不同类型的媒体文件,包括以 content:// 开头的 URI 文件和 assets 文件夹中的媒体文件,并设置播放选项。

+

该方法支持打开不同类型的媒体文件,包括以 ipod-library:// 开头的文件,并设置播放选项。

+

该方法支持打开不同类型的媒体文件,包括以 ipod-library:// 开头的文件,并设置播放选项。

+ 为异步调用。如果你需要播放媒体文件,请确保在调用 方法前,已收到 回调并报告 PLAYER_STATE_OPEN_COMPLETED + 该方法为异步调用。如果需要播放媒体文件,请确保在调用 方法之前,已收到 回调并报告 OPEN_COMPLETED + 为异步调用。如果你需要播放媒体文件,请确保在调用 方法播放文件之前,已收到 回调并报告 AgoraMediaPlayerStateOpenCompleted + 为异步调用。如果你需要播放媒体文件,请确保在调用 方法播放文件之前,已收到 回调并报告 AgoraMediaPlayerStateOpenCompleted +
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + source + 媒体资源。详见 + + + source + 媒体资源,详见 + + + source + 媒体资源。详见 + + + source + 媒体资源。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_pause.dita b/dita/RTC-AIDOC/API/api_imediaplayer_pause.dita new file mode 100644 index 00000000000..cee208e3005 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_pause.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="pause"/> + 暂停播放。暂停播放。暂停播放。暂停播放。 + + + + + + + + +
+

+ virtual int pause() = 0; + int pause(); + - (int)pause NS_SWIFT_NAME(pause()); + - (int)pause NS_SWIFT_NAME(pause()); +

+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_play.dita b/dita/RTC-AIDOC/API/api_imediaplayer_play.dita new file mode 100644 index 00000000000..bed88547aa4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_play.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="play"/> + 播放媒体文件。播放媒体文件。播放媒体文件。播放媒体文件。 + + + + + + + + +
+

+ virtual int play() = 0; + int play(); + - (int)play NS_SWIFT_NAME(play()); + - (int)play NS_SWIFT_NAME(play()); +

+
+
+

你可以调用该方法播放媒体文件。

+

你可以调用该方法播放媒体文件。

+
+
+ 调用时机 +

+

    +
  • 调用 打开媒体文件,并收到 回调报告状态为 PLAYER_STATE_OPEN_COMPLETED 后调用该方法。
  • +
  • 调用 后调用该方法。
  • +
+

+

+

    +
  • 在调用 open 打开媒体文件并收到 回调报告状态为 PLAYER_STATE_OPEN_COMPLETED 后调用该方法。
  • +
  • 在调用 后调用该方法。
  • +
+

+

+

    +
  • 在调用 打开媒体文件,并收到 didChangedToState:reason: 回调报告状态为 AgoraMediaPlayerStateOpenCompleted 后调用该方法。
  • +
  • 在调用 后调用该方法。
  • +
+

+

+

    +
  • 在调用 打开媒体文件,并收到 didChangedToState:reason: 回调报告状态为 AgoraMediaPlayerStateOpenCompleted 后调用该方法。
  • +
  • 在调用 后调用该方法。
  • +
+

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_playpreloadedsrc.dita b/dita/RTC-AIDOC/API/api_imediaplayer_playpreloadedsrc.dita new file mode 100644 index 00000000000..737e7010f5c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_playpreloadedsrc.dita @@ -0,0 +1,98 @@ + + + + <ph keyref="playPreloadedSrc"/> + 播放预加载的媒体资源。播放预加载的媒体资源。播放已预加载的媒体资源。播放已预加载的媒体资源。 + + + + + + + + +
+

+ virtual int playPreloadedSrc(const char* src) = 0; + int playPreloadedSrc(String src); + - (int)playPreloadedSrc:(NSString *)src NS_SWIFT_NAME(playPreloadedSrc(_:)); + - (int)playPreloadedSrc:(NSString *)src NS_SWIFT_NAME(playPreloadedSrc(_:)); +

+
+
+

调用 将媒体资源预加载到播放列表后,可以调用该方法播放该资源。调用成功后,如果收到 回调并报告 PLAYER_STATE_PLAYING 状态,表示播放成功。 + +如果你想更换要播放的预加载媒体资源,可以再次调用该方法并传入新的媒体资源 URL。若想重新播放该媒体资源,需要先调用 重新预加载资源。 + +如需清空播放列表,请调用 方法。

+

调用 将媒体资源预加载到播放列表后,可以调用 播放该预加载的媒体资源。调用该方法后,如果收到 回调并报告 PLAYER_STATE_PLAYING 状态,则表示播放成功。 +如果想更换要播放的预加载媒体资源,可以再次调用 并指定新的媒体资源 URL。若想重新播放该媒体资源,需要先调用 重新预加载后再播放。若想清空播放列表,请调用

+

调用 方法将媒体资源预加载到播放列表后,可以调用此方法播放已预加载的媒体资源。如果调用该方法后收到 回调并报告 AgoraMediaPlayerStatePlaying 状态,表示播放成功。 +

    +
  • 如果想更换播放的预加载媒体资源,可以再次调用此方法并指定要预加载的新媒体资源的 URL。
  • +
  • 如果想重新播放媒体资源,需要再次调用 方法将媒体资源重新预加载到播放列表中。
  • +
  • 如果想清空播放列表,请调用 stop 方法。
  • +
+

+

调用 方法将媒体资源预加载到播放列表后,可以调用此方法播放已预加载的媒体资源。如果调用该方法后收到 回调并报告 AgoraMediaPlayerStatePlaying 状态,表示播放成功。 +

    +
  • 如果想更换播放的预加载媒体资源,可以再次调用此方法并指定要预加载的新媒体资源的 URL。
  • +
  • 如果想重新播放媒体资源,需要再次调用 方法将媒体资源重新预加载到播放列表中。
  • +
  • 如果想清空播放列表,请调用 stop 方法。
  • +
+

+ 如果在播放暂停时调用该方法,该方法在播放恢复之前不会生效。 + 如果在播放暂停时调用该方法,该方法在播放恢复之前不会生效。 + 如果在播放暂停时调用此方法,该方法在播放恢复前不会生效。 + 如果在播放暂停时调用此方法,该方法在播放恢复前不会生效。 +
+
+ 参数 + + + src + 播放列表中媒体资源的 URL,必须与通过 设置的 src 保持一致,否则无法播放该媒体资源。 + + + src + 播放列表中媒体资源的 URL,必须与通过 设置的 src 保持一致,否则无法播放该媒体资源。 + + + src + 播放列表中媒体资源的 URL,必须与调用 方法时设置的 src 保持一致,否则无法播放该媒体资源。 + + + src + 播放列表中媒体资源的 URL,必须与调用 方法时设置的 src 保持一致,否则无法播放该媒体资源。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_preloadsrc.dita b/dita/RTC-AIDOC/API/api_imediaplayer_preloadsrc.dita new file mode 100644 index 00000000000..7b06cbe70f5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_preloadsrc.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="preloadSrc"/> + 预加载媒体资源。预加载媒体资源。预加载媒体资源。预加载媒体资源。 + + + + + + + + +
+

+ virtual int preloadSrc(const char* src, int64_t startPos) = 0; + int preloadSrc(String src, long startPos); + - (int)preloadSrc:(NSString *)src startPos:(int)startPos NS_SWIFT_NAME(preloadSrc(_:startPos:)); + - (int)preloadSrc:(NSString *)src startPos:(int)startPos NS_SWIFT_NAME(preloadSrc(_:startPos:)); +

+
+
+

你可以调用该方法将媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,可以多次调用该方法。调用该方法后,如果在 回调中收到 PLAYER_PRELOAD_EVENT_COMPLETE 事件,表示预加载成功;如果收到 PLAYER_PRELOAD_EVENT_ERROR 事件,表示预加载失败。预加载成功后,如果你希望播放该媒体资源,请调用 ;如果希望清空播放列表,请调用

+

调用该方法后,如果在 回调中收到 PLAYER_PRELOAD_EVENT_COMPLETE 事件,表示预加载成功;如果收到 PLAYER_PRELOAD_EVENT_ERROR 事件,表示预加载失败。预加载成功后,如需播放该媒体资源,请调用 ;如需清空播放列表,请调用 stop()

+

你可以调用此方法将媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,可以多次调用此方法。如果预加载成功并希望播放该媒体资源,请调用 ;如果希望清空播放列表,请调用 stop

+

你可以调用此方法将媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,可以多次调用此方法。如果预加载成功并希望播放该媒体资源,请调用 ;如果希望清空播放列表,请调用 stop

+ +
    +
  • 在调用该方法之前,请确保已成功调用 打开媒体资源。
  • +
  • 声网不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。
  • +
+
+ +
    +
  • 在调用此方法前,请确保已成功调用 open 打开媒体资源。
  • +
  • 声网不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。
  • +
+
+ +
    +
  • 在调用此方法之前,请确保已成功调用 打开媒体资源。
  • +
  • 不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。
  • +
+
+ +
    +
  • 在调用此方法之前,请确保已成功调用 打开媒体资源。
  • +
  • 不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。
  • +
+
+
+
+ 参数 + + + src + 媒体资源的 URL。 + + + startPos + 媒体资源预加载到播放列表后开始播放的位置(单位:毫秒)。 + 预加载直播流时,请将该参数设为 0。 + + + + src + 媒体资源的 URL。 + + + startPos + 媒体资源预加载到播放列表后开始播放的位置(单位为毫秒)。预加载直播流时,请将该参数设为 0。 + + + src + 媒体资源的 URL。 + + + startPos + 媒体资源预加载到播放列表后开始播放的位置(毫秒)。预加载直播流时,将该参数设置为 0。 + + + src + 媒体资源的 URL。 + + + startPos + 媒体资源预加载到播放列表后开始播放的位置(毫秒)。预加载直播流时,将该参数设置为 0。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver1_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver1_imediaplayer.dita new file mode 100644 index 00000000000..6adeb5b4262 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver1_imediaplayer.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="registerAudioFrameObserver1_IMediaPlayer"/> + 注册一个 音频帧观察者对象。 + + + + + + + + +
+

+ virtual int registerAudioFrameObserver(media::IAudioPcmFrameSink* observer) = 0; +

+
+
+

你需要实现 类,并根据业务场景注册回调。注册成功后,每当接收到音频帧时,SDK 会触发对应的回调。

+
+
+ 参数 + + + observer + 音频帧观察者对象,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver2_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver2_imediaplayer.dita new file mode 100644 index 00000000000..b1399204485 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_registeraudioframeobserver2_imediaplayer.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="registerAudioFrameObserver2_IMediaPlayer"/> + 注册音频帧观测器对象。注册音频帧观测器对象。 + + + + + + + + +
+

+ virtual int registerAudioFrameObserver(media::IAudioPcmFrameSink* observer, RAW_AUDIO_FRAME_OP_MODE_TYPE mode) = 0; + int registerAudioFrameObserver(IMediaPlayerAudioFrameObserver audioFrameObserver, int mode); +

+
+
+
+ 参数 + + + observer + 音频帧观测器对象。详见 + + + mode + 音频帧的使用模式。详见 + + + audioFrameObserver + 音频帧观测器对象,用于接收每一帧音频数据。详见 + + + mode + 音频帧的使用模式: +
    +
  • RAW_AUDIO_FRAME_OP_MODE_READ_ONLY(0):(默认)只读模式。例如,你通过声网 SDK 获取音频数据后,再推送 RTMP 或 RTMPS 流。
  • +
  • RAW_AUDIO_FRAME_OP_MODE_READ_WRITE(2):读写模式。你可以从 中读取音频数据,修改后再播放。例如,你有自己的音频特效处理模块,并进行语音预处理,如变声。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_registerplayersourceobserver.dita b/dita/RTC-AIDOC/API/api_imediaplayer_registerplayersourceobserver.dita new file mode 100644 index 00000000000..4dd65ea5302 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_registerplayersourceobserver.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="registerPlayerSourceObserver"/> + 注册媒体播放器观察器。注册媒体播放器观察器。 + + + + + + + + +
+

+ virtual int registerPlayerSourceObserver(IMediaPlayerSourceObserver* observer) = 0; + int registerPlayerObserver(IMediaPlayerObserver playerObserver); +

+
+
+

用于监听播放过程中的事件。

+

用于监听媒体播放器播放过程中的事件。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + observer + 用于监听播放过程中的事件。详见 + + + playerObserver + 媒体播放器观察器,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_registervideoframeobserver_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_registervideoframeobserver_imediaplayer.dita new file mode 100644 index 00000000000..61f589b943b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_registervideoframeobserver_imediaplayer.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="registerVideoFrameObserver_IMediaPlayer"/> + 注册视频帧观察器对象。注册视频帧观察者对象。 + + + + + + + + +
+

+ virtual int registerVideoFrameObserver(media::base::IVideoFrameObserver* observer) = 0; + int registerVideoFrameObserver(IMediaPlayerVideoFrameObserver videoFrameObserver); +

+
+
+

你需要实现 类,并根据你的使用场景注册回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发已注册的回调。

+

你需要实现 类,并注册回调。成功注册后,SDK 每次接收到视频帧时都会触发已注册的回调。

+
+
+ 参数 + + + observer + 视频帧观察器。详见 + + + videoFrameObserver + 用于上报每一帧视频的接收情况。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_resume.dita b/dita/RTC-AIDOC/API/api_imediaplayer_resume.dita new file mode 100644 index 00000000000..0bc62e0ec96 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_resume.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="resume"/> + 恢复播放媒体文件。恢复播放媒体文件。恢复播放媒体文件。恢复播放媒体文件。 + + + + + + + + +
+

+ virtual int resume() = 0; + int resume(); + - (int)resume NS_SWIFT_NAME(resume()); + - (int)resume NS_SWIFT_NAME(resume()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_seek.dita b/dita/RTC-AIDOC/API/api_imediaplayer_seek.dita new file mode 100644 index 00000000000..04501645e2a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_seek.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="seek"/> + 跳转到新的播放位置。跳转到新的播放位置。跳转到新的播放位置。跳转到新的播放位置。 + + + + + + + + +
+

+ virtual int seek(int64_t newPos) = 0; + int seek(long newPos); + - (int)seekToPosition:(NSInteger)position NS_SWIFT_NAME(seek(toPosition:)); + - (int)seekToPosition:(NSInteger)position NS_SWIFT_NAME(seek(toPosition:)); +

+
+
+

如果在播放完成后调用 (即收到回调 报告播放状态为 PLAYER_STATE_PLAYBACK_COMPLETEDPLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED),SDK 会从指定位置重新开始播放媒体文件,并触发 回调,报告播放状态为 PLAYER_STATE_PLAYING。 +如果在播放暂停时调用 ,调用成功后,SDK 会跳转到指定位置。要恢复播放,请调用

+

如果在播放完成后调用 ,即收到回调 ,播放状态为 PLAYER_STATE_PLAYBACK_COMPLETEDPLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED,SDK 会从指定位置开始播放媒体文件,并触发 回调,播放状态为 PLAYER_STATE_PLAYING。 +如果在播放暂停时调用 ,调用成功后,SDK 会跳转到指定位置。要恢复播放,请调用

+

+

    +
  • 如果你在播放完成后调用该方法(收到回调 didChangedToState:reason:,播放状态为 AgoraMediaPlayerStatePlayBackCompletedAgoraMediaPlayerStatePlayBackAllLoopsCompleted),SDK 会从指定位置开始播放媒体文件。此时,你会收到回调 didChangedToState:reason:,播放状态为 AgoraMediaPlayerStatePlaying
  • +
  • 如果你在播放暂停时调用该方法,调用成功后,SDK 会跳转到指定位置。要恢复播放,请调用 方法。
  • +
+

+

+

    +
  • 如果你在播放完成后调用该方法(收到回调 didChangedToState:reason:,播放状态为 AgoraMediaPlayerStatePlayBackCompletedAgoraMediaPlayerStatePlayBackAllLoopsCompleted),SDK 会从指定位置开始播放媒体文件。此时,你会收到回调 didChangedToState:reason:,播放状态为 AgoraMediaPlayerStatePlaying
  • +
  • 如果你在播放暂停时调用该方法,调用成功后,SDK 会跳转到指定位置。要恢复播放,请调用 方法。
  • +
+

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+ +
+ 参数 + + + newPos + 新的播放位置,单位为毫秒。 + + + newPos + 新的播放位置,单位为毫秒。 + + + position + 新的播放位置(单位为毫秒)。 + + + position + 新的播放位置(单位为毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_selectaudiotrack_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_selectaudiotrack_imediaplayer.dita new file mode 100644 index 00000000000..640824fc6df --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_selectaudiotrack_imediaplayer.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="selectAudioTrack_IMediaPlayer"/> + 选择播放过程中使用的音轨。在播放过程中选择音频轨道。选择播放过程中使用的音轨。选择播放过程中使用的音轨。 + + + + + + + + +
+

+ virtual int selectAudioTrack(int index) = 0; + int selectAudioTrack(int index); + - (int)selectAudioTrack:(int)index NS_SWIFT_NAME(selectAudioTrack(_:)); + - (int)selectAudioTrack:(int)index NS_SWIFT_NAME(selectAudioTrack(_:)); +

+
+
+

获取音频文件的音轨索引后,可以调用该方法指定要播放的音轨。例如,如果一个多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+

获取音频文件的轨道索引后,可以调用该方法选择指定的音频轨道进行播放。例如,如果一个多轨道文件的不同轨道存储了不同语言的音频内容,可以调用该方法设置播放语言。

+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果一个多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果一个多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+ 你需要在调用 获取音频流索引值之后再调用该方法。 + 需要在调用 获取音频流索引值之后再调用。 + 需要在调用 获取音频流索引值之后再调用该方法。 + 需要在调用 获取音频流索引值之后再调用该方法。 +
+
+ 参数 + + + index + 音轨的索引。 + + + index + 音频轨道的索引。 + + + index + 音轨的索引。 + + + index + 音轨的索引。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_selectmultiaudiotrack.dita b/dita/RTC-AIDOC/API/api_imediaplayer_selectmultiaudiotrack.dita new file mode 100644 index 00000000000..9cc85df2220 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_selectmultiaudiotrack.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="selectMultiAudioTrack"/> + 选择用于本地播放和发布到频道的音轨。选择要在本地设备播放和发布到频道的音轨。分别选择要在本地设备播放和发布到频道的音轨。分别选择要在本地设备播放和发布到频道的音轨。 + + + + + + + + +
+

+ virtual int selectMultiAudioTrack(int playoutTrackIndex, int publishTrackIndex) = 0; + int selectMultiAudioTrack(int playoutTrackIndex, int publishTrackIndex); + - (int)selectMultiAudioTrack:(NSInteger)playoutTrackIndex publishTrackIndex:(NSInteger)publishTrackIndex NS_SWIFT_NAME(selectMultiAudioTrack(_:publishTrackIndex:)); + - (int)selectMultiAudioTrack:(NSInteger)playoutTrackIndex publishTrackIndex:(NSInteger)publishTrackIndex NS_SWIFT_NAME(selectMultiAudioTrack(_:publishTrackIndex:)); +

+
+
+

调用该方法前,需要使用 打开媒体文件,并在 中将 enableMultiAudioTrack 设置为

+

在调用该方法前,你需要通过 打开媒体文件,并在 中将 enableMultiAudioTrack 设置为

+

调用该方法可分别设置要在本地设备上播放和发布到频道的音轨。在调用该方法前,需要先调用 打开媒体文件,并在 中将 enableMultiAudioTrack 设置为

+

调用该方法可分别设置要在本地设备上播放和发布到频道的音轨。在调用该方法前,需要先调用 打开媒体文件,并在 中将 enableMultiAudioTrack 设置为

+
+
+ 适用场景 +

该方法适用于例如 KTV 场景:主持人可以选择在本地播放原唱音轨,同时将伴奏音轨发布到频道。

+
+
+ 参数 + + + playoutTrackIndex + 用于本地播放的音轨索引。可通过 获取。 + + + publishTrackIndex + 要发布到频道的音轨索引。可通过 获取。 + + + playoutTrackIndex + 用于本地播放的音轨索引。你可以通过 获取该索引。 + + + publishTrackIndex + 要发布到频道中的音轨索引。你可以通过 获取该索引。 + + + playoutTrackIndex + 用于本地播放的音轨索引。你可以通过 获取该索引。 + + + publishTrackIndex + 要发布到频道中的音轨索引。你可以通过 获取该索引。 + + + playoutTrackIndex + 用于本地播放的音轨索引。你可以通过 获取该索引。 + + + publishTrackIndex + 要发布到频道中的音轨索引。你可以通过 获取该索引。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setaudiodualmonomode.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setaudiodualmonomode.dita new file mode 100644 index 00000000000..344c940c3ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setaudiodualmonomode.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="setAudioDualMonoMode"/> + 设置当前音频文件的声道模式。设置当前音频文件的声道模式。设置当前音频文件的声道模式。设置当前音频文件的声道模式。 + + + + + + + + +
+

+ virtual int setAudioDualMonoMode(agora::media::base::AUDIO_DUAL_MONO_MODE mode) = 0; + int setAudioDualMonoMode(int mode); + - (int)setAudioDualMonoMode:(AgoraAudioDualMonoMode)mode NS_SWIFT_NAME(setAudioDualMonoMode(_:)); + - (int)setAudioDualMonoMode:(AgoraAudioDualMonoMode)mode NS_SWIFT_NAME(setAudioDualMonoMode(_:)); +

+
+
+

在立体声音乐文件中,左声道和右声道可以存储不同的音频数据。你可以根据需要将声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储人声。如果你只需要听伴奏,可以调用该方法将声道模式设置为左声道模式;如果你需要同时听到伴奏和人声,可以将声道模式设置为混合声道模式。

+

在立体声音频文件中,左右声道可以存储不同的音频数据。你可以根据需要将声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储人声。如果你只需要听伴奏,可以将声道模式设置为左声道模式;如果你需要同时听到伴奏和人声,可以将声道模式设置为混合声道模式。

+

你可以使用该方法设置当前音频文件的声道模式,包括原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储人声。如果你只需要听伴奏,可以调用该方法将声道模式设置为左声道模式;如果你需要同时听到伴奏和人声,可以将声道模式设置为混合声道模式。

+

你可以使用该方法设置当前音频文件的声道模式,包括原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储人声。如果你只需要听伴奏,可以调用该方法将声道模式设置为左声道模式;如果你需要同时听到伴奏和人声,可以将声道模式设置为混合声道模式。

+ +
    +
  • 调用该方法前需先调用 方法。
  • +
  • 此方法仅适用于立体声音频文件。
  • +
+
+ +
    +
  • 请在调用 open 方法之后调用该方法。
  • +
  • 该方法仅适用于立体声音频文件。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 此方法仅适用于立体声音频文件。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 此方法仅适用于立体声音频文件。
  • +
+
+
+
+ 参数 + + + mode + 声道模式,详见 + + + mode + 声道模式: +
    +
  • AUDIO_DUAL_MONO_STEREO (0):原始模式。
  • +
  • AUDIO_DUAL_MONO_L (1):左声道模式。该模式用左声道的音频替换右声道,你只能听到左声道的音频。
  • +
  • AUDIO_DUAL_MONO_R (2):右声道模式。该模式用右声道的音频替换左声道,你只能听到右声道的音频。
  • +
  • AUDIO_DUAL_MONO_MIX (3):混合声道模式。该模式将左右声道的音频混合,你可以同时听到左右声道的音频。
  • +
+
+
+ + mode + 声道模式。详见 + + + mode + 声道模式。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setaudiopitch.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setaudiopitch.dita new file mode 100644 index 00000000000..081a6133568 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setaudiopitch.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="setAudioPitch"/> + 设置当前媒体资源的音调。设置当前媒体资源的音调。设置当前媒体资源的音调。设置当前媒体资源的音调。 + + + + + + + + +
+

+ virtual int setAudioPitch(int pitch) = 0; + int setAudioPitch(int pitch); + - (int)setAudioPitch:(NSInteger)pitch NS_SWIFT_NAME(setAudioPitch(_:)); + - (int)setAudioPitch:(NSInteger)pitch NS_SWIFT_NAME(setAudioPitch(_:)); +

+
+
+ 请在调用 方法后调用此方法。 + 请在调用 open 方法之后调用此方法。 + 请在调用 方法之后调用此方法。 + 请在调用 方法之后调用此方法。 +
+
+ 参数 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0,表示保持原始音调)。取值范围为 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,音调变化越明显。 + + + pitch + 按半音阶设置本地音乐文件的音调。默认值为 0,表示保持原始音调。取值范围为 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,本地音乐文件的音调越高或越低。 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0,表示保持原始音调)。该值的范围是 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,设置的本地音乐文件音调越高或越低。 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0,表示保持原始音调)。该值的范围是 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,设置的本地音乐文件音调越高或越低。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setloopcount.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setloopcount.dita new file mode 100644 index 00000000000..b06de5ad726 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setloopcount.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="setLoopCount"/> + 设置音效的循环播放次数。设置音效的循环播放次数。设置循环播放次数。设置循环播放次数。 + + + + + + + + +
+

+ virtual int setLoopCount(int loopCount) = 0; + int setLoopCount(int loopCount); + - (int)setLoopCount:(int)loopCount NS_SWIFT_NAME(setLoopCount(_:)); + - (int)setLoopCount:(int)loopCount NS_SWIFT_NAME(setLoopCount(_:)); +

+
+
+

调用该方法可设置音效的循环播放次数。循环播放完成后,SDK 会触发 回调,并报告播放状态为 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED

+

调用此方法可设置循环播放次数。循环播放完成后,SDK 会触发 回调,并报告播放状态为 AgoraMediaPlayerStatePlayBackAllLoopsCompleted

+

调用此方法可设置循环播放次数。循环播放完成后,SDK 会触发 回调,并报告播放状态为 AgoraMediaPlayerStatePlayBackAllLoopsCompleted

+ 当循环播放完成后,SDK 会触发 回调,并报告播放状态为 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED +
+
+ 参数 + + + loopCount + 音效的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,设置为 0 表示不循环播放,仅播放一次;设置为 1 表示循环播放一次,总共播放两次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+ + loopCount + 音效的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,设置为 0 表示不循环播放,仅播放一次;设置为 1 表示循环播放一次,共播放两次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+ + loopCount + 音频效果的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,设置为 0 表示不循环播放,仅播放一次;设置为 1 表示循环播放一次,总共播放两次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+ + loopCount + 音频效果的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,设置为 0 表示不循环播放,仅播放一次;设置为 1 表示循环播放一次,总共播放两次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setplaybackspeed.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setplaybackspeed.dita new file mode 100644 index 00000000000..12cac74eaf3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setplaybackspeed.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setPlaybackSpeed"/> + 设置当前音频文件的播放速度。设置当前音频文件的播放速度。设置当前音频文件的播放速度。设置当前音频文件的播放速度。 + + + + + + + + +
+

+ virtual int setPlaybackSpeed(int speed) = 0; + int setPlaybackSpeed(int speed); + - (int)setPlaybackSpeed:(int)speed NS_SWIFT_NAME(setPlaybackSpeed(_:)); + - (int)setPlaybackSpeed:(int)speed NS_SWIFT_NAME(setPlaybackSpeed(_:)); +

+
+
+

调用该方法前,需要先调用 方法。

+

调用该方法前,需要先调用 open 方法。

+

调用该方法前,需要先调用 方法。

+

调用该方法前,需要先调用 方法。

+
+
+ 参数 + + + speed + 播放速度。建议设置为 30 到 400 之间的值,定义如下: +
    +
  • 30:原始速度的 0.3 倍。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。建议设置为 30 到 400 之间的值,具体如下: +
    +
  • 30:原始速度的 0.3 倍。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。声网建议将该参数设置为 30 到 400 之间的整数,具体含义如下: +
    +
  • 30:原始速度的 0.3 倍。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。声网建议将该参数设置为 30 到 400 之间的整数,具体含义如下: +
    +
  • 30:原始速度的 0.3 倍。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption.dita new file mode 100644 index 00000000000..757252dcf7f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="setPlayerOption"/> + 设置媒体播放器选项。设置媒体播放器选项。设置媒体播放器选项。设置媒体播放器选项。 + + + + + + + + +
+

+ virtual int setPlayerOption(const char* key, int value) = 0; + int setPlayerOption(String key, int value); + - (int)setPlayerOption:(NSString *)key value:(NSInteger)value NS_SWIFT_NAME(setPlayerOption(_:value:)); + - (int)setPlayerOption:(NSString *)key value:(NSInteger)value NS_SWIFT_NAME(setPlayerOption(_:value:)); +

+
+
+

该方法用于通过 keyvalue 设置媒体播放器的选项。与 setPlayerOption(const char* key, const char* value) 不同,此方法的 value 参数类型为 int,而后者为 const char*。这两个方法不能同时使用。一般情况下无需调用此方法,可直接使用媒体播放器提供的默认选项。

+

该方法用于通过 keyvalue 设置媒体播放器的选项。与 不同,本方法的 value 参数类型为 int,而 value 参数类型为 String。这两个方法不能同时使用。一般情况下无需调用此方法,直接使用媒体播放器提供的默认选项即可。

+

你可以通过 keyvalue 设置媒体播放器的选项。该方法与 的区别在于,本方法的 value 参数类型为 NSInteger,而 value 参数类型为 NSString。这两个方法不能同时使用。一般情况下,你无需调用此方法,直接使用媒体播放器提供的默认选项即可。

+

你可以通过 keyvalue 设置媒体播放器的选项。该方法与 的区别在于,本方法的 value 参数类型为 NSInteger,而 value 参数类型为 NSString。这两个方法不能同时使用。一般情况下,你无需调用此方法,直接使用媒体播放器提供的默认选项即可。

+
+
+ 适用场景 +

适用于需要技术预览或特殊定制功能的场景。

+
+
+ 调用时机 +

请在调用 方法之前调用此方法。

+

请在调用 open 方法之前调用。

+

在调用 方法之前调用。

+

在调用 方法之前调用。

+
+
+ 参数 + + + key + 选项的键。 + + + value + 选项的值。 + + + key + 选项的键。 + + + value + 选项的值。 + + + key + 选项的键。 + + + value + 选项的值。 + + + key + 选项的键。 + + + value + 选项的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption2.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption2.dita new file mode 100644 index 00000000000..73b89f75949 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setplayeroption2.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="setPlayerOption2"/> + 设置媒体播放器的参数选项。设置媒体播放器的参数选项。设置媒体播放器的选项。设置媒体播放器的选项。 + + + + + + + + +
+

+ virtual int setPlayerOption(const char* key, const char* value) = 0; + int setPlayerOptionString(String key, String value); + - (int)setPlayerOptionString:(NSString *)key value:(NSString *)value NS_SWIFT_NAME(setPlayerOptionString(_:value:)); + - (int)setPlayerOptionString:(NSString *)key value:(NSString *)value NS_SWIFT_NAME(setPlayerOptionString(_:value:)); +

+
+
+

该方法用于通过 keyvalue 设置媒体播放器的参数选项。与 setPlayerOption(const char* key, int value) 不同,本方法的 value 参数类型为字符串,而后者为整数类型。这两个方法不能同时使用。一般情况下无需调用该方法,直接使用媒体播放器提供的默认参数即可。

+

该方法与 的区别在于:value 参数类型为 String,而 value 参数类型也是 String。这两个方法不能同时使用。通常情况下无需调用该方法,直接使用媒体播放器提供的默认参数即可。

+

你可以通过 keyvalue 设置媒体播放器的选项。该方法与 的区别在于,此方法的 value 参数类型为 NSString,而 value 参数类型也是 NSString,但这两个方法不能同时使用。通常情况下,你无需调用此方法,直接使用媒体播放器提供的默认选项即可。

+

你可以通过 keyvalue 设置媒体播放器的选项。该方法与 的区别在于,此方法的 value 参数类型为 NSString,而 value 参数类型也是 NSString,但这两个方法不能同时使用。通常情况下,你无需调用此方法,直接使用媒体播放器提供的默认选项即可。

+
+
+ 适用场景 +

适用于需要技术预览或特殊定制功能的场景。

+
+
+ 调用时机 +

请在调用 方法之前调用本方法。

+

请在调用 open 方法之前调用本方法。

+

在调用 方法之前调用此方法。

+

在调用 方法之前调用此方法。

+
+
+ 参数 + + + key + 参数选项的键。 + + + value + 参数选项的值。 + + + key + 参数选项的键。 + + + value + 参数选项的值。 + + + key + 选项的键。 + + + value + 选项的值。 + + + key + 选项的键。 + + + value + 选项的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setrendermode.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setrendermode.dita new file mode 100644 index 00000000000..a2fbba992bc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setrendermode.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="setRenderMode"/> + 设置媒体播放器的渲染模式。设置媒体播放器的渲染模式。设置媒体播放器的渲染模式。设置媒体播放器的渲染模式。 + + + + + + + + +
+

+ virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode) = 0; + int setRenderMode(int mode); + - (int)setRenderMode:(AgoraMediaPlayerRenderMode)mode NS_SWIFT_NAME(setRenderMode(_:)); + - (int)setRenderMode:(AgoraMediaPlayerRenderMode)mode NS_SWIFT_NAME(setRenderMode(_:)); +

+
+
+
+ 参数 + + + renderMode + 渲染模式,详见 + + + mode + 设置视图的渲染模式: +
    +
  • RENDER_MODE_HIDDEN(1):隐藏模式。按比例缩放视频,直到填满视图边界,可能会裁剪视频的一部分内容。
  • +
  • RENDER_MODE_FIT(2):适应模式。按比例缩放视频,直到某一边适配视图边界。由于宽高比不一致,未填满的区域将以黑色填充。
  • +
  • RENDER_MODE_ADAPTIVE(3):自适应模式。该枚举值已废弃,不推荐使用。
  • +
+
+
+ + mode + 视图的渲染模式,详见 + + + mode + 视图的渲染模式,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setspatialaudioparams.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setspatialaudioparams.dita new file mode 100644 index 00000000000..ff41bba4f1c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setspatialaudioparams.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="setSpatialAudioParams"/> + 启用或关闭媒体播放器的空间音效。启用或关闭媒体播放器的空间音效。启用或关闭媒体播放器的空间音效。启用或关闭媒体播放器的空间音效。 + + + + + + + + +
+

+ virtual int setSpatialAudioParams(const SpatialAudioParams& params) = 0; + int setSpatialAudioParams(SpatialAudioParams params); + - (int)setSpatialAudioParams:(AgoraSpatialAudioParams* _Nonnull)params NS_SWIFT_NAME(setSpatialAudioParams(_:)); + - (int)setSpatialAudioParams:(AgoraSpatialAudioParams* _Nonnull)params NS_SWIFT_NAME(setSpatialAudioParams(_:)); +

+
+
+

调用该方法成功设置媒体播放器的空间音效参数后,SDK 会为媒体播放器启用空间音效,本地用户可以听到具有空间感的媒体资源。若需关闭空间音效,请将 params 设置为

+

若需关闭空间音效,请将 params 参数设置为 null

+

成功设置媒体播放器的空间音效参数后,SDK 会为媒体播放器启用空间音效。若需关闭媒体播放器的空间音效,请将 params 参数设为

+

成功设置媒体播放器的空间音效参数后,SDK 会为媒体播放器启用空间音效。若需关闭媒体播放器的空间音效,请将 params 参数设为

+
+
+ 参数 + + + params + 媒体播放器的空间音效参数。详见 + + + params + 媒体播放器的空间音效参数,详见 + + + params + 媒体播放器的空间音效参数。详见 + + + params + 媒体播放器的空间音效参数。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setvideoframedelegate.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setvideoframedelegate.dita new file mode 100644 index 00000000000..3e854165aa8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setvideoframedelegate.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="setVideoFrameDelegate"/> + 注册媒体播放器的视频帧观察者对象。注册媒体播放器的视频帧观察者对象。 + + + + + + + + +
+

+ - (BOOL)setVideoFrameDelegate:(id<AgoraRtcMediaPlayerVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setVideoFrameDelegate(_:)); + - (BOOL)setVideoFrameDelegate:(id<AgoraRtcMediaPlayerVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setVideoFrameDelegate(_:)); +

+
+
+

调用该方法注册视频帧观察者后,你可以根据需要在 中注册回调。成功注册视频帧观察者后,每当接收到视频帧时,SDK 会触发已注册的回调。

+

调用该方法注册视频帧观察者后,你可以根据需要在 中注册回调。成功注册视频帧观察者后,每当接收到视频帧时,SDK 会触发已注册的回调。

+
+
+ 参数 + + + delegate + 代理实例。设置为 可释放该实例。详见 + + + delegate + 代理实例。设置为 可释放该实例。详见 + + +
+
+ 返回值 +

+

    +
  • :注册成功。
  • +
  • :注册失败。
  • +
+

+

+

    +
  • :注册成功。
  • +
  • :注册失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_setview.dita b/dita/RTC-AIDOC/API/api_imediaplayer_setview.dita new file mode 100644 index 00000000000..625d0566109 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_setview.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="setView"/> + 设置视图。设置渲染视图。设置渲染视图。设置渲染视图。 + + + + + + + + +
+

+ virtual int setView(media::base::view_t view) = 0; + int setView(View videoView); + - (int)setView:(View *_Nullable)view NS_SWIFT_NAME(setView(_:)); + - (int)setView:(View *_Nullable)view NS_SWIFT_NAME(setView(_:)); +

+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入后调用该方法。

+

你可以在加入频道前或加入后调用该方法。

+
+
+ 参数 + + + view + 渲染视图。在 Windows 上,该参数用于设置窗口句柄(HWND)。 + + + videoView + 渲染视图。 + + + view + 渲染视图。详见 View + + + view + 渲染视图。详见 View + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_stop.dita b/dita/RTC-AIDOC/API/api_imediaplayer_stop.dita new file mode 100644 index 00000000000..f09ff196023 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_stop.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="stop"/> + 停止播放媒体轨道。停止播放媒体轨道。停止播放媒体轨道。停止播放媒体轨道。 + + + + + + + + +
+

+ virtual int stop() = 0; + int stop(); + - (int)stop NS_SWIFT_NAME(stop()); + - (int)stop NS_SWIFT_NAME(stop()); +

+
+
+

调用该方法停止播放后,如需再次播放,需要调用 重新打开媒体资源。

+

调用该方法后,如需再次播放,需要调用 open 重新打开媒体资源。

+

调用该方法停止播放后,如果你需要再次播放,需要调用 方法重新打开媒体资源。

+

调用该方法停止播放后,如果你需要再次播放,需要调用 方法重新打开媒体资源。

+
+
+ 调用时机 +

在播放后调用该方法。

+

请在播放后调用此方法。

+

请在播放后调用该方法。

+

请在播放后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_switchsrc.dita b/dita/RTC-AIDOC/API/api_imediaplayer_switchsrc.dita new file mode 100644 index 00000000000..3431935422a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_switchsrc.dita @@ -0,0 +1,176 @@ + + + + <ph keyref="switchSrc"/> + 切换当前正在播放的媒体资源。切换正在播放的媒体资源。切换正在播放的媒体资源。切换正在播放的媒体资源。 + + + + + + + + +
+

+ virtual int switchSrc(const char* src, bool syncPts = true) = 0; + int switchSrc(String src, boolean syncPts); + - (int)switchSrc:(NSString *)src syncPts:(BOOL)syncPts NS_SWIFT_NAME(switchSrc(_:syncPts:)); + - (int)switchSrc:(NSString *)src syncPts:(BOOL)syncPts NS_SWIFT_NAME(switchSrc(_:syncPts:)); +

+
+
+

你可以根据当前的网络状况调用该方法切换播放的媒体资源。例如: +

    +
  • 当网络较差时,切换为码率较低的媒体资源地址;
  • +
  • 当网络良好时,切换为码率较高的媒体资源地址。
  • +
调用该方法后,如果收到 回调报告 PLAYER_EVENT_SWITCH_COMPLETE 事件,表示切换成功;如果切换失败,SDK 会自动重试 3 次,若仍失败,将通过 回调报告 PLAYER_EVENT_SWITCH_ERROR 事件,表示切换失败。

+

你可以调用此方法根据当前网络状态切换播放的媒体资源地址。例如: +

    +
  • 当网络较差时,将播放的媒体资源切换为码率较低的媒体资源地址。
  • +
  • 当网络良好时,将播放的媒体资源切换为码率较高的媒体资源地址。
  • +
调用此方法后,如果收到 回调报告 PLAYER_EVENT_SWITCH_COMPLETE 事件,表示切换成功。如果切换失败,SDK 会自动重试 3 次。如果仍然失败,你将收到 回调报告 PLAYER_EVENT_SWITCH_ERROR 事件,表示切换过程中发生错误。

+

你可以根据当前的网络状态调用该方法切换要播放的媒体资源。例如: +

    +
  • 当网络较差时,将播放的媒体资源切换为码率较低的媒体资源地址。
  • +
  • 当网络良好时,将播放的媒体资源切换为码率较高的媒体资源地址。
  • +
+

+

你可以根据当前的网络状态调用该方法切换要播放的媒体资源。例如: +

    +
  • 当网络较差时,将播放的媒体资源切换为码率较低的媒体资源地址。
  • +
  • 当网络良好时,将播放的媒体资源切换为码率较高的媒体资源地址。
  • +
+

+ +
    +
  • 请确保在调用 方法之后再调用该方法。
  • +
  • 为确保正常播放,调用该方法时请注意以下事项: +
      +
    • 播放暂停时不要调用该方法;
    • +
    • 切换过程中不要调用 方法;
    • +
    • 切换前请确保当前播放位置未超过目标媒体资源的总时长。
    • +
    +
  • +
+
+ +
    +
  • 请确保在调用 open 之后再调用此方法。
  • +
  • 为确保正常播放,调用此方法时请注意以下事项: +
      +
    • 播放暂停时不要调用此方法。
    • +
    • 切换过程中不要调用 方法。
    • +
    • 切换媒体资源前,请确保播放位置未超过待切换媒体资源的总时长。
    • +
    +
  • +
+
+ 确保在调用该方法前已调用 方法。 +为确保正常播放,调用该方法时请注意以下事项: +
    +
  • 播放暂停时不要调用该方法。
  • +
  • 切换过程中不要调用 方法。
  • +
  • 切换媒体资源前,请确保播放位置未超过要切换的媒体资源的总时长。
  • +
+
+ 确保在调用该方法前已调用 方法。 +为确保正常播放,调用该方法时请注意以下事项: +
    +
  • 播放暂停时不要调用该方法。
  • +
  • 切换过程中不要调用 方法。
  • +
  • 切换媒体资源前,请确保播放位置未超过要切换的媒体资源的总时长。
  • +
+
+
+ +
+ 参数 + + + src + 媒体资源的 URL 地址。 + + + syncPts + 是否在切换前后同步播放位置(毫秒): +
    +
  • :同步切换前后的播放位置。
  • +
  • :(默认)不同步切换前后的播放位置。
  • +
+
+
+ + src + 媒体资源的 URL 地址。 + + + syncPts + 是否在切换前后同步播放位置(毫秒): +
    +
  • :同步切换前后的播放位置。
  • +
  • :(默认)不同步切换前后的播放位置。
  • +
+
+
+ + src + 媒体资源的 URL 地址。 + + + syncPts + 是否在切换前后同步播放位置(毫秒): +
    +
  • :同步切换前后的播放位置。
  • +
  • :(默认)不同步切换前后的播放位置。
  • +
+
+
+ + src + 媒体资源的 URL 地址。 + + + syncPts + 是否在切换前后同步播放位置(毫秒): +
    +
  • :同步切换前后的播放位置。
  • +
  • :(默认)不同步切换前后的播放位置。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_unloadsrc.dita b/dita/RTC-AIDOC/API/api_imediaplayer_unloadsrc.dita new file mode 100644 index 00000000000..f207e693665 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_unloadsrc.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="unloadSrc"/> + 卸载预加载的媒体资源。卸载预加载的媒体资源。卸载你预加载的媒体资源。卸载你预加载的媒体资源。 + + + + + + + + +
+

+ virtual int unloadSrc(const char* src) = 0; + int unloadSrc(String src); + - (int)unloadSrc:(NSString *)src NS_SWIFT_NAME(unloadSrc(_:)); + - (int)unloadSrc:(NSString *)src NS_SWIFT_NAME(unloadSrc(_:)); +

+
+
+ 方法无法释放正在播放的媒体资源。 + 无法释放正在播放的媒体资源。 + 方法无法释放正在播放的媒体资源。 + 方法无法释放正在播放的媒体资源。 +
+
+ 参数 + + + src + 媒体资源的 URL。 + + + src + 媒体资源的 URL。 + + + src + 媒体资源的 URL。 + + + src + 媒体资源的 URL。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_unregisteraudioframeobserver_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_unregisteraudioframeobserver_imediaplayer.dita new file mode 100644 index 00000000000..93482c9872f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_unregisteraudioframeobserver_imediaplayer.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="unregisterAudioFrameObserver_IMediaPlayer"/> + 取消注册音频帧观察器。 + + + + + + + + +
+

+ virtual int unregisterAudioFrameObserver(media::IAudioPcmFrameSink* observer) = 0; +

+
+
+
+ 参数 + + + observer + 音频帧观察器。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_unregisterplayersourceobserver.dita b/dita/RTC-AIDOC/API/api_imediaplayer_unregisterplayersourceobserver.dita new file mode 100644 index 00000000000..939f9ed85bb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_unregisterplayersourceobserver.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="unregisterPlayerSourceObserver"/> + 释放媒体播放器观察者。释放媒体播放器观察者。 + + + + + + + + +
+

+ virtual int unregisterPlayerSourceObserver(IMediaPlayerSourceObserver* observer) = 0; + int unRegisterPlayerObserver(IMediaPlayerObserver playerObserver); +

+
+
+
+ 参数 + + + observer + 媒体播放器观察者,用于监听播放过程中的事件。详见 + + + playerObserver + 用于监听播放过程中的事件的媒体播放器观察者。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayer_unregistervideoframeobserver_imediaplayer.dita b/dita/RTC-AIDOC/API/api_imediaplayer_unregistervideoframeobserver_imediaplayer.dita new file mode 100644 index 00000000000..6ddc5792e27 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayer_unregistervideoframeobserver_imediaplayer.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="unregisterVideoFrameObserver_IMediaPlayer"/> + 取消注册视频帧观察器。 + + + + + + + + +
+

+ virtual int unregisterVideoFrameObserver(agora::media::base::IVideoFrameObserver* observer) = 0; +

+
+
+
+ 参数 + + + observer + 视频帧观察器。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_enableautoremovecache.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_enableautoremovecache.dita new file mode 100644 index 00000000000..588a70b2988 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_enableautoremovecache.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="enableAutoRemoveCache"/> + 设置是否自动删除缓存的媒体文件。设置是否自动删除缓存的媒体文件。设置是否自动删除缓存的媒体文件。设置是否自动删除缓存的媒体文件。 + + + + + + + + +
+

+ virtual int enableAutoRemoveCache(bool enable) = 0; + int enableAutoRemoveCache(boolean enable); + - (int)enableAutoRemoveCache:(BOOL)enable NS_SWIFT_NAME(enableAutoRemoveCache(_:)); + - (int)enableAutoRemoveCache:(BOOL)enable NS_SWIFT_NAME(enableAutoRemoveCache(_:)); +

+
+
+

启用该功能后,如果缓存的媒体文件数量或大小超过设置的限制,SDK 会自动删除最近最少使用的缓存文件。

+

当缓存的媒体文件数量或大小超过设置的限制时,启用该功能后,SDK 会自动删除最近最少使用的缓存文件。

+

当缓存的媒体文件超过设置的数量或大小限制时,如果启用该功能,SDK 会自动删除最近最少使用的缓存文件。

+

当缓存的媒体文件超过设置的数量或大小限制时,如果启用该功能,SDK 会自动删除最近最少使用的缓存文件。

+
+
+ 参数 + + + enable + 是否启用 SDK 自动删除缓存的媒体文件: +
    +
  • :自动删除缓存的媒体文件。
  • +
  • :(默认)不自动删除缓存的媒体文件。
  • +
+
+
+ + enable + 是否启用 SDK 自动删除缓存的媒体文件: +
    +
  • :自动删除缓存的媒体文件。
  • +
  • :(默认)不自动删除缓存的媒体文件。
  • +
+
+
+ + enable + 是否启用 SDK 自动删除缓存的媒体文件: +
    +
  • :自动删除缓存的媒体文件。
  • +
  • :(默认)不自动删除缓存的媒体文件。
  • +
+
+
+ + enable + 是否启用 SDK 自动删除缓存的媒体文件: +
    +
  • :自动删除缓存的媒体文件。
  • +
  • :(默认)不自动删除缓存的媒体文件。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachedir.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachedir.dita new file mode 100644 index 00000000000..c67645e58a9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachedir.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="getCacheDir"/> + 获取待缓存媒体文件的存储路径。获取缓存媒体文件的存储路径。获取缓存媒体文件的存储路径。获取缓存媒体文件的存储路径。 + + + + + + + + +
+

+ virtual int getCacheDir(char* path, int length) = 0; + String getCacheDir(); + - (NSString *)cacheDir NS_SWIFT_NAME(cacheDir()); + - (NSString *)cacheDir NS_SWIFT_NAME(cacheDir()); +

+
+
+

如果在调用该方法前未调用 设置待缓存媒体文件的存储路径,则该方法返回 SDK 使用的默认存储路径。

+

如果在调用该方法之前未调用 设置缓存媒体文件的存储路径,则该方法返回 SDK 默认使用的存储路径。

+

如果在调用该方法前未调用 方法设置缓存媒体文件的存储路径,则该方法返回 SDK 默认使用的存储路径。

+

如果在调用该方法前未调用 方法设置缓存媒体文件的存储路径,则该方法返回 SDK 默认使用的存储路径。

+
+
+ 参数 + + + path + 输出参数,待缓存媒体文件的存储路径。 + + + length + path 缓存文件存储路径字符串的最大长度。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

方法调用成功时,返回缓存媒体文件的存储路径。 +方法调用失败,返回空字符串。

+

+

    +
  • 方法调用成功时,返回缓存媒体文件的存储路径。
  • +
  • 方法调用失败,返回 ,详见
  • +
+

+

+

    +
  • 方法调用成功时,返回缓存媒体文件的存储路径。
  • +
  • 方法调用失败,返回 ,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachefilecount.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachefilecount.dita new file mode 100644 index 00000000000..639d37f4e48 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getcachefilecount.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="getCacheFileCount"/> + 获取已缓存的媒体文件数量。获取已缓存的媒体文件数量。获取已缓存的媒体文件数量。获取已缓存的媒体文件数量。 + + + + + + + + +
+

+ virtual int getCacheFileCount() = 0; + int getCacheFileCount(); + - (NSInteger)cacheFileCount NS_SWIFT_NAME(cacheFileCount()); + - (NSInteger)cacheFileCount NS_SWIFT_NAME(cacheFileCount()); +

+
+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回已缓存的媒体文件数量。
  • +
  • < 0:方法调用失败,参见
  • +
+

+

+

    +
  • 0:方法调用成功,返回已缓存的媒体文件数量。。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 方法调用成功,返回已缓存的媒体文件数量。
  • +
  • 方法调用失败,返回小于 0 的错误码,详见
  • +
+

+

+

    +
  • 方法调用成功,返回已缓存的媒体文件数量。
  • +
  • 方法调用失败,返回小于 0 的错误码,详见
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilecount.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilecount.dita new file mode 100644 index 00000000000..a3e9c9a7f10 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilecount.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="getMaxCacheFileCount"/> + 获取可缓存的媒体文件的最大数量。获取可缓存的媒体文件的最大数量。获取可缓存的媒体文件的最大数量。获取可缓存的媒体文件的最大数量。 + + + + + + + + +
+

+ virtual int getMaxCacheFileCount() = 0; + int getMaxCacheFileCount(); + - (NSInteger)maxCacheFileCount NS_SWIFT_NAME(maxCacheFileCount()); + - (NSInteger)maxCacheFileCount NS_SWIFT_NAME(maxCacheFileCount()); +

+
+
+

默认情况下,可缓存的媒体文件最大数量为 1000。

+

默认情况下,最多可以缓存 1,000 个媒体文件。

+

默认情况下,最多可以缓存 1,000 个媒体文件。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功,返回获取可缓存的媒体文件的最大数量。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

方法调用成功,返回可缓存的媒体文件的最大数量。 +

    +
  • < 0:方法调用失败,返回错误码,详见
  • +
+

+

方法调用成功,返回可缓存的媒体文件的最大数量。 +

    +
  • < 0:方法调用失败,返回错误码,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilesize.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilesize.dita new file mode 100644 index 00000000000..61cfda1db61 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmaxcachefilesize.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="getMaxCacheFileSize"/> + 获取缓存媒体文件聚合存储空间的最大大小。获取缓存媒体文件聚合存储空间的最大大小。获取缓存媒体文件的聚合存储空间的最大大小。获取缓存媒体文件的聚合存储空间的最大大小。 + + + + + + + + +
+

+ virtual int64_t getMaxCacheFileSize() = 0; + long getMaxCacheFileSize(); + - (NSInteger)maxCacheFileSize NS_SWIFT_NAME(maxCacheFileSize()); + - (NSInteger)maxCacheFileSize NS_SWIFT_NAME(maxCacheFileSize()); +

+
+
+

你可以调用 方法设置缓存媒体文件聚合存储空间的最大大小,默认值为 1 GB。

+

你可以调用 方法根据实际场景设置缓存媒体文件聚合存储空间的最大大小。

+

你可以调用 方法根据你的使用场景设置该限制。默认情况下,缓存媒体文件的聚合存储空间的最大大小为 1 GB。

+

你可以调用 方法根据你的使用场景设置该限制。默认情况下,缓存媒体文件的聚合存储空间的最大大小为 1 GB。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回缓存媒体文件聚合存储空间的最大大小(单位为字节)。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • > 0:方法调用成功,返回缓存媒体文件聚合存储空间的最大大小(单位为字节)。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 方法调用成功,返回缓存媒体文件的聚合存储空间的最大大小(单位为字节)。
  • +
  • 方法调用失败,返回小于 0 的错误码,详见
  • +
+

+

+

    +
  • 方法调用成功,返回缓存媒体文件的聚合存储空间的最大大小(单位为字节)。
  • +
  • 方法调用失败,返回小于 0 的错误码,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmediaplayercachemanager.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmediaplayercachemanager.dita new file mode 100644 index 00000000000..c1efe2880df --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_getmediaplayercachemanager.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="getMediaPlayerCacheManager"/> + 获取一个 实例。获取一个 实例。创建一个 实例。创建一个 实例。 + + + + + + + + +
+

+ AGORA_API agora::rtc::IMediaPlayerCacheManager* AGORA_CALL getMediaPlayerCacheManager(); + public abstract IMediaPlayerCacheManager getMediaPlayerCacheManager(); + - (id<AgoraRtcMediaPlayerCacheManagerProtocol> _Nullable)createMediaPlayerCacheManager NS_SWIFT_NAME(createMediaPlayerCacheManager()); + - (id<AgoraRtcMediaPlayerCacheManagerProtocol> _Nullable)createMediaPlayerCacheManager NS_SWIFT_NAME(createMediaPlayerCacheManager()); +

+
+
+

在调用 中的任何 API 前,你需要调用该方法获取媒体播放器的缓存管理器实例。

+

在调用 中的任何 API 之前,你需要调用 获取媒体播放器的缓存管理器实例。

+

在调用 中的任何 API 之前,你需要调用此方法以获取媒体播放器的缓存管理器实例。

+

在调用 中的任何 API 之前,你需要调用此方法以获取媒体播放器的缓存管理器实例。

+ 采用单例模式,因此多次调用该方法会返回同一个实例。 + 采用单例模式,因此多次调用 会返回同一个实例。 + 返回的缓存管理器为单例模式。因此,多次调用此方法会返回相同的实例。 + 返回的缓存管理器为单例模式。因此,多次调用此方法会返回相同的实例。 +
+
+ 调用时机 +

调用时序:请确保在调用该方法前已初始化

+

确保在调用 前已初始化

+

确保在调用此方法之前已初始化

+

确保在调用此方法之前已初始化

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 实例,详见
  • +
  • 方法调用失败,返回
  • +
+

+

方法调用成功,返回 实例。

+

方法调用成功,返回 对象。

+

方法调用成功,返回 对象。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeallcaches.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeallcaches.dita new file mode 100644 index 00000000000..a426958bda4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeallcaches.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="removeAllCaches"/> + 删除媒体播放器中所有缓存的媒体文件。删除媒体播放器中所有缓存的媒体文件。删除媒体播放器中所有缓存的媒体文件。删除媒体播放器中所有缓存的媒体文件。 + + + + + + + + +
+

+ virtual int removeAllCaches() = 0; + int removeAllCaches(); + - (int)removeAllCaches NS_SWIFT_NAME(removeAllCaches()); + - (int)removeAllCaches NS_SWIFT_NAME(removeAllCaches()); +

+
+
+ 不会删除当前正在播放的缓存媒体文件。 + 当前正在播放的缓存媒体文件不会被删除。 + 不会删除当前正在播放的缓存媒体文件。 + 不会删除当前正在播放的缓存媒体文件。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removecachebyuri.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removecachebyuri.dita new file mode 100644 index 00000000000..eec49d32ea5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removecachebyuri.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="removeCacheByUri"/> + 删除缓存的媒体文件。删除缓存的媒体文件。删除缓存的媒体文件。删除缓存的媒体文件。 + + + + + + + + +
+

+ virtual int removeCacheByUri(const char *uri) = 0; + int removeCacheByUri(String uri); + - (int)removeCacheByUri:(NSString *)uri NS_SWIFT_NAME(removeCache(byUri:)); + - (int)removeCacheByUri:(NSString *)uri NS_SWIFT_NAME(removeCache(byUri:)); +

+
+
+ 当前不会删除正在播放的缓存媒体文件。 + 当前正在播放的缓存媒体文件不会被删除。 + 当前正在播放的缓存媒体文件不会被删除。 + 当前正在播放的缓存媒体文件不会被删除。 +
+
+ 参数 + + + uri + 要删除的媒体文件的 URI(统一资源标识符)。 + + + uri + 要删除的媒体文件的 URI(统一资源标识符)。 + + + uri + 要删除的媒体文件的 URI(统一资源标识符)。 + + + uri + 要删除的媒体文件的 URI(统一资源标识符)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeoldcache.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeoldcache.dita new file mode 100644 index 00000000000..3a7c05f5297 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_removeoldcache.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="removeOldCache"/> + 删除最少使用的缓存媒体文件。删除最少使用的缓存媒体文件。删除最少使用的缓存媒体文件。删除最少使用的缓存媒体文件。 + + + + + + + + +
+

+ virtual int removeOldCache() = 0; + int removeOldCache(); + - (int)removeOldCache NS_SWIFT_NAME(removeOldCache()); + - (int)removeOldCache NS_SWIFT_NAME(removeOldCache()); +

+
+
+

当缓存文件存储空间即将达到上限时,你可以调用该方法,SDK 会删除最少使用的缓存媒体文件。

+

你可以在缓存文件的存储空间即将达到上限时调用该方法。调用该方法后,SDK 会删除最少使用的缓存媒体文件。

+

当缓存文件的存储空间即将达到上限时,你可以调用该方法删除一个缓存媒体文件。SDK 会删除最少使用的缓存媒体文件。

+

当缓存文件的存储空间即将达到上限时,你可以调用该方法删除一个缓存媒体文件。SDK 会删除最少使用的缓存媒体文件。

+ 不会删除当前正在播放的缓存媒体文件。 + 不会删除当前正在播放的缓存媒体文件。 + 当前不会删除正在播放的缓存媒体文件。 + 当前不会删除正在播放的缓存媒体文件。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setcachedir.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setcachedir.dita new file mode 100644 index 00000000000..67854a91911 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setcachedir.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="setCacheDir"/> + 设置要缓存的媒体文件的存储路径。设置要缓存的媒体文件的存储路径。设置要缓存的媒体文件的存储路径。设置要缓存的媒体文件的存储路径。 + + + + + + + + +
+

+ virtual int setCacheDir(const char *path) = 0; + int setCacheDir(String path); + - (int)setCacheDir:(NSString *)cacheDir NS_SWIFT_NAME(setCacheDir(_:)); + - (int)setCacheDir:(NSString *)cacheDir NS_SWIFT_NAME(setCacheDir(_:)); +

+
+
+ 请确保在调用该方法前已初始化 + 请确保在调用该方法前已初始化 + 请确保在调用该方法前已初始化 + 请确保在调用该方法前已初始化 +
+
+ 参数 + + + path + 要缓存的媒体文件的绝对路径。 + 确保该目录已存在且可写。 + + + + path + 要缓存的媒体文件的绝对路径。确保该目录已存在且可写。 + + + cacheDir + 要缓存的媒体文件的绝对路径。确保该目录存在且可写。 + + + cacheDir + 要缓存的媒体文件的绝对路径。确保该目录存在且可写。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。详见
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilecount.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilecount.dita new file mode 100644 index 00000000000..58cbe73a2f1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilecount.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="setMaxCacheFileCount"/> + 设置可缓存的媒体文件的最大数量。设置可缓存的媒体文件数量上限。设置可缓存的媒体文件数量上限。设置可缓存的媒体文件数量上限。 + + + + + + + + +
+

+ virtual int setMaxCacheFileCount(int count) = 0; + int setMaxCacheFileCount(int count); + - (int)setMaxCacheFileCount:(NSInteger)count NS_SWIFT_NAME(setMaxCacheFileCount(_:)); + - (int)setMaxCacheFileCount:(NSInteger)count NS_SWIFT_NAME(setMaxCacheFileCount(_:)); +

+
+
+
+ 参数 + + + count + 可缓存的媒体文件的最大数量。默认值为 1000。 + + + count + 可缓存的媒体文件数量上限(默认值为 1000)。 + + + count + 可缓存的媒体文件数量上限(默认值为 1,000)。 + + + count + 可缓存的媒体文件数量上限(默认值为 1,000)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。详见
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilesize.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilesize.dita new file mode 100644 index 00000000000..ca8bf1956e6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_setmaxcachefilesize.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="setMaxCacheFileSize"/> + 设置缓存媒体文件的聚合存储空间的最大大小。设置缓存媒体文件的聚合存储空间的最大大小。设置用于缓存媒体文件的聚合存储空间的最大大小。设置用于缓存媒体文件的聚合存储空间的最大大小。 + + + + + + + + +
+

+ virtual int setMaxCacheFileSize(int64_t cacheSize) = 0; + int setMaxCacheFileSize(long cacheSize); + - (int)setMaxCacheFileSize:(NSInteger)cacheSize NS_SWIFT_NAME(setMaxCacheFileSize(_:)); + - (int)setMaxCacheFileSize:(NSInteger)cacheSize NS_SWIFT_NAME(setMaxCacheFileSize(_:)); +

+
+
+
+ 参数 + + + cacheSize + 缓存媒体文件的聚合存储空间的最大大小(字节)。默认值为 1 GB。 + + + cacheSize + 缓存媒体文件的聚合存储空间的最大大小,单位为字节。(默认值为 1 GB。) + + + cacheSize + 缓存媒体文件的聚合存储空间的最大大小(字节)(默认值为 1 GB)。 + + + cacheSize + 缓存媒体文件的聚合存储空间的最大大小(字节)(默认值为 1 GB)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败,详见
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediaplayercachemanager_sharedinstance.dita b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_sharedinstance.dita new file mode 100644 index 00000000000..6c599ef3c67 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediaplayercachemanager_sharedinstance.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="sharedInstance"/> + 获取 实例。获取 实例。 + + + + + + + + +
+

+ + (instancetype)sharedInstance NS_SWIFT_NAME(sharedInstance()); + + (instancetype)sharedInstance NS_SWIFT_NAME(sharedInstance()); +

+
+
+
+ 返回值 +

方法调用成功,返回 实例。

+

方法调用成功,返回 实例。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediarecorder_enablemainqueuedispatch_imediarecorder.dita b/dita/RTC-AIDOC/API/api_imediarecorder_enablemainqueuedispatch_imediarecorder.dita new file mode 100644 index 00000000000..22a9bd2a68c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediarecorder_enablemainqueuedispatch_imediarecorder.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="enableMainQueueDispatch_IMediaRecorder"/> + 设置是否将回调方法派发到主线程。设置是否将回调方法派发到主线程。 + + + + + + + + +
+

+ - (int)enableMainQueueDispatch:(BOOL)enabled NS_SWIFT_NAME(enableMainQueueDispatch(_:)); + - (int)enableMainQueueDispatch:(BOOL)enabled NS_SWIFT_NAME(enableMainQueueDispatch(_:)); +

+
+
+

如果不将回调方法派发到主线程,应用应将 UI 操作派发到主线程。

+

如果不将回调方法派发到主线程,应用应将 UI 操作派发到主线程。

+
+
+ 参数 + + + enabled + 是否将回调方法派发到主线程: +
    +
  • :将回调方法派发到主线程。
  • +
  • :不将回调方法派发到主线程。
  • +
+
+
+ + enabled + 是否将回调方法派发到主线程: +
    +
  • :将回调方法派发到主线程。
  • +
  • :不将回调方法派发到主线程。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见错误码获取详情和排查建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。详见错误码获取详情和排查建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediarecorder_setmediarecorderobserver.dita b/dita/RTC-AIDOC/API/api_imediarecorder_setmediarecorderobserver.dita new file mode 100644 index 00000000000..abbbc86e875 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediarecorder_setmediarecorderobserver.dita @@ -0,0 +1,110 @@ + + + + <ph keyref="setMediaRecorderObserver"/> + 注册 观察器。注册一个用于音视频录制的回调观察者。注册 观察者。注册 观察者。 + + + + + + + + +
+

+ virtual int setMediaRecorderObserver(media::IMediaRecorderObserver* callback) = 0; + public int setMediaRecorderObserver(IMediaRecorderCallback callback) + - (int)setMediaRecorderDelegate:(id<AgoraMediaRecorderDelegate> _Nullable)delegate; + - (int)setMediaRecorderDelegate:(id<AgoraMediaRecorderDelegate> _Nullable)delegate; +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

该方法用于设置音视频录制的回调,使应用在录制过程中能够接收录制状态和信息通知。 +在调用该方法前,请确保: +

    +
  • 已创建并初始化 对象。
  • +
  • 已使用 创建媒体录制器对象。
  • +
+

+

该方法用于设置音视频录制的回调,使你在录制过程中能够获取音视频流的录制状态和相关信息。 + +在调用该方法前,请确保已创建并初始化 对象,并使用 创建录制器实例。

+

该方法用于设置音视频录制的回调,使你在录制过程中能够获取音视频流的录制状态和相关信息。 + +在调用该方法前,请确保已创建并初始化 对象,并使用 创建录制器实例。

+ 在调用该方法前,请确保: +
    +
  • 对象已创建并初始化。
  • +
  • 已通过 创建音视频录制对象。
  • +
+
+
+
+ 参数 + + + callback + 音视频流录制的回调。详见 + + + callback + 音视频流录制的回调。详见 + + + delegate + 音视频流录制的回调。详见 + + + delegate + 音视频流录制的回调。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediarecorder_startrecording.dita b/dita/RTC-AIDOC/API/api_imediarecorder_startrecording.dita new file mode 100644 index 00000000000..55de9c780c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediarecorder_startrecording.dita @@ -0,0 +1,207 @@ + + + + <ph keyref="startRecording"/> + 开始录制音视频流。开始录制音频和视频流。开始录制音视频流。开始录制音视频流。 + + + + + + + + +
+

+ virtual int startRecording(const media::MediaRecorderConfiguration& config) = 0; + public int startRecording(MediaRecorderConfiguration config) + - (int)startRecording:(AgoraMediaRecorderConfiguration* _Nonnull)config NS_SWIFT_NAME(startRecording(_:)); + - (int)startRecording:(AgoraMediaRecorderConfiguration* _Nonnull)config NS_SWIFT_NAME(startRecording(_:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

该方法用于开始录制音频和视频流,支持同时录制本地和远端用户的音视频流。 +在调用该方法前,请确保: +

    +
  • 已通过 创建录制器实例。
  • +
  • 已通过 注册录制器观察者以监听录制回调。
  • +
  • 已加入频道。
  • +
该方法支持录制以下内容: +
    +
  • 以 AAC 编码格式采集的麦克风音频。
  • +
  • 以 H.264 或 H.265 编码格式采集的摄像头视频。
  • +
录制开始后: +
    +
  • 如果录制过程中视频分辨率发生变化,SDK 会停止录制。
  • +
  • 如果音频采样率或声道数发生变化,SDK 会继续录制,并生成一个 MP4 文件。
  • +
仅当检测到可录制的音视频流时,录制文件才会成功生成。如果没有可录制的流,或录制过程中流中断超过 5 秒,SDK 会停止录制,并触发 RECORDER_STATE_ERRORRECORDER_REASON_NO_STREAM)回调。

+

该方法用于开始录制音频和视频流。声网 SDK 支持同时录制本地和远端用户的音视频流。 +在调用该方法前,请确保: +

    +
  • 已使用 创建媒体录制器对象。
  • +
  • 已使用 注册媒体录制器观察者以监听录制相关的回调。
  • +
  • 已加入频道。
  • +
该方法支持录制以下数据: +
    +
  • 由麦克风采集的音频,格式为 AAC。
  • +
  • 由摄像头采集的视频,格式为 H.264 或 H.265。
  • +
录制开始后,如果视频分辨率发生变化,SDK 会停止录制;如果音频采样率或声道数发生变化,SDK 会继续录制并生成一个 MP4 文件。仅当检测到可录制的音视频流时,才会生成录制文件。如果没有可录制的流,或录制过程中音视频流中断超过 5 秒,SDK 会停止录制并触发 RECORDER_STATE_ERROR, RECORDER_REASON_NO_STREAM)回调。

+

该方法用于开始录制音频和视频流。声网 SDK 支持同时录制本地和远端用户的音视频流。 +在开始录制前,请确保: +

    +
  • 已调用 创建媒体录制器对象。
  • +
  • 已调用 注册媒体录制器观察者以监听录制相关的回调。
  • +
  • 已加入频道。
  • +
该方法支持录制以下数据: +
    +
  • 通过麦克风采集的音频,编码格式为 AAC。
  • +
  • 通过摄像头采集的视频,编码格式为 H.264 或 H.265。
  • +
录制开始后,如果录制过程中视频分辨率发生变化,SDK 会停止录制。如果音频采样率或声道数发生变化,SDK 会继续录制并生成一个 MP4 文件。仅当检测到可录制的音视频流时,才会生成录制文件。如果在录制过程中未检测到可录制的音视频流,或音视频流中断超过 5 秒,SDK 会停止录制并触发 回调(AgoraMediaRecorderStateErrorAgoraMediaRecorderReasonCodeNoStream)。

+

该方法用于开始录制音频和视频流。声网 SDK 支持同时录制本地和远端用户的音视频流。 +在开始录制前,请确保: +

    +
  • 已调用 创建媒体录制器对象。
  • +
  • 已调用 注册媒体录制器观察者以监听录制相关的回调。
  • +
  • 已加入频道。
  • +
该方法支持录制以下数据: +
    +
  • 通过麦克风采集的音频,编码格式为 AAC。
  • +
  • 通过摄像头采集的视频,编码格式为 H.264 或 H.265。
  • +
录制开始后,如果录制过程中视频分辨率发生变化,SDK 会停止录制。如果音频采样率或声道数发生变化,SDK 会继续录制并生成一个 MP4 文件。仅当检测到可录制的音视频流时,才会生成录制文件。如果在录制过程中未检测到可录制的音视频流,或音视频流中断超过 5 秒,SDK 会停止录制并触发 回调(AgoraMediaRecorderStateErrorAgoraMediaRecorderReasonCodeNoStream)。

+ +
    +
  • 如果你希望录制本地音视频流,请确保在开始录制前将本地用户角色设置为 broadcaster
  • +
  • 如果你希望录制远端音视频流,请确保在开始录制前已订阅远端用户的流。
  • +
+
+ +
    +
  • 如果需要录制本地音视频流,请确保本地用户角色在开始录制前已设置为主播。
  • +
  • 如果需要录制远端用户的音视频流,请确保在开始录制前已订阅远端用户的音视频流。
  • +
+
+ +
    +
  • 如果需要录制本地音视频流,请确保本地用户角色在开始录制前已设置为主播。
  • +
  • 如果需要录制远端用户的音视频流,请确保在开始录制前已订阅目标用户的音视频流。
  • +
+
+ +
    +
  • 如果需要录制本地音视频流,请确保本地用户角色在开始录制前已设置为主播。
  • +
  • 如果需要录制远端用户的音视频流,请确保在开始录制前已订阅目标用户的音视频流。
  • +
+
+
+
+ 参数 + + + config + 音视频流录制配置。详见 + + + config + 音视频流录制的配置。详见 + + + config + 用于配置音视频流录制的参数,详见 + + + config + 用于配置音视频流录制的参数,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请确保: +
        +
      • 指定的录制文件路径正确且可写。
      • +
      • 指定的录制文件格式正确。
      • +
      • 最大录制时长设置正确。
      • +
      +
    • +
    • -4: 当前状态不支持该操作。可能是已有录制正在进行,或录制因错误已停止。
    • +
    • -7:调用该方法时 尚未初始化。请确保在调用该方法前已创建 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请确保: +
        +
      • 指定的录制文件保存路径正确且可写。
      • +
      • 指定的录制文件格式正确。
      • +
      • 最大录制时长设置正确。
      • +
      +
    • +
    • -4:当前 状态不支持该操作。可能是录制已在进行中,或因错误而停止。
    • +
    • -7:在 初始化前调用该方法。请确保在调用该方法前已创建 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见错误码: +
      +
    • -2:参数无效。请确保: +
        +
      • 指定的录制文件保存路径正确且可写。
      • +
      • 指定的录制文件格式正确。
      • +
      • 最大录制时长设置正确。
      • +
      +
    • +
    • -4:当前 的状态不支持该操作。可能是由于已有录制任务正在进行,或录制错误导致录制已停止。
    • +
    • -7:调用该方法时 尚未初始化。请确保在调用该方法前已创建 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。详见错误码: +
      +
    • -2:参数无效。请确保: +
        +
      • 指定的录制文件保存路径正确且可写。
      • +
      • 指定的录制文件格式正确。
      • +
      • 最大录制时长设置正确。
      • +
      +
    • +
    • -4:当前 的状态不支持该操作。可能是由于已有录制任务正在进行,或录制错误导致录制已停止。
    • +
    • -7:调用该方法时 尚未初始化。请确保在调用该方法前已创建 对象。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imediarecorder_stoprecording.dita b/dita/RTC-AIDOC/API/api_imediarecorder_stoprecording.dita new file mode 100644 index 00000000000..bf502650e11 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imediarecorder_stoprecording.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="stopRecording"/> + 停止音视频流的录制。停止录制音视频流。停止录制音视频流。停止录制音视频流。 + + + + + + + + +
+

+ virtual int stopRecording() = 0; + public int stopRecording() + - (int)stopRecording NS_SWIFT_NAME(stopRecording()); + - (int)stopRecording NS_SWIFT_NAME(stopRecording()); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+ 调用 后,必须调用该方法停止录制,否则生成的录制文件可能无法正常播放。 + 调用 后,如果你想停止录制,必须调用此方法;否则生成的录制文件可能无法正常播放。 + 调用 后,如果你想停止录制,必须调用此方法;否则生成的录制文件可能无法正常播放。 + 调用 后,如果你想停止录制,必须调用此方法;否则生成的录制文件可能无法正常播放。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败: +
      +
    • -7:调用该方法时 未初始化。请确保在调用该方法前已创建 实例。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败: +
      +
    • -7:在初始化 之前调用该方法。请确保在调用此方法之前已创建 Recorder 实例。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败: +
      +
    • -7:在初始化 之前调用该方法。请确保在调用此方法之前已创建 Recorder 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败: +
      +
    • -7:在初始化 之前调用该方法。请确保在调用此方法之前已创建 Recorder 对象。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imetadataobserver_getmaxmetadatasize.dita b/dita/RTC-AIDOC/API/api_imetadataobserver_getmaxmetadatasize.dita new file mode 100644 index 00000000000..7a7be911a28 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imetadataobserver_getmaxmetadatasize.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="getMaxMetadataSize"/> + 当 SDK 请求元数据最大大小时触发的回调。当 SDK 请求元数据最大大小时触发的回调。 + + + + + + + + +
+

+ virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; } + public abstract int getMaxMetadataSize() +

+
+
+

调用 成功注册后,SDK 在每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。

+

调用 成功注册后,SDK 在每发送一帧视频时会触发该回调。你需要在该回调的返回值中指定元数据的最大大小。

+
+
+ 返回值 +

方法调用成功,返回你希望使用的元数据 buffer 的最大大小,单位为字节。最大值为 1024 字节。

+

方法调用成功,返回你希望使用的元数据 buffer 的最大大小,单位为字节。最大值为 1024 字节。请确保设置返回值。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_createmusicplayer.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_createmusicplayer.dita new file mode 100644 index 00000000000..93ead5707cc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_createmusicplayer.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="createMusicPlayer"/> + 创建一个音乐播放器。创建一个音乐播放器。创建一个音乐播放器。 + + + + + + + + +
+

+ virtual agora_refptr<IMusicPlayer> createMusicPlayer() = 0; + - (id<AgoraMusicPlayerProtocol> _Nullable)createMusicPlayerWithDelegate:(id<AgoraRtcMediaPlayerDelegate> _Nullable)delegate NS_SWIFT_NAME(createMusicPlayer(delegate:)); + public abstract IAgoraMusicPlayer createMusicPlayer(); +

+
+
+

如果你需要播放来自声网 Music Content Center 的音乐资源,必须先调用 创建一个音乐播放器。

+

如果你需要播放来自版权音乐中心的音乐资源,必须先调用该方法创建一个音乐播放器。

+

如果你需要播放来自音乐内容中心的音乐资源,必须先调用该方法。

+
+
+ 参数 + + + delegate + 播放器事件回调接口,详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回一个 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回 null
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroy_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroy_imusiccontentcenter.dita new file mode 100644 index 00000000000..5bd0e77b704 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroy_imusiccontentcenter.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="destroy_IMusicContentCenter"/> + 销毁 实例。销毁 实例。 + + + + + + + + +
+

+ + (void)destroy; + public static synchronized void destroy() +

+
+
+

你必须在调用 方法之前,先调用此方法。

+

你必须在调用 方法之前调用该方法。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroymusicplayer.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroymusicplayer.dita new file mode 100644 index 00000000000..e321aafabc1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_destroymusicplayer.dita @@ -0,0 +1,71 @@ + + + + <ph keyref="destroyMusicPlayer"/> + 销毁音乐播放器对象。销毁音乐播放器对象。销毁音乐播放器对象。 + + + + + + + + +
+

+ virtual int destroyMusicPlayer(agora_refptr<IMusicPlayer> music_player) = 0; + - (NSInteger)destroyMusicPlayer:(id<AgoraMusicPlayerProtocol>)musicPlayer; + public abstract int destroyMusicPlayer(IAgoraMusicPlayer player); +

+
+
+

当你不再需要使用音乐播放器时,可以调用此方法销毁该对象。如果销毁后需要再次使用音乐播放器,请调用 重新创建。

+

当你不再需要使用音乐播放器时,可以调用此方法销毁音乐播放器对象。如果在销毁后需要再次使用音乐播放器,必须调用 方法重新创建一个新的音乐播放器对象。

+

如果在销毁后需要再次使用音乐播放器,必须调用 方法重新创建。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用,但必须在调用 方法之前调用。

+

你可以在加入频道前或后调用此方法,但必须确保在调用 destroy [2/2] 方法之前调用。

+

你可以在加入频道前或加入频道后调用此方法,但必须确保在调用 方法之前调用此方法。

+
+
+ 参数 + + + music_player + 音乐播放器对象。详见 + + + musicPlayer + 音乐播放器对象。详见 + + + player + 音乐播放器对象。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_enablemainqueuedispatch_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_enablemainqueuedispatch_imusiccontentcenter.dita new file mode 100644 index 00000000000..c9eb4e7cb1f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_enablemainqueuedispatch_imusiccontentcenter.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="enableMainQueueDispatch_IMusicContentCenter"/> + 设置是否将回调方法派发到主线程。 + + + + + + + + +
+

+ - (void)enableMainQueueDispatch:(BOOL)enabled; +

+
+
+

如果你不将回调方法派发到主线程,你需要手动将 UI 操作派发到主线程。

+
+
+ 参数 + + + enabled + :将回调方法派发到主线程。 +:(默认)不将回调方法派发到主线程。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getcaches.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getcaches.dita new file mode 100644 index 00000000000..d6fc53a58f2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getcaches.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="getCaches"/> + 获取已缓存的音乐资源信息。获取缓存音乐资源的信息。获取已缓存的音乐资源信息。 + + + + + + + + +
+

+ virtual int getCaches(MusicCacheInfo *cacheInfo, int32_t* cacheInfoSize) = 0; + - (NSArray *)getCaches NS_SWIFT_NAME(getCaches()); + public abstract MusicCacheInfo[] getCaches(); +

+
+
+

调用该方法前,需要预先分配内存用于存储已缓存音乐资源的信息。如果希望设置可缓存的音乐资源数量,可以通过 中的 configuration 参数进行配置。当不再需要这些缓存资源时,应及时释放内存以避免内存泄漏。

+

在调用此方法前,你需要分配足够的内存来存储缓存音乐资源的信息。如果你想设置可缓存的音乐资源数量,可以通过 方法中的 config 参数进行配置。当你不再需要缓存的音乐资源时,应及时释放内存以防止内存泄漏。

+

在调用该方法前,你需要预先分配内存空间,用于存储已缓存音乐资源的信息。如果需要设置可缓存的音乐资源数量,可以通过 configuration 参数进行配置。当不再需要这些缓存的音乐资源时,应及时释放内存,避免内存泄漏。

+
+
+ 参数 + + + cacheInfo + 输出参数,用于存储已缓存音乐资源信息的内存缓冲区指针。详见 + + + cacheInfoSize + 输入和输出参数,表示 数组的大小。 +
    +
  • 输入值:分配的 结构体数量。
  • +
  • 输出值:方法执行后返回的 结构体数量。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回包含 对象的数组。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回包含 对象的数组。
  • +
  • 方法调用失败,返回 null
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getinternalsongcode.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getinternalsongcode.dita new file mode 100644 index 00000000000..00c9c378abf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getinternalsongcode.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="getInternalSongCode"/> + 创建音乐资源副歌片段的内部歌曲编码。创建音乐资源副歌片段的内部 ID。创建音乐资源副歌片段的内部标识符。 + + + + + + + + +
+

+ virtual int getInternalSongCode(int64_t songCode, const char* jsonOption, int64_t& internalSongCode) = 0; + - (NSInteger)getInternalSongCode:(NSInteger)songCode jsonOption:(NSString * _Nullable)jsonOption NS_SWIFT_NAME(getInternalSongCode(songCode:jsonOption:)); + public abstract long getInternalSongCode(long songCode, String jsonOption); +

+
+
+

在播放音乐资源的副歌片段前,需调用该方法,结合参数 jsonOption 和音乐资源的 songCode 创建副歌片段的内部歌曲编码。该编码作为资源的唯一标识。获取该编码后,在调用打开、预加载或移除资源的方法时,将其作为 songCode 参数传入。

+

调用该方法可结合音乐资源的 songCodejsonOption 参数,为该资源的副歌片段创建一个内部 ID。该 ID 是该资源的唯一标识。获取该 ID 后,你需要在调用打开、预加载或移除资源的方法时,将其作为 songCode 参数传入。

+

在播放音乐资源的副歌片段前,需调用该方法,结合音乐资源的 songCodejsonOption 参数创建副歌片段的内部标识符。该标识符作为资源的唯一引用。在调用相关方法以打开、预加载或移除资源时,应将该标识符作为 songCode 参数传入。

+
+
+ 参数 + + + songCode + 音乐资源的歌曲编码,用于标识资源。你可以通过调用 获取,并从这些方法触发的 回调中获取该编码。 + + + jsonOption + 扩展 JSON 字段,默认为 。目前支持以下字段: +
    +
  • sceneType:场景类型。1:直播场景,在线 K 歌房和背景音乐播放;2:直播场景,背景音乐播放;3:(默认)声动语聊场景,在线 K 歌房;4:声动语聊场景,背景音乐播放;5:VR 场景,在线 K 歌房和背景音乐播放。示例代码 {"sceneType":1}
  • +
  • highPart:副歌片段的索引,从 回调中获取,索引从 0 开始。示例代码 {"format": {"highpart": 0}}
  • +
+
+
+ + internalSongCode + 输出参数,音乐资源的内部歌曲编码。 + + + songCode + 音乐资源的唯一标识。你可以通过调用 方法,并从 回调中获取 songCode + + + jsonOption + + 声网会根据你在 sceneType 中指定的频道场景计费。不同的频道场景对应不同的计费标准,详见计费文档。若需切换频道场景,必须重新调用该方法并传入新的 sceneType 值。扩展 JSON 字段,默认为 。当前支持以下字段: +
    +
  • sceneType:频道场景。 +
      +
    • 1:直播场景:在线 K 歌房和背景音乐播放。
    • +
    • 2:直播场景:背景音乐播放。
    • +
    • 3:(默认)语聊场景:在线 K 歌房。
    • +
    • 4:语聊场景:背景音乐播放。
    • +
    • 5:VR 场景:在线 K 歌房和背景音乐播放。示例:{"sceneType":1}
    • +
    +
  • +
+
    +
  • highPart:副歌片段的索引。你可以从 回调中获取该索引并传入。索引从 0 开始。示例:{"format": {"highpart": 0}}
  • +
+
+
+ + songCode + 音乐资源的标识符。可通过调用 getMusicCollectionByMusicChartIdsearchMusic 获取,并从这两个方法触发的 回调中获取 songCode + + + jsonOption + + sceneType 会影响计费方式。不同频道场景的计费标准不同,详见计费文档。若需切换频道场景,必须使用新的 sceneType 值重新调用该方法。扩展 JSON 字段,默认为 null。目前支持以下字段: +
    +
  • sceneType:场景类型。1:直播场景,在线 K 歌房和背景音乐播放;2:直播场景,背景音乐播放;3:(默认)声动语聊场景,在线 K 歌房;4:声动语聊场景,背景音乐播放;5:VR 场景,在线 K 歌房和背景音乐播放。示例:{"sceneType":1}
  • +
  • highPart:副歌片段的索引,从 回调中获取,索引从 0 开始。示例:{"format": {"highpart": 0}}
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。详见错误码及其解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见错误码文档获取详细信息和排查建议。
  • +
+

+

+

    +
  • 方法调用成功,返回创建的音乐资源内部标识符。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getlyric.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getlyric.dita new file mode 100644 index 00000000000..ce5396777db --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getlyric.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="getLyric"/> + 获取音乐资源歌词的下载链接。获取音乐资源歌词的下载链接。获取音乐资源歌词的下载链接。 + + + + + + + + +
+

+ virtual int getLyric(agora::util::AString& requestId, int64_t songCode, int32_t lyricType = 0) = 0; + - (NSString *)getLyricWithSongCode:(NSInteger)songCode lyricType:(NSInteger)lyricType NS_SWIFT_NAME(getLyric(songCode:lyricType:)); + public abstract String getLyric(long songCode, int lyricType); +

+
+
+

调用该方法后,SDK 会触发 回调,返回歌词的下载链接。

+

调用该方法后,SDK 会触发 回调。

+
+ +
+ 参数 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的 ID,用于标识音乐。 + + + lyricType + 歌词类型: +
    +
  • 0:XML 格式。
  • +
  • 1:LRC 格式。
  • +
+
+
+ + songCode + 音乐资源的标识符,用于指定音乐资源。 + + + lyricType + 歌词的类型: +
    +
  • 0:XML 格式。
  • +
  • 1:LRC 格式。
  • +
+
+
+ + songCode + 指定音乐资源的标识符。 + + + lyricType + 歌词格式类型: +
    +
  • 0:xml 格式。
  • +
  • 1:lrc 格式。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回请求 ID,用于标识该请求的唯一性。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回唯一标识该请求的 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccharts.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccharts.dita new file mode 100644 index 00000000000..082a2e0c53f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccharts.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="getMusicCharts"/> + 获取所有音乐排行榜。获取所有音乐排行榜。获取所有音乐排行榜。 + + + + + + + + +
+

+ virtual int getMusicCharts(agora::util::AString& requestId) = 0; + - (NSString *)getMusicCharts; + public abstract String getMusicCharts(); +

+
+
+

调用该方法后,SDK 会触发 回调,报告音乐排行榜的详细信息。

+

调用该方法时,SDK 会触发 回调,返回音乐排行榜的详细信息。

+
+ +
+ 参数 + + + requestId + 用于标识此次请求的唯一标识符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功时,返回一个唯一标识该请求的 requestId

+

+

    +
  • 方法调用成功时,返回请求的唯一标识符 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid.dita new file mode 100644 index 00000000000..5e3a595ad0e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="getMusicCollectionByMusicChartId"/> + 获取指定音乐榜单 ID 的音乐资源列表。获取指定音乐榜单中的音乐资源列表。根据音乐榜单 ID 获取音乐资源列表。 + + + + + + + + +
+

+ virtual int getMusicCollectionByMusicChartId(agora::util::AString& requestId, int32_t musicChartId, int32_t page, int32_t pageSize, const char* jsonOption = nullptr) = 0; + - (NSString *)getMusicCollectionWithMusicChartId:(NSInteger)musicChartId page:(NSInteger)page pageSize:(NSInteger)pageSize jsonOption:(NSString * _Nullable)jsonOption NS_SWIFT_NAME(getMusicCollection(musicChartId:page:pageSize:jsonOption:)); + public String getMusicCollectionByMusicChartId(int musicChartId, int page, int pageSize) +

+
+
+

调用该方法后,SDK 会触发 回调,报告该榜单中的音乐资源详情。

+

成功调用该方法后,SDK 会触发 回调,返回榜单中的音乐资源详细信息。

+
+ +
+ 参数 + + + requestId + 请求 ID,用于标识该请求的唯一标识符。 + + + musicChartId + 音乐榜单的 ID。你可以通过 回调获取该 ID,或通过 RESTful API 获取完整音乐库列表或增量音乐列表。 + + + page + 当前页码,从 1 开始。 + + + pageSize + 每页返回的音乐资源数量,最大值为 50。 + + + jsonOption + 扩展 JSON 字段,默认为 。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选项: +
    +
  • pitchType:是否支持评分。 +
      +
    • 1:可评分音乐。
    • +
    • 2:不可评分音乐。
    • +
    +
  • +
  • needHighPart:是否需要合唱片段。 +
      +
    • :需要合唱片段。
    • +
    • :不需要合唱片段。
    • +
    +
  • +
示例: +
    +
  • { "pitchType": 1 }
  • +
  • { "needHighPart": true }
  • +
+
+
+ + musicChartId + 音乐榜单的 ID,可通过 onMusicChartsResult 回调获取。你也可以使用 RESTful API 获取完整的音乐库或增量音乐列表。 + + + page + 当前页码,默认从 1 开始。 + + + pageSize + 每页返回的音乐资源数量,最大值为 50。 + + + jsonOption + 可选的 JSON 扩展字段,默认为 。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选条件: +
    +
  • pitchType:是否支持评分。 +
      +
    • 1:支持评分的音乐资源。
    • +
    • 2:不支持评分的音乐资源。
    • +
    +
  • +
  • needHighPart:是否需要副歌片段资源。 +
      +
    • true:需要副歌片段资源。
    • +
    • false:不需要副歌片段资源。
    • +
    +
  • +
+
+
+ + musicChartId + 音乐榜单的 ID,可通过 回调获取。 + 你也可以使用 RESTful API 获取“音乐库完整歌曲列表”或“增量歌曲列表”。 + + + + page + 当前页码,默认从 1 开始。 + + + pageSize + 当前音乐资源列表中的总页数,最大值为 50。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。请参见错误码文档获取详细信息和解决方案。
  • +
+

+

方法调用成功时,返回唯一标识该请求的 requestId

+

+

    +
  • 方法调用成功时,返回唯一标识此次请求的 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid2.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid2.dita new file mode 100644 index 00000000000..49b1da7fdd8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getmusiccollectionbymusicchartid2.dita @@ -0,0 +1,71 @@ + + + + <ph keyref="getMusicCollectionByMusicChartId2"/> + 根据音乐榜单 ID 获取音乐资源列表。 + + + + + + + + +
+

+ public abstract String getMusicCollectionByMusicChartId(int musicChartId, int page, int pageSize, String jsonOption); +

+
+
+

成功调用该方法后,SDK 会触发 回调,返回榜单中的音乐资源详细信息。

+
+ +
+ 参数 + + + musicChartId + 音乐榜单的 ID。可通过 回调获取。你也可以使用 RESTful API 获取完整音乐库列表或增量音乐列表。 + + + page + 当前页码,从 1 开始。 + + + pageSize + 每页返回的音乐资源数量,最大值为 50。 + + + jsonOption + 可选的 JSON 扩展字段,默认为 null。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选项: +
    +
  • pitchType:音乐资源是否支持评分。 +
      +
    • 1:可评分音乐资源。
    • +
    • 2:不可评分音乐资源。
    • +
    +
  • +
  • needHighPart:是否需要合唱片段资源。 +
      +
    • :需要合唱片段。
    • +
    • :不需要合唱片段。
    • +
    +
  • +
示例:{"pitchType":1}{"needHighPart":true}
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回请求的唯一标识符 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_getsongsimpleinfo.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getsongsimpleinfo.dita new file mode 100644 index 00000000000..4f509b699fd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_getsongsimpleinfo.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="getSongSimpleInfo"/> + 获取指定音乐资源的详细信息。获取指定音乐资源的详细信息。检索特定音乐资源的详细信息。 + + + + + + + + +
+

+ virtual int getSongSimpleInfo(agora::util::AString& requestId, int64_t songCode) = 0; + - (NSString *)getSongSimpleInfoWithSongCode:(NSInteger)songCode NS_SWIFT_NAME(getSongSimpleInfo(songCode:)); + public abstract String getSongSimpleInfo(long songCode); +

+
+
+

调用该方法前,你需要先获取目标音乐资源的歌曲编号。你可以通过调用 方法,并从其触发的 回调中获取歌曲编号。调用该方法后,SDK 会触发 回调,返回该音乐资源的详细信息。

+

在调用该方法前,你需要先获取对应音乐资源的标识符。你可以通过调用 方法获取音乐资源,并通过这些方法触发的 回调获取音乐资源标识符(songCode)。

+

在调用该方法前,你需要先获取目标音乐资源的标识符。你可以通过调用 getMusicCollectionByMusicChartIdsearchMusic 方法获取音乐资源,并通过触发的 回调获取音乐资源标识符(songCode)。

+ 成功调用该方法后,SDK 会触发 回调,返回音乐资源的详细信息。 + 成功调用该方法后,SDK 会触发 回调,报告音乐资源的详细信息。 +
+ +
+ 参数 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的歌曲编号,用于标识音乐。 + + + songCode + 音乐资源的标识符,用于指定音乐资源。 + + + songCode + 音乐资源的标识符,用于指定要查询的音乐资源。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功时,返回唯一标识此次请求的 requestId

+

+

    +
  • 方法调用成功时,返回唯一标识此次请求的 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_initialize_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_initialize_imusiccontentcenter.dita new file mode 100644 index 00000000000..134ef24f48c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_initialize_imusiccontentcenter.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="initialize_IMusicContentCenter"/> + 初始化 初始化 初始化 + + + + + + + + +
+

+ virtual int initialize(const MusicContentCenterConfiguration & configuration) = 0; + + (instancetype _Nullable)sharedContentCenterWithConfig:(AgoraMusicContentCenterConfig *)config NS_SWIFT_NAME(sharedContentCenter(config:)); + public abstract int initialize(MusicContentCenterConfiguration configuration); +

+
+
+

在调用 中的其他方法前,必须先调用该方法初始化

+

你必须先调用该方法初始化 ,然后才能调用该类中的其他方法。

+

在调用 方法前,必须先进行初始化,才能调用其他方法。

+
+
+ 参数 + + + configuration + 用于初始化 的配置。详见 + + + config + 用于初始化 的配置,详见 + + + configuration + 的配置参数。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回一个 对象。
  • +
  • 方法调用失败时,返回
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_ispreloaded.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_ispreloaded.dita new file mode 100644 index 00000000000..68db8b2fb11 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_ispreloaded.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="isPreloaded"/> + 检查指定音乐资源是否已预加载。检查音乐资源是否已预加载。检查指定音乐资源是否已预加载。 + + + + + + + + +
+

+ virtual int isPreloaded(int64_t songCode) = 0; + - (NSInteger)isPreloadedWithSongCode:(NSInteger)songCode NS_SWIFT_NAME(isPreloaded(songCode:)); + public abstract int isPreloaded(long songCode); +

+
+
+

该方法为同步调用。若需预加载新的音乐资源,请调用 preload

+

该方法为同步调用。你可以调用 方法来预加载新的音乐资源。

+

该方法为同步调用。

+
+
+ 参数 + + + songCode + 音乐资源的 ID,用于标识一个音乐项。 + + + songCode + 用于指定特定音乐资源的音乐资源标识符。 + + + songCode + 音乐资源的标识符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功,音乐资源已预加载。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。详见错误码。
  • +
+

+

+

    +
  • 0:方法调用成功,音乐资源已预加载。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,音乐资源已预加载。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload.dita new file mode 100644 index 00000000000..a401896b9a5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="preload"/> + 预加载音乐资源。预加载音乐资源。预加载音乐资源。 + + + + + + + + +
+

+ virtual int preload(int64_t songCode, const char* jsonOption) __deprecated = 0; + - (NSInteger)preloadWithSongCode:(NSInteger)songCode jsonOption:(NSString* _Nullable)jsonOption NS_SWIFT_NAME(preload(songCode:jsonOption:)) __attribute__((deprecated("Use preload(songCode:) instead."))); + public abstract int preload(long songCode, String jsonOption) +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 方法。
+
+ +
废弃
+
该方法已废弃,请改用 preload(songCode:)
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

你可以调用该方法预加载想要播放的音乐资源。成功调用该方法后,SDK 会触发 回调报告预加载事件。在调用该方法之前,你需要先调用 getMusicCollectionWithMusicChartId 获取目标音乐资源,并从 回调中获取歌曲编号 songCode

+

你可以调用此方法预加载你想播放的音乐资源。

+

调用成功后,SDK 会触发 回调报告预加载事件。在调用该方法前,你需要先调用 getMusicCollectionByMusicChartIdsearchMusic 获取音乐资源,并从 回调中获取资源标识符(songCode)。

+ 在销毁 对象前,请确保已收到 回调后再调用 方法。 + 在销毁 对象前,请确保等待 回调后再调用 方法。 + 销毁 对象前,请确保在收到 回调后调用 方法。 +
+ +
+ 参数 + + + songCode + 用于标识音乐资源的歌曲编号。 + + + jsonOption + 扩展的 JSON 字段。声网会根据你在 sceneType 字段中传入的应用场景计费,不同场景的计费标准不同: +
    +
  • 1:直播场景:在线 K 歌房和背景音乐播放。
  • +
  • 2:直播场景:背景音乐播放。
  • +
  • 3:(默认)声动语聊场景:在线 K 歌房。
  • +
  • 4:声动语聊场景:背景音乐播放。
  • +
  • 5:VR 场景:在线 K 歌房和背景音乐播放。
  • +
如果你需要切换到其他场景,请再次调用该方法并在该字段中传入新的 sceneType 值。示例:{"sceneType":1}
+
+ + songCode + 音乐资源的 ID,用于标识音乐。 + + + jsonOption + 扩展的 JSON 字段。声网会根据你在 sceneType 字段中传入的应用场景进行计费。不同的应用场景对应不同的计费标准。 +
    +
  • 1:频道场景:直播中的在线 K 歌和背景音乐播放。
  • +
  • 2:频道场景:直播中的背景音乐播放。
  • +
  • 3:(默认)频道场景:声动语聊中的在线 K 歌。
  • +
  • 4:频道场景:声动语聊中的背景音乐播放。
  • +
  • 5:频道场景:VR 中的在线 K 歌和背景音乐播放。
  • +
如果你需要切换到其他场景,必须重新调用此方法并在该字段中传入新的 sceneType 值。示例:{"sceneType":1}
+
+ + songCode + 音乐资源的标识符。 + + + jsonOption + 扩展的 JSON 字段。声网会根据你在 sceneType 字段中设置的应用场景计费,不同场景的计费标准不同,详见计费文档。 +
    +
  • 1:直播场景:在线 K 歌房和背景音乐播放。
  • +
  • 2:直播场景:背景音乐播放。
  • +
  • 3:(默认)声动语聊场景:在线 K 歌房。
  • +
  • 4:声动语聊场景:背景音乐播放。
  • +
  • 5:VR 场景:在线 K 歌房和背景音乐播放。
  • +
如果你需要切换到其他场景,必须重新调用该方法并在该字段中传入新的 sceneType 值。示例:{"sceneType":1}
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload2.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload2.dita new file mode 100644 index 00000000000..cbf1afdfad2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_preload2.dita @@ -0,0 +1,76 @@ + + + + <ph keyref="preload2"/> + 预加载音乐资源。预加载音乐资源。预加载版权音乐资源。 + + + + + + + + +
+

+ virtual int preload(agora::util::AString& requestId, int64_t songCode) = 0; + - (NSString *)preloadWithSongCode:(NSInteger)songCode NS_SWIFT_NAME(preload(songCode:)); + public abstract String preload(long songCode); +

+
+
+

调用该方法可以预加载想要播放的音乐资源。调用成功后,SDK 会触发 回调报告预加载事件。在调用该方法之前,需要先调用 获取目标音乐资源,并从 回调中获取歌曲编码(songCode)。

+

你可以调用此方法预加载你想播放的音乐资源。调用成功后,SDK 会触发 回调,报告音乐资源的预加载事件。

+

成功调用该方法后,SDK 会触发 回调,报告预加载事件。在调用该方法前,你需要先调用 getMusicCollectionByMusicChartIdsearchMusic 获取你想播放的版权音乐资源,并通过这些方法触发的 回调获取音乐资源标识符(songCode)。

+ 在销毁 对象前,请确保已收到 回调后再调用 方法。 + 在销毁 对象前,必须等待收到 回调后再调用 方法。 + 销毁 对象前,请确保在收到 回调后再调用 方法。 +
+ +
+ 参数 + + + requestId + 输出参数,请求 ID,用于唯一标识此次请求。 + + + songCode + 音乐资源的歌曲编码,用于标识音乐。 + + + songCode + 音乐资源的标识符。 + + + songCode + 版权音乐资源的标识符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回请求 ID,用于唯一标识该请求。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回请求的唯一标识符 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_registereventhandler_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_registereventhandler_imusiccontentcenter.dita new file mode 100644 index 00000000000..845174f539a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_registereventhandler_imusiccontentcenter.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="registerEventHandler_IMusicContentCenter"/> + 注册 MusicContentCenter 的事件处理器。注册版权音乐内容中心的回调事件。注册版权音乐内容中心的回调事件。 + + + + + + + + +
+

+ virtual int registerEventHandler(IMusicContentCenterEventHandler* eventHandler) = 0; + - (NSInteger)registerEventDelegate:(id<AgoraMusicContentCenterEventDelegate> _Nullable)eventDelegate; + public abstract int registerEventHandler(IMusicContentCenterEventHandler eventHandler); +

+
+
+
+ 参数 + + + eventHandler + 要注册的事件处理器。详见 + + + eventDelegate + 要注册的回调事件。如果你想移除之前注册的回调事件,请传入 。详见 + + + eventHandler + 要注册的回调事件。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_release_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_release_imusiccontentcenter.dita new file mode 100644 index 00000000000..3f9688e09be --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_release_imusiccontentcenter.dita @@ -0,0 +1,23 @@ + + + + <ph keyref="release_IMusicContentCenter"/> + 释放 MusicContentCenter 使用的所有资源。 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+

该方法必须在调用 之前调用。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_removecache.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_removecache.dita new file mode 100644 index 00000000000..18cb626c674 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_removecache.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="removeCache"/> + 删除已缓存的音乐资源。删除已缓存的音乐资源。删除已缓存的音乐资源。 + + + + + + + + +
+

+ virtual int removeCache(int64_t songCode) = 0; + - (NSInteger)removeCacheWithSongCode:(NSInteger)songCode NS_SWIFT_NAME(removeCache(songCode:)); + public abstract int removeCache(long songCode); +

+
+
+

你可以调用此方法删除指定的已缓存音乐资源。若需删除多个资源,请多次调用此方法。

+

你可以调用此方法删除已缓存的音乐资源。如需删除多个音乐资源,可以多次调用此方法。

+

若需删除多个音乐资源,可多次调用此方法。

+ 注意:此方法不会删除当前正在播放的已缓存音乐资源。 + 方法不会删除当前正在播放的已缓存音乐资源。 + 不会删除当前正在播放的已缓存音乐资源。 +
+
+ 参数 + + + songCode + 要删除的音乐资源的 ID。 + + + songCode + 要删除的音乐资源的标识符。 + + + songCode + 要删除的音乐资源的标识符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_renewtoken_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_renewtoken_imusiccontentcenter.dita new file mode 100644 index 00000000000..66f3d257537 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_renewtoken_imusiccontentcenter.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="renewToken_IMusicContentCenter"/> + 更新 Token。更新用于鉴权的 Token。更新 Token。 + + + + + + + + +
+

+ virtual int renewToken(const char* token) = 0; + - (NSInteger)renewToken:(NSString * _Nonnull)token; + public abstract int renewToken(String token); +

+
+
+

当用于鉴权的 Token 即将过期或已经过期时,你可以调用该方法传入新生成的 Token。

+

当用于鉴权的 Token 即将过期或已经过期时,可以调用该方法传入新生成的 Token。

+

当用于鉴权的 Token 即将过期或已经过期时,可以调用该方法传入新生成的 Token。

+
+
+ 参数 + + + token + 新的 Token。 + + + token + 新的 Token。 + + + token + 新生成的 Token。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic.dita new file mode 100644 index 00000000000..d5dfa64461a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic.dita @@ -0,0 +1,134 @@ + + + + <ph keyref="searchMusic"/> + 搜索音乐资源。搜索音乐资源。搜索音乐资源。 + + + + + + + + +
+

+ virtual int searchMusic(agora::util::AString& requestId, const char* keyWord, int32_t page, int32_t pageSize, const char* jsonOption = nullptr) = 0; + - (NSString *)searchMusicWithKeyWord:(NSString *)keyWord page:(NSInteger)page pageSize:(NSInteger)pageSize jsonOption:(NSString * _Nullable)jsonOption NS_SWIFT_NAME(searchMusic(keyWord:page:pageSize:jsonOption:)); + public String searchMusic(String keyword, int page, int pageSize) +

+
+
+

调用该方法后,SDK 会触发 回调,返回检索到的音乐资源列表。

+

调用该方法后,SDK 会触发 回调,返回检索到的音乐资源列表。

+
+ +
+ 参数 + + + requestId + 请求 ID,用于标识该请求的唯一标识符。 + + + keyWord + 搜索关键词,支持按歌曲名称或歌手名称搜索。 + + + page + 要获取的音乐资源列表的页码。 + + + pageSize + 每页返回的最大音乐资源数量,最大值为 50。 + + + jsonOption + 扩展 JSON 字段,默认为 。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选项: +
    +
  • pitchType:是否支持评分: +
      +
    • 1:可评分音乐。
    • +
    • 2:不可评分音乐。
    • +
    +
  • +
  • needHighPart:是否需要合唱片段: +
      +
    • :需要合唱片段。
    • +
    • :不需要合唱片段。
    • +
    +
  • +
示例:{"pitchType":1}{"needHighPart":true}
+
+ + keyWord + 搜索关键词。支持按歌曲标题或歌手名搜索。 + + + page + 要获取的音乐资源列表的目标页码。 + + + pageSize + 每页显示的最大音乐资源数量,最大值为 50。 + + + jsonOption + 可选的扩展 JSON 字段,默认为 。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选条件: +
    +
  • pitchType:音乐资源是否支持评分。 +
      +
    • 1:可评分的音乐资源。
    • +
    • 2:不可评分的音乐资源。
    • +
    +
  • +
示例:{"pitchType":1} +
    +
  • needHighPart:是否需要合唱片段资源。 +
      +
    • :需要合唱片段资源。
    • +
    • :不需要合唱片段资源。
    • +
    +
  • +
示例:{"needHighPart":true}
+
+ + keyword + 搜索关键词。支持按歌曲标题或艺术家名称搜索。 + + + page + 要获取的音乐资源列表的页码。 + + + pageSize + 每页返回的最大音乐资源数量,最大值为 50。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回请求 ID,用于标识此次请求的唯一标识符。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回唯一标识该请求的 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic2.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic2.dita new file mode 100644 index 00000000000..140c7859695 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_searchmusic2.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="searchMusic2"/> + 搜索音乐资源。 + + + + + + + + +
+

+ public abstract String searchMusic(String keyword, int page, int pageSize, String jsonOption); +

+
+
+ +
+ 参数 + + + keyword + 搜索关键词。支持按歌曲名称或歌手名称搜索。 + + + page + 要获取的音乐资源列表的目标页码。 + + + pageSize + 每页显示的最大音乐资源数量。最大值为 50。 + + + jsonOption + 可选的 JSON 扩展字段,默认为 null。你可以使用该字段筛选所需的音乐资源。目前支持以下筛选条件: +
    +
  • pitchType:是否支持评分。 +
      +
    • 1:支持评分的音乐资源。
    • +
    • 2:不支持评分的音乐资源。
    • +
    +
  • +
  • needHighPart:是否需要副歌片段。 +
      +
    • :需要副歌片段。
    • +
    • :不需要副歌片段。
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回唯一标识该请求的 requestId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusiccontentcenter_unregistereventhandler_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/api_imusiccontentcenter_unregistereventhandler_imusiccontentcenter.dita new file mode 100644 index 00000000000..d966900e9d7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusiccontentcenter_unregistereventhandler_imusiccontentcenter.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="unregisterEventHandler_IMusicContentCenter"/> + 取消注册 MusicContentCenter 的事件回调。取消注册版权音乐内容中心的事件回调。 + + + + + + + + +
+

+ virtual int unregisterEventHandler() = 0; + public abstract int unregisterEventHandler(); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_destroy_imusicplayer.dita b/dita/RTC-AIDOC/API/api_imusicplayer_destroy_imusicplayer.dita new file mode 100644 index 00000000000..928e55314e7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_destroy_imusicplayer.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="destroy_IMusicPlayer"/> + 销毁音乐播放器。 + + + + + + + + +
+

+ @Deprecated @Override int destroy(); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_getplaysrc.dita b/dita/RTC-AIDOC/API/api_imusicplayer_getplaysrc.dita new file mode 100644 index 00000000000..440feaa208e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_getplaysrc.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="getPlaySrc"/> + 获取当前播放的音乐资源的标识符或 URL。 + + + + + + + + +
+

+ @Override String getPlaySrc(); +

+
+
+

你需要在打开音乐资源后调用此方法: +

    +
  • 如果使用 open(Uri uri, long startPos) 打开音乐资源,该方法返回音乐资源的标识符(songCode)。
  • +
  • 如果使用 open(String url, long startPos) 打开音乐资源,该方法返回音乐资源的 URL。
  • +
+

+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回音乐资源的标识符或 URL。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_open2_imusicplayer.dita b/dita/RTC-AIDOC/API/api_imusicplayer_open2_imusicplayer.dita new file mode 100644 index 00000000000..a9219a33701 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_open2_imusicplayer.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="open2_IMusicPlayer"/> + 通过 URL 打开音乐资源。 + + + + + + + + +
+

+ int open(String url, long startPos) +

+
+
+

调用该方法会触发 回调。在收到播放状态为 OPEN_COMPLETED 的上报后,你可以调用 方法播放媒体文件。

+ 如果你要打开的音乐资源受数字版权保护,必须使用此方法打开。对于不受数字版权保护的音乐资源,你可以选择使用此方法,或使用 open 方法打开。 +
+ +
+ 参数 + + + url + 音乐资源的路径,支持本地文件和在线文件。 + + + startPos + 播放起始位置,单位为毫秒。(默认值为 0。) + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。详见 错误码 获取详细信息和排查建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_open_imusicplayer.dita b/dita/RTC-AIDOC/API/api_imusicplayer_open_imusicplayer.dita new file mode 100644 index 00000000000..12923768280 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_open_imusicplayer.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="open_IMusicPlayer"/> + 通过歌曲编码打开音乐资源。通过资源 ID 打开音乐资源。通过资源 ID 打开音乐资源。 + + + + + + + + +
+

+ virtual int open(int64_t songCode, int64_t startPos = 0) = 0; + - (NSInteger)openMediaWithSongCode:(NSInteger)songCode startPos:(NSInteger)startPos NS_SWIFT_NAME(openMedia(songCode:startPos:)); + int open(long songCode, long startPos); +

+
+
+

在调用该方法前,请确保要播放的音乐资源已加载。你可以调用 方法检查资源是否已预加载,或监听 回调。 +调用该方法后,SDK 会触发 回调。当你收到 PLAYER_STATE_OPEN_COMPLETED 播放状态后,可以调用 方法播放媒体文件。

+

调用该方法前,请确保要播放的音乐资源已加载完成。你可以通过调用 方法,或监听 onPreLoadEvent 回调来确认音乐资源是否已预加载。 + +调用该方法后,SDK 会触发 回调。当你收到播放状态 AgoraMediaPlayerStateOpenCompleted 后,可以调用 方法开始播放。

+

调用该方法后,将触发 回调。当你收到 OPEN_COMPLETED 状态后,可以调用 方法播放媒体文件。

+ 如果要打开的音乐资源受数字版权管理(DRM)保护,必须使用该方法打开。对于非 DRM 保护的资源,你可以选择使用该方法或 方法打开。 + 如果要打开的音乐资源受数字版权保护,必须使用该方法。对于未受数字版权保护的音乐资源,你可以选择使用该方法或 方法打开。 + 如果要打开的音乐资源受数字版权管理保护,必须使用该方法。对于未受数字版权管理保护的音乐资源,可以使用该方法或 open 方法(参数为 String url, long startPos)。 +
+ +
+ 参数 + + + songCode + 音乐资源的歌曲编码,用于标识音乐。 + + + startPos + 开始播放的位置,单位为毫秒。默认值为 0。 + + + songCode + 音乐资源的 ID,用于标识音乐内容。 + + + startPos + 播放起始位置,单位为毫秒。(默认值为 0。) + + + songCode + 音乐资源的资源 ID,用于标识音乐。 + + + startPos + 起始播放位置,单位为毫秒。(默认值为 0) + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见错误码及对应的解决方案。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_setplaymode.dita b/dita/RTC-AIDOC/API/api_imusicplayer_setplaymode.dita new file mode 100644 index 00000000000..51c13c0dc38 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_setplaymode.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="setPlayMode"/> + 设置音乐资源的播放模式。设置音乐资源的播放模式。设置音乐曲目的播放模式。 + + + + + + + + +
+

+ virtual int setPlayMode(MusicPlayMode mode) = 0; + - (NSInteger)setPlayMode:(AgoraMusicPlayMode)mode NS_SWIFT_NAME(setPlayMode(mode:)); + int setPlayMode(MusicPlayMode mode); +

+
+
+

你可以调用该方法启用原唱、伴奏或导唱模式。如果不调用该方法,默认播放伴奏;若音乐资源不包含伴奏,则播放原唱。

+

你可以调用此方法启用原唱、人声伴奏或导唱。如果不调用此方法,默认播放人声伴奏。如果音乐资源不包含人声伴奏,则播放原唱。

+

如果你未调用该方法设置播放模式,默认播放人声伴奏;如果音乐资源不包含人声伴奏,则播放原唱。

+ 你可以通过 回调获取音乐资源的详细信息,并从 result 参数中判断该音乐资源支持的播放模式。 + 你可以通过 onMusicCollectionResult 回调获取音乐资源的详细信息。从 result 参数中可以了解该版权音乐支持哪些播放模式。 + 你可以通过 回调获取音乐资源的详细信息,并使用该回调中的 list 参数查看该版权音乐支持的播放模式。 +
+
+ 适用场景 +

在在线 K 歌或才艺展示等娱乐场景中,如果你需要播放由声网内容中心提供的版权音乐,可以调用该方法设置播放模式。

+
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

你必须在调用 方法之后调用此方法。

+

你必须在调用 方法之后调用该方法。

+
+
+ 参数 + + + mode + 播放模式。详见 + + + mode + 播放模式,详见 + + + mode + 播放模式,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请重新设置参数。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请重新设置参数。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,请重新设置参数。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_imusicplayer_stop_imusicplayer.dita b/dita/RTC-AIDOC/API/api_imusicplayer_stop_imusicplayer.dita new file mode 100644 index 00000000000..f75e09e90c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_imusicplayer_stop_imusicplayer.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="stop_IMusicPlayer"/> + 停止播放音乐资源。 + + + + + + + + +
+

+ @Override int stop(); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_addextension.dita b/dita/RTC-AIDOC/API/api_irtcengine_addextension.dita new file mode 100644 index 00000000000..1eb85528812 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_addextension.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="addExtension"/> + 添加扩展。 + + + + + + + + +
+

+ public void addExtension(String providerName) +

+
+
+
+ 参数 + + + providerName + 要添加的扩展名称。 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_addhandler.dita b/dita/RTC-AIDOC/API/api_irtcengine_addhandler.dita new file mode 100644 index 00000000000..e242b913c16 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_addhandler.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="addHandler"/> + 添加事件处理器。 + + + + + + + + +
+

+ public void addHandler(IRtcEngineEventHandler handler) +

+
+
+

SDK 使用 将回调发送到 App。你可以继承该类中的方法以接收回调。该类中的所有方法都有默认(空)实现,因此你只需根据实际场景继承所需的回调方法。 +在回调中应避免执行耗时操作或调用可能阻塞线程的 API,例如 ,否则可能导致 SDK 无法正常工作。

+
+
+ 参数 + + + handler + 要添加的回调事件处理器,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark1.dita b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark1.dita new file mode 100644 index 00000000000..2170d456be6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark1.dita @@ -0,0 +1,123 @@ + + + + <ph keyref="addVideoWatermark1"/> + 向本地视频流添加 PNG 格式的水印图像。向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。 + + + + + + + + +
+

+ virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0; + public abstract int addVideoWatermark(AgoraImage watermark) + - (int)addVideoWatermark:(AgoraImage * _Nonnull)watermark NS_SWIFT_NAME(addVideoWatermark(_:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead."); + - (int)addVideoWatermark:(AgoraImage * _Nonnull)watermark NS_SWIFT_NAME(addVideoWatermark(_:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead."); +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
自 v2.9.1 版本废弃,请改用
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用
+
+
+

添加水印图像后,频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该图像。如果你只想在 CDN 推流中添加水印,请参见

+

该方法在直播场景中向本地视频流添加 PNG 格式的水印图像。频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该水印图像。如果你只想向 CDN 推流添加水印,请使用 方法。

+

该方法在直播场景中向本地视频流添加 PNG 格式的水印图像。添加水印图像后,频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该图像。如果你只想向 CDN 推流添加水印,请参见 startRtmpStreamWithTranscoding: 方法。

+

该方法在直播场景中向本地视频流添加 PNG 格式的水印图像。添加水印图像后,频道内的所有用户(包括 CDN 观众)以及视频采集设备都可以看到并采集该图像。如果你只想向 CDN 推流添加水印,请参见 startRtmpStreamWithTranscoding: 方法。

+ +
    +
  • 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
  • +
  • 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会裁剪该文件以符合设置。
  • +
  • 声网 SDK 仅支持在本地视频或 CDN 推流中添加一张水印图像。新添加的水印图像会替换之前的图像。
  • +
+
+ +
    +
  • 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
  • +
  • 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会对 PNG 文件进行裁剪以符合设置。
  • +
  • SDK 仅支持在本地视频或 CDN 推流中添加一张水印图像。新添加的水印图像会替换之前的图像。
  • +
+
+ +
    +
  • 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
  • +
  • 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会裁剪该文件以符合设置。
  • +
  • SDK 仅支持在本地视频或 CDN 推流中添加一个水印图像。新添加的水印图像会替换之前的图像。
  • +
+
+ +
    +
  • 本地视频和 CDN 推流中 URL 的含义不同:在本地视频流中,URL 指的是添加的水印图像文件在本地视频流中的绝对路径;在 CDN 推流中,URL 指的是添加的水印图像在 CDN 推流中的 URL 地址。
  • +
  • 水印图像的源文件必须为 PNG 格式。如果 PNG 文件的宽高与该方法中的设置不一致,SDK 会裁剪该文件以符合设置。
  • +
  • SDK 仅支持在本地视频或 CDN 推流中添加一个水印图像。新添加的水印图像会替换之前的图像。
  • +
+
+
+
+ 参数 + + + watermark + 水印图像。详见 + + + watermark + 要添加到本地直播中的水印图像。详见 + + + watermark + 要添加到本地直播中的水印图像。详见 + + + watermark + 要添加到本地直播中的水印图像。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark2.dita b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark2.dita new file mode 100644 index 00000000000..285a7411539 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark2.dita @@ -0,0 +1,191 @@ + + + + <ph keyref="addVideoWatermark2"/> + 向本地视频添加 PNG 格式的水印图像。向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。 + + + + + + + + +
+

+ virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0; + public abstract int addVideoWatermark(String watermarkUrl, WatermarkOptions options) + - (int)addVideoWatermark:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options NS_SWIFT_NAME(addVideoWatermark(_:options:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead."); + - (int)addVideoWatermark:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options NS_SWIFT_NAME(addVideoWatermark(_:options:)) __deprecated_msg("use addVideoWatermarkWithConfig:config instead."); +

+
+
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用
+
+ +
废弃
+
自 v4.6.0 版本废弃,请改用 方法。
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 addVideoWatermarkWithConfig:config
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 addVideoWatermarkWithConfig:config
+
+
+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 每次仅支持添加一张水印图像,新添加的图像会替换之前的图像。 +水印图像的坐标依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏模式或自适应横屏模式,水印图像将采用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏模式或自适应竖屏模式,水印图像将采用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 中设置的视频尺寸,否则水印图像将被裁剪。
  • +
你可以通过设置 visibleInPreview 参数控制预览时水印是否可见。但其最终是否生效还取决于调用 时设置的视频帧位置(position): +
    +
  • 观察位置 VIDEO_MODULE_POSITION_POST_CAPTURER(默认):visiblePreview,则水印可见;visiblePreview,则水印不可见。
  • +
  • 观察位置 VIDEO_MODULE_POSITION_PRE_ENCODERvisiblePreview,则水印可见;visiblePreview,则水印仍可见。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集到该水印图像。声网 SDK 每个直播视频流仅支持添加一张水印图像,新添加的水印会替换之前的图像。 +水印图像的位置依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏模式或自适应横屏模式,则水印使用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏模式或自适应竖屏模式,则水印使用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 方法中设置的尺寸,否则水印图像会被裁剪。
  • +
你可以通过设置 visibleInPreview 参数控制预览时水印的可见性。但其最终是否生效还取决于调用 时设置的 position 参数(视频帧在视频链路中的位置): +
    +
  • 观察位置 VIDEO_MODULE_POSITION_POST_CAPTURER(默认):visiblePreview,则水印可见;visiblePreview,则水印不可见。
  • +
  • 观察位置 VIDEO_MODULE_POSITION_PRE_ENCODERvisiblePreview,则水印可见;visiblePreview,则水印仍可见。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 +水印图像的坐标依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏或自适应横屏模式,水印图像将使用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将使用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 方法中设置的尺寸,否则水印图像将被裁剪。
  • +
你可以通过调用该方法时设置 visibleInPreview 参数来控制水印在预览中的可见性。但其最终是否生效还取决于调用 时设置的 position 参数。: +
    +
  • 观察位置 AgoraVideoModulePositionPostCapture(默认):visiblePreview,则水印可见;visiblePreview,则水印不可见。
  • +
  • 观察位置 AgoraVideoModulePositionPreEncodervisiblePreview,则水印可见;visiblePreview,则水印仍可见。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 +水印图像的坐标依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏或自适应横屏模式,水印图像将使用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将使用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 方法中设置的尺寸,否则水印图像将被裁剪。
  • +
你可以通过调用该方法时设置 visibleInPreview 参数来控制水印在预览中的可见性。但其最终是否生效还取决于调用 时设置的 position 参数。: +
    +
  • 观察位置 AgoraVideoModulePositionPostCapture(默认):visiblePreview,则水印可见;visiblePreview,则水印不可见。
  • +
  • 观察位置 AgoraVideoModulePositionPreEncodervisiblePreview,则水印可见;visiblePreview,则水印仍可见。
  • +
+

+ +
    +
  • 请确保在调用该方法前已调用
  • +
  • 如果你只想为媒体推流添加水印,可以调用该方法或 方法。
  • +
  • 该方法仅支持添加 PNG 格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你为本地视频启用了镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保在调用该方法前已调用
  • +
  • 如果你只想为媒体推流添加水印,可以调用该方法或 方法。
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你为本地视频启用了镜像模式,则本地视频中的水印也会被镜像。为避免水印被镜像,声网建议不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保在调用该方法前已调用
  • +
  • 如果你只想为媒体推流添加水印,可以调用该方法或 方法。
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你为本地视频启用了镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保在调用该方法前已调用
  • +
  • 如果你只想为媒体推流添加水印,可以调用该方法或 方法。
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你为本地视频启用了镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+
+
+ 参数 + + + watermarkUrl + 要添加的水印图像的本地文件路径,支持使用本地绝对路径或相对路径。 + + + options + 水印图像的选项。详见 + + + watermarkUrl + 要添加的水印图像的本地文件路径。支持使用本地绝对路径或相对路径。 + + + options + 水印图像的相关设置。详见 + + + url + 要添加的水印图像的本地文件路径。该方法支持使用本地的绝对路径或相对路径添加水印图像。 + + + options + 水印图像的相关选项。详见 + + + url + 要添加的水印图像的本地文件路径。该方法支持使用本地的绝对路径或相对路径添加水印图像。 + + + options + 水印图像的相关选项。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark3.dita b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark3.dita new file mode 100644 index 00000000000..970139fd341 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_addvideowatermark3.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="addVideoWatermark3"/> + 向本地视频流添加水印图像。向本地视频流添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。 + + + + + + + + +
+

+ virtual int addVideoWatermark(const WatermarkConfig& configs) = 0; + public abstract int addVideoWatermark(WatermarkConfig config); + - (int)addVideoWatermarkWithConfig:(WatermarkConfig* _Nonnull)config NS_SWIFT_NAME(addVideoWatermark(_:)); + - (int)addVideoWatermarkWithConfig:(WatermarkConfig* _Nonnull)config NS_SWIFT_NAME(addVideoWatermark(_:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

你可以使用该方法在本地视频流中叠加水印图像,并通过 设置水印在预览画面中的位置、大小和可见性。

+

你可以使用该方法通过 配置,在本地视频流中叠加水印图像,包括设置水印在预览中的位置、大小和可见性。

+

你可以使用此方法在本地视频流上叠加水印图像,并通过 配置水印的位置、大小以及在预览中的可见性。

+

你可以使用此方法在本地视频流上叠加水印图像,并通过 配置水印的位置、大小以及在预览中的可见性。

+
+
+ 参数 + + + configs + 水印配置。详见 + + + config + 水印配置。详见 + + + config + 水印图像的配置。详见 + + + config + 水印图像的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingplayoutvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingplayoutvolume.dita new file mode 100644 index 00000000000..62346eb0619 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingplayoutvolume.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="adjustAudioMixingPlayoutVolume"/> + 调节本地播放的混音音量。调节本地播放的混音音量。调整本地播放的混音音量。调整本地播放的混音音量。 + + + + + + + + +
+

+ virtual int adjustAudioMixingPlayoutVolume(int volume) = 0; + public abstract int adjustAudioMixingPlayoutVolume(int volume); + - (int)adjustAudioMixingPlayoutVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingPlayoutVolume(_:)); + - (int)adjustAudioMixingPlayoutVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingPlayoutVolume(_:)); +

+
+
+

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。

+

你需要在调用 startAudioMixing 方法,并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+

你需要在调用 startAudioMixing 方法,并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+
+
+ 调用时机 +

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。

+

你需要在调用 startAudioMixing 方法,并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+

你需要在调用 startAudioMixing 方法,并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+
+
+ 参数 + + + volume + 本地播放的混音音量,取值范围为 0 到 100。(默认)为 100,表示原始音量。 + + + volume + 本地播放的混音音量,取值范围为 0 到 100。(默认值为 100) +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + volume + 本地播放的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + + + volume + 本地播放的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingpublishvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingpublishvolume.dita new file mode 100644 index 00000000000..e02f4c17579 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingpublishvolume.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="adjustAudioMixingPublishVolume"/> + 调节用于发布的混音音量。调节用于发布的混音音量。调节用于发布的混音音量。调节用于发布的混音音量。 + + + + + + + + +
+

+ virtual int adjustAudioMixingPublishVolume(int volume) = 0; + public abstract int adjustAudioMixingPublishVolume(int volume); + - (int)adjustAudioMixingPublishVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingPublishVolume(_:)); + - (int)adjustAudioMixingPublishVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingPublishVolume(_:)); +

+
+
+

该方法用于调节发送给其他用户的混音音量。

+

你可以调用该方法调节用于发布(发送给其他用户)的混音音量。

+

你可以调用该方法调节用于发布(发送给其他用户)的混音音量。

+
+
+ 调用时机 +

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

在调用 方法并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用。

+

在调用 方法并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用。

+
+
+ 参数 + + + volume + 用于发布的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + + + volume + 用于发布的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + + + volume + 用于本地播放的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + + + volume + 用于本地播放的混音音量。取值范围为 0 到 100,默认值为 100,表示原始音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingvolume.dita new file mode 100644 index 00000000000..839fff72b18 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustaudiomixingvolume.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="adjustAudioMixingVolume"/> + 调节本地和远端的混音音量。调节混音时的音量。调节混音时的音量。调节混音时的音量。 + + + + + + + + +
+

+ virtual int adjustAudioMixingVolume(int volume) = 0; + public abstract int adjustAudioMixingVolume(int volume); + - (int)adjustAudioMixingVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingVolume(_:)); + - (int)adjustAudioMixingVolume:(NSInteger)volume NS_SWIFT_NAME(adjustAudioMixingVolume(_:)); +

+
+
+

该方法用于在本地客户端和远端客户端上调节混音音量。

+

你可以通过该方法在本地客户端和远端客户端调节混音音量。

+

你可以通过该方法在本地客户端和远端客户端调节混音音量。

+ 方法不会影响通过 方法设置的音频文件的音量。 + 不会影响通过 playEffect 方法设置的音效文件的音量。 + 该方法不会影响通过 方法设置的音效文件的音量。 + 该方法不会影响通过 方法设置的音效文件的音量。 +
+
+ 调用时机 +

请在调用 startAudioMixing 方法之后调用该方法。

+

请在调用 startAudioMixing 方法之后调用该方法。

+

请在调用 方法之后调用该方法。

+

请在调用 方法之后调用该方法。

+
+
+ 参数 + + + volume + 混音音量。取值范围为 0 到 100。(默认)100 表示原始音量。 + + + volume + 混音音量,取值范围为 0 到 100。(默认值为 100,表示原始音量。) + + + volume + 混音音量。取值范围为 0 到 100。默认值为 100,表示原始音量。 + + + volume + 混音音量。取值范围为 0 到 100。默认值为 100,表示原始音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita new file mode 100644 index 00000000000..1be14783d0a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="adjustCustomAudioPlayoutVolume"/> + 调节本地播放的自定义音频轨道的音量。调节本地播放的自定义音频轨道的音量。调节本地播放的自定义音频轨道的音量。调节本地播放的自定义音频轨道的音量。 + + + + + + + + +
+

+ virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume) = 0; + public abstract int adjustCustomAudioPlayoutVolume(int trackId, int volume); + - (int)adjustCustomAudioPlayoutVolume:(NSInteger)trackId volume:(NSInteger)volume NS_SWIFT_NAME(adjustCustomAudioPlayoutVolume(_:volume:)); + - (int)adjustCustomAudioPlayoutVolume:(NSInteger)trackId volume:(NSInteger)volume NS_SWIFT_NAME(adjustCustomAudioPlayoutVolume(_:volume:)); +

+
+
+

如果你想更改本地播放的音频音量,需要再次调用该方法。

+

如果你希望更改本地播放的音频音量,需要再次调用该方法。

+

如果你想更改本地播放的音频音量,需要再次调用该方法。

+

如果你想更改本地播放的音频音量,需要再次调用该方法。

+ 请确保在调用该方法前,已通过调用 创建自定义音频轨道。 + 请确保在调用该方法前,已调用 创建自定义音频轨道。 + 请确保在调用该方法前已调用 创建自定义音频轨道。 + 请确保在调用该方法前已调用 创建自定义音频轨道。 +
+
+ 参数 + + + trackId + 音频轨道 ID,设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量,取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量,取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。请设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量。取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。请设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量。取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudiopublishvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudiopublishvolume.dita new file mode 100644 index 00000000000..7ab05ba7d71 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustcustomaudiopublishvolume.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="adjustCustomAudioPublishVolume"/> + 调节远端播放的自定义音频轨道的音量。调节远端播放的自定义音频轨道的音量。调节远端播放的自定义音频轨道的音量。调节远端播放的自定义音频轨道的音量。 + + + + + + + + +
+

+ virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume) = 0; + public abstract int adjustCustomAudioPublishVolume(int trackId, int volume); + - (int)adjustCustomAudioPublishVolume:(NSInteger)trackId volume:(NSInteger)volume NS_SWIFT_NAME(adjustCustomAudioPublishVolume(_:volume:)); + - (int)adjustCustomAudioPublishVolume:(NSInteger)trackId volume:(NSInteger)volume NS_SWIFT_NAME(adjustCustomAudioPublishVolume(_:volume:)); +

+
+
+

如果你想更改远端播放的音频音量,需要再次调用该方法。

+

如果你想更改远端播放的音频音量,需要再次调用该方法。

+

如果你想更改远端播放的音频音量,需要再次调用此方法。

+

如果你想更改远端播放的音频音量,需要再次调用此方法。

+ 请确保在调用该方法前,已通过调用 创建自定义音频轨道。 + 请确保在调用该方法前已调用 创建自定义音频轨道。 + 请确保在调用此方法前已调用 方法创建自定义音频轨道。 + 请确保在调用此方法前已调用 方法创建自定义音频轨道。 +
+
+ 参数 + + + trackId + 音频轨道 ID,设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量,取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。设置为 返回的自定义音频轨道 ID。 + + + volume + 音频源的音量,取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。请设置为 方法返回的自定义音频轨道 ID。 + + + volume + 音频源的音量。取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+ + trackId + 音频轨道 ID。请设置为 方法返回的自定义音频轨道 ID。 + + + volume + 音频源的音量。取值范围为 0 到 100。 +
    +
  • 0:静音。
  • +
  • 100:原始音量。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustloopbacksignalvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustloopbacksignalvolume.dita new file mode 100644 index 00000000000..52e85b61afd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustloopbacksignalvolume.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="adjustLoopbackSignalVolume"/> + 调整声卡采集信号的音量。调节声卡采集信号的音量。 + + + + + + + + +
+

+ virtual int adjustLoopbackSignalVolume(int volume) = 0; + - (int)adjustLoopbackSignalVolume:(NSInteger)volume NS_SWIFT_NAME(adjustLoopbackSignalVolume(_:)); +

+
+
+

在调用 启用环路音频采集后,可以调用该方法调整声卡采集信号的音量。

+

调用 后,可以调用该方法调节声卡采集信号的音量。

+
+
+ 参数 + + + volume + 混音音量。取值范围为 0 到 100。(默认值为 100,表示原始音量。) + + + volume + 混音音量。取值范围为 0 到 100。(默认值为 100,表示原始音量。) + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustplaybacksignalvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustplaybacksignalvolume.dita new file mode 100644 index 00000000000..ac9fbdbd003 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustplaybacksignalvolume.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="adjustPlaybackSignalVolume"/> + 调节所有远端用户的本地播放音量。调节所有远端用户的本地播放音量。调节所有远端用户的播放信号音量。调节所有远端用户的播放信号音量。 + + + + + + + + +
+

+ virtual int adjustPlaybackSignalVolume(int volume) = 0; + public abstract int adjustPlaybackSignalVolume(int volume); + - (int)adjustPlaybackSignalVolume:(NSInteger)volume NS_SWIFT_NAME(adjustPlaybackSignalVolume(_:)); + - (int)adjustPlaybackSignalVolume:(NSInteger)volume NS_SWIFT_NAME(adjustPlaybackSignalVolume(_:)); +

+
+
+

如果你需要调节某个指定远端用户的本地播放音量,建议调用 方法。

+

如果你需要调节某个指定远端用户在本地播放的音量,建议调用

+

该方法用于调节本地混音播放的所有远端用户的信号音量。如果你需要调节本地播放的指定远端用户的信号音量,建议调用 adjustUserPlaybackSignalVolume: 方法。

+

该方法用于调节本地混音播放的所有远端用户的信号音量。如果你需要调节本地播放的指定远端用户的信号音量,建议调用 adjustUserPlaybackSignalVolume: 方法。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+
+ 参数 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustrecordingsignalvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustrecordingsignalvolume.dita new file mode 100644 index 00000000000..93343045878 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustrecordingsignalvolume.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="adjustRecordingSignalVolume"/> + 调节采集音频信号的音量。调节采集音频信号的音量。调节采集音量。调节采集音量。 + + + + + + + + +
+

+ virtual int adjustRecordingSignalVolume(int volume) = 0; + public abstract int adjustRecordingSignalVolume(int volume); + - (int)adjustRecordingSignalVolume:(NSInteger)volume NS_SWIFT_NAME(adjustRecordingSignalVolume(_:)); + - (int)adjustRecordingSignalVolume:(NSInteger)volume NS_SWIFT_NAME(adjustRecordingSignalVolume(_:)); +

+
+
+

如果你只需要静音音频信号,声网建议使用 方法。

+

如果你只需要静音音频信号,声网建议使用 方法。

+

如果你只需要静音音频信号,声网建议使用 方法。

+

如果你只需要静音音频信号,声网建议使用 方法。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+
+ 参数 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量,取值范围为 [0,400]: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_adjustuserplaybacksignalvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_adjustuserplaybacksignalvolume.dita new file mode 100644 index 00000000000..5d390123e98 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_adjustuserplaybacksignalvolume.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="adjustUserPlaybackSignalVolume"/> + 调整指定远端用户的播放信号音量。调节指定远端用户的播放音量。调整指定远端用户的播放音量。调整指定远端用户的播放音量。 + + + + + + + + +
+

+ virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume) = 0; + public abstract int adjustUserPlaybackSignalVolume(int uid, int volume); + - (int)adjustUserPlaybackSignalVolume:(NSUInteger)uid volume:(int)volume NS_SWIFT_NAME(adjustUserPlaybackSignalVolume(_:volume:)); + - (int)adjustUserPlaybackSignalVolume:(NSUInteger)uid volume:(int)volume NS_SWIFT_NAME(adjustUserPlaybackSignalVolume(_:volume:)); +

+
+
+

你可以调用该方法调整指定远端用户的播放音量。若需调整多个远端用户的播放音量,请分别多次调用该方法,每次针对一个远端用户。

+

你可以调用该方法调节指定远端用户的播放音量。若需调节多个远端用户的播放音量,请分别多次调用该方法,每次针对一个远端用户。

+

你可以调用该方法调整指定远端用户的播放音量。若需调整多个远端用户的播放音量,请分别多次调用该方法,每次针对一个远端用户。

+

你可以调用该方法调整指定远端用户的播放音量。若需调整多个远端用户的播放音量,请分别多次调用该方法,每次针对一个远端用户。

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用此方法。

+

请在加入频道后调用此方法。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0, 400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0, 400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_clearvideowatermarks.dita b/dita/RTC-AIDOC/API/api_irtcengine_clearvideowatermarks.dita new file mode 100644 index 00000000000..b15c7dd9622 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_clearvideowatermarks.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="clearVideoWatermarks"/> + 移除视频流中的水印图像。从视频流中移除水印图像。从视频流中移除水印图像。从视频流中移除水印图像。 + + + + + + + + +
+

+ virtual int clearVideoWatermarks() = 0; + public abstract int clearVideoWatermarks(); + - (int)clearVideoWatermarks NS_SWIFT_NAME(clearVideoWatermarks()); + - (int)clearVideoWatermarks NS_SWIFT_NAME(clearVideoWatermarks()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_complain.dita b/dita/RTC-AIDOC/API/api_irtcengine_complain.dita new file mode 100644 index 00000000000..6978fdde9cb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_complain.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="complain"/> + 允许用户在通话结束后投诉通话质量。允许你在通话结束后投诉通话质量。允许你在通话结束后投诉通话质量。允许你在通话结束后投诉通话质量。 + + + + + + + + +
+

+ virtual int complain(const char* callId, const char* description) = 0; + public abstract int complain(String callId, String description); + - (int)complain:(NSString * _Nonnull)callId + description:(NSString * _Nullable)description NS_SWIFT_NAME(complain(_:description:)); + - (int)complain:(NSString * _Nonnull)callId + description:(NSString * _Nullable)description NS_SWIFT_NAME(complain(_:description:)); +

+
+
+

请在用户离开频道后调用该方法。

+

请在用户离开频道后调用该方法。

+

请在你离开频道后调用该方法。

+

请在你离开频道后调用该方法。

+
+
+ 参数 + + + callId + 当前通话的通话 ID。你可以通过调用 获取。 + + + description + (可选)对通话的描述。字符串长度应小于 800 字节。 + + + callId + 当前通话的 Call ID。你可以通过调用 获取。 + + + description + (可选)对通话的描述。字符串长度应小于 800 字节。 + + + callId + 当前通话的 ID。你可以通过调用 获取该 ID。 + + + description + (可选)对通话的描述。字符串长度应小于 800 字节。 + + + callId + 当前通话的 ID。你可以通过调用 获取该 ID。 + + + description + (可选)对通话的描述。字符串长度应小于 800 字节。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:在 初始化之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:在 初始化之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:在初始化 之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:在初始化 之前调用该方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_configrhythmplayer.dita b/dita/RTC-AIDOC/API/api_irtcengine_configrhythmplayer.dita new file mode 100644 index 00000000000..31e8eac4b18 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_configrhythmplayer.dita @@ -0,0 +1,94 @@ + + + + <ph keyref="configRhythmPlayer"/> + 配置虚拟节拍器。配置虚拟节拍器。配置虚拟节拍器。配置虚拟节拍器。 + + + + + + + + +
+

+ virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig& config) = 0; + public abstract int configRhythmPlayer(AgoraRhythmPlayerConfig config); + - (int)configRhythmPlayer:(AgoraRhythmPlayerConfig * _Nullable)config NS_SWIFT_NAME(configRhythmPlayer(_:)); + - (int)configRhythmPlayer:(AgoraRhythmPlayerConfig * _Nullable)config NS_SWIFT_NAME(configRhythmPlayer(_:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

调用 后,你可以调用该方法重新配置虚拟节拍器。启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据你在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频。默认情况下,虚拟节拍器的声音会在频道中发布。如果希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

调用 后,可以使用该方法重新配置虚拟节拍器。启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频。默认情况下,虚拟节拍器的声音会在频道中发布。如果希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

调用 startRhythmPlayer 方法后,你可以调用该方法重新配置虚拟节拍器。启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据你在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频。默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

调用 startRhythmPlayer 方法后,你可以调用该方法重新配置虚拟节拍器。启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据你在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频。默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+
+
+ 调用时机 +

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+ +
+ 参数 + + + config + 节拍器配置。详见 + + + config + 节拍器的配置。详见 + + + config + 节拍器配置。详见 + + + config + 节拍器配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_create.dita b/dita/RTC-AIDOC/API/api_irtcengine_create.dita new file mode 100644 index 00000000000..f3695d08c8e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_create.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="create"/> + 创建并初始化 实例。创建并初始化 实例。创建并初始化 实例。 + + + + + + + + +
+

+ + (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(withAppId:delegate:)); + public static synchronized RtcEngine create(Context context, String appId, IRtcEngineEventHandler handler) throws Exception + + (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(withAppId:delegate:)); +

+
+
+

你可以使用该方法创建并初始化 实例。该类中所有方法均为异步执行,建议你在同一线程中调用这些方法。

+

类中的所有方法均为异步执行,声网建议在同一线程中调用这些方法。

+

你可以使用该方法创建并初始化 实例。该类中所有方法均为异步执行,建议你在同一线程中调用这些方法。

+ +
    +
  • 在调用其他 API 之前,必须先调用该方法创建 对象。
  • +
  • 你可以通过该方法或 方法创建 实例。与该方法相比, 支持更多配置,例如指定连接区域和设置日志文件。
  • +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+ +
    +
  • 在调用其他 API 之前,必须先调用此方法以创建 实例。
  • +
  • 你可以通过调用此方法或调用 来创建 实例。与此方法相比, 支持更多配置,例如指定连接区域和设置日志文件。
  • +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+ +
    +
  • 在调用其他 API 之前,必须先调用该方法创建 对象。
  • +
  • 你可以通过该方法或 方法创建 实例。与该方法相比, 支持更多配置,例如指定连接区域和设置日志文件。
  • +
  • 每个 App 仅支持创建一个 实例。
  • +
+
+
+
+ 参数 + + + appId + 声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并进行通信。一个 App ID 只能用于创建一个 实例。若需更换 App ID,你需要先调用 方法销毁当前实例,然后再创建新的实例。 + + + delegate + 的事件回调处理器。详见 + + + context + Android Activity 的上下文。 + + + appId + 声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并进行通信。一个 App ID 只能用于创建一个 实例。若需更换 App ID,请调用 销毁当前 实例,然后再创建新的实例。 + + + handler + 的事件处理器。详见 + + + appId + 声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并进行通信。一个 App ID 只能用于创建一个 实例。若需更换 App ID,你需要先调用 方法销毁当前实例,然后再创建新的实例。 + + + delegate + 的事件回调处理器。详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回一个其内部引擎字段为 对象。你可以通过 回调获取错误码。
  • +
+

+

方法调用成功,返回已初始化的 实例。 +方法调用失败,SDK 会抛出异常,并返回相应的错误信息。你需要捕获异常并进行处理。

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回一个其内部引擎字段为 对象。你可以通过 回调获取错误码。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createagorartcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_createagorartcengine.dita new file mode 100644 index 00000000000..f2a4b1f32df --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createagorartcengine.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="createAgoraRtcEngine"/> + 创建一个 对象。 + + + + + + + + +
+

+ AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine(); +

+
+
+

声网 RTC SDK v4.x 每个 App 仅支持创建一个 对象。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createcustomaudiotrack.dita b/dita/RTC-AIDOC/API/api_irtcengine_createcustomaudiotrack.dita new file mode 100644 index 00000000000..60050346e00 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createcustomaudiotrack.dita @@ -0,0 +1,110 @@ + + + + <ph keyref="createCustomAudioTrack"/> + 创建一个自定义音频轨道。创建一个自定义音频轨道。创建一个自定义音频轨道。 + + + + + + + + +
+

+ - (int)createCustomAudioTrack:(AgoraAudioTrackType)trackType + config:(AgoraAudioTrackConfig* _Nonnull)config; + public abstract int createCustomAudioTrack(Constants.AudioTrackType trackType, AudioTrackConfig config) + - (int)createCustomAudioTrack:(AgoraAudioTrackType)trackType + config:(AgoraAudioTrackConfig* _Nonnull)config; +

+
+
+

要发布自定义音频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个自定义音频轨道并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为你想要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
  5. 调用 pushExternalAudioFrameRawData,并将 trackId 设置为第 2 步中设置的音频轨道 ID,即可在频道中发布相应的自定义音频源。
  6. +
+

+

你可以通过以下步骤发布自定义音频源: +

    +
  1. 调用该方法创建一个自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 publishCustomAudioTrackId 设置为步骤 1 中获取的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
  5. 调用 ,并将 trackId 设置为步骤 2 中的音频轨道 ID,即可在频道中发布对应的自定义音频源。
  6. +
+

+

要发布自定义音频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个自定义音频轨道并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为你想要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
  5. 调用 pushExternalAudioFrameRawData,并将 trackId 设置为第 2 步中设置的音频轨道 ID,即可在频道中发布相应的自定义音频源。
  6. +
+

+ 请在加入频道前调用此方法。 + 该方法需要在加入频道前调用。 + 请在加入频道前调用此方法。 +
+
+ 参数 + + + trackType + 自定义音频轨道的类型,详见 。 +
    +
  • 如果该参数设置为 AgoraAudioTrackTypeDirect,你必须在调用 joinChannelByToken 加入频道时,将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。
  • +
+
+
+ + config + 自定义音频轨道的配置,详见 + + + trackType + 自定义音频轨道的类型,详见 。 + 如果该参数设置为 AUDIO_TRACK_DIRECT,则在调用 joinChannel 加入频道时,必须将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + + config + 自定义音频轨道的配置,详见 + + + trackType + 自定义音频轨道的类型,详见 。 +
    +
  • 如果该参数设置为 AgoraAudioTrackTypeDirect,你必须在调用 joinChannelByToken 加入频道时,将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。
  • +
+
+
+ + config + 自定义音频轨道的配置,详见 + +
+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回音频轨道 ID,作为该音频轨道的唯一标识符。
  • +
  • 方法调用失败,返回 0xffffffff。
  • +
+

+

+

    +
  • 方法调用成功,返回音频轨道 ID,作为该音频轨道的唯一标识。
  • +
  • 方法调用失败,返回 0xffffffff
  • +
+

+

+

    +
  • 方法调用成功,返回音频轨道 ID,作为该音频轨道的唯一标识符。
  • +
  • 方法调用失败,返回 0xffffffff。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createcustomvideotrack.dita b/dita/RTC-AIDOC/API/api_irtcengine_createcustomvideotrack.dita new file mode 100644 index 00000000000..b8e18e97af4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createcustomvideotrack.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="createCustomVideoTrack"/> + 创建一个自定义视频轨道。创建一个自定义视频轨道。创建一个自定义视频轨道。创建一个自定义视频轨道。 + + + + + + + + +
+

+ virtual video_track_id_t createCustomVideoTrack() = 0; + public abstract int createCustomVideoTrack(); + - (unsigned int)createCustomVideoTrack NS_SWIFT_NAME(createCustomVideoTrack()); + - (unsigned int)createCustomVideoTrack NS_SWIFT_NAME(createCustomVideoTrack()); +

+
+
+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个视频轨道,并获取视频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 customVideoTrackId 设置为你要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 ,并将 videoTrackId 设置为第 2 步中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
+

+

调用该方法创建一个视频轨道,并获取视频轨道 ID。该 ID 可用于发布自定义视频源。要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个视频轨道,并获取视频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 pushExternalVideoFrameById,并将 videoTrackId 设置为第 2 步中指定的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
+

+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个视频轨道,并获取视频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 customVideoTrackId 设置为你想要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 pushExternalVideoFrame,并将 videoTrackId 设置为第 2 步中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
+

+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用该方法创建一个视频轨道,并获取视频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 customVideoTrackId 设置为你想要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 pushExternalVideoFrame,并将 videoTrackId 设置为第 2 步中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
+

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回视频轨道 ID,作为该视频轨道的唯一标识符。
  • +
  • 方法调用失败,返回 0xffffffff
  • +
+

+

+

    +
  • 方法调用成功,返回视频轨道的唯一标识符,即视频轨道 ID。
  • +
  • 方法调用失败,返回 0xffffffff。
  • +
+

+

+

    +
  • 方法调用成功时,返回视频轨道 ID,作为该视频轨道的唯一标识符。
  • +
  • 方法调用失败时,返回 0xffffffff
  • +
+

+

+

    +
  • 方法调用成功时,返回视频轨道 ID,作为该视频轨道的唯一标识符。
  • +
  • 方法调用失败时,返回 0xffffffff
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createdatastream1.dita b/dita/RTC-AIDOC/API/api_irtcengine_createdatastream1.dita new file mode 100644 index 00000000000..d27fbb0aeb0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createdatastream1.dita @@ -0,0 +1,162 @@ + + + + <ph keyref="createDataStream1"/> + 创建一个数据流。创建一个数据流,用于提升数据传输的可靠性和顺序性。创建数据流。创建数据流。 + + + + + + + + +
+

+ virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0; + public abstract int createDataStream(boolean reliable, boolean ordered); + - (int)createDataStream:(NSInteger * _Nonnull)streamId + reliable:(BOOL)reliable + ordered:(BOOL)ordered NS_SWIFT_NAME(createDataStream(_:reliable:ordered:)); + - (int)createDataStream:(NSInteger * _Nonnull)streamId + reliable:(BOOL)reliable + ordered:(BOOL)ordered NS_SWIFT_NAME(createDataStream(_:reliable:ordered:)); +

+
+
+

你可以调用该方法创建一个数据流,以提升数据传输的可靠性和顺序性。你可以在加入频道前或后调用该方法。

+

你可以调用该方法创建一个数据流,以提升数据传输的可靠性和顺序性。你可以在加入频道前或后调用该方法。

+ 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时,数据流会被销毁,如需继续使用需重新创建。 +如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可创建五个数据流。离开频道时,数据流会被销毁,如需继续使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。如果你需要更全面的低延时、高并发、可扩展的实时消息和状态同步方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。如果你需要更全面的低延时、高并发、可扩展的实时消息和状态同步方案,建议使用实时消息。 +
+
+ 调用时机 +

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+ +
+ 参数 + + + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 是否保证接收端在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方的数据。如果未收到,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据,延迟或丢失不会返回错误信息。
  • +
注意:请确保 reliableordered 同时为 或同时为
+
+ + ordered + 是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + reliable + + 请确保 reliableordered 同时设置为 或同时设置为 是否保证接收端在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送端的数据。如果未收到,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据,延迟或丢失不会触发错误回调。
  • +
+
+
+ + ordered + 是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 设置接收端是否保证在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方发送的数据。如果接收端在五秒内未收到数据,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据流,延迟或丢失数据不会返回错误信息。
  • +
请确保 reliableordered 同时设置为 或同时设置为
+
+ + ordered + 设置接收端是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 设置接收端是否保证在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方发送的数据。如果接收端在五秒内未收到数据,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据流,延迟或丢失数据不会返回错误信息。
  • +
请确保 reliableordered 同时设置为 或同时设置为
+
+ + ordered + 设置接收端是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回创建的数据流 ID。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createdatastream2.dita b/dita/RTC-AIDOC/API/api_irtcengine_createdatastream2.dita new file mode 100644 index 00000000000..8299fc55972 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createdatastream2.dita @@ -0,0 +1,102 @@ + + + + <ph keyref="createDataStream2"/> + 创建一个数据流。创建一个数据流。创建一个数据流。创建一个数据流。 + + + + + + + + +
+

+ virtual int createDataStream(int* streamId, const DataStreamConfig& config) = 0; + public abstract int createDataStream(DataStreamConfig config); + - (int)createDataStream:(NSInteger * _Nonnull)streamId + config:(AgoraDataStreamConfig * _Nonnull)config NS_SWIFT_NAME(createDataStream(_:config:)); + - (int)createDataStream:(NSInteger * _Nonnull)streamId + config:(AgoraDataStreamConfig * _Nonnull)config NS_SWIFT_NAME(createDataStream(_:config:)); +

+
+
+

该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据包。与 createDataStream 方法相比,该方法适用于对实时性要求高但可容忍部分数据丢失的场景。

+

该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据。

+

方法相比,该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据包。你可以在加入频道前或加入频道后调用该方法。

+

方法相比,该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据包。你可以在加入频道前或加入频道后调用该方法。

+ 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用声网实时消息。 + 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置。详见 + + + config + 数据流的配置,详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置,详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回创建的数据流 ID。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createmediaplayer.dita b/dita/RTC-AIDOC/API/api_irtcengine_createmediaplayer.dita new file mode 100644 index 00000000000..ea318b3461d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createmediaplayer.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="createMediaPlayer"/> + 创建一个 对象。创建一个 对象。创建一个媒体播放器实例。创建一个媒体播放器实例。 + + + + + + + + +
+

+ virtual agora_refptr<IMediaPlayer> createMediaPlayer() = 0; + public abstract IMediaPlayer createMediaPlayer(); + - (id<AgoraRtcMediaPlayerProtocol>_Nullable)createMediaPlayerWithDelegate:(id<AgoraRtcMediaPlayerDelegate>_Nullable)delegate NS_SWIFT_NAME(createMediaPlayer(with:)); + - (id<AgoraRtcMediaPlayerProtocol>_Nullable)createMediaPlayerWithDelegate:(id<AgoraRtcMediaPlayerDelegate>_Nullable)delegate NS_SWIFT_NAME(createMediaPlayer(with:)); +

+
+
+

在调用 中的任何 API 之前,必须先调用该方法创建一个 实例。如果需要多个实例,可以多次调用该方法。

+

你需要调用此方法来创建一个媒体播放器实例。如果需要多个实例,可以多次调用此方法。

+

在调用 中的任何 API 之前,你需要调用该方法创建一个媒体播放器实例。如果你需要创建多个实例,可以多次调用该方法。

+

在调用 中的任何 API 之前,你需要调用该方法创建一个媒体播放器实例。如果你需要创建多个实例,可以多次调用该方法。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+
+
+ 参数 + + + delegate + 事件回调处理器,详见 + + + delegate + 事件回调处理器,详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

方法调用成功,返回 对象。 +方法调用失败,返回 null

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createmediarecorder.dita b/dita/RTC-AIDOC/API/api_irtcengine_createmediarecorder.dita new file mode 100644 index 00000000000..971616668e0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createmediarecorder.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="createMediaRecorder"/> + 创建一个音视频录制器实例。创建用于音视频录制的录制器实例。创建一个媒体录制器实例。创建一个媒体录制器实例。 + + + + + + + + +
+

+ virtual agora_refptr<IMediaRecorder> createMediaRecorder(const RecorderStreamInfo& info) = 0; + public abstract AgoraMediaRecorder createMediaRecorder(RecorderStreamInfo info); + - (AgoraMediaRecorder * _Nullable)createMediaRecorder:(AgoraRecorderStreamInfo * _Nonnull)info NS_SWIFT_NAME(createMediaRecorder(withInfo:)); + - (AgoraMediaRecorder * _Nullable)createMediaRecorder:(AgoraRecorderStreamInfo * _Nonnull)info NS_SWIFT_NAME(createMediaRecorder(withInfo:)); +

+
+
+

在开始录制音频和视频流之前,你需要调用该方法创建一个录制器实例。SDK 支持录制来自本地或远端用户的多个音视频流。你可以多次调用该方法创建多个录制器实例,并通过参数 info 指定要录制的频道名和远端用户 ID。创建成功后,你需要调用 为录制器实例注册观察者以监听相关回调,然后调用 开始录制。

+

在开始录制音视频流之前,你需要调用该方法创建一个录制器实例。你可以多次调用该方法创建多个录制器,并通过 info 参数指定要录制的频道名和用户 ID。 + +成功创建录制器后,你需要调用 为录制器注册观察者以监听录制相关的回调,然后调用 开始录制。

+

在开始音视频流录制之前,你需要调用该方法创建一个媒体录制器实例。SDK 支持录制来自本地或远端用户的多个音视频流。你可以多次调用该方法创建多个录制器实例,并使用 info 参数指定要录制的频道名和远端用户 ID。 + +成功创建录制器实例后,你需要调用 方法为该录制器注册一个观察者,以监听相关回调,然后调用 方法开始录制。

+

在开始音视频流录制之前,你需要调用该方法创建一个媒体录制器实例。SDK 支持录制来自本地或远端用户的多个音视频流。你可以多次调用该方法创建多个录制器实例,并使用 info 参数指定要录制的频道名和远端用户 ID。 + +成功创建录制器实例后,你需要调用 方法为该录制器注册一个观察者,以监听相关回调,然后调用 方法开始录制。

+
+
+ 参数 + + + info + 音视频流信息。详见 + + + info + 要录制的音视频流的信息。详见 + + + info + 要录制的音视频流的信息,详见 + + + info + 要录制的音视频流的信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回 实例。详见 。 +方法调用失败,返回

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回 null
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_createvideoeffectobject.dita b/dita/RTC-AIDOC/API/api_irtcengine_createvideoeffectobject.dita new file mode 100644 index 00000000000..fa2c6bc16ed --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_createvideoeffectobject.dita @@ -0,0 +1,110 @@ + + + + <ph keyref="createVideoEffectObject"/> + 创建一个 视频特效对象。创建一个 视频特效对象。创建一个视频特效对象。创建一个视频特效对象。 + + + + + + + + +
+

+ virtual agora_refptr<IVideoEffectObject> createVideoEffectObject(const char* bundlePath, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract IVideoEffectObject createVideoEffectObject(String bundlePath, Constants.MediaSourceType sourceType); + - (id<AgoraVideoEffectObject> _Nullable)createVideoEffectObjectWithBundlePath:(NSString * _Nonnull)bundlePath + sourceType:(AgoraMediaSourceType)sourceType + NS_SWIFT_NAME(createVideoEffectObject(bundlePath:sourceType:)); + - (id<AgoraVideoEffectObject> _Nullable)createVideoEffectObjectWithBundlePath:(NSString * _Nonnull)bundlePath + sourceType:(AgoraMediaSourceType)sourceType + NS_SWIFT_NAME(createVideoEffectObject(bundlePath:sourceType:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

返回一个 视频特效对象的指针。

+

返回一个 视频特效对象的指针。

+ 你必须先调用 方法再调用此方法。该方法适用于 Android 4.4 及以上版本。 +
+
+ 参数 + + + bundlePath + 视频特效资源包的路径。 + + + type + 媒体源类型,详见 + + + bundlePath + 视频特效资源包的路径。 + + + sourceType + 媒体源类型,例如 PRIMARY_CAMERA_SOURCE。详见 + + + bundlePath + 视频特效 bundle 的路径。 + + + sourceType + 媒体源类型,例如 AgoraMediaSourceTypePrimaryCamera。详见 + + + bundlePath + 视频特效 bundle 的路径。 + + + sourceType + 媒体源类型,例如 AgoraMediaSourceTypePrimaryCamera。详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象指针,详见
  • +
  • 方法调用失败,返回
  • +
+

+

方法调用成功,返回 对象。 +方法调用失败,返回 null

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_delegate.dita b/dita/RTC-AIDOC/API/api_irtcengine_delegate.dita new file mode 100644 index 00000000000..a6cf200272c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_delegate.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="delegate"/> + 设置并获取 设置并获取 + + + + + + + + +
+

+ @property(nonatomic, weak) id<AgoraRtcEngineDelegate> _Nullable delegate; + @property(nonatomic, weak) id<AgoraRtcEngineDelegate> _Nullable delegate; +

+
+
+

SDK 通过 类向 App 报告 SDK 运行时的各种事件。该类中定义的所有方法都是可选的实现方法。

+

SDK 通过 类向 App 报告 SDK 运行时的各种事件。该类中定义的所有方法都是可选的实现方法。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroy1.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroy1.dita new file mode 100644 index 00000000000..0ea1d875f4f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroy1.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="destroy1"/> + 销毁 实例并释放相关资源。销毁 实例并释放相关资源。销毁 实例并释放相关资源。 + + + + + + + + +
+

+ + (void)destroy:(void (^ _Nullable)(void))engineReleasedBlock NS_SWIFT_NAME(destroy(_:)); + public static synchronized void destroy(@Nullable IRtcEngineReleaseCallback callback) + + (void)destroy:(void (^ _Nullable)(void))engineReleasedBlock NS_SWIFT_NAME(destroy(_:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

当你不再需要实时通信时,调用此方法以释放 实例及其相关资源,使这些资源可用于其他操作。推荐在语音或视频通话场景中使用。

+

当你不再需要实时通信时,调用该方法以释放 实例,使相关资源可用于其他操作。推荐在语音通话或视频通话等场景中使用。

+

当你不再需要实时通信时,调用此方法以释放 实例及其相关资源,使这些资源可用于其他操作。推荐在语音或视频通话场景中使用。

+
+
+ 参数 + + + engineReleasedBlock + 实例被销毁时触发的回调,用于配置同步或异步销毁: +
    +
  • :异步销毁。方法会立即返回,但引擎资源可能尚未完全释放。引擎销毁后会触发 engineReleasedBlock 回调。
  • +
  • :同步销毁。方法仅在引擎资源完全释放后才返回。
  • +
+
+
+ + callback + 用于配置引擎的同步或异步销毁方式: +
    +
  • null:异步销毁。方法会立即返回,但引擎资源可能尚未完全释放。引擎销毁后会触发 回调。
  • +
  • null:同步销毁。方法仅在引擎资源完全释放后才返回。详见
  • +
+
+
+ + engineReleasedBlock + 实例被销毁时触发的回调,用于配置同步或异步销毁: +
    +
  • :异步销毁。方法会立即返回,但引擎资源可能尚未完全释放。引擎销毁后会触发 engineReleasedBlock 回调。
  • +
  • :同步销毁。方法仅在引擎资源完全释放后才返回。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroycustomaudiotrack.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroycustomaudiotrack.dita new file mode 100644 index 00000000000..a1005c278d0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroycustomaudiotrack.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="destroyCustomAudioTrack"/> + 销毁指定的音频轨道。销毁指定的音频轨道。销毁指定的音频轨道。 + + + + + + + + +
+

+ - (int)destroyCustomAudioTrack:(NSInteger)trackId; + public abstract int destroyCustomAudioTrack(int trackId); + - (int)destroyCustomAudioTrack:(NSInteger)trackId; +

+
+
+
+ 参数 + + + trackId + 调用 时返回的自定义音频轨道 ID。 + + + trackId + 中返回的自定义音频轨道 ID。 + + + trackId + 调用 时返回的自定义音频轨道 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroycustomvideotrack.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroycustomvideotrack.dita new file mode 100644 index 00000000000..161eea40179 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroycustomvideotrack.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="destroyCustomVideoTrack"/> + 销毁指定的视频轨道。销毁指定的视频轨道。销毁指定的视频轨道。销毁指定的视频轨道。 + + + + + + + + +
+

+ virtual int destroyCustomVideoTrack(video_track_id_t video_track_id) = 0; + public abstract int destroyCustomVideoTrack(int video_track_id); + - (int)destroyCustomVideoTrack:(NSUInteger)videoTrackId NS_SWIFT_NAME(destroyCustomVideoTrack(_:)); + - (int)destroyCustomVideoTrack:(NSUInteger)videoTrackId NS_SWIFT_NAME(destroyCustomVideoTrack(_:)); +

+
+
+
+ 参数 + + + video_track_id + 视频轨道 ID,由调用 返回。 + + + video_track_id + 调用 返回的视频轨道 ID。 + + + videoTrackId + 调用 方法返回的视频轨道 ID。 + + + videoTrackId + 调用 方法返回的视频轨道 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroymediaplayer.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroymediaplayer.dita new file mode 100644 index 00000000000..7cd3af92152 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroymediaplayer.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="destroyMediaPlayer"/> + 销毁一个 实例。销毁媒体播放器实例。销毁媒体播放器实例。 + + + + + + + + +
+

+ virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0; + - (int)destroyMediaPlayer:(id<AgoraRtcMediaPlayerProtocol>_Nullable)mediaPlayer NS_SWIFT_NAME(destroyMediaPlayer(_:)); + - (int)destroyMediaPlayer:(id<AgoraRtcMediaPlayerProtocol>_Nullable)mediaPlayer NS_SWIFT_NAME(destroyMediaPlayer(_:)); +

+
+
+
+ 参数 + + + media_player + 对象。详见 + + + mediaPlayer + 要销毁的媒体播放器实例,类型为 。详见 + + + mediaPlayer + 要销毁的媒体播放器实例,类型为 。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroymediarecorder.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroymediarecorder.dita new file mode 100644 index 00000000000..beb0a059454 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroymediarecorder.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="destroyMediaRecorder"/> + 销毁音视频录制器对象。销毁音视频录制器实例。销毁音视频录制器实例。销毁音视频录制器实例。 + + + + + + + + +
+

+ virtual int destroyMediaRecorder(agora_refptr<IMediaRecorder> mediaRecorder) = 0; + public abstract void destroyMediaRecorder(AgoraMediaRecorder mediaRecorder); + - (int)destroyMediaRecorder:(AgoraMediaRecorder * _Nullable)mediaRecorder; + - (int)destroyMediaRecorder:(AgoraMediaRecorder * _Nullable)mediaRecorder; +

+
+
+

当你不再需要录制音频和视频流时,可以调用此方法销毁对应的录制器实例。调用此方法前,请确保已调用 停止录制。

+

如果当前正在录制,请先调用 停止录制,再调用 销毁录制器实例。

+

当你不再需要录制音视频流时,可以调用此方法销毁对应的音视频录制器实例。如果录制正在进行中,请先调用 停止录制,然后再调用此方法销毁录制器实例。

+

当你不再需要录制音视频流时,可以调用此方法销毁对应的音视频录制器实例。如果录制正在进行中,请先调用 停止录制,然后再调用此方法销毁录制器实例。

+
+
+ 参数 + + + mediaRecorder + 要销毁的录制器实例。详见 + + + mediaRecorder + 要销毁的录制器实例。详见 + + + mediaRecorder + 要销毁的 实例。详见 + + + mediaRecorder + 要销毁的 实例。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。请参阅错误码获取详细信息和排查建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。请参阅错误码获取详细信息和排查建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_destroyvideoeffectobject.dita b/dita/RTC-AIDOC/API/api_irtcengine_destroyvideoeffectobject.dita new file mode 100644 index 00000000000..e9a0d0de790 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_destroyvideoeffectobject.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="destroyVideoEffectObject"/> + 销毁视频特效对象。销毁一个视频特效对象。销毁一个视频特效对象。销毁一个视频特效对象。 + + + + + + + + +
+

+ virtual int destroyVideoEffectObject(agora_refptr<IVideoEffectObject> videoEffectObject) = 0; + public abstract int destroyVideoEffectObject(IVideoEffectObject videoEffectObject); + - (int)destroyVideoEffectObject:(id<AgoraVideoEffectObject> _Nullable)videoEffectObject NS_SWIFT_NAME(destroyVideoEffectObject(_:)); + - (int)destroyVideoEffectObject:(id<AgoraVideoEffectObject> _Nullable)videoEffectObject NS_SWIFT_NAME(destroyVideoEffectObject(_:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+ 在调用该方法前必须先调用 方法。该方法适用于 Android 4.4 及以上版本。 +
+
+ 参数 + + + videoEffectObject + 要销毁的视频特效对象。详见 + + + videoEffectObject + 要销毁的视频特效对象。详见 + + + videoEffectObject + 要销毁的 实例的指针。详见 + + + videoEffectObject + 要销毁的 实例的指针。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_disableaudio.dita b/dita/RTC-AIDOC/API/api_irtcengine_disableaudio.dita new file mode 100644 index 00000000000..a350413a8f1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_disableaudio.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="disableAudio"/> + 禁用音频模块。禁用音频模块。禁用音频模块。禁用音频模块。 + + + + + + + + +
+

+ virtual int disableAudio() = 0; + public abstract int disableAudio(); + - (int)disableAudio NS_SWIFT_NAME(disableAudio()); + - (int)disableAudio NS_SWIFT_NAME(disableAudio()); +

+
+
+

音频模块默认启用。你可以调用该方法来禁用。

+

音频模块默认启用。你可以调用该方法禁用音频模块。

+

音频模块默认启用。你可以调用该方法禁用音频模块。

+ 该方法会重置内部引擎,并需要一定时间生效。声网建议使用以下 API 分别控制音频模块: +
    +
  • :是否启用麦克风以创建本地音频流。
  • +
  • :是否启用回环音频采集。
  • +
  • :是否发布本地音频流。
  • +
  • :是否订阅并播放远端音频流。
  • +
  • :是否订阅并播放所有远端音频流。
  • +
+
+ 该方法会重置内部引擎,并需要一些时间生效。声网建议使用以下 API 分别控制音频模块: +
    +
  • :是否启用麦克风以创建本地音频流。
  • +
  • :是否发布本地音频流。
  • +
  • :是否订阅并播放远端音频流。
  • +
  • :是否订阅并播放所有远端音频流。
  • +
+
+ 该方法会重置内部引擎,并需要一些时间生效。声网建议使用以下 API 分别控制音频模块: +
    +
  • :是否启用麦克风以创建本地音频流。
  • +
  • (仅适用于 macOS)enableLoopbackRecording:deviceName::是否启用回采音频采集。
  • +
  • :是否发布本地音频流。
  • +
  • :是否订阅并播放远端音频流。
  • +
  • :是否订阅并播放所有远端音频流。
  • +
+
+ 该方法会重置内部引擎,并需要一些时间生效。声网建议使用以下 API 分别控制音频模块: +
    +
  • :是否启用麦克风以创建本地音频流。
  • +
  • (仅适用于 macOS):是否启用回采音频采集。
  • +
  • :是否发布本地音频流。
  • +
  • :是否订阅并播放远端音频流。
  • +
  • :是否订阅并播放所有远端音频流。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用。离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用。离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用。离开频道后仍然有效。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_disableaudiospectrummonitor.dita b/dita/RTC-AIDOC/API/api_irtcengine_disableaudiospectrummonitor.dita new file mode 100644 index 00000000000..efa7a829dbc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_disableaudiospectrummonitor.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="disableAudioSpectrumMonitor"/> + 禁用音频频谱监测。禁用音频频谱监测。禁用音频频谱监测。禁用音频频谱监测。 + + + + + + + + +
+

+ virtual int disableAudioSpectrumMonitor() = 0; + public abstract int disableAudioSpectrumMonitor(); + - (int)disableAudioSpectrumMonitor NS_SWIFT_NAME(disableAudioSpectrumMonitor()); + - (int)disableAudioSpectrumMonitor NS_SWIFT_NAME(disableAudioSpectrumMonitor()); +

+
+
+

调用 后,如需关闭音频频谱监测,可调用该方法。

+

调用 后,如需关闭音频频谱监测,可以调用该方法。

+

如果你已调用 方法启用音频频谱监测,可以调用此方法禁用该功能。

+

如果你已调用 方法启用音频频谱监测,可以调用此方法禁用该功能。

+ 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或后调用此方法。 + 你可以在加入频道前或后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_disablevideo.dita b/dita/RTC-AIDOC/API/api_irtcengine_disablevideo.dita new file mode 100644 index 00000000000..2f11a6adb74 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_disablevideo.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="disableVideo"/> + 禁用视频模块。关闭视频模块。禁用视频模块。禁用视频模块。 + + + + + + + + +
+

+ virtual int disableVideo() = 0; + public abstract int disableVideo(); + - (int)disableVideo NS_SWIFT_NAME(disableVideo()); + - (int)disableVideo NS_SWIFT_NAME(disableVideo()); +

+
+
+

该方法会影响内部引擎,且可以在离开频道后调用。调用该方法会重置整个引擎,可能导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +

    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
+

+

该方法用于禁用视频模块。

+

该方法用于禁用视频模块。

+ 会影响内部引擎,且可在离开频道后调用。调用该方法会重置整个引擎,可能导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
+
+ 该方法会影响内部引擎,且可在离开频道后调用。调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
+
+ 该方法会影响内部引擎,且可在离开频道后调用。调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用: +

    +
  • 如果在加入频道前调用,则进入纯语音模式。
  • +
  • 如果在加入频道后调用,则从视频模式切换为纯语音模式。
  • +
之后调用 可重新切换回视频模式。

+

该方法可在加入频道前或加入频道后调用。 +

    +
  • 如果在加入频道前调用,则启用纯语音模式。
  • +
  • 如果在加入频道后调用,则从视频模式切换为纯语音模式。之后调用 可再次切换为视频模式。
  • +
+

+

该方法可在加入频道前或加入频道后调用。 +

    +
  • 如果在加入频道前调用,则进入语音通话模式。
  • +
  • 如果在加入频道后调用,则从视频通话模式切换为语音通话模式。之后调用 可重新切换为视频通话模式。
  • +
+

+

该方法可在加入频道前或加入频道后调用。 +

    +
  • 如果在加入频道前调用,则进入语音通话模式。
  • +
  • 如果在加入频道后调用,则从视频通话模式切换为语音通话模式。之后调用 可重新切换为视频通话模式。
  • +
+

+
+ +
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableaudio.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableaudio.dita new file mode 100644 index 00000000000..0bd8566f691 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableaudio.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="enableAudio"/> + 启用音频模块。启用音频模块。启用音频模块。启用音频模块。 + + + + + + + + +
+

+ virtual int enableAudio() = 0; + public abstract int enableAudio(); + - (int)enableAudio NS_SWIFT_NAME(enableAudio()); + - (int)enableAudio NS_SWIFT_NAME(enableAudio()); +

+
+
+

音频模块默认处于启用状态。调用 方法禁用音频模块后,可以调用该方法重新启用音频模块。

+

调用 方法禁用音频模块后,可以调用 方法重新启用。

+

音频模块默认处于启用状态。你在调用 方法禁用音频模块后,可以调用该方法重新启用音频模块。

+

音频模块默认处于启用状态。你在调用 方法禁用音频模块后,可以调用该方法重新启用音频模块。

+ 调用该方法会重置整个引擎,可能导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制音频模块的具体功能: +
    +
  • :是否启用麦克风以创建本地音频流。
  • +
  • :是否发布本地音频流。
  • +
  • :是否订阅并播放远端音频流。
  • +
  • :是否订阅并播放所有远端音频流。
  • +
成功调用该方法会重置 的设置,请谨慎使用。
+ +
    +
  • 调用此方法会重置整个引擎,可能导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制音频模块的具体功能: +
      +
    • :是否启用麦克风以创建本地音频流。
    • +
    • :是否发布本地音频流。
    • +
    • :是否订阅并播放远端音频流。
    • +
    • :是否订阅并播放所有远端音频流。
    • +
    +
  • +
  • 成功调用此方法会重置 的状态,请谨慎使用。
  • +
+
+ +
    +
  • 调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制音频模块的具体功能: +
      +
    • :是否启用麦克风以创建本地音频流。
    • +
    • :是否发布本地音频流。
    • +
    • :是否订阅并播放远端音频流。
    • +
    • :是否订阅并播放所有远端音频流。
    • +
    +
  • +
  • 成功调用该方法会重置 的设置,请谨慎使用。
  • +
+
+ +
    +
  • 调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制音频模块的具体功能: +
      +
    • :是否启用麦克风以创建本地音频流。
    • +
    • :是否发布本地音频流。
    • +
    • :是否订阅并播放远端音频流。
    • +
    • :是否订阅并播放所有远端音频流。
    • +
    +
  • +
  • 成功调用该方法会重置 的设置,请谨慎使用。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用,离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用,离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用,离开频道后仍然有效。

+

该方法可以在加入频道前或加入频道后调用,离开频道后仍然有效。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableaudiospectrummonitor.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableaudiospectrummonitor.dita new file mode 100644 index 00000000000..9e7fe362d60 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableaudiospectrummonitor.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="enableAudioSpectrumMonitor"/> + 开启音频频谱监测。开启音频频谱监测功能。开启音频频谱监测。开启音频频谱监测。 + + + + + + + + +
+

+ virtual int enableAudioSpectrumMonitor(int intervalInMS = 100) = 0; + public abstract int enableAudioSpectrumMonitor(int intervalInMS); + - (int)enableAudioSpectrumMonitor:(int)intervalInMS NS_SWIFT_NAME(enableAudioSpectrumMonitor(_:)); + - (int)enableAudioSpectrumMonitor:(int)intervalInMS NS_SWIFT_NAME(enableAudioSpectrumMonitor(_:)); +

+
+
+

你可以注册音频频谱观察器并调用该方法以获取本地或远端用户的音频频谱数据。

+

如果你希望获取本地或远端用户的音频频谱数据,可以注册音频频谱观察器并调用该方法。

+

如果你希望获取本地或远端用户的音频频谱数据,可以注册音频频谱观察器并调用该方法。

+ 方法可以在加入频道前或加入频道后调用。 + 你可以在加入频道前或加入频道后调用该方法。 + 你可以在加入频道前或加入频道后调用该方法。 +
+
+ 适用场景 +

你可以在加入频道前或加入频道后调用此方法。

+
+ +
+ 参数 + + + intervalInMS + SDK 触发 回调的时间间隔,单位为毫秒(默认值为 100,默认)。该参数值不能小于 10,否则调用该方法会失败。 + + + intervalInMS + SDK 触发 回调的时间间隔,单位为毫秒。该参数不能小于 10,否则调用该方法会失败。(默认值为 100) + + + intervalInMS + SDK 触发 回调的时间间隔(单位为毫秒,默认值为 100)。该参数不能小于 10,否则调用该方法会失败。 + + + intervalInMS + SDK 触发 回调的时间间隔(单位为毫秒,默认值为 100)。该参数不能小于 10,否则调用该方法会失败。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableaudiovolumeindication.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableaudiovolumeindication.dita new file mode 100644 index 00000000000..6b46c742998 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableaudiovolumeindication.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="enableAudioVolumeIndication"/> + 启用用户音量提示的上报功能。启用用户音量提示上报功能。启用用户音量提示的上报功能。启用用户音量提示的上报功能。 + + + + + + + + +
+

+ virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad) = 0; + public abstract int enableAudioVolumeIndication(int interval, int smooth, boolean reportVad); + - (int)enableAudioVolumeIndication:(NSInteger)interval + smooth:(NSInteger)smooth + reportVad:(BOOL)reportVad NS_SWIFT_NAME(enableAudioVolumeIndication(_:smooth:reportVad:)); + - (int)enableAudioVolumeIndication:(NSInteger)interval + smooth:(NSInteger)smooth + reportVad:(BOOL)reportVad NS_SWIFT_NAME(enableAudioVolumeIndication(_:smooth:reportVad:)); +

+
+
+

该方法用于启用 SDK 定期向应用上报本地发送音频流的用户和瞬时音量最大的最多三位远端用户的音量信息。

+

该方法用于启用 SDK 定期向应用上报本地发送流的用户和音量瞬时值最高的最多三位远端用户的音量信息。

+

该方法用于启用 SDK 定期向你报告本地发送音频流用户和瞬时音量最高的最多三位远端用户的音量信息。

+

该方法用于启用 SDK 定期向你报告本地发送音频流用户和瞬时音量最高的最多三位远端用户的音量信息。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+ +
+ 参数 + + + interval + 设置两次音量提示之间的时间间隔(毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔(单位为毫秒)。该值需大于 10,否则无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数,取值范围为 0 到 10,推荐值为 3。值越大,提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(VAD): +
    +
  • :启用语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭语音活动检测。关闭后, 回调中的 vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到语音活动。
  • +
+
+
+ + interval + 设置两次音量提示之间的时间间隔(毫秒): +
    +
  • ≤ 0:关闭音量提示。
  • +
  • > 0:两次音量提示之间的时间间隔(毫秒)。该值需大于 10,否则无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数。取值范围为 0 到 10,推荐值为 3。数值越大,提示越灵敏。 + + + reportVad + +
    +
  • :启用本地用户的语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭本地用户的语音活动检测。关闭后, 回调中的 vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到语音活动。
  • +
+
+
+ + interval + 设置两次音量提示之间的时间间隔(单位为毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔。确保该参数值大于 10,否则你将无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数,取值范围为 0 到 10,推荐值为 3。数值越大,音量提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(Voice Activity Detection): +
    +
  • :启用语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭语音活动检测。关闭后,除非引擎自动检测本地用户的语音活动,否则 vad 参数不会报告本地用户的语音活动状态。
  • +
+
+
+ + interval + 设置两次音量提示之间的时间间隔(单位为毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔。确保该参数值大于 10,否则你将无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数,取值范围为 0 到 10,推荐值为 3。数值越大,音量提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(Voice Activity Detection): +
    +
  • :启用语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭语音活动检测。关闭后,除非引擎自动检测本地用户的语音活动,否则 vad 参数不会报告本地用户的语音活动状态。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablecameracenterstage.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablecameracenterstage.dita new file mode 100644 index 00000000000..0a8ef8d4484 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablecameracenterstage.dita @@ -0,0 +1,130 @@ + + + + <ph keyref="enableCameraCenterStage"/> + 启用或关闭人像锁定功能。开启或关闭人像锁定功能。开启或关闭人像锁定功能。 + + + + + + + + +
+

+ virtual int enableCameraCenterStage(bool enabled) = 0; + - (int)enableCameraCenterStage:(BOOL)enabled NS_SWIFT_NAME(enableCameraCenterStage(_:)); + - (int)enableCameraCenterStage:(BOOL)enabled NS_SWIFT_NAME(enableCameraCenterStage(_:)); +

+
+
+

默认情况下,人像锁定功能处于关闭状态。你需要调用此方法来开启该功能。如需关闭该功能,请再次调用该方法并将 enabled 设置为

+

人像锁定功能默认关闭。你需要调用此方法来开启该功能。如果需要关闭此功能,你需要再次调用此方法并将 enabled 设置为

+

人像锁定功能默认关闭。你需要调用此方法来开启该功能。如果需要关闭此功能,你需要再次调用此方法并将 enabled 设置为

+ 该方法仅适用于 iOS 和 macOS 平台。 +由于该功能对设备性能要求较高,建议在以下设备或性能更高的设备上使用: +
    +
  • iPad: +
      +
    • 12.9 英寸 iPad Pro(第 5 代)
    • +
    • 11 英寸 iPad Pro(第 3 代)
    • +
    • iPad(第 9 代)
    • +
    • iPad mini(第 6 代)
    • +
    • iPad Air(第 5 代)
    • +
    +
  • +
  • 2020 款 M1 芯片 13 英寸 MacBook Pro + iPhone 11(将 iPhone 用作 MacBook 的外部摄像头)
  • +
声网建议在启用该功能前调用 方法,检查当前设备是否支持人像锁定功能。
+ 由于该功能对设备性能要求较高,你需要在以下类型的设备或性能更高的设备上使用: +
    +
  • iPad: +
      +
    • 12.9 英寸 iPad Pro(第 5 代)
    • +
    • 11 英寸 iPad Pro(第 3 代)
    • +
    • iPad(第 9 代)
    • +
    • iPad mini(第 6 代)
    • +
    • iPad Air(第 5 代)
    • +
    +
  • +
  • 2020 款 M1 芯片的 13 英寸 MacBook Pro + iPhone 11(将 iPhone 用作 MacBook 的外部摄像头)
  • +
声网建议你在启用该功能前调用 方法检查当前设备是否支持人像锁定功能。
+ 由于该功能对设备性能要求较高,你需要在以下类型的设备或性能更高的设备上使用: +
    +
  • iPad: +
      +
    • 12.9 英寸 iPad Pro(第 5 代)
    • +
    • 11 英寸 iPad Pro(第 3 代)
    • +
    • iPad(第 9 代)
    • +
    • iPad mini(第 6 代)
    • +
    • iPad Air(第 5 代)
    • +
    +
  • +
  • 2020 款 M1 芯片的 13 英寸 MacBook Pro + iPhone 11(将 iPhone 用作 MacBook 的外部摄像头)
  • +
声网建议你在启用该功能前调用 方法检查当前设备是否支持人像锁定功能。
+
+
+ 适用场景 +

人像锁定功能适用于在线会议、演出、在线教育等场景。主持人可以使用该功能确保无论是否移动,始终处于画面中央,从而获得更好的展示效果。

+
+
+ 调用时机 +

必须在成功启用摄像头之后调用此方法,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+

必须在成功开启摄像头之后调用此方法,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+

必须在成功开启摄像头之后调用此方法,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+
+
+ 参数 + + + enabled + 是否启用人像锁定功能: +
    +
  • :启用人像锁定功能。
  • +
  • :关闭人像锁定功能。
  • +
+
+
+ + enabled + 是否开启人像锁定功能: +
    +
  • :开启人像锁定功能。
  • +
  • :关闭人像锁定功能。
  • +
+
+
+ + enabled + 是否开启人像锁定功能: +
    +
  • :开启人像锁定功能。
  • +
  • :关闭人像锁定功能。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablecontentinspect.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablecontentinspect.dita new file mode 100644 index 00000000000..8b07e1c3311 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablecontentinspect.dita @@ -0,0 +1,144 @@ + + + + <ph keyref="enableContentInspect"/> + 启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。 + + + + + + + + +
+

+ virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config) = 0; + public abstract int enableContentInspect(boolean enabled, ContentInspectConfig config); + - (int)enableContentInspect:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config NS_SWIFT_NAME(enableContentInspect(_:config:)); + - (int)enableContentInspect:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config NS_SWIFT_NAME(enableContentInspect(_:config:)); +

+
+
+

启用该功能后,SDK 会根据你在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图和上传完成后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。

+

SDK 会根据在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。完成截图和上传后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图发送到第三方云存储服务。

+

调用该方法后,SDK 会根据在 config 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图和上传完成后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。

+

调用该方法后,SDK 会根据在 config 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图和上传完成后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。

+ +
    +
  • 在调用该方法前,请确保你已在声网控制台启用了本地截图上传功能。
  • +
  • 当视频审核模块设置为使用声网自研扩展(CONTENT_INSPECT_SUPERVISION)进行视频审核时,需要使用本地截图上传动态库 。删除该库将禁用截图上传功能。
  • +
+
+ +
    +
  • 在调用该方法前,请确保你已在声网控制台启用本地截图上传功能。
  • +
  • 当视频审核模块设置为使用声网自研扩展(CONTENT_INSPECT_TYPE_SUPERVISE)进行视频审核时,需要使用本地截图上传动态库 。删除该库将禁用截图上传功能。
  • +
+
+ +
    +
  • 在调用该方法前,请确保你已在声网控制台启用了本地截图上传功能。
  • +
  • 当视频审核模块设置为使用声网自研扩展(AgoraContentInspectTypeSupervise)进行视频审核时,需要引入本地截图上传动态库 (iOS)或 AgoraContentInspectExtension.framework(macOS)。删除该库将禁用截图上传功能。
  • +
+
+ +
    +
  • 在调用该方法前,请确保你已在声网控制台启用了本地截图上传功能。
  • +
  • 当视频审核模块设置为使用声网自研扩展(AgoraContentInspectTypeSupervise)进行视频审核时,需要引入本地截图上传动态库 AgoraContentInspectExtension.xcframework(iOS)或 (macOS)。删除该库将禁用截图上传功能。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图上传配置,详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图上传配置,详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图和上传的配置,详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图和上传的配置,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablecustomaudiolocalplayback.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablecustomaudiolocalplayback.dita new file mode 100644 index 00000000000..cbff1e3ec62 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablecustomaudiolocalplayback.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="enableCustomAudioLocalPlayback"/> + 设置是否启用外部音频源的本地播放。设置是否启用外部音频源的本地播放。设置是否启用外部音频源的本地播放。设置是否启用外部音频源的本地播放。 + + + + + + + + +
+

+ virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled) = 0; + public abstract int enableCustomAudioLocalPlayback(int trackId, boolean enabled); + - (int)enableCustomAudioLocalPlayback:(NSInteger)trackId enabled:(BOOL)enabled NS_SWIFT_NAME(enableCustomAudioLocalPlayback(_:enabled:)); + - (int)enableCustomAudioLocalPlayback:(NSInteger)trackId enabled:(BOOL)enabled NS_SWIFT_NAME(enableCustomAudioLocalPlayback(_:enabled:)); +

+
+
+

调用该方法可开启外部音频源的本地播放。如需停止播放,可再次调用该方法并将 enabled 设置为 。你可以调用 方法调整自定义音频轨道的本地播放音量。

+

你可以调用 方法调整自定义音频轨道的本地播放音量。

+

调用该方法启用外部音频源的本地播放后,如需停止本地播放,可再次调用该方法并将 enabled 设置为 。你可以调用 方法调整自定义音频轨道的本地播放音量。

+

调用该方法启用外部音频源的本地播放后,如需停止本地播放,可再次调用该方法并将 enabled 设置为 。你可以调用 方法调整自定义音频轨道的本地播放音量。

+ 请确保在调用该方法前,已通过 创建自定义音频轨道。 + 请确保在调用该方法前,已通过调用 创建自定义音频轨道。 + 请确保在调用该方法前已通过 方法创建自定义音频轨道。 + 请确保在调用该方法前已通过 方法创建自定义音频轨道。 +
+
+ 参数 + + + trackId + 音频轨道 ID,设置为 返回的自定义音频轨道 ID。 + + + enabled + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + trackId + 音频轨道 ID,需设置为 返回的自定义音频轨道 ID。 + + + enabled + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + trackId + 音频轨道 ID。该参数需设置为 方法返回的自定义音频轨道 ID。 + + + enabled + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + trackId + 音频轨道 ID。该参数需设置为 方法返回的自定义音频轨道 ID。 + + + enabled + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode.dita b/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode.dita new file mode 100644 index 00000000000..dca9d9421ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode.dita @@ -0,0 +1,161 @@ + + + + <ph keyref="enableDualStreamMode"/> + 启用或关闭发送端的双流模式。在发送端启用或禁用双流模式。在发送端启用或关闭不同质量层级的视频流模式。在发送端启用或关闭不同质量层级的视频流模式。 + + + + + + + + +
+

+ virtual int enableDualStreamMode(bool enabled) __deprecated = 0; + public abstract int enableDualStreamMode(boolean enabled) + - (int)enableDualStreamMode:(BOOL)enabled NS_SWIFT_NAME(enableDualStreamMode(_:)) __deprecated_msg("use setDualStreamMode: instead."); + - (int)enableDualStreamMode:(BOOL)enabled NS_SWIFT_NAME(enableDualStreamMode(_:)) __deprecated_msg("use setDualStreamMode: instead."); +

+
+
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+
+

双流由一对视频大流和视频小流组成: +

    +
  • 视频大流:高码率、高分辨率。
  • +
  • 视频小流:低码率、低分辨率。
  • +
启用双流模式后,你可以调用 方法,在接收端选择接收高质量或低质量的视频流。

+

启用双流模式后,你可以调用 setRemoteVideoStreamType 方法,在订阅端选择接收视频大流或视频小流。 +双流由以下两种视频流组成: +

    +
  • 视频大流:高码率、高分辨率。
  • +
  • 视频小流:低码率、低分辨率。
  • +
+

+

不同质量层级的视频流是一对视频大流和视频小流的组合: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用该模式后,你可以调用 方法,在接收端选择接收高质量或低质量的视频流。

+

不同质量层级的视频流是一对视频大流和视频小流的组合: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用该模式后,你可以调用 方法,在接收端选择接收高质量或低质量的视频流。

+ +
    +
  • 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用双流模式,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用双流模式,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用不同质量层级的视频流,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用不同质量层级的视频流,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用双流模式: +
    +
  • :启用双流模式。
  • +
  • :(默认)关闭双流模式。
  • +
+
+
+ + enabled + 是否启用双流模式: +
    +
  • :启用双流模式。
  • +
  • :(默认)禁用双流模式。
  • +
+
+
+ + enabled + 是否启用不同质量层级的视频流模式: +
    +
  • :启用不同质量层级的视频流模式。
  • +
  • :(默认)关闭不同质量层级的视频流模式。
  • +
+
+
+ + enabled + 是否启用不同质量层级的视频流模式: +
    +
  • :启用不同质量层级的视频流模式。
  • +
  • :(默认)关闭不同质量层级的视频流模式。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode3.dita b/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode3.dita new file mode 100644 index 00000000000..ef8ef52b5a6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enabledualstreammode3.dita @@ -0,0 +1,181 @@ + + + + <ph keyref="enableDualStreamMode3"/> + 设置发送端的双流模式和视频小流。设置发送端的双流模式和视频小流。设置发送端的不同质量层级的视频流模式及视频小流配置。设置发送端的不同质量层级的视频流模式及视频小流配置。 + + + + + + + + +
+

+ virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0; + public abstract int enableDualStreamMode(boolean enabled, SimulcastStreamConfig streamConfig) + - (int)enableDualStreamMode:(BOOL)enabled + streamConfig:(AgoraSimulcastStreamConfig* _Nonnull)streamConfig NS_SWIFT_NAME(enableDualStreamMode(_:streamConfig:)) __deprecated_msg("use setDualStreamMode: instead."); + - (int)enableDualStreamMode:(BOOL)enabled + streamConfig:(AgoraSimulcastStreamConfig* _Nonnull)streamConfig NS_SWIFT_NAME(enableDualStreamMode(_:streamConfig:)) __deprecated_msg("use setDualStreamMode: instead."); +

+
+
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamMode
+
+
+

你可以调用此方法在发送端启用或关闭双流模式。双流模式指同时发送视频大流和视频小流: +

    +
  • 视频大流:高码率、高分辨率。
  • +
  • 视频小流:低码率、低分辨率。
  • +
启用双流模式后,你可以调用 方法,在接收端选择接收高质量或低质量的视频流。

+

你可以调用此方法在发送端启用或关闭双流模式。双流由一路视频大流和一路视频小流组成: +

    +
  • 视频大流:高码率、高分辨率。
  • +
  • 视频小流:低码率、低分辨率。
  • +
启用双流模式后,你可以调用 setRemoteVideoStreamType 方法,在接收端选择接收视频大流或视频小流。

+

你可以调用该方法在发送端启用或关闭不同质量层级的视频流(dual-stream)模式。不同质量层级的视频流包括一对视频大流和视频小流: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用该模式后,你可以调用 setRemoteVideoStream 方法,在接收端选择接收高质量或低质量的视频流。

+

你可以调用该方法在发送端启用或关闭不同质量层级的视频流(dual-stream)模式。不同质量层级的视频流包括一对视频大流和视频小流: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用该模式后,你可以调用 setRemoteVideoStream 方法,在接收端选择接收高质量或低质量的视频流。

+ +
    +
  • 此方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用双流模式,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用双流模式,可以调用 方法。
  • +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用不同质量层级的视频流,可以调用 enableDualStreamModeEx 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+ +
    +
  • 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
  • +
  • 如果你需要在多频道场景中启用不同质量层级的视频流,可以调用 enableDualStreamModeEx 方法。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用双流模式: +
    +
  • :启用双流模式。
  • +
  • :(默认)关闭双流模式。
  • +
+
+
+ + streamConfig + 视频小流的配置。详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置 streamConfig 不生效。 + + + + enabled + 是否启用双流模式: +
    +
  • :启用双流模式。
  • +
  • :(默认)关闭双流模式。
  • +
+
+
+ + streamConfig + 视频小流的配置,详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置 streamConfig 不生效。 + + + + enabled + 是否启用不同质量层级的视频流模式: +
    +
  • :启用不同质量层级的视频流模式。
  • +
  • :(默认)关闭不同质量层级的视频流模式。
  • +
+
+
+ + streamConfig + 视频小流的配置。详见 。注意:当 mode 设置为 AgoraDisableSimulcastStream 时,streamConfig 的设置不生效。 + + + enabled + 是否启用不同质量层级的视频流模式: +
    +
  • :启用不同质量层级的视频流模式。
  • +
  • :(默认)关闭不同质量层级的视频流模式。
  • +
+
+
+ + streamConfig + 视频小流的配置。详见 。注意:当 mode 设置为 AgoraDisableSimulcastStream 时,streamConfig 的设置不生效。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableencryption.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableencryption.dita new file mode 100644 index 00000000000..99c5e36fcbb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableencryption.dita @@ -0,0 +1,172 @@ + + + + <ph keyref="enableEncryption"/> + 启用或关闭内置加密功能。启用或关闭内置加密功能。启用或关闭内置加密。启用或关闭内置加密。 + + + + + + + + +
+

+ virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0; + public abstract int enableEncryption(boolean enabled, EncryptionConfig config); + - (int)enableEncryption:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig * _Nonnull)config NS_SWIFT_NAME(enableEncryption(_:encryptionConfig:)); + - (int)enableEncryption:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig * _Nonnull)config NS_SWIFT_NAME(enableEncryption(_:encryptionConfig:)); +

+
+
+

用户离开频道后,SDK 会自动关闭内置加密功能。若需启用该功能,请在用户重新加入频道前调用该方法。

+

用户离开频道后,SDK 会自动关闭内置加密功能。请在用户重新加入频道前调用该方法。

+

用户离开频道后,SDK 会自动关闭内置加密。若需启用内置加密,请在用户重新加入频道前调用此方法。

+

用户离开频道后,SDK 会自动关闭内置加密。若需启用内置加密,请在用户重新加入频道前调用此方法。

+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密功能后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密功能后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用此方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用此方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+
+
+ 适用场景 +

适用于安全性要求较高的场景。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用此方法。

+

请在加入频道前调用此方法。

+
+
+ 参数 + + + enabled + 是否启用内置加密功能: +
    +
  • :启用内置加密功能。
  • +
  • :(默认)关闭内置加密功能。
  • +
+
+
+ + config + 内置加密配置。详见 + + + enabled + 是否启用内置加密功能: +
    +
  • :启用内置加密功能。
  • +
  • :(默认)关闭内置加密功能。
  • +
+
+
+ + config + 内置加密配置。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,请传入有效参数。
    • +
    • -4:内置加密模式错误或 SDK 加载外部加密库失败,请检查枚举值或重新加载外部加密库。
    • +
    • -7:SDK 未初始化,请先初始化 实例后再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请传入有效参数。
    • +
    • -4:内置加密模式错误或 SDK 加载外部加密库失败。请检查枚举值或重新加载外部加密库。
    • +
    • -7:SDK 未初始化。请先初始化 实例后再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请传入有效参数。
    • +
    • -4:内置加密模式错误或 SDK 加载外部加密库失败。请检查枚举值或重新加载外部加密库。
    • +
    • -7:SDK 未初始化。请在调用此方法前初始化 实例。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请传入有效参数。
    • +
    • -4:内置加密模式错误或 SDK 加载外部加密库失败。请检查枚举值或重新加载外部加密库。
    • +
    • -7:SDK 未初始化。请在调用此方法前初始化 实例。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableextension.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableextension.dita new file mode 100644 index 00000000000..6f7d29e4a9f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableextension.dita @@ -0,0 +1,176 @@ + + + + <ph keyref="enableExtension"/> + 启用或禁用插件。启用或禁用扩展功能。启用或禁用扩展功能。启用或禁用扩展功能。 + + + + + + + + +
+

+ virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; + public abstract int enableExtension(String provider, String extension, ExtensionInfo extensionInfo, boolean enable); + - (int)enableExtensionWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + enabled:(BOOL)enabled + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(enableExtension(withVendor:extension:enabled:sourceType:)); + - (int)enableExtensionWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + enabled:(BOOL)enabled + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(enableExtension(withVendor:extension:enabled:sourceType:)); +

+
+
+

通过调用该方法,你可以在不更改处理流程的情况下动态启用或禁用插件。例如,启用或禁用 Extension_A 表示数据将被 Extension_A 处理或绕过。

+

通过调用该方法,你可以动态启用或禁用扩展功能,而无需更改处理流程。

+ 出于兼容性考虑,如果你尚未调用 会自动注册指定的插件。建议你显式调用 + 会在未调用 的情况下自动注册指定扩展,以保证兼容性。建议你显式调用 + +
    +
  • 如果你想启用多个扩展,需要多次调用该方法。
  • +
  • 成功调用该方法后,不能再加载其他扩展。
  • +
+
+ +
    +
  • 如果你想启用多个扩展,需要多次调用该方法。
  • +
  • 成功调用该方法后,不能再加载其他扩展。
  • +
+
+
+
+ 调用时机 +

该方法建议在你加入频道后调用。

+

该方法建议在你加入频道后调用。

+
+
+ 参数 + + + provider + 插件提供方的名称。 + + + extension + 插件的名称。 + + + enable + 是否启用插件: +
    +
  • :(默认)启用插件。
  • +
  • :禁用插件。
  • +
+
+
+ + type + 插件的数据源类型,详见 + + + provider + 扩展提供方的名称,例如声网。 + + + extension + 扩展的名称,例如 agora.beauty。 + + + extensionInfo + 扩展的相关信息。 + + + enable + 是否启用该扩展: +
    +
  • :(默认)启用扩展。
  • +
  • :禁用扩展。
  • +
+
+
+ + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + enabled + 是否启用该扩展: +
    +
  • :启用扩展。
  • +
  • :禁用扩展。
  • +
+
+
+ + sourceType + 扩展的来源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + enabled + 是否启用该扩展: +
    +
  • :启用扩展。
  • +
  • :禁用扩展。
  • +
+
+
+ + sourceType + 扩展的来源类型,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablefacedetection.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablefacedetection.dita new file mode 100644 index 00000000000..dcd22eb9883 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablefacedetection.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="enableFaceDetection"/> + 启用或关闭本地用户的人脸检测功能。启用或关闭本地用户的人脸检测功能。启用或关闭本地用户的人脸检测功能。 + + + + + + + + +
+

+ virtual int enableFaceDetection(bool enabled) = 0; + - (int)enableFaceDetection:(BOOL)enable NS_SWIFT_NAME(enableFaceDetection(_:)); + public abstract int enableFaceDetection(boolean enabled); +

+
+
+

你可以通过该方法启用或关闭本地用户的人脸检测功能。该方法需要在摄像头启动后调用,例如调用 方法后。启用后,SDK 会通过 回调报告本地用户的人脸信息,包括: +

    +
  • 本地视频的宽度和高度。
  • +
  • 人脸在本地视图中的位置。
  • +
  • 人脸与屏幕之间的距离。
  • +
+

+ 该方法仅适用于 Android 和 iOS 平台。 +
+
+ 调用时机 +

该方法需在调用 startPreview 开启摄像头之后调用。

+

该方法需要在摄像头启动后调用,例如调用 方法后。

+

该方法需在调用 startPreview 启动相机后调用。

+
+ +
+ 参数 + + + enabled + 是否启用本地用户的人脸检测功能: +
    +
  • :启用人脸检测。
  • +
  • :(默认)关闭人脸检测。
  • +
+
+
+ + enable + 是否启用本地用户的人脸检测功能: +
    +
  • :启用人脸检测。
  • +
  • :(默认)关闭人脸检测。
  • +
+
+
+ + enabled + 是否启用本地用户的人脸检测功能: +
    +
  • :启用人脸检测。
  • +
  • :(默认)关闭人脸检测。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring.dita new file mode 100644 index 00000000000..cb32d34fee7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="enableInEarMonitoring"/> + 启用或关闭耳返监听功能。启用或关闭耳返监听。启用或关闭耳返监听功能。 + + + + + + + + +
+

+ - (int)enableInEarMonitoring:(BOOL)enabled NS_SWIFT_NAME(enable(inEarMonitoring:)); + public abstract int enableInEarMonitoring(boolean enabled); + - (int)enableInEarMonitoring:(BOOL)enabled NS_SWIFT_NAME(enable(inEarMonitoring:)); +

+
+
+

你可以调用该方法启用或关闭耳返监听功能。

+

你可以调用该方法启用或关闭耳返监听功能。

+ 仅在使用有线或蓝牙耳机时有效。 + 你必须使用有线或蓝牙耳机才能听到耳返监听效果。 + 仅在使用有线或蓝牙耳机时有效。 +
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + enabled + 是否启用耳返监听功能: +
    +
  • :启用耳返监听功能。
  • +
  • :(默认)关闭耳返监听功能。
  • +
+
+
+ + enabled + 是否启用耳返监听(默认值为 ): +
    +
  • :启用耳返监听。
  • +
  • :关闭耳返监听。
  • +
+
+
+ + enabled + 是否启用耳返监听功能: +
    +
  • :启用耳返监听功能。
  • +
  • :(默认)关闭耳返监听功能。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或耳机。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或有线耳机。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或耳机。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring2.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring2.dita new file mode 100644 index 00000000000..1289bfa0f8e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableinearmonitoring2.dita @@ -0,0 +1,146 @@ + + + + <ph keyref="enableInEarMonitoring2"/> + 启用或关闭耳返功能。启用或关闭耳返监听功能。启用或关闭耳返监听功能。启用或关闭耳返监听功能。 + + + + + + + + +
+

+ virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0; + public abstract int enableInEarMonitoring(boolean enabled, int includeAudioFilters); + - (int)enableInEarMonitoring:(BOOL)enabled includeAudioFilters:(AgoraEarMonitoringFilterType)includeAudioFilters NS_SWIFT_NAME(enable(inEarMonitoring:includeAudioFilters:)); + - (int)enableInEarMonitoring:(BOOL)enabled includeAudioFilters:(AgoraEarMonitoringFilterType)includeAudioFilters NS_SWIFT_NAME(enable(inEarMonitoring:includeAudioFilters:)); +

+
+
+ 你必须使用有线或蓝牙耳机才能听到耳返效果。 + 你必须使用有线或蓝牙耳机才能听到耳返监听效果。 + 你必须使用有线或蓝牙耳机才能听到耳返监听效果。 + 你必须使用有线或蓝牙耳机才能听到耳返监听效果。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + enabled + 是否启用耳返功能。 + +
    +
  • :启用耳返功能。
  • +
  • :(默认)关闭耳返功能。
  • +
+
+
+
+ + includeAudioFilters + 耳返功能使用的音频滤镜类型,详见 + + + enabled + 是否启用耳返监听功能。 +
    +
  • :启用耳返监听。
  • +
  • :(默认)关闭耳返监听。
  • +
+
+
+ + includeAudioFilters + + 该参数仅在 enabled 时生效。耳返监听的音频滤镜类型: +
    +
  • EAR_MONITORING_FILTER_NONE (1 << 0):(1)耳返监听中不添加音频滤镜。
  • +
  • EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS (1 << 1):(2)在耳返监听中添加人声特效音频滤镜。如果你实现了美声、音效等功能,用户可以听到添加这些效果后的声音。该枚举值支持使用按位或运算符(|)组合使用。
  • +
  • EAR_MONITORING_FILTER_NOISE_SUPPRESSION (1 << 2):(4)在耳返监听中添加降噪音频滤镜。该枚举值支持使用按位或运算符(|)组合使用。
  • +
  • EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER (1 << 15):复用发送端已处理的音频滤镜用于耳返监听。该枚举值可降低 CPU 使用率,但会增加耳返监听延迟,适用于对延迟不敏感但要求低 CPU 消耗的场景。该枚举值仅支持单独使用,选中后其他音频滤镜配置将自动失效。
  • +
+
+
+ + enabled + 是否启用耳返监听功能。 +
    +
  • :启用耳返监听。
  • +
  • :(默认)关闭耳返监听。
  • +
+
+
+ + includeAudioFilters + 耳返监听的音频滤波器类型,详见 + + + enabled + 是否启用耳返监听功能。 +
    +
  • :启用耳返监听。
  • +
  • :(默认)关闭耳返监听。
  • +
+
+
+ + includeAudioFilters + 耳返监听的音频滤波器类型,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前的音频路由为蓝牙或有线耳机。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或有线耳机。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或有线耳机。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -8:请确保当前音频路由为蓝牙或有线耳机。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableinstantmediarendering.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableinstantmediarendering.dita new file mode 100644 index 00000000000..df9109b19cf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableinstantmediarendering.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="enableInstantMediaRendering"/> + 启用音视频帧的极速渲染。启用音视频帧的即时渲染。启用音视频帧的极速渲染。启用音视频帧的极速渲染。 + + + + + + + + +
+

+ virtual int enableInstantMediaRendering() = 0; + public abstract int enableInstantMediaRendering(); + - (int)enableInstantMediaRendering NS_SWIFT_NAME(enableInstantMediaRendering()); + - (int)enableInstantMediaRendering NS_SWIFT_NAME(enableInstantMediaRendering()); +

+
+
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+
+

调用该方法后,SDK 会启用极速帧渲染模式,从而加快用户加入频道后首帧的渲染速度。

+

成功调用该方法后,SDK 会启用即时帧渲染模式,从而加快用户加入频道后首帧的渲染速度。

+

调用该方法后,SDK 会启用极速帧渲染模式,从而加快你加入频道后首帧的渲染速度。

+

调用该方法后,SDK 会启用极速帧渲染模式,从而加快你加入频道后首帧的渲染速度。

+ 主播和观众都需要调用该方法,才能体验音视频帧的极速渲染。如需关闭该模式,只能通过调用 销毁 对象。 + 主播和观众都需要调用该方法,才能体验音视频帧的即时渲染效果。一旦成功调用该方法,只能通过调用 方法销毁 对象来取消即时渲染。 + 主播和观众都需调用该方法,才能体验音视频帧的极速渲染。若需取消极速渲染,需调用 方法销毁 对象。 + 主播和观众都需调用该方法,才能体验音视频帧的极速渲染。若需取消极速渲染,需调用 方法销毁 对象。 +
+
+ 适用场景 +

声网建议在极速直播场景中为观众开启该模式。

+
+
+ 调用时机 +

该方法需要在加入频道前调用。

+

该方法需要在加入频道前调用。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7:在 初始化之前调用了该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7:在 初始化之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7:在 初始化前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7:在 初始化前调用该方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablelocalaudio.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablelocalaudio.dita new file mode 100644 index 00000000000..fd31a0f64da --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablelocalaudio.dita @@ -0,0 +1,136 @@ + + + + <ph keyref="enableLocalAudio"/> + 启用或关闭本地音频采集功能。启用或关闭本地音频采集功能。启用或关闭本地音频采集功能。启用或关闭本地音频采集功能。 + + + + + + + + +
+

+ virtual int enableLocalAudio(bool enabled) = 0; + public abstract int enableLocalAudio(boolean enabled); + - (int)enableLocalAudio:(BOOL)enabled NS_SWIFT_NAME(enableLocalAudio(_:)); + - (int)enableLocalAudio:(BOOL)enabled NS_SWIFT_NAME(enableLocalAudio(_:)); +

+
+
+

该方法用于关闭或重新启用本地音频功能,从而停止或重新开始本地音频采集。 +该方法与 的区别如下: +

    +
  • :关闭或重新启用本地音频采集和处理。如果通过该方法关闭或重新启用本地音频采集,本地用户可能会听到远端音频播放的中断。
  • +
  • :仅停止或恢复发送本地音频流,不影响音频采集状态。
  • +
该方法不影响接收远端音频流。将 enabled 设置为 适用于只接收远端音频流而不发送本地音频的场景。你可以在加入频道前或加入频道后调用该方法。在加入频道前调用该方法仅设置设备状态,并在加入频道后立即生效。

+

用于控制本地音频采集和处理的启用状态。调用该方法关闭或重新启用本地音频采集时,本地用户可能会听到远端音频播放中断。 +该方法与 的区别如下: +

    +
  • :控制本地音频采集和处理的启用状态。
  • +
  • :仅控制是否发送本地音频流,不影响音频采集状态。
  • +
+

+

方法用于启用或关闭本地音频采集功能。默认情况下,加入频道时会启用音频功能。调用该方法可以停止或重新启动本地音频采集。 +该方法与 的区别如下: +

    +
  • :关闭或重新启用本地音频采集和处理。如果使用该方法关闭或重新启用本地音频采集,可能会导致远端音频播放出现短暂中断。
  • +
  • :仅停止或恢复发送本地音频流,不影响音频采集状态。
  • +
该方法不会影响接收远端音频流。将 enabled 设为 适用于只接收远端音频而不发送本地音频的场景。你可以在加入频道前或加入频道后调用该方法。在加入频道前调用时,仅设置设备状态,加入频道后立即生效。

+

方法用于启用或关闭本地音频采集功能。默认情况下,加入频道时会启用音频功能。调用该方法可以停止或重新启动本地音频采集。 +该方法与 的区别如下: +

    +
  • :关闭或重新启用本地音频采集和处理。如果使用该方法关闭或重新启用本地音频采集,可能会导致远端音频播放出现短暂中断。
  • +
  • :仅停止或恢复发送本地音频流,不影响音频采集状态。
  • +
该方法不会影响接收远端音频流。将 enabled 设为 适用于只接收远端音频而不发送本地音频的场景。你可以在加入频道前或加入频道后调用该方法。在加入频道前调用时,仅设置设备状态,加入频道后立即生效。

+
+
+ 适用场景 +

enableLocalAudio(false) 适用于只接收远端音频流而不发送本地采集音频的场景。该方法不会影响接收远端音频流。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。在加入频道前调用该方法仅设置设备状态,并在加入频道后立即生效。

+

你可以在加入频道前或加入频道后调用该方法。在加入频道前调用该方法仅设置设备状态,并在加入频道后立即生效。

+

你可以在加入频道前或加入频道后调用该方法。在加入频道前调用时,仅设置设备状态,加入频道后立即生效。

+

你可以在加入频道前或加入频道后调用该方法。在加入频道前调用时,仅设置设备状态,加入频道后立即生效。

+
+ +
+ 参数 + + + enabled + 是否启用本地音频采集: +
    +
  • :(默认)重新启用本地音频功能,即启动本地音频采集设备(例如麦克风)。
  • +
  • :关闭本地音频功能,即停止本地音频采集。
  • +
+
+
+ + enabled + 是否启用本地音频功能: +
    +
  • :(默认)重新启用本地音频功能,即启动本地音频采集设备(如麦克风)。
  • +
  • :关闭本地音频功能,即停止本地音频采集。
  • +
+
+
+ + enabled + +
    +
  • :(默认)重新启用本地音频功能,即启动本地音频采集设备(例如麦克风)。
  • +
  • :关闭本地音频功能,即停止本地音频采集。
  • +
+
+
+ + enabled + +
    +
  • :(默认)重新启用本地音频功能,即启动本地音频采集设备(例如麦克风)。
  • +
  • :关闭本地音频功能,即停止本地音频采集。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablelocalvideo.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablelocalvideo.dita new file mode 100644 index 00000000000..258b933d085 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablelocalvideo.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="enableLocalVideo"/> + 启用或关闭本地视频采集。启用或禁用本地视频采集。启用或关闭本地视频采集。启用或关闭本地视频采集。 + + + + + + + + +
+

+ virtual int enableLocalVideo(bool enabled) = 0; + public abstract int enableLocalVideo(boolean enabled); + - (int)enableLocalVideo:(BOOL)enabled NS_SWIFT_NAME(enableLocalVideo(_:)); + - (int)enableLocalVideo:(BOOL)enabled NS_SWIFT_NAME(enableLocalVideo(_:)); +

+
+
+

该方法用于关闭或重新启用本地视频采集,不影响接收远端视频流。调用 后,默认启用本地视频采集。如果在频道内调用 enableLocalVideo(false) 关闭本地视频采集,则会同时停止在频道内发布视频流。若需重新开始视频采集,可调用 enableLocalVideo(true),然后调用 设置 options 参数以在频道中发布本地采集的视频流。

+

该方法用于禁用或重新启用本地视频采集,不影响接收远端视频流。如果在频道内调用 enableLocalVideo(false) 禁用本地视频采集,则会同时停止在频道内发布视频流。若要重新开始视频采集,可调用 enableLocalVideo(true),然后调用 设置 options 参数以在频道中发布本地采集的视频流。调用该方法成功禁用或启用本地视频采集后,远端会触发 回调。

+

该方法用于关闭或重新开启本地视频采集,不影响接收远端视频流。调用 后,默认开启本地视频采集。如果你在频道内调用 传入 关闭本地视频采集,同时会停止在频道内发布视频流。若需重新开启视频采集,你可以调用 传入 ,然后调用 并设置 options 参数,以在频道内发布本地采集的视频流。

+

该方法用于关闭或重新开启本地视频采集,不影响接收远端视频流。调用 后,默认开启本地视频采集。如果你在频道内调用 传入 关闭本地视频采集,同时会停止在频道内发布视频流。若需重新开启视频采集,你可以调用 传入 ,然后调用 并设置 options 参数,以在频道内发布本地采集的视频流。

+ +
    +
  • 可以在加入频道前或加入频道后调用该方法。但如果在加入频道前调用,设置仅在加入频道后生效。
  • +
  • 该方法会启用内部引擎,并在离开频道后依然有效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。但如果在加入频道前调用,设置将在加入频道后生效。
  • +
  • 该方法会启用内部引擎,并在离开频道后依然有效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。但如果在加入频道前调用,设置仅在加入频道后生效。
  • +
  • 该方法会启用内部引擎,离开频道后仍然有效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。但如果在加入频道前调用,设置仅在加入频道后生效。
  • +
  • 该方法会启用内部引擎,离开频道后仍然有效。
  • +
+
+
+ +
+ 参数 + + + enabled + 是否启用本地视频采集: +
    +
  • :(默认)启用本地视频采集。
  • +
  • :关闭本地视频采集。关闭后,远端用户无法接收到本地用户的视频流,但本地用户仍可接收远端用户的视频流。设置为 时,无需本地摄像头。
  • +
+
+
+ + enabled + 是否启用本地视频采集。 +
    +
  • :(默认)启用本地视频采集。
  • +
  • :禁用本地视频采集。禁用后,远端用户无法接收到本地用户的视频流,但本地用户仍可接收远端用户的视频流。设置为 时,无需本地摄像头。
  • +
+
+
+ + enabled + 是否启用本地视频采集。 +
    +
  • :(默认)启用本地视频采集。
  • +
  • :关闭本地视频采集。关闭后,远端用户无法接收你的本地视频流,但你仍可接收远端用户的视频流。设置为 时,无需本地摄像头。
  • +
+
+
+ + enabled + 是否启用本地视频采集。 +
    +
  • :(默认)启用本地视频采集。
  • +
  • :关闭本地视频采集。关闭后,远端用户无法接收你的本地视频流,但你仍可接收远端用户的视频流。设置为 时,无需本地摄像头。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enableloopbackrecording.dita b/dita/RTC-AIDOC/API/api_irtcengine_enableloopbackrecording.dita new file mode 100644 index 00000000000..75d5802c846 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enableloopbackrecording.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="enableLoopbackRecording"/> + 启用声卡采集功能。启用声卡回采功能。 + + + + + + + + +
+

+ virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0; + - (int)enableLoopbackRecording:(BOOL)enabled deviceName:(NSString* _Nullable)deviceName NS_SWIFT_NAME(enableLoopbackRecording(_:deviceName:)); +

+
+
+

启用该功能后,声卡的输出音频会被混入发送到远端的音频流中。

+

如果你启用了声卡回采功能,声卡的输出会被混入发送到远端的音频流中。

+ +
    +
  • 该方法仅适用于 macOS 和 Windows 平台。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 如果你调用了 方法禁用了音频模块,音频采集也会被禁用。若需启用音频采集,请先调用 方法启用音频模块,再调用 方法。
  • +
+
+ +
    +
  • macOS 系统的默认声卡不支持录音功能。从 v4.5.0 起,当你首次调用该方法时,SDK 会自动安装由声网开发的内置虚拟声卡 AgoraALD。安装成功后,音频路由会自动切换到虚拟声卡,并使用其进行音频采集。
  • +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 如果你调用 方法禁用了音频模块,音频采集也会被禁用。如果你需要启用音频采集,请先调用 方法启用音频模块,然后再调用 方法。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用声卡采集: +
    +
  • :启用声卡采集。你可以在系统的音频设备 > 输出中查看虚拟声卡名称。
  • +
  • :禁用声卡采集。系统的音频设备 > 输出中不会显示虚拟声卡名称。
  • +
+
+
+ + deviceName + +
    +
  • macOS:虚拟声卡的设备名称。默认值为 ,表示使用 AgoraALD 进行声卡采集。
  • +
  • Windows:声卡的设备名称。默认值为 ,表示 SDK 使用你设备的声卡进行声卡采集。
  • +
+
+
+ + enabled + 是否启用声卡回采功能。 +
    +
  • :启用声卡采集。你可以在系统的 **Audio Devices > Output** 中找到虚拟声卡的名称。
  • +
  • :禁用声卡采集。虚拟声卡的名称不会显示在系统的 **Audio Devices > Output** 中。
  • +
+
+
+ + deviceName + 虚拟声卡的设备名称。默认值为 ,表示使用 AgoraALD 进行声卡回采。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablemainqueuedispatch.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablemainqueuedispatch.dita new file mode 100644 index 00000000000..4528b125496 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablemainqueuedispatch.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="enableMainQueueDispatch"/> + 启用或禁用将回调方法派发到主线程。启用或禁用将回调方法派发到主线程。 + + + + + + + + +
+

+ - (int)enableMainQueueDispatch:(BOOL)enabled NS_SWIFT_NAME(enableMainQueueDispatch(_:)); + - (int)enableMainQueueDispatch:(BOOL)enabled NS_SWIFT_NAME(enableMainQueueDispatch(_:)); +

+
+
+

如果未将回调方法派发到主线程,则需要自行将 UI 操作派发到主线程。

+

如果未将回调方法派发到主线程,则需要自行将 UI 操作派发到主线程。

+
+
+ 参数 + + + enabled + :将回调方法派发到主线程。 +:不将回调方法派发到主线程。 + + + enabled + :将回调方法派发到主线程。 +:不将回调方法派发到主线程。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablemulticamera.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablemulticamera.dita new file mode 100644 index 00000000000..5c7da361a00 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablemulticamera.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="enableMultiCamera"/> + 启用或关闭多摄像头采集功能。启用或关闭多摄像头采集模式。 + + + + + + + + +
+

+ virtual int enableMultiCamera(bool enabled, const CameraCapturerConfiguration& config) = 0; + - (int)enableMultiCamera:(BOOL)enabled config:(AgoraCameraCapturerConfiguration* _Nullable)config NS_SWIFT_NAME(enableMultiCamera(_:config:)); +

+
+
+

声网建议你在已有摄像头用于视频采集的场景中,按照以下步骤使用多个摄像头进行视频采集和发布: +

    +
  1. 调用该方法启用多摄像头采集。
  2. +
  3. 调用 startPreview 启动本地视频预览。
  4. +
  5. 调用 ,并设置 sourceType,以使用第二个摄像头开始采集。
  6. +
  7. 调用 ,并将 publishSecondaryCameraTrack 设置为 ,以发布第二个摄像头采集的视频流。
  8. +
若需关闭多摄像头采集,请按以下步骤操作: +
    +
  1. 调用
  2. +
  3. 调用该方法并将 enabled 设置为
  4. +
该方法仅适用于 iOS 平台。使用该功能时,请确保系统版本为 13.0 或更高。支持多摄像头采集的最低 iOS 设备型号如下: +
    +
  • iPhone XR。
  • +
  • iPhone XS。
  • +
  • iPhone XS Max。
  • +
  • iPad Pro 第三代及更新机型。
  • +
+

+

声网建议你在已有摄像头用于视频采集的场景中,按照以下步骤使用多摄像头进行视频采集和发布: +

    +
  1. 调用该方法启用多摄像头采集模式。
  2. +
  3. 调用 启动本地视频预览。
  4. +
  5. 调用 ,并设置 sourceType 以使用第二个摄像头进行视频采集。
  6. +
  7. 调用 ,并将 publishSecondaryCameraTrack 设置为 ,以在频道中发布第二个摄像头采集的视频流。
  8. +
如果你想关闭多摄像头采集模式,请按以下步骤操作: +
    +
  1. 调用
  2. +
  3. 调用该方法并将 enabled 设置为
  4. +
使用该功能时,请确保系统版本为 iOS 13.0 或更高。支持多摄像头采集的最低 iOS 设备型号如下: +
    +
  • iPhone XR
  • +
  • iPhone XS
  • +
  • iPhone XS Max
  • +
  • iPad Pro 第三代及更新机型
  • +
+

+ 你可以在调用 startPreview 之前或之后调用该方法启用多摄像头采集: +
    +
  • 如果在调用 startPreview 之前启用,则本地视频预览会同时显示两个摄像头采集的画面。
  • +
  • 如果在调用 startPreview 之后启用,SDK 会先停止当前摄像头采集,然后启用主摄像头和第二个摄像头。本地视频预览会短暂变黑,随后自动恢复。
  • +
+
+ 你可以在调用 之前或之后调用该方法启用多摄像头采集: +
    +
  • 如果在 之前启用,本地视频预览会同时显示两个摄像头采集的画面。
  • +
  • 如果在 之后启用,SDK 会先停止当前摄像头采集,然后启用主摄像头和第二个摄像头。本地视频预览会短暂变黑,然后自动恢复正常。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用多摄像头视频采集模式: +
    +
  • :启用多摄像头采集模式,SDK 使用多个摄像头进行视频采集。
  • +
  • :关闭多摄像头采集模式,SDK 使用单个摄像头进行视频采集。
  • +
+
+
+ + config + 第二个摄像头的采集配置,详见 + + + enabled + 是否启用多摄像头视频采集模式: +
    +
  • :启用多摄像头采集模式,SDK 使用多个摄像头进行视频采集。
  • +
  • :关闭多摄像头采集模式,SDK 使用单个摄像头进行视频采集。
  • +
+
+
+ + config + 第二个摄像头的采集配置。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablesoundpositionindication.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablesoundpositionindication.dita new file mode 100644 index 00000000000..2b025b7ebf1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablesoundpositionindication.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="enableSoundPositionIndication"/> + 启用或关闭远端用户的立体声声像功能。启用或关闭远端用户的立体声声像功能。启用或关闭远端用户的立体声声像功能。启用或关闭远端用户的立体声声像功能。 + + + + + + + + +
+

+ virtual int enableSoundPositionIndication(bool enabled) = 0; + public abstract int enableSoundPositionIndication(boolean enabled); + - (int)enableSoundPositionIndication:(BOOL)enabled NS_SWIFT_NAME(enableSoundPositionIndication(_:)); + - (int)enableSoundPositionIndication:(BOOL)enabled NS_SWIFT_NAME(enableSoundPositionIndication(_:)); +

+
+
+

请确保在加入频道前调用该方法。本地用户随后可以调用 跟踪远端用户的位置。

+

请在加入频道前调用该方法。启用后,本地用户可以通过调用 跟踪远端用户的位置。

+

请确保在加入频道前调用该方法,从而使你可以通过调用 跟踪远端用户的位置。

+

请确保在加入频道前调用该方法,从而使你可以通过调用 跟踪远端用户的位置。

+
+
+ 参数 + + + enabled + 是否启用远端用户的立体声声像功能: +
    +
  • :启用立体声声像。
  • +
  • :关闭立体声声像。
  • +
+
+
+ + enabled + 是否启用远端用户的立体声声像功能: +
    +
  • :启用立体声声像。
  • +
  • :关闭立体声声像。
  • +
+
+
+ + enabled + 是否启用远端用户的立体声声像功能: +
    +
  • :启用立体声声像。
  • +
  • :关闭立体声声像。
  • +
+
+
+ + enabled + 是否启用远端用户的立体声声像功能: +
    +
  • :启用立体声声像。
  • +
  • :关闭立体声声像。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablespatialaudio.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablespatialaudio.dita new file mode 100644 index 00000000000..9d38b2ece9d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablespatialaudio.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="enableSpatialAudio"/> + 启用或关闭空间音效。启用或关闭空间音效。启用或关闭空间音效。启用或关闭空间音效。 + + + + + + + + +
+

+ virtual int enableSpatialAudio(bool enabled) = 0; + public abstract int enableSpatialAudio(boolean enabled); + - (int)enableSpatialAudio:(BOOL)enabled NS_SWIFT_NAME(enableSpatialAudio(_:)); + - (int)enableSpatialAudio:(BOOL)enabled NS_SWIFT_NAME(enableSpatialAudio(_:)); +

+
+
+

启用空间音效后,你可以调用 设置远端用户的空间音效参数。

+

你可以调用 设置远端用户的空间音效参数。

+

你可以在加入频道前或加入频道后调用该方法。启用空间音效后,可以调用 设置远端用户的空间音效参数。

+

你可以在加入频道前或加入频道后调用该方法。启用空间音效后,可以调用 设置远端用户的空间音效参数。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 此方法依赖空间音效动态库 。如果该动态库被删除,该功能将无法正常启用。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 此方法依赖空间音效动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 该方法依赖空间音效动态库 (iOS)或 AgoraSpatialAudioExtension.framework(macOS)。如果该动态库被删除,该功能将无法正常启用。
  • +
+
+ +
    +
  • 该方法依赖空间音效动态库 AgoraSpatialAudioExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,该功能将无法正常启用。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用空间音效: +
    +
  • :启用空间音效。
  • +
  • :关闭空间音效。
  • +
+
+
+ + enabled + 是否启用空间音效: +
    +
  • :启用空间音效。
  • +
  • :关闭空间音效。
  • +
+
+
+ + enabled + 是否启用空间音效: +
    +
  • :启用空间音效。
  • +
  • :关闭空间音效。
  • +
+
+
+ + enabled + 是否启用空间音效: +
    +
  • :启用空间音效。
  • +
  • :关闭空间音效。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablevideo.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablevideo.dita new file mode 100644 index 00000000000..59cf397f95b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablevideo.dita @@ -0,0 +1,123 @@ + + + + <ph keyref="enableVideo"/> + 启用视频模块。启用视频模块。启用视频模块。启用视频模块。 + + + + + + + + +
+

+ virtual int enableVideo() = 0; + public abstract int enableVideo(); + - (int)enableVideo NS_SWIFT_NAME(enableVideo()); + - (int)enableVideo NS_SWIFT_NAME(enableVideo()); +

+
+
+

默认情况下,视频模块处于关闭状态。调用该方法可启用视频模块。如果你需要在之后关闭视频模块,需要调用 方法。

+

默认情况下,视频模块处于禁用状态。调用该方法可启用视频模块。如果之后需要禁用视频模块,需要调用 方法。

+

默认情况下视频模块处于关闭状态,调用该方法可启用视频模块。如果需要关闭视频模块,需要调用 方法。 +该方法可以在加入频道前或加入频道后调用: +

    +
  • 如果在加入频道前调用,则启用视频模块。
  • +
  • 如果在语音通话过程中调用,则语音通话会自动切换为视频通话。
  • +
+

+

默认情况下视频模块处于关闭状态,调用该方法可启用视频模块。如果需要关闭视频模块,需要调用 方法。 +该方法可以在加入频道前或加入频道后调用: +

    +
  • 如果在加入频道前调用,则启用视频模块。
  • +
  • 如果在语音通话过程中调用,则语音通话会自动切换为视频通话。
  • +
+

+ 该方法会启用内部引擎,离开频道后依然有效。 +调用该方法会重置整个引擎,可能导致响应变慢。你可以根据实际需求使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
成功调用该方法会重置 的设置,请谨慎使用。
+ 该方法会启用内部引擎,离开频道后依然有效。调用该方法会重置整个引擎,可能导致响应时间变慢。你可以根据实际需求,使用以下方法独立控制视频模块的特定功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
成功调用该方法会重置 的设置,请谨慎操作。
+ 该方法启用内部引擎,离开频道后仍然有效。 +调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
成功调用该方法会重置 ,请谨慎使用。
+ 该方法启用内部引擎,离开频道后仍然有效。 +调用该方法会重置整个引擎,导致响应时间变慢。你可以根据实际需求,使用以下方法分别控制视频模块的具体功能: +
    +
  • :是否启用摄像头以创建本地视频流。
  • +
  • :是否发布本地视频流。
  • +
  • :是否订阅并播放远端视频流。
  • +
  • :是否订阅并播放所有远端视频流。
  • +
成功调用该方法会重置 ,请谨慎使用。
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用: +

    +
  • 如果在加入频道前调用,则启用视频模块。
  • +
  • 如果在语音通话中调用,则语音通话会自动切换为视频通话。
  • +
+

+

该方法可以在加入频道前或加入频道后调用: +

    +
  • 如果在加入频道前调用,则启用视频模块。
  • +
  • 如果在纯语音通话中调用,则音频通话会自动切换为视频通话。
  • +
+

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+ +
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablevideoimagesource.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablevideoimagesource.dita new file mode 100644 index 00000000000..6b2ff743394 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablevideoimagesource.dita @@ -0,0 +1,122 @@ + + + + <ph keyref="enableVideoImageSource"/> + 设置在发布视频流时是否用图片替代当前视频画面。设置在发布视频流时是否使用图片替代当前视频画面。设置在发布视频流时是否用图片替代当前视频画面。设置在发布视频流时是否用图片替代当前视频画面。 + + + + + + + + +
+

+ virtual int enableVideoImageSource(bool enable, const ImageTrackOptions& options) = 0; + public abstract int enableVideoImageSource(boolean enabled, ImageTrackOptions options); + - (int)enableVideoImageSource:(BOOL)enable + options:(AgoraImageTrackOptions *_Nullable)options NS_SWIFT_NAME(enableVideoImageSource(_:options:)); + - (int)enableVideoImageSource:(BOOL)enable + options:(AgoraImageTrackOptions *_Nullable)options NS_SWIFT_NAME(enableVideoImageSource(_:options:)); +

+
+
+

你可以调用该方法,在发布视频流时用自定义图片替代当前的视频画面。启用该功能后,可通过 options 参数设置用于替代的视频图片。若关闭该功能,远端用户将看到你发布的原始视频画面。

+

你可以在发布视频流时调用该方法,用自定义图片替代当前的视频画面。启用该功能后,可通过 options 参数设置用于替代的视频图片。禁用该功能后,远端用户将看到你发布的视频画面。

+

你可以调用该方法在发布视频流时使用自定义图片替代当前视频画面。启用该功能后,可以通过参数 options 设置用于替代的视频图片。禁用该功能后,远端用户将看到你发布的真实视频画面。

+

你可以调用该方法在发布视频流时使用自定义图片替代当前视频画面。启用该功能后,可以通过参数 options 设置用于替代的视频图片。禁用该功能后,远端用户将看到你发布的真实视频画面。

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+
+ 参数 + + + enable + 是否用自定义图片替代当前视频画面: +
    +
  • :用自定义图片替代当前视频画面。
  • +
  • :(默认)不替代当前视频画面。
  • +
+
+
+ + options + 图片配置,详见 + + + enabled + 是否使用自定义图片替代当前视频画面: +
    +
  • :使用自定义图片替代当前视频画面。
  • +
  • :(默认)不替代当前视频画面。
  • +
+
+
+ + options + 图片配置。详见 + + + enable + 是否用自定义图片替代当前视频画面: +
    +
  • :用自定义图片替代当前视频画面。
  • +
  • :(默认)不替代当前视频画面。
  • +
+
+
+ + options + 图片配置,详见 + + + enable + 是否用自定义图片替代当前视频画面: +
    +
  • :用自定义图片替代当前视频画面。
  • +
  • :(默认)不替代当前视频画面。
  • +
+
+
+ + options + 图片配置,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground.dita new file mode 100644 index 00000000000..b8c9ae39736 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground.dita @@ -0,0 +1,276 @@ + + + + <ph keyref="enableVirtualBackground"/> + 启用或关闭虚拟背景功能。启用或关闭虚拟背景功能。启用或关闭虚拟背景功能。启用或关闭虚拟背景功能。 + + + + + + + + +
+

+ virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int enableVirtualBackground(boolean enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty); + - (int)enableVirtualBackground:(BOOL)enable backData:(AgoraVirtualBackgroundSource* _Nullable)backData segData:(AgoraSegmentationProperty* _Nullable)segData NS_SWIFT_NAME(enableVirtualBackground(_:backData:segData:)); + - (int)enableVirtualBackground:(BOOL)enable backData:(AgoraVirtualBackgroundSource* _Nullable)backData segData:(AgoraSegmentationProperty* _Nullable)segData NS_SWIFT_NAME(enableVirtualBackground(_:backData:segData:)); +

+
+
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+
+

虚拟背景功能支持本地用户将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用虚拟背景功能后,频道内的所有用户都可以看到自定义背景。请在调用 startPreview 后调用此方法。

+

虚拟背景功能支持本地用户将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用该功能后,频道内所有用户都可以看到自定义背景。请在调用 startPreview 后调用该方法。

+

虚拟背景功能支持你将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用该功能后,频道内的所有用户都可以看到你设置的自定义背景。请在调用 方法后调用此方法。

+

虚拟背景功能支持你将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用该功能后,频道内的所有用户都可以看到你设置的自定义背景。请在调用 方法后调用此方法。

+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃。建议降低视频的分辨率和帧率。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的性能。声网建议在以下处理器设备上使用虚拟背景功能: +
      +
    • Snapdragon 700 系列 750G 及以上版本。
    • +
    • Snapdragon 800 系列 835 及以上版本。
    • +
    • Dimensity 700 系列 720 及以上版本。
    • +
    • Kirin 800 系列 810 及以上版本。
    • +
    • Kirin 900 系列 980 及以上版本。
    • +
    • 配备 i5 及以上 CPU 的设备。
    • +
    • 配备 A9 及以上芯片的设备,包括: +
        +
      • iPhone 6S 及以上版本。
      • +
      • iPad Air 第三代及以上版本。
      • +
      • iPad 第五代及以上版本。
      • +
      • iPad Pro 第一代及以上版本。
      • +
      • iPad mini 第五代及以上版本。
      • +
      +
    • +
    +
  • +
  • 声网建议在以下场景中使用此功能: +
      +
    • 使用高清摄像头设备,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 此方法依赖虚拟背景动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃等问题。建议降低视频的分辨率和帧率。
  • +
  • 此功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能。声网建议在以下处理器设备上使用该功能: +
      +
    • Snapdragon 700 系列 750G 及以上版本。
    • +
    • Snapdragon 800 系列 835 及以上版本。
    • +
    • Dimensity 700 系列 720 及以上版本。
    • +
    • Kirin 800 系列 810 及以上版本。
    • +
    • Kirin 900 系列 980 及以上版本。
    • +
    +
  • +
  • 声网建议在以下场景中使用该功能: +
      +
    • 使用高清摄像头设备,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 此方法依赖虚拟背景动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃。因此,建议你降低视频的分辨率和帧率。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能。声网建议你在以下设备上使用该功能: +
      +
    • iOS:配备 A9 芯片及以上的设备,包括: +
        +
      • iPhone 6S 及以上机型。
      • +
      • iPad Air 第三代及以上机型。
      • +
      • iPad 第五代及以上机型。
      • +
      • iPad Pro 第一代及以上机型。
      • +
      • iPad mini 第五代及以上机型。
      • +
      +
    • +
    • macOS:配备 i5 及以上处理器的设备。
    • +
    +
  • +
  • 声网建议你在以下场景中使用该功能: +
      +
    • 使用高清摄像头设备,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景颜色为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 此方法依赖虚拟背景动态库 (iOS)或 AgoraVideoSegmentationExtension.framework(macOS)。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃。因此,建议你降低视频的分辨率和帧率。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能。声网建议你在以下设备上使用该功能: +
      +
    • iOS:配备 A9 芯片及以上的设备,包括: +
        +
      • iPhone 6S 及以上机型。
      • +
      • iPad Air 第三代及以上机型。
      • +
      • iPad 第五代及以上机型。
      • +
      • iPad Pro 第一代及以上机型。
      • +
      • iPad mini 第五代及以上机型。
      • +
      +
    • +
    • macOS:配备 i5 及以上处理器的设备。
    • +
    +
  • +
  • 声网建议你在以下场景中使用该功能: +
      +
    • 使用高清摄像头设备,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景颜色为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 此方法依赖虚拟背景动态库 AgoraVideoSegmentationExtension.xcframework(iOS)或 (macOS)。若该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 参数 + + + enabled + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backgroundSource + 自定义背景。SDK 会对自定义背景图像进行缩放和裁剪,以适配采集的视频分辨率,并确保图像内容不失真。详见 + + + segproperty + 背景图像的处理属性。详见 + + + type + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 若使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 若使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+ + enabled + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backgroundSource + 自定义背景。为了使自定义背景图像的分辨率适配 SDK 采集的视频分辨率,SDK 会对图像进行缩放和裁剪,确保图像内容不失真。详见 + + + segproperty + 背景图像的处理属性。详见 + + + enable + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backData + 自定义背景。为适配 SDK 采集的视频分辨率,SDK 会对自定义背景图像进行缩放和裁剪,确保图像内容不失真。详见 + + + segData + 背景图像的处理属性,详见 + + + enable + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backData + 自定义背景。为适配 SDK 采集的视频分辨率,SDK 会对自定义背景图像进行缩放和裁剪,确保图像内容不失真。详见 + + + segData + 背景图像的处理属性,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。建议在性能更高的设备上尝试此功能。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。声网建议在性能更高的设备上尝试。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。声网建议你在性能更高的设备上尝试使用该功能。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。声网建议你在性能更高的设备上尝试使用该功能。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground2.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground2.dita new file mode 100644 index 00000000000..33694a48e0e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablevirtualbackground2.dita @@ -0,0 +1,233 @@ + + + + <ph keyref="enableVirtualBackground2"/> + 启用虚拟背景并指定媒体源,或关闭虚拟背景。启用虚拟背景并指定媒体源,或关闭虚拟背景。启用虚拟背景并指定媒体源,或关闭虚拟背景。 + + + + + + + + +
+

+ - (int)enableVirtualBackground:(BOOL)enable backData:(AgoraVirtualBackgroundSource* _Nullable)backData segData:(AgoraSegmentationProperty* _Nullable)segData sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(enableVirtualBackground(_:backData:segData:sourceType:)); + public abstract int enableVirtualBackground(boolean enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, Constants.MediaSourceType sourceType); + - (int)enableVirtualBackground:(BOOL)enable backData:(AgoraVirtualBackgroundSource* _Nullable)backData segData:(AgoraSegmentationProperty* _Nullable)segData sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(enableVirtualBackground(_:backData:segData:sourceType:)); +

+
+
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+
+

虚拟背景功能支持你将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用该功能后,频道内的所有用户都可以看到自定义背景。该方法与 方法均可用于启用或关闭虚拟背景,但该方法允许你指定应用虚拟背景的媒体源类型。请在调用 方法后调用本方法。

+

该方法用于启用或关闭虚拟背景功能。你可以将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用后,频道内所有用户都可以看到自定义背景。 + +该方法与 功能相同,但本方法允许你指定应用虚拟背景的媒体源类型。请在调用 startPreview 后调用本方法。

+

虚拟背景功能支持你将原始背景替换为静态图片、动态视频、模糊背景或人像背景分割,以实现画中画效果。启用该功能后,频道内的所有用户都可以看到自定义背景。该方法与 方法均可用于启用或关闭虚拟背景,但该方法允许你指定应用虚拟背景的媒体源类型。请在调用 方法后调用本方法。

+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃等问题。因此,建议降低视频的分辨率和帧率。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能。声网建议你在以下设备上使用该功能: +
      +
    • iOS:配备 A9 芯片及以上的设备,包括: +
        +
      • iPhone 6S 及以上机型。
      • +
      • iPad Air 第三代及以上机型。
      • +
      • iPad 第五代及以上机型。
      • +
      • iPad Pro 第一代及以上机型。
      • +
      • iPad mini 第五代及以上机型。
      • +
      +
    • +
    • macOS:配备 i5 及以上处理器的设备。
    • +
    +
  • +
  • 声网建议你在以下场景中使用该功能: +
      +
    • 使用高清摄像头,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景颜色应为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 本方法依赖虚拟背景动态库 (iOS)或 AgoraVideoSegmentationExtension.framework(macOS)。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃。建议降低视频的分辨率和帧率。
  • +
  • 此功能对设备性能要求较高。调用本方法时,SDK 会自动检测当前设备的能力。声网建议在以下处理器设备上使用该功能: +
      +
    • Snapdragon 700 系列 750G 及以上版本。
    • +
    • Snapdragon 800 系列 835 及以上版本。
    • +
    • Dimensity 700 系列 720 及以上版本。
    • +
    • Kirin 800 系列 810 及以上版本。
    • +
    • Kirin 900 系列 980 及以上版本。
    • +
    +
  • +
  • 声网建议在以下场景中使用该功能: +
      +
    • 使用高清摄像头设备,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 本方法依赖虚拟背景动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 使用视频作为虚拟背景会导致内存持续增长,可能引发应用崩溃等问题。因此,建议降低视频的分辨率和帧率。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能。声网建议你在以下设备上使用该功能: +
      +
    • iOS:配备 A9 芯片及以上的设备,包括: +
        +
      • iPhone 6S 及以上机型。
      • +
      • iPad Air 第三代及以上机型。
      • +
      • iPad 第五代及以上机型。
      • +
      • iPad Pro 第一代及以上机型。
      • +
      • iPad mini 第五代及以上机型。
      • +
      +
    • +
    • macOS:配备 i5 及以上处理器的设备。
    • +
    +
  • +
  • 声网建议你在以下场景中使用该功能: +
      +
    • 使用高清摄像头,且环境光线均匀。
    • +
    • 拍摄画面中物体较少,人像为半身像且无遮挡。
    • +
    • 背景颜色应为纯色,且与用户服装颜色有明显区别。
    • +
    +
  • +
  • 本方法依赖虚拟背景动态库 AgoraVideoSegmentationExtension.xcframework(iOS)或 (macOS)。若该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 参数 + + + enable + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backData + 自定义背景。SDK 会对背景图像进行缩放和裁剪,以适配采集视频的分辨率,并确保图像内容不被拉伸变形。详见 + + + segData + 背景图像的处理属性。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 若使用自定义视频源,请设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enabled + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backgroundSource + 自定义背景。SDK 会对自定义背景图像进行缩放和裁剪,以适配采集的视频分辨率,并确保图像内容不失真。详见 + + + segproperty + 背景图像的处理属性。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 + 在本方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 PRIMARY_CAMERA_SOURCE
  • +
  • 若使用自定义视频源,请将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否启用虚拟背景: +
    +
  • :启用虚拟背景。
  • +
  • :关闭虚拟背景。
  • +
+
+
+ + backData + 自定义背景。SDK 会对背景图像进行缩放和裁剪,以适配采集视频的分辨率,并确保图像内容不被拉伸变形。详见 + + + segData + 背景图像的处理属性。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 若使用自定义视频源,请设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。声网建议你在性能更高的设备上尝试。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:设备能力不满足虚拟背景功能的要求。声网建议在性能更高的设备上尝试使用该功能。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:设备性能不满足虚拟背景功能的要求。声网建议你在性能更高的设备上尝试。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablevoiceaituner.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablevoiceaituner.dita new file mode 100644 index 00000000000..633181b2665 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablevoiceaituner.dita @@ -0,0 +1,123 @@ + + + + <ph keyref="enableVoiceAITuner"/> + 启用或关闭语音 AI 调音器。启用或关闭语音 AI 调音器。启用或关闭语音 AI 调音器。启用或关闭语音 AI 调音器。 + + + + + + + + +
+

+ virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0; + public abstract int enableVoiceAITuner(boolean enabled, Constants.VOICE_AI_TUNER_TYPE type); + - (int)enableVoiceAITuner:(BOOL)enabled type:(AgoraVoiceAITunerType)type NS_SWIFT_NAME(enableVoiceAITuner(_:type:)); + - (int)enableVoiceAITuner:(BOOL)enabled type:(AgoraVoiceAITunerType)type NS_SWIFT_NAME(enableVoiceAITuner(_:type:)); +

+
+
+

支持增强音质和调整音色风格。

+

支持增强音质和调整音色风格。

+

支持增强音质和调整音色风格。

+
+
+ 适用场景 +

社交娱乐场景,包括在线 KTV、在线播客和展厅直播等对音质要求较高的场景。

+
+
+ 调用时机 +

该方法可在加入频道前或后调用。

+

该方法可在加入频道前或后调用。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + enabled + 是否启用语音 AI 调音器: +
    +
  • :启用语音 AI 调音器。
  • +
  • :(默认)关闭语音 AI 调音器。
  • +
+
+
+ + type + 语音 AI 调音器的音效类型,详见 + + + enabled + 是否启用语音 AI 调音器: +
    +
  • :启用语音 AI 调音器。
  • +
  • :(默认)关闭语音 AI 调音器。
  • +
+
+
+ + type + 语音 AI 调音器的音效类型,详见 + + + enabled + 是否启用语音 AI 调音器: +
    +
  • :启用语音 AI 调音器。
  • +
  • :(默认)关闭语音 AI 调音器。
  • +
+
+
+ + type + 语音 AI 调音器的音效类型,详见 + + + enabled + 是否启用语音 AI 调音器: +
    +
  • :启用语音 AI 调音器。
  • +
  • :(默认)关闭语音 AI 调音器。
  • +
+
+
+ + type + 语音 AI 调音器的音效类型,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enablewebsdkinteroperability.dita b/dita/RTC-AIDOC/API/api_irtcengine_enablewebsdkinteroperability.dita new file mode 100644 index 00000000000..777487fda8a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enablewebsdkinteroperability.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="enableWebSdkInteroperability"/> + 启用与声网 Web SDK 的互通功能(仅适用于极速直播场景)。启用或关闭与声网 Web SDK 的互通功能,仅适用于极速直播场景。启用或关闭与声网 Web SDK 的互通功能。启用或关闭与声网 Web SDK 的互通功能。 + + + + + + + + +
+

+ virtual int enableWebSdkInteroperability(bool enabled) __deprecated = 0; + public abstract int enableWebSdkInteroperability(boolean enabled); + - (int)enableWebSdkInteroperability:(BOOL)enabled NS_SWIFT_NAME(enableWebSdkInteroperability(_:)) __deprecated; + - (int)enableWebSdkInteroperability:(BOOL)enabled NS_SWIFT_NAME(enableWebSdkInteroperability(_:)) __deprecated; +

+
+
+
+ +
废弃
+
该方法已废弃。SDK 自动开启与 Web SDK 的互通,无需调用该方法开启。
+
+ +
废弃
+
该方法已废弃。SDK 自动开启与 Web SDK 的互通,无需调用该方法开启。
+
+ +
废弃
+
该方法已废弃。SDK 自动开启与 Web SDK 的互通,无需调用该方法开启。
+
+ +
废弃
+
该方法已废弃。SDK 自动开启与 Web SDK 的互通,无需调用该方法开启。
+
+
+

你可以调用该方法启用或关闭与声网 Web SDK 的互通功能。如果频道中有 Web SDK 用户,必须调用该方法,否则 Native 用户的视频画面在 Web 端会显示为黑屏。该方法仅适用于极速直播场景,在语音通话场景中默认启用互通功能。

+

如果频道中存在 Web SDK 用户,必须调用该方法,否则 Native 用户的视频画面在 Web 端将显示为黑屏。该方法仅适用于极速直播场景,在语音通话场景中默认启用互通功能。

+

你可以调用该方法启用或关闭与声网 Web SDK 的互通功能。如果频道中有 Web SDK 用户,确保调用该方法,否则 Native 用户的视频画面在 Web 端将显示为黑屏。该方法仅适用于极速直播场景,在语音通话场景中默认启用互通功能。

+

你可以调用该方法启用或关闭与声网 Web SDK 的互通功能。如果频道中有 Web SDK 用户,确保调用该方法,否则 Native 用户的视频画面在 Web 端将显示为黑屏。该方法仅适用于极速直播场景,在语音通话场景中默认启用互通功能。

+
+
+ 参数 + + + enabled + 是否启用互通功能: +
    +
  • :启用互通功能。
  • +
  • :(默认)关闭互通功能。
  • +
+
+
+ + enabled + 是否启用互通功能: +
    +
  • :启用互通功能。
  • +
  • :(默认)关闭互通功能。
  • +
+
+
+ + enabled + 是否启用互通功能: +
    +
  • :启用互通功能。
  • +
  • :(默认)关闭互通功能。
  • +
+
+
+ + enabled + 是否启用互通功能: +
    +
  • :启用互通功能。
  • +
  • :(默认)关闭互通功能。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_enumeratedevices.dita b/dita/RTC-AIDOC/API/api_irtcengine_enumeratedevices.dita new file mode 100644 index 00000000000..69cbc8c1350 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_enumeratedevices.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="enumerateDevices"/> + 枚举系统中的所有音频和视频设备。 + + + + + + + + +
+

+ - (NSArray<AgoraRtcDeviceInfo *> * _Nullable)enumerateDevices:(AgoraMediaDeviceType)type NS_SWIFT_NAME(enumerateDevices(_:)); +

+
+
+

该方法返回一个 NSArray 对象,其中包含系统中的所有音频和视频设备。你可以使用 NSArray 类型的 对象来枚举设备。

+ 请勿在主线程中调用此方法。 +
+
+ 参数 + + + type + 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回一个包含所有音频和视频设备的 NSArray 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_followsystemplaybackdevice_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_followsystemplaybackdevice_irtcengine.dita new file mode 100644 index 00000000000..367611eff0b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_followsystemplaybackdevice_irtcengine.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="followSystemPlaybackDevice_IRtcEngine"/> + 设置 SDK 使用的音频播放设备是否跟随系统默认音频播放设备。 + + + + + + + + +
+

+ - (int)followSystemPlaybackDevice:(BOOL)enable NS_SWIFT_NAME(followSystemPlaybackDevice(_:)); +

+
+
+

当系统默认音频播放设备发生变化时,SDK 会根据你的设置自动切换音频播放设备。

+
+
+ 参数 + + + enable + 是否跟随系统默认音频播放设备: +
    +
  • :跟随系统默认音频播放设备。当系统默认音频播放设备发生变化时,SDK 会立即切换音频播放设备。
  • +
  • :不跟随系统默认音频播放设备。仅当当前使用的音频播放设备断开连接时,SDK 才会切换到系统默认音频播放设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_followsystemrecordingdevice_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_followsystemrecordingdevice_irtcengine.dita new file mode 100644 index 00000000000..1e448595978 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_followsystemrecordingdevice_irtcengine.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="followSystemRecordingDevice_IRtcEngine"/> + 设置你使用的 SDK 音频录制设备是否跟随系统默认音频录制设备。 + + + + + + + + +
+

+ - (int)followSystemRecordingDevice:(BOOL)enable NS_SWIFT_NAME(followSystemRecordingDevice(_:)); +

+
+
+
+ 参数 + + + enable + 是否跟随系统默认音频录制设备: +
    +
  • :跟随系统默认音频录制设备。当系统默认音频录制设备发生变化时,SDK 会立即切换音频录制设备。
  • +
  • :不跟随系统默认音频录制设备。仅当当前使用的音频录制设备断开连接时,SDK 才会切换到系统默认音频录制设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiodeviceinfo.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiodeviceinfo.dita new file mode 100644 index 00000000000..c655564cc76 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiodeviceinfo.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="getAudioDeviceInfo"/> + 获取音频设备信息。获取音频设备信息。 + + + + + + + + +
+

+ virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0; + public abstract DeviceInfo getAudioDeviceInfo(); +

+
+
+

调用该方法可以获取音频设备是否支持超低延迟采集和播放。

+ +
    +
  • 该方法仅适用于 Android 平台。
  • +
  • 你可以在加入频道前或后调用该方法。
  • +
+
+ 你可以在加入频道前或加入频道后调用该方法。 +
+
+ 参数 + + + deviceInfo + 输入和输出参数,表示音频设备信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功,返回 对象。 +方法调用失败,返回 null

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudioeffectmanager.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudioeffectmanager.dita new file mode 100644 index 00000000000..ae1a42286c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudioeffectmanager.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getAudioEffectManager"/> + 获取用于管理音效文件的 IAudioEffectManager 实例。 + + + + + + + + +
+

+ public abstract IAudioEffectManager getAudioEffectManager(); +

+
+
+
+ 返回值 +

方法调用成功,返回 IAudioEffectManager 实例。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingcurrentposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingcurrentposition.dita new file mode 100644 index 00000000000..ac228343a85 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingcurrentposition.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="getAudioMixingCurrentPosition"/> + 获取当前混音的播放进度(毫秒)。获取当前混音的播放位置(毫秒)。获取当前混音的播放位置(毫秒)。获取当前混音的播放位置(毫秒)。 + + + + + + + + +
+

+ virtual int getAudioMixingCurrentPosition() = 0; + public abstract int getAudioMixingCurrentPosition(); + - (int)getAudioMixingCurrentPosition NS_SWIFT_NAME(getAudioMixingCurrentPosition()); + - (int)getAudioMixingCurrentPosition NS_SWIFT_NAME(getAudioMixingCurrentPosition()); +

+
+
+

获取音频混音的播放位置(毫秒)。

+

获取音频混音的播放位置(毫秒)。

+ +
    +
  • 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。
  • +
  • 如果需要多次调用 ,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+ +
    +
  • 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。
  • +
  • 如果需要多次调用 ,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+ +
    +
  • 你需要在调用 并收到 audioMixingStateChanged 回调(AgoraAudioMixingStateTypePlaying)后调用此方法。
  • +
  • 如果你需要多次调用 ,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+ +
    +
  • 你需要在调用 并收到 audioMixingStateChanged 回调(AgoraAudioMixingStateTypePlaying)后调用此方法。
  • +
  • 如果你需要多次调用 ,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+
+
+ 返回值 +

+

    +
  • ≥ 0:方法调用成功,返回当前混音的播放进度(毫秒)。返回 0 表示当前音乐文件尚未开始播放。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回当前混音的播放位置(毫秒)。0 表示当前音乐文件尚未开始播放。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回当前混音的播放位置(毫秒)。返回 0 表示当前音乐文件尚未开始播放。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回当前混音的播放位置(毫秒)。返回 0 表示当前音乐文件尚未开始播放。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingduration.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingduration.dita new file mode 100644 index 00000000000..db62d5ea84a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingduration.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="getAudioMixingDuration"/> + 获取混音文件的总时长(毫秒)。获取音频文件的混音时长(毫秒)。获取音频文件的混音时长(毫秒)。获取音频文件的混音时长(毫秒)。 + + + + + + + + +
+

+ virtual int getAudioMixingDuration() = 0; + public abstract int getAudioMixingDuration(); + - (int)getAudioMixingDuration NS_SWIFT_NAME(getAudioMixingDuration()); + - (int)getAudioMixingDuration NS_SWIFT_NAME(getAudioMixingDuration()); +

+
+
+
+ 调用时机 +

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

在调用 方法并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+

在调用 方法并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回混音文件的总时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回混音的时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回音频混音的时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回音频混音的时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingplayoutvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingplayoutvolume.dita new file mode 100644 index 00000000000..2ec382118ac --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingplayoutvolume.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="getAudioMixingPlayoutVolume"/> + 获取本地播放的混音音量。获取本地播放的混音音量。获取本地播放的混音音量。获取本地播放的混音音量。 + + + + + + + + +
+

+ virtual int getAudioMixingPlayoutVolume() = 0; + public abstract int getAudioMixingPlayoutVolume(); + - (int)getAudioMixingPlayoutVolume NS_SWIFT_NAME(getAudioMixingPlayoutVolume()); + - (int)getAudioMixingPlayoutVolume NS_SWIFT_NAME(getAudioMixingPlayoutVolume()); +

+
+
+

你可以调用该方法获取混音音频文件的本地播放音量,有助于排查与音量相关的问题。

+

你可以调用该方法获取混音音频文件的本地播放音量,有助于排查与音量相关的问题。

+

你可以调用此方法获取混音音频文件的本地播放音量,有助于排查与音量相关的问题。

+

你可以调用此方法获取混音音频文件的本地播放音量,有助于排查与音量相关的问题。

+
+
+ 调用时机 +

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。

+

在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。

+

请在调用 方法并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用此方法。

+

请在调用 方法并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用此方法。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回混音音量,取值范围为 [0, 100]。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回混音音量,取值范围为 [0, 100]。
  • +
  • 方法调用失败,返回小于 0 的错误码。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingpublishvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingpublishvolume.dita new file mode 100644 index 00000000000..712dd970b9f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiomixingpublishvolume.dita @@ -0,0 +1,59 @@ + + + + <ph keyref="getAudioMixingPublishVolume"/> + 获取用于发布的混音音量。获取用于发布的混音音量。获取用于发布的混音音量。获取用于发布的混音音量。 + + + + + + + + +
+

+ virtual int getAudioMixingPublishVolume() = 0; + public abstract int getAudioMixingPublishVolume(); + - (int)getAudioMixingPublishVolume NS_SWIFT_NAME(getAudioMixingPublishVolume()); + - (int)getAudioMixingPublishVolume NS_SWIFT_NAME(getAudioMixingPublishVolume()); +

+
+
+

该方法有助于排查音频音量相关的问题。

+

该方法有助于你排查与音频音量相关的问题。

+

该方法有助于你排查与音频音量相关的问题。

+ 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。 + 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。 + 你需要在调用 startAudioMixing 并收到 audioMixingStateChanged 回调(AgoraAudioMixingStateTypePlaying)后调用此方法。 + 你需要在调用 startAudioMixing 并收到 audioMixingStateChanged 回调(AgoraAudioMixingStateTypePlaying)后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功,返回混音音量,取值范围为 [0,100]。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回混音音量,取值范围为 [0, 100]。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回混音音量,取值范围为 [0,100]。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回混音音量,取值范围为 [0,100]。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getaudiotrackcount.dita b/dita/RTC-AIDOC/API/api_irtcengine_getaudiotrackcount.dita new file mode 100644 index 00000000000..3b14bc4bf34 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getaudiotrackcount.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="getAudioTrackCount"/> + 获取当前音乐文件的音轨索引。获取当前音乐文件的音轨索引。获取当前音乐文件的音轨索引。获取当前音乐文件的音轨索引。 + + + + + + + + +
+

+ virtual int getAudioTrackCount() = 0; + public abstract int getAudioTrackCount(); + - (int)getAudioTrackCount NS_SWIFT_NAME(getAudioTrackCount()); + - (int)getAudioTrackCount NS_SWIFT_NAME(getAudioTrackCount()); +

+
+
+ 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。 + 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。 + 你需要在调用 并收到 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用此方法。 + 你需要在调用 并收到 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回音轨的索引。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getcallid.dita b/dita/RTC-AIDOC/API/api_irtcengine_getcallid.dita new file mode 100644 index 00000000000..c304c1d7f6a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getcallid.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="getCallId"/> + 获取当前通话 ID。获取当前通话 ID。获取当前通话 ID。获取当前通话 ID。 + + + + + + + + +
+

+ virtual int getCallId(agora::util::AString& callId) = 0; + public abstract String getCallId(); + - (NSString * _Nullable)getCallId NS_SWIFT_NAME(getCallId()); + - (NSString * _Nullable)getCallId NS_SWIFT_NAME(getCallId()); +

+
+
+

当用户在客户端加入频道时,SDK 会生成一个用于标识该通话的 callId。你可以调用该方法获取 callId,并在调用 等方法时传入该值。

+

客户端在用户加入频道后会生成一个用于标识当前通话的 callId。你可以调用 获取 callId,并在调用 等方法时传入该值。

+

当你在客户端加入频道时,系统会生成一个用于标识该通话的 callId。你可以调用 方法获取 callId,并在调用 ratecomplain 等方法时传入该值。

+

当你在客户端加入频道时,系统会生成一个用于标识该通话的 callId。你可以调用 方法获取 callId,并在调用 ratecomplain 等方法时传入该值。

+
+
+ 调用时机 +

在加入频道后调用该方法。

+

该方法需要在加入频道后调用。

+

请在加入频道后调用此方法。

+

请在加入频道后调用此方法。

+
+
+ 参数 + + + callId + 输出参数,当前通话的 callId + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回当前通话的 callId
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回当前通话的 callId 字符串。
  • +
  • 方法调用失败时,返回
  • +
+

+

+

    +
  • 方法调用成功时,返回当前通话的 callId 字符串。
  • +
  • 方法调用失败时,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getcameramaxzoomfactor.dita b/dita/RTC-AIDOC/API/api_irtcengine_getcameramaxzoomfactor.dita new file mode 100644 index 00000000000..1a790a7bccf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getcameramaxzoomfactor.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="getCameraMaxZoomFactor"/> + 获取摄像头支持的最大变焦倍数。获取摄像头支持的最大变焦倍数。获取摄像头支持的最大变焦倍数。 + + + + + + + + +
+

+ virtual float getCameraMaxZoomFactor() = 0; + - (CGFloat)cameraMaxZoomFactor NS_SWIFT_NAME(cameraMaxZoomFactor()); + public abstract float getCameraMaxZoomFactor(); +

+
+
+ 该方法仅适用于 Android 和 iOS 平台。必须在 SDK 触发 回调,并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 + 你必须在 SDK 触发 回调,并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用该方法。 + 你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 +
+
+ 返回值 +

方法调用成功,返回摄像头支持的最大变焦倍数。

+

方法调用成功,返回摄像头支持的最大变焦倍数。

+

方法调用成功,返回摄像头支持的最大变焦倍数。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getconnectionstate.dita b/dita/RTC-AIDOC/API/api_irtcengine_getconnectionstate.dita new file mode 100644 index 00000000000..51a581b95c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getconnectionstate.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="getConnectionState"/> + 获取 SDK 当前的连接状态。获取 SDK 当前的连接状态。获取当前 SDK 的连接状态。获取当前 SDK 的连接状态。 + + + + + + + + +
+

+ virtual CONNECTION_STATE_TYPE getConnectionState() = 0; + public abstract int getConnectionState(); + - (AgoraConnectionState)getConnectionState NS_SWIFT_NAME(getConnectionState()); + - (AgoraConnectionState)getConnectionState NS_SWIFT_NAME(getConnectionState()); +

+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 返回值 +

方法调用成功,返回当前连接状态,详见

+

+

    +
  • 方法调用成功,返回当前的连接状态。
  • +
+

+

方法调用成功时,返回当前连接状态,详见

+

方法调用成功时,返回当前连接状态,详见

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getcurrentmonotonictimeinms.dita b/dita/RTC-AIDOC/API/api_irtcengine_getcurrentmonotonictimeinms.dita new file mode 100644 index 00000000000..e14ad9f25f9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getcurrentmonotonictimeinms.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="getCurrentMonotonicTimeInMs"/> + 获取 SDK 当前的单调时间。获取 SDK 当前的单调时间。获取 SDK 当前的单调时间。获取 SDK 当前的单调时间。 + + + + + + + + +
+

+ virtual int64_t getCurrentMonotonicTimeInMs() = 0; + public abstract long getCurrentMonotonicTimeInMs(); + - (int64_t)getCurrentMonotonicTimeInMs NS_SWIFT_NAME(getCurrentMonotonicTimeInMs()); + - (int64_t)getCurrentMonotonicTimeInMs NS_SWIFT_NAME(getCurrentMonotonicTimeInMs()); +

+
+
+

在自定义视频采集或自定义音频采集场景中,为确保音视频同步,建议调用该方法获取 SDK 当前的单调时间(单位为毫秒),并将该值传入采集的视频帧()和音频帧()的时间戳参数中。单调时间是指一个随时间单调递增的时间序列。

+

在自定义视频采集和自定义音频采集场景中,为确保音视频同步,声网建议调用该方法获取 SDK 当前的单调时间,并将该值传入采集的视频帧 (VideoFrame) 和音频帧 () 的时间戳参数中。单调时间是指一个随时间单调递增的时间序列,单位为毫秒。

+

单调时间是指一个随时间递增的时间序列,单位为毫秒。在自定义视频采集和自定义音频采集场景中,为确保音视频同步,声网建议你调用该方法获取 SDK 当前的单调时间,并将该值传入采集的视频帧()和音频帧()的时间戳参数中。

+

单调时间是指一个随时间递增的时间序列,单位为毫秒。在自定义视频采集和自定义音频采集场景中,为确保音视频同步,声网建议你调用该方法获取 SDK 当前的单调时间,并将该值传入采集的视频帧()和音频帧()的时间戳参数中。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 返回值 +

+

    +
  • ≥ 0:方法调用成功,返回 SDK 当前的单调时间(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 SDK 当前的单调时间(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回 SDK 当前的单调时间(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • ≥ 0:方法调用成功,返回 SDK 当前的单调时间(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getdefaultaudiodevice.dita b/dita/RTC-AIDOC/API/api_irtcengine_getdefaultaudiodevice.dita new file mode 100644 index 00000000000..62adf80e4d4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getdefaultaudiodevice.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getDefaultAudioDevice"/> + 获取系统的默认音频设备。 + + + + + + + + +
+

+ - (AgoraRtcDeviceInfo* _Nullable)getDefaultAudioDevice:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDefaultAudioDevice(_:)); +

+
+
+
+ 参数 + + + type + 设备类型,详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回一个 对象,详见
  • +
  • 方法调用失败时,返回
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getdeviceinfo.dita b/dita/RTC-AIDOC/API/api_irtcengine_getdeviceinfo.dita new file mode 100644 index 00000000000..df57530ecf7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getdeviceinfo.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getDeviceInfo"/> + 获取当前设备名称。 + + + + + + + + +
+

+ - (AgoraRtcDeviceInfo * _Nullable)getDeviceInfo:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDeviceInfo(_:)); +

+
+
+

你可以通过该方法,根据 type 参数的设置,获取当前的音频或视频采集设备。

+
+
+ 参数 + + + type + 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回一个 对象。
  • +
  • 方法调用失败时,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getdevicevolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_getdevicevolume.dita new file mode 100644 index 00000000000..7b870f40235 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getdevicevolume.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getDeviceVolume"/> + 获取当前设备的音量。 + + + + + + + + +
+

+ - (int)getDeviceVolume:(AgoraMediaDeviceType)type NS_SWIFT_NAME(getDeviceVolume(_:)); +

+
+
+
+ 参数 + + + type + 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_geteffectcurrentposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_geteffectcurrentposition.dita new file mode 100644 index 00000000000..445aa7e506a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_geteffectcurrentposition.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="getEffectCurrentPosition"/> + 获取指定音效文件的播放位置。获取指定音效文件的播放位置。获取音效文件的播放位置。获取音效文件的播放位置。 + + + + + + + + +
+

+ virtual int getEffectCurrentPosition(int soundId) = 0; + public abstract int getEffectCurrentPosition(int soundId); + - (int)getEffectCurrentPosition:(int)soundId NS_SWIFT_NAME(getEffectCurrentPosition(_:)); + - (int)getEffectCurrentPosition:(int)soundId NS_SWIFT_NAME(getEffectCurrentPosition(_:)); +

+
+
+

获取指定音效文件的播放位置,单位为毫秒。

+

获取指定音效文件的播放位置,单位为毫秒。

+ 请在调用 后使用此方法。 + 请在调用 playEffect 方法之后调用此方法。 + 请在调用 方法之后调用此方法。 + 请在调用 方法之后调用此方法。 +
+
+ 参数 + + + soundId + 音效 ID。 + 每个音效文件的 ID 是唯一的。 + + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回指定音效文件的播放位置(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回指定音效文件的播放位置(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回指定音效文件的播放位置(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回指定音效文件的播放位置(单位为毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_geteffectduration.dita b/dita/RTC-AIDOC/API/api_irtcengine_geteffectduration.dita new file mode 100644 index 00000000000..f5d32dab5d1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_geteffectduration.dita @@ -0,0 +1,94 @@ + + + + <ph keyref="getEffectDuration"/> + 获取音效文件的时长。获取音效文件的时长。获取音效文件的时长。获取音效文件的时长。 + + + + + + + + +
+

+ virtual int getEffectDuration(const char* filePath) = 0; + public abstract int getEffectDuration(String filePath); + - (int)getEffectDuration:(NSString* _Nonnull)filePath NS_SWIFT_NAME(getEffectDuration(_:)); + - (int)getEffectDuration:(NSString* _Nonnull)filePath NS_SWIFT_NAME(getEffectDuration(_:)); +

+
+
+ 请在加入频道后调用此方法。 + 请在加入频道后调用该方法。 + 请在加入频道后调用该方法。 + 请在加入频道后调用该方法。 +
+
+ 参数 + + + filePath + 音效文件路径: +
    +
  • Android:文件路径需精确到文件名和后缀名。支持 URL 地址、绝对路径,或以 /assets/ 开头的文件路径。使用绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址。例如:content://com.android.providers.media.documents/document/audio%3A14441
  • +
  • Windows:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:/var/mobile/Containers/Data/audio.mp4
  • +
+
+
+ + filePath + 音效文件的路径: +
    +
  • Android:路径需精确到文件名和后缀名。支持 URL 地址、绝对路径,或以 /assets/ 开头的文件路径。使用绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址,例如:
  • +
content://com.android.providers.media.documents/document/audio%3A14441
+
+ + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回指定音效文件的总时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回指定音效文件的总时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回指定音效文件的总时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功,返回指定音效文件的总时长(毫秒)。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_geteffectsvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_geteffectsvolume.dita new file mode 100644 index 00000000000..dd5ef3e68a8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_geteffectsvolume.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="getEffectsVolume"/> + 获取当前音效的音量。获取音效的音量。获取音效的音量。获取音效的音量。 + + + + + + + + +
+

+ virtual int getEffectsVolume() = 0; + public abstract double getEffectsVolume(); + - (int)getEffectsVolume NS_SWIFT_NAME(getEffectsVolume()); + - (int)getEffectsVolume NS_SWIFT_NAME(getEffectsVolume()); +

+
+
+

音量为 0 到 100 之间的整数,默认值为 100,表示原始音量。

+

音量为整数,范围为 0 到 100。默认值为 100,表示原始音量。

+

音量为整数,范围为 0 到 100。默认值为 100,表示原始音量。

+

音量为整数,范围为 0 到 100。默认值为 100,表示原始音量。

+ 请在调用 后调用此方法。 + 请在调用 playEffect 方法后调用此方法。 + 请在调用 方法后调用此方法。 + 请在调用 方法后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功,返回音效的音量。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回音效的音量。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_geterrordescription.dita b/dita/RTC-AIDOC/API/api_irtcengine_geterrordescription.dita new file mode 100644 index 00000000000..0f7a8978a5a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_geterrordescription.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="getErrorDescription"/> + :获取警告或错误描述。获取警告或错误码对应的描述信息。获取警告或错误描述信息。获取警告或错误描述信息。 + + + + + + + + +
+

+ virtual const char* getErrorDescription(int code) = 0; + public static String getErrorDescription(int error) + + (NSString* _Nonnull)getErrorDescription:(NSInteger)error NS_SWIFT_NAME(getErrorDescription(_:)); + + (NSString* _Nonnull)getErrorDescription:(NSInteger)error NS_SWIFT_NAME(getErrorDescription(_:)); +

+
+
+

你可以通过该方法获取由 SDK 报告的警告或错误码所对应的描述信息。

+

你可以通过该方法获取由 SDK 报告的警告或错误码所对应的描述信息。

+
+
+ 参数 + + + code + SDK 报告的错误码。 + + + error + SDK 报告的错误码。 + + + error + SDK 报告的错误码。 + + + error + SDK 报告的错误码。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回错误码对应的描述字符串。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

方法调用成功时,返回错误码对应的描述信息。 +方法调用失败,返回空字符串。

+

方法调用成功时,返回错误码对应的描述信息。

+

方法调用成功时,返回错误码对应的描述信息。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty.dita b/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty.dita new file mode 100644 index 00000000000..da01558513c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="getExtensionProperty"/> + 获取扩展组件的详细信息。获取扩展组件的详细信息。获取扩展组件的详细信息。 + + + + + + + + +
+

+ - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key NS_SWIFT_NAME(getExtensionProperty(withVendor:extension:key:)); + public abstract String getExtensionProperty(String provider, String extension, ExtensionInfo extensionInfo, String key); + - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key NS_SWIFT_NAME(getExtensionProperty(withVendor:extension:key:)); +

+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + provider + 扩展组件提供方的名称。 + + + extension + 扩展组件的名称。 + + + key + 扩展组件的键值。 + + + provider + 扩展提供方的名称,例如声网。 + + + extension + 扩展的名称,例如 agora.beauty。 + + + extensionInfo + 扩展信息。 + + + key + 扩展属性的键名。 + + + provider + 扩展组件提供方的名称。 + + + extension + 扩展组件的名称。 + + + key + 扩展组件的键值。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回扩展组件的信息。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回扩展组件的信息。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回扩展组件的信息。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty2.dita b/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty2.dita new file mode 100644 index 00000000000..b6cf6c26e80 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getextensionproperty2.dita @@ -0,0 +1,140 @@ + + + + <ph keyref="getExtensionProperty2"/> + 获取扩展属性。获取扩展组件的详细信息。获取扩展的详细信息。获取扩展的详细信息。 + + + + + + + + +
+

+ virtual int getExtensionProperty(const char* provider, const char* extension, const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; + public abstract String getExtensionProperty(String provider, String extension, String key, Constants.MediaSourceType sourceType); + - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getExtensionProperty(withVendor:extension:key:sourceType:)); + - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getExtensionProperty(withVendor:extension:key:sourceType:)); +

+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+
+ 参数 + + + provider + 输出参数,表示扩展组件提供方的名称。 + + + extension + 输出参数,表示扩展组件的名称。 + + + key + 输出参数,表示扩展组件的键名。 + + + value + 输出参数,表示扩展组件键名对应的键值。 + + + buf_len + 扩展属性的 JSON 字符串的最大长度,单位为字节,最大值为 512。 + + + type + 扩展组件的来源类型,详见 + + + provider + 扩展组件提供方的名称。 + + + extension + 扩展组件的名称。 + + + key + 扩展组件的键值。 + + + sourceType + 扩展组件的来源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + key + 扩展的键值。 + + + sourceType + 扩展的来源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + key + 扩展的键值。 + + + sourceType + 扩展的来源类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功时,返回扩展组件的信息。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回扩展信息。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回扩展信息。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions.dita new file mode 100644 index 00000000000..7ef74ab00f4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions.dita @@ -0,0 +1,151 @@ + + + + <ph keyref="getFaceShapeAreaOptions"/> + 获取美型区域选项。获取美颜区域的当前设置。获取美型区域的选项。获取美型区域的选项。 + + + + + + + + +
+

+ virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract FaceShapeAreaOptions getFaceShapeAreaOptions(int shapeArea, Constants.MediaSourceType sourceType); + - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeAreaOptions(_:sourceType:)); + - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeAreaOptions(_:sourceType:)); +

+
+
+
+ 适用场景 +

当用户在应用中打开美型区域和塑形强度菜单时,可以调用该方法获取当前的美颜特效选项,然后根据结果刷新用户界面中的菜单并更新 UI。

+
+
+ 调用时机 +

在调用 方法之后调用该方法。

+

在调用 之后调用此方法。

+

在调用 之后调用此方法。

+

在调用 之后调用此方法。

+
+
+ 参数 + + + shapeArea + 美型增强区域,详见 + + + options + 输出参数,表示美型增强区域的选项,详见 + + + type + 媒体源类型,详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + shapeArea + 美颜增强区域。 +
    +
  • FACE_SHAPE_AREA_NONE(-1):(默认)无效区域,不应用美颜效果。
  • +
  • FACE_SHAPE_AREA_HEADSCALE(100):头部,用于实现小头效果。调整范围为 [0, 100],值越大头部越小,默认值为 100。
  • +
  • FACE_SHAPE_AREA_FOREHEAD(101):额头,用于调整发际线高度。调整范围为 [-100, 100],正值抬高发际线,负值降低发际线,绝对值越大效果越明显,默认值为 50。
  • +
  • FACE_SHAPE_AREA_FACECONTOUR(102):脸部轮廓,用于实现瘦脸效果。调整范围为 [0, 100],值越大瘦脸效果越明显,默认值为 10。
  • +
  • FACE_SHAPE_AREA_FACELENGTH(103):脸长,用于拉长或缩短脸部。调整范围为 [-100, 100],正值拉长脸部,负值缩短脸部,绝对值越大效果越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_FACEWIDTH(104):脸宽,用于实现窄脸效果。调整范围为 [0, 100],值越大脸部越窄,默认值为 10。
  • +
  • FACE_SHAPE_AREA_CHEEKBONE(105):颧骨,用于调整颧骨宽度。调整范围为 [0, 100],值越大颧骨越窄,默认值为 43。
  • +
  • FACE_SHAPE_AREA_CHEEK(106):面颊,用于调整面颊宽度。调整范围为 [0, 100],值越大面颊越窄,默认值为 50。
  • +
  • FACE_SHAPE_AREA_CHIN(108):下巴,用于调整下巴长度。调整范围为 [-100, 100],正值拉长下巴,负值缩短下巴,绝对值越大效果越明显,默认值为 -20。
  • +
  • FACE_SHAPE_AREA_EYESCALE(200):眼睛,用于实现大眼效果。调整范围为 [0, 100],值越大眼睛越大,默认值为 50。
  • +
  • FACE_SHAPE_AREA_EYEDISTANCE(201):眼距调整。范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。
  • +
  • FACE_SHAPE_AREA_EYEPOSITION(202):眼睛位置调整。范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。
  • +
  • FACE_SHAPE_AREA_LOWEREYELID(203):下眼睑调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_EYEPUPILS(204):瞳孔大小调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_EYEINNERCORNER(205):内眼角调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_EYEOUTERCORNER(206):外眼角调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_NOSELENGTH(300):鼻子长度,用于拉长或缩短鼻子。调整范围为 [-100, 100],正值拉长鼻子,负值缩短鼻子,绝对值越大效果越明显,默认值为 -10。
  • +
  • FACE_SHAPE_AREA_NOSEWIDTH(301):鼻子宽度,用于实现瘦鼻效果。调整范围为 [-100, 100],正值加宽鼻子,负值缩窄鼻子,绝对值越大效果越明显,默认值为 72。
  • +
  • FACE_SHAPE_AREA_NOSEWING(302):鼻翼调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_NOSEROOT(303):鼻根调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_NOSEBRIDGE(304):鼻梁调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_NOSETIP(305):鼻尖调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_NOSEGENERAL(306):整体鼻子调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_MOUTHSCALE(400):嘴巴,用于实现大嘴效果。调整范围为 [0, 100],值越大嘴巴越大,默认值为 50。
  • +
  • FACE_SHAPE_AREA_MOUTHPOSITION(401):嘴巴位置调整。范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。
  • +
  • FACE_SHAPE_AREA_MOUTHSMILE(402):嘴角微笑调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_MOUTHLIP(403):唇形调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
  • FACE_SHAPE_AREA_EYEBROWPOSITION(500):眉毛位置调整。范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。
  • +
  • FACE_SHAPE_AREA_EYEBROWTHICKNESS(501):眉毛粗细调整。范围为 [0, 100],默认值为 0。值越大,调整越明显。
  • +
+
+
+ + sourceType + 应用滤镜效果的媒体源类型,详见 。 + 该参数仅支持以下两种设置: +
    +
  • 使用摄像头采集本地视频时,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 使用自定义视频源时,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + area + 美型增强区域。详见 + + + sourceType + 应用滤镜特效的媒体源类型。详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + area + 美型增强区域。详见 + + + sourceType + 应用滤镜特效的媒体源类型。详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回 null
  • +
+

+

方法调用成功,返回 对象。 +方法调用失败,返回

+

方法调用成功,返回 对象。 +方法调用失败,返回

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions2.dita new file mode 100644 index 00000000000..ad23428b6ad --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapeareaoptions2.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="getFaceShapeAreaOptions2"/> + 获取当前的美颜特效设置。获取当前美颜效果区域的设置选项。获取当前的美颜特效设置。 + + + + + + + + +
+

+ - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area NS_SWIFT_NAME(getFaceShapeAreaOptions(_:)); + public abstract FaceShapeAreaOptions getFaceShapeAreaOptions(int shapeArea); + - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area NS_SWIFT_NAME(getFaceShapeAreaOptions(_:)); +

+
+
+

你可以调用该方法获取当前美颜效果的设置选项,并根据返回结果刷新界面菜单,更新 UI。

+
+
+ 适用场景 +

当你在 App 中打开美型区域和强度设置菜单时,可以调用此方法获取当前的美颜特效选项,然后根据结果刷新菜单并更新 UI。

+
+
+ 调用时机 +

在调用 之后调用此方法。

+

在调用 方法之后调用此方法。

+

在调用 之后调用此方法。

+
+
+ 参数 + + + area + 美型增强区域。参见 + + + shapeArea + 美颜增强区域。 +
    +
  • FACE_SHAPE_AREA_NONE(-1):(默认)无效区域,不应用美颜效果。
  • +
  • FACE_SHAPE_AREA_HEADSCALE(100):头部,用于实现小头效果。调整范围为 [0, 100],值越大头部越小,默认值为 100。
  • +
  • FACE_SHAPE_AREA_FOREHEAD(101):额头,用于调整发际线高度。调整范围为 [-100, 100],正值抬高发际线,负值降低发际线,绝对值越大效果越明显,默认值为 50。
  • +
  • FACE_SHAPE_AREA_FACECONTOUR(102):脸型轮廓,用于实现瘦脸效果。调整范围为 [0, 100],值越大瘦脸效果越明显,默认值为 10。
  • +
  • FACE_SHAPE_AREA_FACELENGTH(103):脸长,用于实现拉长脸部效果。调整范围为 [-100, 100],正值拉长脸部,负值缩短脸部,绝对值越大效果越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_FACEWIDTH(104):脸宽,用于实现窄脸效果。调整范围为 [0, 100],值越大脸部越窄,默认值为 10。
  • +
  • FACE_SHAPE_AREA_CHEEKBONE(105):颧骨,用于调整颧骨宽度。调整范围为 [0, 100],值越大颧骨越窄,默认值为 43。
  • +
  • FACE_SHAPE_AREA_CHEEK(106):面颊,用于调整面颊宽度。调整范围为 [0, 100],值越大面颊越窄,默认值为 50。
  • +
  • FACE_SHAPE_AREA_CHIN(108):下巴,用于调整下巴长度。调整范围为 [-100, 100],正值拉长下巴,负值缩短下巴,绝对值越大效果越明显,默认值为 -20。
  • +
  • FACE_SHAPE_AREA_EYESCALE(200):眼睛,用于实现大眼效果。调整范围为 [0, 100],值越大眼睛越大,默认值为 50。
  • +
  • FACE_SHAPE_AREA_EYEDISTANCE(201):眼距调整。调整范围为 [-100, 100],负值表示相反方向,绝对值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEPOSITION(202):眼睛位置调整。调整范围为 [-100, 100],负值表示相反方向,绝对值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_LOWEREYELID(203):下眼睑调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEPUPILS(204):瞳孔大小调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEINNERCORNER(205):内眼角调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEOUTERCORNER(206):外眼角调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_NOSELENGTH(300):鼻子长度,用于实现拉长鼻子效果。调整范围为 [-100, 100],正值拉长鼻子,负值缩短鼻子,绝对值越大效果越明显,默认值为 -10。
  • +
  • FACE_SHAPE_AREA_NOSEWIDTH(301):鼻子宽度,用于实现瘦鼻效果。调整范围为 [-100, 100],正值加宽鼻子,负值缩窄鼻子,绝对值越大效果越明显,默认值为 72。
  • +
  • FACE_SHAPE_AREA_NOSEWING(302):鼻翼调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_NOSEROOT(303):鼻根调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_NOSEBRIDGE(304):鼻梁调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_NOSETIP(305):鼻尖调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_NOSEGENERAL(306):整体鼻子调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_MOUTHSCALE(400):嘴巴,用于实现大嘴效果。调整范围为 [0, 100],值越大嘴巴越大,默认值为 50。
  • +
  • FACE_SHAPE_AREA_MOUTHPOSITION(401):嘴巴位置调整。调整范围为 [-100, 100],负值表示相反方向,绝对值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_MOUTHSMILE(402):嘴角微笑调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_MOUTHLIP(403):唇形调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEBROWPOSITION(500):眉毛位置调整。调整范围为 [-100, 100],负值表示相反方向,绝对值越大调整越明显,默认值为 0。
  • +
  • FACE_SHAPE_AREA_EYEBROWTHICKNESS(501):眉毛粗细调整。调整范围为 [0, 100],值越大调整越明显,默认值为 0。
  • +
+
+
+ + area + 美型增强区域。参见 + +
+
+
+ 返回值 +

方法调用成功,返回 对象。 +方法调用失败,返回

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回 null
  • +
+

+

方法调用成功,返回 对象。 +方法调用失败,返回

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions.dita new file mode 100644 index 00000000000..fc62271c3fe --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="getFaceShapeBeautyOptions"/> + 获取美型选项。获取当前的美颜特效设置。获取美颜特效选项。获取美颜特效选项。 + + + + + + + + +
+

+ virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract FaceShapeBeautyOptions getFaceShapeBeautyOptions(Constants.MediaSourceType sourceType); + - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeBeautyOptions(_:)); + - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeBeautyOptions(_:)); +

+
+
+

当用户在应用中打开美颜风格和风格强度菜单时,可以调用此方法,并根据返回结果刷新菜单和更新 UI。

+
+
+ 适用场景 +

当用户在应用中打开美型风格和风格强度菜单时,可以调用该方法获取当前的美型选项,然后根据结果刷新用户界面中的菜单,并更新 UI。

+
+
+ 调用时机 +

在调用 后调用该方法。

+

在调用 之后调用此方法。

+

在调用 后调用此方法。

+

在调用 后调用此方法。

+
+
+ 参数 + + + options + 输出参数,表示美型风格选项。详见 + + + type + 应用滤镜特效的媒体源类型。详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + sourceType + 媒体源类型,详见 。 + 该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + sourceType + 应用滤镜特效的媒体源类型,详见 。在此方法中,该参数仅支持以下两种设置: +
    +
  • 如果你使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + sourceType + 应用滤镜特效的媒体源类型,详见 。在此方法中,该参数仅支持以下两种设置: +
    +
  • 如果你使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功,返回 实例。 +方法调用失败,返回 null

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions2.dita new file mode 100644 index 00000000000..248fa2d3ab4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getfaceshapebeautyoptions2.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="getFaceShapeBeautyOptions2"/> + 获取当前的美颜特效设置。获取当前的美颜特效设置。获取当前的美颜特效设置。 + + + + + + + + +
+

+ - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions NS_SWIFT_NAME(getFaceShapeBeautyOptions()); + public abstract FaceShapeBeautyOptions getFaceShapeBeautyOptions(); + - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions NS_SWIFT_NAME(getFaceShapeBeautyOptions()); +

+
+
+
+ 适用场景 +

当你在应用中打开风格妆容和风格强度菜单时,可以调用该方法获取当前的美颜特效设置,然后根据结果刷新菜单并更新 UI。

+
+
+ 调用时机 +

在调用 方法之后调用该方法。

+

在调用 之后调用此方法。

+

在调用 方法之后调用该方法。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 实例。
  • +
  • 方法调用失败,返回 null
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getnativehandle.dita b/dita/RTC-AIDOC/API/api_irtcengine_getnativehandle.dita new file mode 100644 index 00000000000..90166cf53e7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getnativehandle.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="getNativeHandle"/> + 获取 Native SDK 的 C++ 句柄。获取原生 SDK 的 C++ 句柄。获取 Native SDK 的 C++ 句柄。 + + + + + + + + +
+

+ - (void * _Nullable)getNativeHandle NS_SWIFT_NAME(getNativeHandle()); + public abstract long getNativeHandle(); + - (void * _Nullable)getNativeHandle NS_SWIFT_NAME(getNativeHandle()); +

+
+
+

该方法用于获取 SDK 的 C++ 句柄,可用于注册音频和视频帧观察器。

+

该方法可用于注册音频和视频帧观察器。

+

该方法用于获取 SDK 的 C++ 句柄,可用于注册音频和视频帧观察器。

+
+
+ 返回值 +

方法调用成功,返回 SDK 的原生句柄。

+

方法调用成功,返回 SDK 的原生句柄。

+

方法调用成功,返回 SDK 的原生句柄。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getnetworktype.dita b/dita/RTC-AIDOC/API/api_irtcengine_getnetworktype.dita new file mode 100644 index 00000000000..98ec72dc5c6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getnetworktype.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="getNetworkType"/> + 获取本地网络连接类型。获取本地网络连接类型。获取本地网络连接类型。获取本地网络连接类型。 + + + + + + + + +
+

+ virtual int getNetworkType() = 0; + public abstract int getNetworkType(); + - (int)getNetworkType NS_SWIFT_NAME(getNetworkType()); + - (int)getNetworkType NS_SWIFT_NAME(getNetworkType()); +

+
+
+

你可以在任意阶段调用此方法获取当前使用的网络类型。

+

你可以在任意阶段调用此方法获取当前使用的网络类型。

+

你可以在任意阶段调用此方法获取当前使用的网络类型。

+ 方法可在加入频道前或加入频道后调用。 + 你可以在加入频道前或后调用此方法。 + 你可以在加入频道前或后调用此方法。 + 你可以在加入频道前或后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功,返回本地网络连接类型。 +
      +
    • 0:SDK 与网络断开连接。
    • +
    • 1:网络类型为 LAN。
    • +
    • 2:网络类型为 Wi-Fi(包括热点)。
    • +
    • 3:网络类型为移动 2G。
    • +
    • 4:网络类型为移动 3G。
    • +
    • 5:网络类型为移动 4G。
    • +
    • 6:网络类型为移动 5G。
    • +
    +
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:网络类型未知。
    • +
    +
  • +
+

+

+

    +
  • 方法调用成功,返回本地网络连接类型: +
      +
    • 0:SDK 与网络断开连接。
    • +
    • 1:网络类型为 LAN。
    • +
    • 2:网络类型为 Wi-Fi(包括热点)。
    • +
    • 3:网络类型为移动 2G。
    • +
    • 4:网络类型为移动 3G。
    • +
    • 5:网络类型为移动 4G。
    • +
    • 6:网络类型为移动 5G。
    • +
    +
  • +
  • 方法调用失败,返回错误码: +
      +
    • -1:网络类型未知。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功,返回本地网络连接类型: +
      +
    • 0:SDK 与网络断开连接。
    • +
    • 1:网络类型为 LAN
    • +
    • 2:网络类型为 Wi-Fi(包括热点)。
    • +
    • 3:网络类型为移动 2G
    • +
    • 4:网络类型为移动 3G
    • +
    • 5:网络类型为移动 4G
    • +
    • 6:网络类型为移动 5G
    • +
    +
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:网络类型未知。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功,返回本地网络连接类型: +
      +
    • 0:SDK 与网络断开连接。
    • +
    • 1:网络类型为 LAN
    • +
    • 2:网络类型为 Wi-Fi(包括热点)。
    • +
    • 3:网络类型为移动 2G
    • +
    • 4:网络类型为移动 3G
    • +
    • 5:网络类型为移动 4G
    • +
    • 6:网络类型为移动 5G
    • +
    +
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:网络类型未知。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getntpwalltimeinms.dita b/dita/RTC-AIDOC/API/api_irtcengine_getntpwalltimeinms.dita new file mode 100644 index 00000000000..88ef7a8ff9e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getntpwalltimeinms.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="getNtpWallTimeInMs"/> + 获取当前的 NTP(网络时间协议)时间。获取当前 NTP(网络时间协议)时间。获取当前的 NTP(网络时间协议)时间。获取当前的 NTP(网络时间协议)时间。 + + + + + + + + +
+

+ virtual uint64_t getNtpWallTimeInMs() = 0; + public abstract long getNtpWallTimeInMs(); + - (uint64_t)getNtpWallTimeInMs; + - (uint64_t)getNtpWallTimeInMs; +

+
+
+

在实时合唱场景中,尤其是当多个接收端因网络问题导致下行链路不一致时,可以调用该方法获取当前的 NTP 时间作为参考时间,以对齐多个接收端的歌词和音乐,实现合唱同步。

+

在实时合唱场景中,尤其是当多个接收端因网络问题导致下行链路连接不一致时,可以调用该方法获取当前 NTP 时间作为参考时间,以对齐多个接收端的歌词和音乐,实现合唱同步。

+

在实时合唱场景中,尤其是当多个接收端因网络问题导致下行连接不一致时,可以调用该方法获取当前的 NTP 时间作为参考时间,以对齐多个接收端的歌词和音乐,实现合唱同步。

+

在实时合唱场景中,尤其是当多个接收端因网络问题导致下行连接不一致时,可以调用该方法获取当前的 NTP 时间作为参考时间,以对齐多个接收端的歌词和音乐,实现合唱同步。

+
+
+ 返回值 +

方法调用成功,返回当前 NTP 时间的 Unix 时间戳(毫秒)。

+

方法调用成功,返回当前 NTP 时间的 Unix 时间戳(毫秒)。

+

方法调用成功,返回当前 NTP 时间的 Unix 时间戳(毫秒)。

+

方法调用成功,返回当前 NTP 时间的 Unix 时间戳(毫秒)。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getscreencapturesources.dita b/dita/RTC-AIDOC/API/api_irtcengine_getscreencapturesources.dita new file mode 100644 index 00000000000..a66142f3c0d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getscreencapturesources.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="getScreenCaptureSources"/> + 获取可共享的屏幕和窗口列表。获取可共享的屏幕和窗口列表。 + + + + + + + + +
+

+ virtual IScreenCaptureSourceList* getScreenCaptureSources(const SIZE& thumbSize, const SIZE& iconSize, const bool includeScreen) = 0; + - (NSArray<AgoraScreenCaptureSourceInfo*>* _Nullable)getScreenCaptureSourcesWithThumbSize:(NSSize)thumbSize iconSize:(NSSize)iconSize includeScreen:(BOOL)includeScreen NS_SWIFT_NAME(getScreenCaptureSources(withThumbSize:iconSize:includeScreen:)); +

+
+
+

你可以在共享屏幕或窗口前调用该方法,获取可共享的屏幕和窗口列表。用户可通过列表中的缩略图轻松选择要共享的屏幕或窗口。该列表还包含窗口 ID 和屏幕 ID 等信息,你可以使用这些信息调用 开始共享。

+

你可以在共享屏幕或窗口前调用该方法,以获取可共享的屏幕和窗口列表。用户可以通过列表中的缩略图轻松选择要共享的特定屏幕或窗口。该列表还包含窗口 ID 和屏幕 ID 等信息,你可以使用这些信息调用 startScreenCaptureByWindowIdstartScreenCaptureByDisplayId 开始共享。

+ 该方法仅适用于 macOS 和 Windows 平台。 +
+
+ 参数 + + + thumbSize + 屏幕或窗口缩略图的目标尺寸(宽度和高度,单位为像素)。SDK 会缩放原始图像,使图像最长边的长度与目标尺寸一致,同时不扭曲原始图像。例如,若原始图像为 400 × 300,thumbSize 为 100 × 100,则缩略图的实际尺寸为 100 × 75。如果目标尺寸大于原始尺寸,则缩略图为原始图像,SDK 不进行缩放。详见 [SIZE](https://learn.microsoft.com/en-us/windows/win32/api/windef/ns-windef-size)。 + + + iconSize + 应用程序图标的目标尺寸(宽度和高度,单位为像素)。SDK 会缩放原始图像,使图像最长边的长度与目标尺寸一致,同时不扭曲原始图像。例如,若原始图像为 400 × 300,iconSize 为 100 × 100,则图标的实际尺寸为 100 × 75。如果目标尺寸大于原始尺寸,则图标为原始图像,SDK 不进行缩放。详见 [SIZE](https://learn.microsoft.com/en-us/windows/win32/api/windef/ns-windef-size)。 + + + includeScreen + 是否返回屏幕信息: +
    +
  • :返回屏幕和窗口信息。
  • +
  • :仅返回窗口信息。
  • +
+
+
+ + thumbSize + 屏幕或窗口缩略图的目标尺寸(宽度和高度,单位为像素)。SDK 会对原始图像进行缩放,使图像最长边的长度与目标尺寸一致,同时不扭曲原始图像。例如,若原始图像为 400 × 300,thumbSize 为 100 × 100,则缩略图的实际尺寸为 100 × 75。如果目标尺寸大于原始尺寸,则缩略图为原始图像,SDK 不进行缩放。 + + + iconSize + 应用程序图标的目标尺寸(宽度和高度,单位为像素)。SDK 会对原始图像进行缩放,使图像最长边的长度与目标尺寸一致,同时不扭曲原始图像。例如,若原始图像为 400 × 300,iconSize 为 100 × 100,则图标的实际尺寸为 100 × 75。如果目标尺寸大于原始尺寸,则图标为原始图像,SDK 不进行缩放。 + + + includeScreen + 是否返回屏幕信息: +
    +
  • :返回屏幕和窗口信息。
  • +
  • :仅返回窗口信息。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 实例,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象数组,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuid.dita b/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuid.dita new file mode 100644 index 00000000000..526f9d30250 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuid.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="getUserInfoByUid"/> + 通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。 + + + + + + + + +
+

+ virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0; + public abstract int getUserInfoByUid(int uid, UserInfo userInfo); + - (AgoraUserInfo* _Nullable)getUserInfoByUid:(NSUInteger)uid withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUid:withError:)); + - (AgoraUserInfo* _Nullable)getUserInfoByUid:(NSUInteger)uid withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUid:withError:)); +

+
+
+

当远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在一个映射表中,并在本地客户端触发 回调。收到该回调后,你可以调用 并传入用户 ID,从 对象中获取对应的用户 User Account。

+

当远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表中,同时在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入用户 ID,从 对象中获取指定用户的用户 User Account。

+

远端用户加入频道后,SDK 会获取该用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,同时在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入 uid,从 对象中获取指定用户的用户 User Account。

+

远端用户加入频道后,SDK 会获取该用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,同时在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入 uid,从 对象中获取指定用户的用户 User Account。

+
+
+ 调用时机 +

在收到 回调后调用该方法。

+

该方法在收到 回调后调用。

+

在收到 回调后调用该方法。

+

在收到 回调后调用该方法。

+
+
+ 参数 + + + uid + uid,表示用户 ID。 + + + userInfo + 输入和输出参数,表示用户信息。输入值为一个 对象,输出值为一个包含用户 User Account 和用户 ID 的 对象。详见 + + + uid + uid,表示用户 ID。 + + + userInfo + 输入和输出参数,用于标识用户信息的 对象。详见 + + + uid + 用户 ID。 + + + error + 错误码,详见 + + + uid + 用户 ID。 + + + error + 错误码,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuseraccount.dita b/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuseraccount.dita new file mode 100644 index 00000000000..7c9e31eb6c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getuserinfobyuseraccount.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="getUserInfoByUserAccount"/> + 通过传入用户 User Account 获取远端用户信息。通过传入用户 User Account 获取用户信息。通过传入用户 User Account 获取用户信息。通过传入用户 User Account 获取用户信息。 + + + + + + + + +
+

+ virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0; + public abstract int getUserInfoByUserAccount(String userAccount, UserInfo userInfo); + - (AgoraUserInfo* _Nullable)getUserInfoByUserAccount:(NSString* _Nonnull)userAccount withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUserAccount:withError:)); + - (AgoraUserInfo* _Nullable)getUserInfoByUserAccount:(NSString* _Nonnull)userAccount withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUserAccount:withError:)); +

+
+
+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表中,同时在本地客户端触发 回调。收到该回调后,你可以调用该方法并传入用户 User Account,从 对象中获取该远端用户的用户 ID。

+

当远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表中,同时在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入用户 User Account,从 对象中获取指定用户的信息。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。你可以在收到该回调后调用 方法,并传入用户 User Account,从 对象中获取远端用户的用户 ID,详见

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。你可以在收到该回调后调用 方法,并传入用户 User Account,从 对象中获取远端用户的用户 ID,详见

+
+
+ 调用时机 +

在收到 回调后调用该方法。

+

该方法应在收到 回调后调用。

+

该方法应在收到 回调后调用。

+
+
+ 参数 + + + userAccount + 用户 User Account。 + + + userInfo + 输出参数,表示用户信息。详见 + + + userAccount + 用户 User Account。 + + + userInfo + 用于标识用户信息的 对象。详见 + + + userAccount + 用户 User Account。 + + + error + 错误码,详见 + + + userAccount + 用户 User Account。 + + + error + 错误码,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getversion.dita b/dita/RTC-AIDOC/API/api_irtcengine_getversion.dita new file mode 100644 index 00000000000..3242f0e619f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getversion.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="getVersion"/> + 获取 SDK 版本号。获取 SDK 的版本号。获取 SDK 的版本号。获取 SDK 的版本号。 + + + + + + + + +
+

+ virtual const char* getVersion(int* build) = 0; + public static String getSdkVersion() + + (NSString * _Nonnull)getSdkVersion NS_SWIFT_NAME(getSdkVersion()); + + (NSString * _Nonnull)getSdkVersion NS_SWIFT_NAME(getSdkVersion()); +

+
+
+
+ 参数 + + + build + 输出参数,表示 SDK 的构建索引。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回 SDK 的版本号字符串。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

方法调用成功时,返回 SDK 的版本号字符串。 +方法调用失败,返回空字符串。

+

方法调用成功时,返回 SDK 的版本号,类型为 NSString

+

方法调用成功时,返回 SDK 的版本号,类型为 NSString

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_getvolumeofeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_getvolumeofeffect.dita new file mode 100644 index 00000000000..601fd8c238e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_getvolumeofeffect.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="getVolumeOfEffect"/> + 获取指定音效文件的音量。获取指定音效文件的音量。获取指定音效文件的音量。获取指定音效文件的音量。 + + + + + + + + +
+

+ virtual int getVolumeOfEffect(int soundId) = 0; + public abstract int getVolumeOfEffect(int soundId); + - (int)getVolumeOfEffect:(int)soundId NS_SWIFT_NAME(getVolumeOfEffect(_:)); + - (int)getVolumeOfEffect:(int)soundId NS_SWIFT_NAME(getVolumeOfEffect(_:)); +

+
+
+
+ 参数 + + + soundId + 音效文件的 ID。 + + + soundId + 音效文件的 ID。 + + + soundId + 音效文件的 ID。 + + + soundId + 音效文件的 ID。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回指定音效的音量,取值范围为 0 到 100,100 表示原始音量。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回指定音效的音量,取值范围为 0 到 100,100 表示原始音量。
  • +
  • 方法调用失败,返回值小于 0。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_initialize.dita b/dita/RTC-AIDOC/API/api_irtcengine_initialize.dita new file mode 100644 index 00000000000..fa4d8b536e5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_initialize.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="initialize"/> + 初始化 创建并初始化 实例。创建并初始化 实例。创建并初始化 实例。 + + + + + + + + +
+

+ virtual int initialize(const RtcEngineContext& context) = 0; + public static synchronized RtcEngine create(RtcEngineConfig config) throws Exception + + (instancetype _Nonnull)sharedEngineWithConfig:(AgoraRtcEngineConfig * _Nonnull)config + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(with:delegate:)); + + (instancetype _Nonnull)sharedEngineWithConfig:(AgoraRtcEngineConfig * _Nonnull)config + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(with:delegate:)); +

+
+
+

你可以通过调用此方法或 方法来创建 实例。与后者相比,此方法支持更多配置选项,例如指定连接区域和设置日志文件。

+

你可以通过调用此方法或调用 来创建 实例。与 不同,此方法在创建 实例时支持更多配置,例如指定连接区域和设置日志文件。

+

你可以通过调用此方法或调用 来创建 实例。与 不同,此方法在创建 实例时支持更多配置,例如指定连接区域和设置日志文件。

+ +
    +
  • 提供的所有方法均为异步执行。建议你在同一线程中调用这些方法。
  • +
  • SDK 仅支持为一个 App 创建一个 实例。
  • +
+
+ 每个 App 仅支持创建一个 实例。 类中的所有方法均为异步执行,声网建议在同一线程中调用这些方法。 + 每个 App 仅支持创建一个实例。 提供的所有方法均为异步执行。声网建议你在同一线程中调用这些方法。 + 每个 App 仅支持创建一个实例。 提供的所有方法均为异步执行。声网建议你在同一线程中调用这些方法。 +
+
+ 调用时机 +

在调用其他 API 之前,必须先调用 来创建并初始化 对象。

+

在调用其他 API 之前,必须先调用此方法创建 对象。

+

在调用其他 API 之前,必须先调用此方法创建 对象。

+

在调用其他 API 之前,必须先调用此方法创建 对象。

+
+
+ 参数 + + + context + 实例的配置,详见 + + + config + 用于配置 实例的参数。详见 + + + config + 用于配置 实例的参数。详见 + + + delegate + 的事件回调处理器。详见 + + + config + 用于配置 实例的参数。详见 + + + delegate + 的事件回调处理器。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    • -22:资源请求失败。由于你的 App 占用过多系统资源或系统资源不足,SDK 无法分配资源。
    • +
    • -101:App ID 无效。
    • +
    +
  • +
+

+

方法调用成功,返回初始化后的 对象。 +方法调用失败,SDK 会抛出异常,并返回相应的错误信息。你需要捕获异常并进行处理。

+

+

    +
  • 方法调用成功时,返回初始化后的 对象。
  • +
  • 方法调用失败时,返回一个其内部引擎字段为 对象。你可以通过 回调获取错误码。
  • +
+

+

+

    +
  • 方法调用成功时,返回初始化后的 对象。
  • +
  • 方法调用失败时,返回一个其内部引擎字段为 对象。你可以通过 回调获取错误码。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameraautoexposurefacemodesupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameraautoexposurefacemodesupported.dita new file mode 100644 index 00000000000..1776e508fcc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameraautoexposurefacemodesupported.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="isCameraAutoExposureFaceModeSupported"/> + 检查设备是否支持自动曝光功能。检查设备是否支持自动曝光。 + + + + + + + + +
+

+ virtual bool isCameraAutoExposureFaceModeSupported() = 0; + - (BOOL)isCameraAutoExposureFaceModeSupported NS_SWIFT_NAME(isCameraAutoExposureFaceModeSupported()); +

+
+
+ 仅适用于 iOS 平台。必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。 + 方法必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用。 +
+
+ 返回值 +

:设备支持自动曝光功能。 +:设备不支持自动曝光功能。

+

+

    +
  • :设备支持自动曝光。
  • +
  • :设备不支持自动曝光。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameraautofocusfacemodesupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameraautofocusfacemodesupported.dita new file mode 100644 index 00000000000..27ccf2bf705 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameraautofocusfacemodesupported.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="isCameraAutoFocusFaceModeSupported"/> + 检查设备是否支持人脸自动对焦功能。检查设备是否支持人脸自动对焦功能。检查设备是否支持人脸自动对焦功能。 + + + + + + + + +
+

+ virtual bool isCameraAutoFocusFaceModeSupported() = 0; + - (BOOL)isCameraAutoFocusFaceModeSupported NS_SWIFT_NAME(isCameraAutoFocusFaceModeSupported()); + public abstract boolean isCameraAutoFocusFaceModeSupported(); +

+
+
+ 仅适用于 Android 和 iOS 平台。必须在 SDK 触发 回调,并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 + 你必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用此方法。 + 你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 +
+
+ 返回值 +

:设备支持人脸自动对焦功能。 +:设备不支持人脸自动对焦功能。

+

+

    +
  • :设备支持人脸自动对焦功能。
  • +
  • :设备不支持人脸自动对焦功能。
  • +
+

+

+

    +
  • :设备支持人脸自动对焦功能。
  • +
  • :设备不支持人脸自动对焦功能。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameracenterstagesupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameracenterstagesupported.dita new file mode 100644 index 00000000000..9b7a53149a8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameracenterstagesupported.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="isCameraCenterStageSupported"/> + 检查当前摄像头是否支持人像锁定功能。检查当前摄像头是否支持人像锁定。检查当前摄像头是否支持人像锁定。 + + + + + + + + +
+

+ virtual bool isCameraCenterStageSupported() = 0; + - (BOOL)isCameraCenterStageSupported NS_SWIFT_NAME(isCameraCenterStageSupported()); + - (BOOL)isCameraCenterStageSupported NS_SWIFT_NAME(isCameraCenterStageSupported()); +

+
+
+

建议在调用 启用人像锁定功能前,先调用该方法确认当前设备是否支持此功能。你必须在摄像头成功启用后调用该方法,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+

在调用 方法前,建议调用该方法检查当前设备是否支持人像锁定功能。

+

在调用 方法前,建议调用该方法检查当前设备是否支持人像锁定功能。

+ 该方法仅适用于 iOS 和 macOS 平台。 +
+
+ 调用时机 +

必须在摄像头成功启用后调用,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+

你必须在摄像头成功启用后调用该方法,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+

你必须在摄像头成功启用后调用该方法,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+
+
+ 返回值 +

+

    +
  • :当前摄像头支持人像锁定功能。
  • +
  • :当前摄像头不支持人像锁定功能。
  • +
+

+

+

    +
  • :当前摄像头支持人像锁定。
  • +
  • :当前摄像头不支持人像锁定。
  • +
+

+

+

    +
  • :当前摄像头支持人像锁定。
  • +
  • :当前摄像头不支持人像锁定。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposurepositionsupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposurepositionsupported.dita new file mode 100644 index 00000000000..a198833fcad --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposurepositionsupported.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="isCameraExposurePositionSupported"/> + 检查设备是否支持手动曝光。检查设备是否支持手动曝光。检查设备是否支持手动曝光。 + + + + + + + + +
+

+ virtual bool isCameraExposurePositionSupported() = 0; + - (BOOL)isCameraExposurePositionSupported NS_SWIFT_NAME(isCameraExposurePositionSupported()); + public abstract boolean isCameraExposurePositionSupported(); +

+
+
+
+ +
自从
+
自 v2.3.2 版本新增。
+
+ +
自从
+
自 v2.3.2 版本新增。
+
+
+ 方法仅适用于 Android 和 iOS 平台。你必须在 SDK 触发 回调,并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 + 必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用此方法。 + 你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 +
+
+ 返回值 +

+

    +
  • :设备支持手动曝光。
  • +
  • :设备不支持手动曝光。
  • +
+

+

+

    +
  • :设备支持手动曝光。
  • +
  • :设备不支持手动曝光。
  • +
+

+

+

    +
  • :设备支持手动曝光。
  • +
  • :设备不支持手动曝光。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposuresupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposuresupported.dita new file mode 100644 index 00000000000..36937820029 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameraexposuresupported.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="isCameraExposureSupported"/> + 查询当前摄像头是否支持调节曝光值。查询当前摄像头是否支持调节曝光值。查询当前摄像头是否支持调节曝光值。 + + + + + + + + +
+

+ virtual bool isCameraExposureSupported() = 0; + - (BOOL)isCameraExposureSupported NS_SWIFT_NAME(isCameraExposureSupported()); + public abstract boolean isCameraExposureSupported(); +

+
+
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+
+ +
    +
  • 该方法仅适用于 Android 和 iOS 平台。
  • +
  • 必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。
  • +
  • 在调用 之前,建议你先调用该方法查询当前摄像头是否支持调节曝光值。
  • +
  • 该方法用于调节当前激活摄像头的曝光值,即调用 时指定的摄像头。
  • +
+
+ +
    +
  • 你必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用该方法。
  • +
  • 在调用 之前,建议你先调用该方法,确认当前摄像头是否支持调节曝光值。
  • +
  • 该方法用于调节当前激活摄像头的曝光值,即调用 时指定的摄像头。
  • +
+
+ 该方法必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。在调用 之前,建议先调用该方法查询当前摄像头是否支持调节曝光值。该方法会调节当前激活摄像头的曝光值,即调用 时指定的摄像头。 +
+
+ 返回值 +

+

    +
  • :查询成功。
  • +
  • :查询失败。
  • +
+

+

+

    +
  • :查询成功,当前摄像头支持调节曝光值。
  • +
  • :查询失败,当前摄像头不支持调节曝光值。
  • +
+

+

+

    +
  • :当前摄像头支持调节曝光值。
  • +
  • :当前摄像头不支持调节曝光值。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscamerafacedetectsupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscamerafacedetectsupported.dita new file mode 100644 index 00000000000..eaf863b3516 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscamerafacedetectsupported.dita @@ -0,0 +1,35 @@ + + + + <ph keyref="isCameraFaceDetectSupported"/> + 检查设备摄像头是否支持人脸检测。检查设备摄像头是否支持人脸检测。 + + + + + + + + +
+

+ virtual bool isCameraFaceDetectSupported() = 0; + public abstract boolean isCameraFaceDetectSupported(); +

+
+
+ 仅适用于 Android 和 iOS 平台。必须在 SDK 触发 回调,并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 +
+
+ 返回值 +

:设备摄像头支持人脸检测。 +:设备摄像头不支持人脸检测。

+

+

    +
  • :设备摄像头支持人脸检测。
  • +
  • :设备摄像头不支持人脸检测。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscamerafocussupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscamerafocussupported.dita new file mode 100644 index 00000000000..749f0d68781 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscamerafocussupported.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="isCameraFocusSupported"/> + 检查设备是否支持手动对焦功能。检查设备是否支持手动对焦功能。检查设备是否支持手动对焦功能。 + + + + + + + + +
+

+ virtual bool isCameraFocusSupported() = 0; + - (BOOL)isCameraFocusPositionInPreviewSupported NS_SWIFT_NAME(isCameraFocusPositionInPreviewSupported()); + public abstract boolean isCameraFocusSupported(); +

+
+
+ 仅适用于 Android 和 iOS 平台。你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 + 必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用此方法。 + 你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。 +
+
+ 返回值 +

+

    +
  • :设备支持手动对焦功能。
  • +
  • :设备不支持手动对焦功能。
  • +
+

+

+

    +
  • :设备支持手动对焦功能。
  • +
  • :设备不支持手动对焦功能。
  • +
+

+

+

    +
  • :设备支持手动对焦功能。
  • +
  • :设备不支持手动对焦功能。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscameratorchsupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscameratorchsupported.dita new file mode 100644 index 00000000000..14ed5111723 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscameratorchsupported.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="isCameraTorchSupported"/> + 检查设备是否支持摄像头闪光灯。检查设备是否支持相机闪光灯。检查设备是否支持相机闪光灯功能。 + + + + + + + + +
+

+ virtual bool isCameraTorchSupported() = 0; + - (BOOL)isCameraTorchSupported NS_SWIFT_NAME(isCameraTorchSupported()); + public abstract boolean isCameraTorchSupported(); +

+
+
+ 仅适用于 Android 和 iOS 平台。必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。App 默认启用前置摄像头。如果前置摄像头不支持闪光灯,该方法返回 。如果你想检查后置摄像头是否支持闪光灯功能,请在调用该方法前调用 。iOS 15 系统版本的 iPad 上,即使 返回 ,由于系统问题,调用 可能无法成功打开闪光灯。 + 你必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用该方法。App 默认启用前置摄像头。如果前置摄像头不支持闪光灯,该方法返回 。如果你想检查后置摄像头是否支持闪光灯功能,请在调用该方法前调用 。在系统版本为 15 的 iPad 上,即使 返回 ,你也可能因系统问题调用 启用闪光灯失败。 + 你必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。App 默认启用前置摄像头。如果前置摄像头不支持闪光灯,该方法返回 。如果你想检查后置摄像头是否支持闪光灯功能,请在调用该方法前调用 switchCamera +
+
+ 返回值 +

+

    +
  • :设备支持摄像头闪光灯。
  • +
  • :设备不支持摄像头闪光灯。
  • +
+

+

+

    +
  • :设备支持相机闪光灯。
  • +
  • :设备不支持相机闪光灯。
  • +
+

+

+

    +
  • :设备支持相机闪光灯功能。
  • +
  • :设备不支持相机闪光灯功能。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_iscamerazoomsupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_iscamerazoomsupported.dita new file mode 100644 index 00000000000..4f23835775a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_iscamerazoomsupported.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="isCameraZoomSupported"/> + 检查设备是否支持摄像头变焦。检查设备是否支持摄像头变焦。检查设备是否支持摄像头变焦。 + + + + + + + + +
+

+ virtual bool isCameraZoomSupported() = 0; + - (BOOL)isCameraZoomSupported NS_SWIFT_NAME(isCameraZoomSupported()); + public abstract boolean isCameraZoomSupported(); +

+
+
+ 方法仅适用于 Android 和 iOS 平台。 +
+
+ 调用时机 +

必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用该方法。

+

你必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用该方法。

+

必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。

+
+
+ 返回值 +

:设备支持摄像头变焦。 +:设备不支持摄像头变焦。

+

+

    +
  • :设备支持摄像头变焦。
  • +
  • :设备不支持摄像头变焦。
  • +
+

+

+

    +
  • :设备支持摄像头变焦。
  • +
  • :设备不支持摄像头变焦。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_isfeatureavailableondevice.dita b/dita/RTC-AIDOC/API/api_irtcengine_isfeatureavailableondevice.dita new file mode 100644 index 00000000000..6f079dbc31f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_isfeatureavailableondevice.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="isFeatureAvailableOnDevice"/> + 检查当前设备是否支持指定的高级功能。检查当前设备是否支持指定的高级功能。检查当前设备是否支持指定的高级功能。检查当前设备是否支持指定的高级功能。 + + + + + + + + +
+

+ virtual bool isFeatureAvailableOnDevice(FeatureType type) = 0; + public abstract boolean isFeatureAvailableOnDevice(int type); + - (BOOL)isFeatureAvailableOnDevice:(AgoraFeatureType)type; + - (BOOL)isFeatureAvailableOnDevice:(AgoraFeatureType)type; +

+
+
+
+ +
自从
+
自 v4.3.0 版本新增。
+
+ +
自从
+
自 v4.3.0 版本新增。
+
+ +
自从
+
自 v4.3.0 版本新增。
+
+ +
自从
+
自 v4.3.0 版本新增。
+
+
+

你可以通过该方法判断当前设备是否满足使用虚拟背景、图像增强等高级功能的性能要求,从而避免在低性能设备上启用相关功能导致性能下降或功能不可用。根据返回结果,你可以决定是否展示或启用对应功能按钮,或在设备性能不足时提示用户。

+

在使用高级功能前,建议调用该方法判断当前设备的能力是否满足要求,以避免在低端设备上启用高级功能时出现性能下降或功能不可用的情况。你可以根据该方法的返回值决定是否显示或启用相应的功能按钮,或在设备能力不足时提示用户。

+

你可以使用该方法检查当前设备的能力是否满足虚拟背景、图像增强等高级功能的要求。该方法适用于在启用高级功能前进行设备能力判断,以避免在低端设备上启用功能时出现性能下降或功能不可用的问题。你可以根据该方法的返回值决定是否显示或启用相应的功能按钮,或在设备能力不足时通知用户。

+

你可以使用该方法检查当前设备的能力是否满足虚拟背景、图像增强等高级功能的要求。该方法适用于在启用高级功能前进行设备能力判断,以避免在低端设备上启用功能时出现性能下降或功能不可用的问题。你可以根据该方法的返回值决定是否显示或启用相应的功能按钮,或在设备能力不足时通知用户。

+
+
+ 参数 + + + type + 高级功能的类型,详见 + + + type + 高级功能的类型: +
    +
  • FEATURE_VIDEO_VIRTUAL_BACKGROUND(1):虚拟背景。
  • +
  • FEATURE_VIDEO_BEAUTY_EFFECT(2):美颜特效。
  • +
+
+
+ + type + 高级功能的类型,详见 + + + type + 高级功能的类型,详见 + +
+
+
+ 返回值 +

+

    +
  • :当前设备支持指定的功能。
  • +
  • :当前设备不支持指定的功能。
  • +
+

+

+

    +
  • :当前设备支持指定的功能。
  • +
  • :当前设备不支持指定的功能。
  • +
+

+

+

    +
  • :当前设备支持指定的功能。
  • +
  • :当前设备不支持指定的功能。
  • +
+

+

+

    +
  • :当前设备支持指定的功能。
  • +
  • :当前设备不支持指定的功能。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_isspeakerphoneenabled.dita b/dita/RTC-AIDOC/API/api_irtcengine_isspeakerphoneenabled.dita new file mode 100644 index 00000000000..23f11e8fc77 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_isspeakerphoneenabled.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="isSpeakerphoneEnabled"/> + 检查扬声器是否启用。检查是否启用扬声器播放音频。检查是否启用扬声器播放音频。 + + + + + + + + +
+

+ virtual bool isSpeakerphoneEnabled() = 0; + - (BOOL)isSpeakerphoneEnabled NS_SWIFT_NAME(isSpeakerphoneEnabled()); + public abstract boolean isSpeakerphoneEnabled(); +

+
+
+ 该方法仅适用于 Android 和 iOS 平台。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 返回值 +

+

    +
  • :扬声器已启用,音频将从扬声器播放。
  • +
  • :扬声器未启用,音频将从其他设备播放,例如耳机或听筒。
  • +
+

+

+

    +
  • :(默认)已启用扬声器,音频将从扬声器播放。
  • +
  • :未启用扬声器,音频将从非扬声器设备播放,例如耳机或听筒。
  • +
+

+

+

    +
  • :扬声器已启用,音频将从扬声器播放。
  • +
  • :扬声器未启用,音频将从其他设备播放,例如耳机或听筒。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_istextureencodesupported.dita b/dita/RTC-AIDOC/API/api_irtcengine_istextureencodesupported.dita new file mode 100644 index 00000000000..d4fc7660e1a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_istextureencodesupported.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="isTextureEncodeSupported"/> + 检查视频是否支持 Texture 编码。 + + + + + + + + +
+

+ public abstract boolean isTextureEncodeSupported(); +

+
+
+
+ 返回值 +

+

    +
  • :支持 Texture 编码。
  • +
  • :不支持 Texture 编码。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_joinchannel1.dita b/dita/RTC-AIDOC/API/api_irtcengine_joinchannel1.dita new file mode 100644 index 00000000000..b4ad52a4f4d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_joinchannel1.dita @@ -0,0 +1,283 @@ + + + + <ph keyref="joinChannel1"/> + 加入一个频道。加入一个频道。加入一个频道。加入一个频道。 + + + + + + + + +
+

+ virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0; + public abstract int joinChannel(String token, String channelId, String optionalInfo, int uid); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + info:(NSString * _Nullable)info + uid:(NSUInteger)uid + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:info:uid:joinSuccess:)); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + info:(NSString * _Nullable)info + uid:(NSUInteger)uid + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:info:uid:joinSuccess:)); +

+
+
+

默认情况下,用户会订阅频道中其他所有用户的音视频流,从而产生使用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。

+

默认情况下,用户会订阅频道中其他所有用户的音视频流,从而产生使用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。

+

默认情况下,你会订阅频道中其他所有用户的音视频流,从而产生使用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。请在调用 方法后调用本方法。

+

默认情况下,你会订阅频道中其他所有用户的音视频流,从而产生使用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。请在调用 方法后调用本方法。

+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 一致,否则可能会导致加入频道失败。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会导致加入频道失败。
  • +
+
+ 该方法每次仅支持加入一个频道。 +不同 App ID 的用户无法互通。 +加入频道前,请确保用于生成 Token 的 App ID 与传入 方法中的 App ID 一致,否则可能导致加入频道失败。 + 该方法每次仅支持加入一个频道。 +不同 App ID 的用户无法互通。 +加入频道前,请确保用于生成 Token 的 App ID 与传入 方法中的 App ID 一致,否则可能导致加入频道失败。 +
+
+ 调用时机 +

该方法需要在调用 方法之后调用。

+

请在调用 方法后调用本方法。

+

请在调用 方法后调用本方法。

+

请在调用 方法后调用本方法。

+
+ +
+ 参数 + + + token + 用于鉴权的 Token,由你的服务器生成。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + info + (可选)预留参数。 + + + uid + 用户 ID。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中的每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32 - 1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并在 回调中返回。你的应用程序必须记录并维护返回的用户 ID,SDK 不会保存。 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + optionalInfo + (可选)预留参数。 + + + uid + 用户 ID。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中每个用户 ID 唯一。该参数为 32 位有符号整数,取值范围为 -2^31 到 2^31-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并通过 回调返回。你的应用需记录并维护该返回的用户 ID,SDK 不会保存。 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。 +如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。 +如果你需要同时加入多个频道或在频道之间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。详见 使用 Token 实现安全鉴权 + + + + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + info + (可选)预留参数 + + + uid + 用户 ID。该参数用于标识频道内进行实时音视频互动的用户。你需要自行设置并管理用户 ID,确保同一频道内每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并通过 回调返回。你必须记录并维护该返回的用户 ID,SDK 不会保存。 + + + joinSuccessBlock + 用户成功加入频道时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。 +如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。 +如果你需要同时加入多个频道或在频道之间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。详见 使用 Token 实现安全鉴权 + + + + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + info + (可选)预留参数 + + + uid + 用户 ID。该参数用于标识频道内进行实时音视频互动的用户。你需要自行设置并管理用户 ID,确保同一频道内每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并通过 回调返回。你必须记录并维护该返回的用户 ID,SDK 不会保存。 + + + joinSuccessBlock + 用户成功加入频道时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是在调用 开始通话回声测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你使用 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。请传入有效参数后重新加入频道。
    • +
    • -3: 对象初始化失败。请重新初始化 对象。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • -8: 对象内部状态错误。常见原因是在调用 开始通话回声测试后,未调用 停止测试就调用该方法加入频道。请先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。请传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。请重新初始化该对象。
    • +
    • -7: 对象尚未初始化。请先初始化该对象再调用本方法。
    • +
    • -8: 对象的内部状态错误。常见原因是在调用 开始回声测试后,未调用 停止测试就调用本方法加入频道。请先调用
    • +
    • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。仅当收到 AgoraConnectionStateDisconnected(1)状态时再调用本方法。
    • +
    • -102:频道名无效。请在 channelId 中传入有效频道名重新加入。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。请传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。请重新初始化该对象。
    • +
    • -7: 对象尚未初始化。请先初始化该对象再调用本方法。
    • +
    • -8: 对象的内部状态错误。常见原因是在调用 开始回声测试后,未调用 停止测试就调用本方法加入频道。请先调用
    • +
    • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。仅当收到 AgoraConnectionStateDisconnected(1)状态时再调用本方法。
    • +
    • -102:频道名无效。请在 channelId 中传入有效频道名重新加入。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效用户 ID 重新加入频道。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_joinchannel2.dita b/dita/RTC-AIDOC/API/api_irtcengine_joinchannel2.dita new file mode 100644 index 00000000000..b2405201504 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_joinchannel2.dita @@ -0,0 +1,291 @@ + + + + <ph keyref="joinChannel2"/> + 加入频道并设置媒体选项。加入频道并设置媒体选项。加入频道并设置媒体选项。加入频道并设置媒体选项。 + + + + + + + + +
+

+ virtual int joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) = 0; + public abstract int joinChannel(String token, String channelId, int uid, ChannelMediaOptions options); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + uid:(NSUInteger)uid + mediaOptions:(AgoraRtcChannelMediaOptions * _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:uid:mediaOptions:joinSuccess:)); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + uid:(NSUInteger)uid + mediaOptions:(AgoraRtcChannelMediaOptions * _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:uid:mediaOptions:joinSuccess:)); +

+
+
+

该方法相比 增加了 options 参数,用于设置媒体选项,例如是否在频道内发布音视频流,或在加入频道时是否自动订阅所有远端用户的音视频流。默认情况下,用户会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如需停止订阅其他流,请设置 options 参数或调用管理发布与订阅的相关方法。

+

该方法新增 options 参数,用于设置媒体选项,例如是否在频道内发布音视频流,或在加入频道时是否自动订阅所有远端用户的音视频流。默认情况下,用户会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如需停止订阅其他流,请设置 options 参数或调用管理发布与订阅的相关方法。

+

方法相比,该方法新增了 mediaOptions 参数,用于设置媒体选项,例如是否在频道内发布音视频流,或在加入频道时是否自动订阅所有远端用户的音视频流。默认情况下,你会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如需停止订阅其他流,请设置 mediaOptions 参数或调用发布与订阅相关的方法。

+

方法相比,该方法新增了 mediaOptions 参数,用于设置媒体选项,例如是否在频道内发布音视频流,或在加入频道时是否自动订阅所有远端用户的音视频流。默认情况下,你会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如需停止订阅其他流,请设置 mediaOptions 参数或调用发布与订阅相关的方法。

+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 一致,否则可能会导致加入频道失败。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 一致,否则可能导致加入频道失败。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 一致,否则可能导致加入频道失败。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 一致,否则可能导致加入频道失败。
  • +
+
+
+
+ 调用时机 +

请在调用 方法后调用该方法。

+

请在调用 方法后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + uid + 用户 ID。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道内的每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并在 回调中返回。你的应用程序必须记录并维护返回的用户 ID。 + + + options + 频道媒体选项。详见 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID。用于标识频道中的用户。你需要自行设置和管理用户 ID,并确保同一频道中每个用户 ID 唯一。该参数为 32 位有符号整数,取值范围为 -2³¹ 到 2³¹-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并在 回调中返回。你的应用必须记录并维护该返回的用户 ID,SDK 不会保存。 + + + options + 频道媒体选项,详见 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入不同频道或在频道间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID。该参数用于标识频道内进行实时音视频互动的用户。你需要自行设置并管理用户 ID,确保同一频道内每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并通过 回调返回。你必须记录并维护该返回的用户 ID,SDK 不会保存。 + + + mediaOptions + 频道媒体选项。详见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不再生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入不同频道或在频道间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID。该参数用于标识频道内进行实时音视频互动的用户。你需要自行设置并管理用户 ID,确保同一频道内每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32-1。如果未指定用户 ID(或设置为 0),SDK 会自动分配一个随机用户 ID,并通过 回调返回。你必须记录并维护该返回的用户 ID,SDK 不会保存。 + + + mediaOptions + 频道媒体选项。详见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不再生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 options 中的成员值无效。请传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。请重新初始化 对象。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • -8: 对象内部状态错误。常见原因是在调用 开始通话回声测试后,未调用 停止测试就调用该方法加入频道。请先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。你需要重新初始化该对象。
  • +
  • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
  • +
  • -17:加入频道请求被拒绝。典型原因是你已在频道中。声网建议你通过 回调判断是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
  • +
  • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
  • +
  • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。你需要重新初始化该对象。
  • +
  • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
  • +
  • -17:加入频道请求被拒绝。典型原因是你已在频道中。声网建议你通过 回调判断是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
  • +
  • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
  • +
  • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount1.dita b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount1.dita new file mode 100644 index 00000000000..108eaa04e38 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount1.dita @@ -0,0 +1,313 @@ + + + + <ph keyref="joinChannelWithUserAccount1"/> + 使用用户 User Account 和 Token 加入频道。使用用户 User Account 和 Token 加入频道。使用用户 User Account 和 Token 加入频道。使用用户 User Account 和 Token 加入频道。 + + + + + + + + +
+

+ virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0; + public abstract int joinChannelWithUserAccount(String token, String channelName, String userAccount); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:userAccount:joinSuccess:)); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:userAccount:joinSuccess:)); +

+
+
+

在调用该方法之前,如果你尚未调用 注册用户 User Account,SDK 会在你调用该方法加入频道时自动为你创建一个用户 User Account。建议你先调用 注册用户 User Account,再调用该方法加入频道,以缩短加入频道所需的时间。 +用户加入频道后,默认会订阅频道中所有其他用户的音视频流,从而产生用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。

+

调用 注册用户 User Account 后再调用此方法加入频道,可以缩短进入频道所需的时间。如果你尚未调用 注册用户 User Account,当你调用此方法加入频道时,SDK 会自动为你创建一个用户 User Account。 +一旦用户加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生用量和计费。如需停止订阅指定流或所有远端流,请调用管理发布与订阅的相关方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦用户加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生用量和计费。如需停止订阅指定或所有远端流,请调用相应的 mute 方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦用户加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生用量和计费。如需停止订阅指定或所有远端流,请调用相应的 mute 方法。

+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能导致加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID;使用用户 User Account 加入频道的用户也应保持一致。如果用户使用声网 Web SDK 加入频道,请确保该用户的 ID 类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 uid 加入频道,则其他用户也应使用 uid;如果使用用户 User Account 加入频道,则其他用户也应使用用户 User Account。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 设置为相同的参数类型。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 时传入的 App ID 一致,否则可能导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请统一使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID。用户 User Account 亦同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 时传入的 App ID 一致,否则可能导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请统一使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID。用户 User Account 亦同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+
+ 调用时机 +

在调用 之后调用该方法。

+

请在调用 方法后调用此方法。

+

在调用 之后调用该方法。

+

在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入不同频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelName + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节。请确保设置了该参数,且不为 。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + joinSuccessBlock + 用户成功加入频道回调。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节。请确保设置了该参数,且不为 。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + joinSuccessBlock + 用户成功加入频道回调。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。请重新初始化 对象。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • -8: 对象内部状态错误。典型原因是在调用 开始通话回声测试后,未调用 停止测试就调用该方法加入频道。请先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中,仅在收到 CONNECTION_STATE_DISCONNECTED(1)状态时再调用该方法。
    • +
    • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    • -8: 对象内部状态错误。典型原因是调用 开始通话回路测试后,未调用 停止测试就调用此方法加入频道。你需要先调用 再调用此方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你使用 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用此方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。你需要重新初始化该对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。你需要重新初始化该对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount2.dita b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount2.dita new file mode 100644 index 00000000000..367c9a11901 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccount2.dita @@ -0,0 +1,325 @@ + + + + <ph keyref="joinChannelWithUserAccount2"/> + 使用用户 User Account 和 Token 加入频道,并设置媒体选项。使用用户 User Account 和 Token 加入频道,并设置媒体选项。使用用户 User Account 和 Token 加入频道,并设置媒体选项。使用用户 User Account 和 Token 加入频道,并设置媒体选项。 + + + + + + + + +
+

+ virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options) = 0; + public abstract int joinChannelWithUserAccount(String token, String channelName, String userAccount, ChannelMediaOptions options); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount + mediaOptions:(AgoraRtcChannelMediaOptions * _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:userAccount:mediaOptions:joinSuccess:)); + - (int)joinChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount + mediaOptions:(AgoraRtcChannelMediaOptions * _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannel(byToken:channelId:userAccount:mediaOptions:joinSuccess:)); +

+
+
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+
+

在调用该方法前,如果你尚未调用 注册用户 User Account,SDK 会在你调用该方法加入频道时自动创建一个用户 User Account。提前调用 可以缩短加入频道所需的时间。 + +与 joinChannelWithUserAccount 方法相比,该方法新增了 options 参数,用于设置频道内的媒体选项,例如是否发布音视频流。 + +默认情况下,用户会订阅频道内所有其他用户的音视频流,从而产生使用量和计费。若要停止订阅其他流,请设置 options 参数或调用管理发布与订阅的相关方法。

+

该方法新增了 options 参数,用于设置媒体选项,例如是否在频道内发布音视频流。默认情况下,用户会订阅频道内所有其他用户的音视频流,从而产生使用量和计费。如需停止订阅其他流,请设置 options 参数或调用管理发布与订阅的相关方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 + +与 方法相比,该方法多了一个 mediaOptions 参数,用于设置媒体选项,例如是否在频道内发布音视频流。默认情况下,你会订阅频道内所有其他用户的音视频流,从而产生使用量和计费。若要停止订阅其他流,请设置 mediaOptions 参数或调用发布与订阅相关的方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 + +与 方法相比,该方法多了一个 mediaOptions 参数,用于设置媒体选项,例如是否在频道内发布音视频流。默认情况下,你会订阅频道内所有其他用户的音视频流,从而产生使用量和计费。若要停止订阅其他流,请设置 mediaOptions 参数或调用发布与订阅相关的方法。

+ +
    +
  • 此方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会因 Token 不匹配而加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID;用户 User Account 亦同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与 方法中传入的 App ID 一致,否则可能导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与 方法中传入的 App ID 一致,否则可能导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+
+ 调用时机 +

请在调用 方法后调用该方法。

+

在调用 方法之后调用此方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + options + 频道媒体选项。详见 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),此参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),此参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelName + 频道名。在相同 App ID 前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account。你需要自行设置和管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + options + 频道媒体选项,详见 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + mediaOptions + 频道媒体选项。详见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + mediaOptions + 频道媒体选项。详见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你使用 回调查看用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名以重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 以重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。请重新初始化 对象。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用此方法。
    • +
    • -8: 对象内部状态错误。典型原因是调用 开始通话回声测试后,未调用 停止测试就调用此方法加入频道。请先调用 再调用此方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。仅当收到 CONNECTION_STATE_DISCONNECTED(1)状态时再调用此方法加入频道。
    • +
    • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。你需要传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。你需要重新初始化该对象。
  • +
  • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。你需要先调用
  • +
  • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法。
  • +
  • -102:频道名无效。你需要传入有效的 channelId 重新加入频道。
  • +
  • -121:用户 ID 无效。你需要传入有效的 uid 重新加入频道。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。你需要传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。你需要重新初始化该对象。
  • +
  • -7: 对象尚未初始化。你需要先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。你需要先调用
  • +
  • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议使用 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法。
  • +
  • -102:频道名无效。你需要传入有效的 channelId 重新加入频道。
  • +
  • -121:用户 ID 无效。你需要传入有效的 uid 重新加入频道。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccountex_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccountex_irtcengine.dita new file mode 100644 index 00000000000..7980f6cc720 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_joinchannelwithuseraccountex_irtcengine.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="joinChannelWithUserAccountEx_IRtcEngine"/> + 使用用户 User Account 和 Token 加入频道,并设置媒体选项。 + + + + + + + + +
+

+ virtual int joinChannelWithUserAccountEx(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options, IRtcEngineEventHandler* eventHandler) = 0; +

+
+
+

在调用该方法之前,如果你尚未调用 注册用户 User Account,SDK 会在你调用该方法加入频道时自动为你创建一个用户 User Account。提前调用 注册用户 User Account 再加入频道,可以缩短加入频道所需的时间。 +用户加入频道后,默认会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 options 参数或调用管理发布与订阅的相关方法。

+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 UID 加入频道,则其他用户也应使用 UID;如果使用用户 User Account 加入频道,则其他用户也应使用用户 User Account。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你仅启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 下,填写相同频道名的用户会进入同一个频道。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account。用于标识频道中的用户。你需要自行设置并管理用户 User Account,确保同一频道中每个用户 User Account 唯一。最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + options + 频道媒体选项。详见 + + + eventHandler + 回调类。详见 。你可以通过该参数传入的 eventHandler 对象获取多个频道的回调事件。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 重新加入频道。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_leavechannel.dita b/dita/RTC-AIDOC/API/api_irtcengine_leavechannel.dita new file mode 100644 index 00000000000..5e37b2b73eb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_leavechannel.dita @@ -0,0 +1,153 @@ + + + + <ph keyref="leaveChannel"/> + 离开频道。离开频道。离开频道并释放资源。离开频道并释放资源。 + + + + + + + + +
+

+ virtual int leaveChannel() = 0; + public abstract int leaveChannel(); + - (int)leaveChannel:(void(^ _Nullable)(AgoraChannelStats * _Nonnull stat))leaveChannelBlock NS_SWIFT_NAME(leaveChannel(_:)); + - (int)leaveChannel:(void(^ _Nullable)(AgoraChannelStats * _Nonnull stat))leaveChannelBlock NS_SWIFT_NAME(leaveChannel(_:)); +

+
+
+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。加入频道后,必须调用该方法结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,释放与会话相关的所有资源。加入频道后,必须调用该方法结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。加入频道后,必须调用该方法结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。加入频道后,必须调用该方法结束通话,否则无法开始下一次通话。

+ +
    +
  • 如果在调用该方法后立即调用 ,SDK 不会触发 回调。
  • +
  • 此方法为异步调用。方法返回时,并不代表用户已完全离开频道。
  • +
  • 如果你通过 加入了多个频道,调用该方法会离开你加入的所有频道。
  • +
+
+ +
    +
  • 如果在调用该方法后立即调用 ,SDK 不会触发 回调。
  • +
  • 此方法为异步调用。当该方法返回时,并不代表用户已完全离开频道。
  • +
  • 如果你调用了 加入了多个频道,调用该方法会离开你加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 该方法为异步调用。当该方法返回时,并不代表你已完全离开频道。
  • +
  • 如果你调用了 joinChannelExByToken 加入了多个频道,调用该方法会离开你加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 该方法为异步调用。当该方法返回时,并不代表你已完全离开频道。
  • +
  • 如果你调用了 joinChannelExByToken 加入了多个频道,调用该方法会离开你加入的所有频道。
  • +
+
+
+
+ 调用时机 +

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+
+ +
+ 参数 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生一般性错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生一般性错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_leavechannel2.dita b/dita/RTC-AIDOC/API/api_irtcengine_leavechannel2.dita new file mode 100644 index 00000000000..49711c70367 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_leavechannel2.dita @@ -0,0 +1,125 @@ + + + + <ph keyref="leaveChannel2"/> + 设置频道选项并离开频道。设置频道选项并离开频道。设置频道选项并离开频道。设置频道选项并离开频道。 + + + + + + + + +
+

+ virtual int leaveChannel(const LeaveChannelOptions& options) = 0; + public abstract int leaveChannel(LeaveChannelOptions options); + - (int)leaveChannel:(AgoraLeaveChannelOptions * _Nonnull)options +leaveChannelBlock:(void (^ _Nullable)(AgoraChannelStats * _Nonnull))leaveChannelBlock NS_SWIFT_NAME(leaveChannel(_:leaveChannelBlock:)); + - (int)leaveChannel:(AgoraLeaveChannelOptions * _Nonnull)options +leaveChannelBlock:(void (^ _Nullable)(AgoraChannelStats * _Nonnull))leaveChannelBlock NS_SWIFT_NAME(leaveChannel(_:leaveChannelBlock:)); +

+
+
+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。如果你调用了 加入了多个频道,调用该方法会离开你加入的所有频道。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。如果你调用了 加入了多个频道,调用该方法会离开你加入的所有频道。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。加入频道后,必须调用该方法或 来结束通话,否则无法开始下一次通话。如果你调用了 joinChannelExByToken 加入了多个频道,调用该方法会离开你加入的所有频道。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。加入频道后,必须调用该方法或 来结束通话,否则无法开始下一次通话。如果你调用了 joinChannelExByToken 加入了多个频道,调用该方法会离开你加入的所有频道。

+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。该方法为异步调用。当该方法返回时,并不意味着用户已经离开频道。 + 如果在调用该方法后立即调用 ,SDK 不会触发 回调。该方法为异步调用。当该方法返回时,并不一定表示用户已离开频道。 + 如果在调用该方法后立即调用 ,SDK 不会触发 回调。该方法为异步调用。当该方法返回时,并不意味着你已经离开频道。 + 如果在调用该方法后立即调用 ,SDK 不会触发 回调。该方法为异步调用。当该方法返回时,并不意味着你已经离开频道。 +
+
+ 调用时机 +

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+
+ +
+ 参数 + + + options + 离开频道的选项。详见 + + + options + 离开频道的选项,详见 + + + options + 离开频道的选项。详见 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。 + + + options + 离开频道的选项。详见 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_loadextensionprovider.dita b/dita/RTC-AIDOC/API/api_irtcengine_loadextensionprovider.dita new file mode 100644 index 00000000000..244e2e16d48 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_loadextensionprovider.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="loadExtensionProvider"/> + 加载扩展。 + + + + + + + + +
+

+ virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0; +

+
+
+

该方法用于将 SDK 外部的扩展(例如来自云市场或 SDK 扩展)加载到 SDK 中。

+ 如果你需要加载多个扩展,需要多次调用该方法。仅适用于 Windows 和 Android 平台。 +
+
+ 调用时机 +

请确保在调用该方法前已初始化

+
+
+ 参数 + + + path + 扩展库的路径和名称。例如:/library/libagora_segmentation_extension.dll + + + unload_after_use + 是否在不再使用当前扩展时卸载该扩展: +
    +
  • :当 被销毁时卸载该扩展。
  • +
  • :(推荐)直到进程终止前都不卸载该扩展。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_monitordevicechange.dita b/dita/RTC-AIDOC/API/api_irtcengine_monitordevicechange.dita new file mode 100644 index 00000000000..5305cc72f42 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_monitordevicechange.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="monitorDeviceChange"/> + 监控设备状态变化。 + + + + + + + + +
+

+ - (void)monitorDeviceChange:(BOOL)enabled NS_SWIFT_NAME(monitorDeviceChange(_:)); +

+
+
+

你可以通过该方法监控外部音视频设备(如外接摄像头)的插拔和更换。

+
+
+ 参数 + + + enabled + 是否监控设备状态变化: +
    +
  • :开启设备状态监控。
  • +
  • :关闭设备状态监控。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_muteallremoteaudiostreams.dita b/dita/RTC-AIDOC/API/api_irtcengine_muteallremoteaudiostreams.dita new file mode 100644 index 00000000000..c77511edb9c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_muteallremoteaudiostreams.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="muteAllRemoteAudioStreams"/> + 停止或恢复接收所有远端音频流。停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。 + + + + + + + + +
+

+ virtual int muteAllRemoteAudioStreams(bool mute) = 0; + public abstract int muteAllRemoteAudioStreams(boolean muted); + - (int)muteAllRemoteAudioStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteAudioStreams(_:)); + - (int)muteAllRemoteAudioStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteAudioStreams(_:)); +

+
+
+

该方法用于停止或恢复接收所有通过 joinChannel 加入或将要加入频道的远端用户的音频流。该方法等效于 中的 autoSubscribeAudio

+

请在加入频道后调用该方法。本地用户将停止或恢复订阅所有远端用户的音频流,包括之后加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括之后加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括之后加入频道的用户。

+ 请确保在加入频道后调用该方法。如果在加入频道后调用 muteAllRemoteAudioStreams(true),本地用户将停止接收频道中所有用户的音频流,包括在调用该方法后加入频道的用户。 + 如果你调用该方法后又调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的音频流。你可以在调用 joinChannel 加入频道时将 中的 autoSubscribeAudio 设置为 ,以取消加入频道时对所有用户音频流的订阅。 + 方法调用后,如果你调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的音频流。你可以在调用 joinChannelByToken 加入频道时将 中的 autoSubscribeAudio 设置为 ,以取消加入频道时对所有用户音频流的订阅。 + 方法调用后,如果你调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的音频流。你可以在调用 joinChannelByToken 加入频道时将 中的 autoSubscribeAudio 设置为 ,以取消加入频道时对所有用户音频流的订阅。 +
+
+ 调用时机 +

请在加入频道后调用该方法。

+

该方法需要在加入频道后调用。

+

该方法需要在加入频道后调用。

+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + muted + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_muteallremotevideostreams.dita b/dita/RTC-AIDOC/API/api_irtcengine_muteallremotevideostreams.dita new file mode 100644 index 00000000000..047b529c05a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_muteallremotevideostreams.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="muteAllRemoteVideoStreams"/> + 停止或恢复接收所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。 + + + + + + + + +
+

+ virtual int muteAllRemoteVideoStreams(bool mute) = 0; + public abstract int muteAllRemoteVideoStreams(boolean muted); + - (int)muteAllRemoteVideoStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteVideoStreams(_:)); + - (int)muteAllRemoteVideoStreams:(BOOL)mute NS_SWIFT_NAME(muteAllRemoteVideoStreams(_:)); +

+
+
+

该方法对所有通过 joinChannel 加入或将要加入频道的远端用户生效,等效于 中的 autoSubscribeVideo。请确保在加入频道后调用该方法。

+

请在加入频道后调用该方法。调用该方法后,本地用户将停止或恢复订阅所有远端用户的视频流,包括之后加入频道的用户。

+

调用该方法后,你会停止或恢复订阅所有远端用户的视频流,包括后续加入频道的用户。

+

调用该方法后,你会停止或恢复订阅所有远端用户的视频流,包括后续加入频道的用户。

+ 如果在加入频道后调用 muteAllRemoteVideoStreams(true),本地用户将停止接收频道中所有用户的视频流,包括在调用该方法后加入频道的用户。 + 如果你调用该方法后又调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的视频流。你可以在调用 joinChannel 加入频道时将 中的 autoSubscribeVideo 设置为 ,以取消加入频道时对所有用户的视频流订阅。 + 如果你调用了该方法后又调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的视频流。你可以在调用 joinChannelByToken 加入频道时将 中的 autoSubscribeVideo 设置为 ,以取消加入频道时对所有用户的视频流的订阅。 + 如果你调用了该方法后又调用了 ,以最后一次调用为准。默认情况下,加入频道时 SDK 会自动订阅所有远端用户的视频流。你可以在调用 joinChannelByToken 加入频道时将 中的 autoSubscribeVideo 设置为 ,以取消加入频道时对所有用户的视频流的订阅。 +
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的视频流: +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+ + muted + 是否停止订阅所有远端用户的视频流。 + +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+
+ + mute + 是否停止订阅所有远端用户的视频流。 +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+ + mute + 是否停止订阅所有远端用户的视频流。 +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_mutelocalaudiostream.dita b/dita/RTC-AIDOC/API/api_irtcengine_mutelocalaudiostream.dita new file mode 100644 index 00000000000..4524fbd9cfa --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_mutelocalaudiostream.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="muteLocalAudioStream"/> + 控制是否发布本地采集的音频流。停止或恢复发布本地采集音频流。停止或恢复发布本地音频流。停止或恢复发布本地音频流。 + + + + + + + + +
+

+ virtual int muteLocalAudioStream(bool mute) = 0; + public abstract int muteLocalAudioStream(boolean muted); + - (int)muteLocalAudioStream:(BOOL)mute NS_SWIFT_NAME(muteLocalAudioStream(_:)); + - (int)muteLocalAudioStream:(BOOL)mute NS_SWIFT_NAME(muteLocalAudioStream(_:)); +

+
+
+

调用该方法停止发布本地采集的音频流时,音频采集设备仍会继续工作,不受影响。

+

调用该方法停止发布本地音频流时,音频采集设备仍会正常工作,不受影响。

+

该方法用于控制是否发布本地采集的音频流。如果你调用该方法停止发布音频流,音频采集设备仍会正常工作,不受影响。

+

该方法用于控制是否发布本地采集的音频流。如果你调用该方法停止发布音频流,音频采集设备仍会正常工作,不受影响。

+
+
+ 调用时机 +

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+ +
+ 参数 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + muted + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_mutelocalvideostream.dita b/dita/RTC-AIDOC/API/api_irtcengine_mutelocalvideostream.dita new file mode 100644 index 00000000000..7d944be716d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_mutelocalvideostream.dita @@ -0,0 +1,114 @@ + + + + <ph keyref="muteLocalVideoStream"/> + 控制是否发布本地采集的视频流。停止或恢复发布本地视频流。控制是否发布本地采集的视频流。控制是否发布本地采集的视频流。 + + + + + + + + +
+

+ virtual int muteLocalVideoStream(bool mute) = 0; + public abstract int muteLocalVideoStream(boolean muted); + - (int)muteLocalVideoStream:(BOOL)mute NS_SWIFT_NAME(muteLocalVideoStream(_:)); + - (int)muteLocalVideoStream:(BOOL)mute NS_SWIFT_NAME(muteLocalVideoStream(_:)); +

+
+
+

该方法用于控制是否发布本地采集的视频流。如果你调用该方法停止发布本地视频流,视频采集设备仍然正常工作,不受影响。 +相比通过将 设为 来关闭本地视频采集并停止发布视频流,该方法响应更快。

+

该方法用于控制是否发布本地采集的视频流。调用该方法停止发布本地视频流时,视频采集设备仍会继续工作,不受影响。相比通过将 设为 来关闭本地视频采集从而取消发布视频流,该方法响应更快。

+

该方法用于控制是否发布本地采集的视频流。调用该方法停止发布本地采集的视频流时,视频采集设备仍会继续工作,不受影响。 + +与调用 设置为 以关闭本地视频采集从而取消发布视频流的方法相比,该方法响应更快。

+

该方法用于控制是否发布本地采集的视频流。调用该方法停止发布本地采集的视频流时,视频采集设备仍会继续工作,不受影响。 + +与调用 设置为 以关闭本地视频采集从而取消发布视频流的方法相比,该方法响应更快。

+
+
+ 调用时机 +

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+ +
+ 参数 + + + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + muted + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_muterecordingsignal.dita b/dita/RTC-AIDOC/API/api_irtcengine_muterecordingsignal.dita new file mode 100644 index 00000000000..5623ddecad1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_muterecordingsignal.dita @@ -0,0 +1,120 @@ + + + + <ph keyref="muteRecordingSignal"/> + 设置是否静音录制信号。设置是否静音录制信号。设置是否静音录制信号。设置是否静音录制信号。 + + + + + + + + +
+

+ virtual int muteRecordingSignal(bool mute) = 0; + public abstract int muteRecordingSignal(boolean muted); + - (int)muteRecordingSignal:(BOOL)muted NS_SWIFT_NAME(muteRecordingSignal(_:)); + - (int)muteRecordingSignal:(BOOL)muted NS_SWIFT_NAME(muteRecordingSignal(_:)); +

+
+
+

如果你已经调用 方法调整了录制信号的音量,当你调用该方法并将参数设置为 时,SDK 会执行以下操作: +

    +
  • 记录当前调整后的音量。
  • +
  • 静音录制信号。
  • +
当你再次调用该方法并将参数设置为 时,录制信号音量会恢复为静音前记录的音量。该方法可以在加入频道前或后调用。

+

如果你已经调用了 方法调整录制信号的音量,当你调用该方法并将参数设置为 时,SDK 会执行以下操作: +

    +
  • 记录当前已调整的音量。
  • +
  • 静音录制信号。
  • +
当你再次调用该方法并将参数设置为 时,录制信号的音量会恢复为静音前记录的音量。

+

如果你已经调用了 方法调整了录制信号的音量,当你调用该方法并将参数设置为 时,SDK 的行为如下: +

    +
  • 记录调整后的音量。
  • +
  • 静音录制信号。
  • +
当你再次调用该方法并将参数设置为 时,录制信号音量将恢复为静音前 SDK 记录的音量。

+

如果你已经调用了 方法调整了录制信号的音量,当你调用该方法并将参数设置为 时,SDK 的行为如下: +

    +
  • 记录调整后的音量。
  • +
  • 静音录制信号。
  • +
当你再次调用该方法并将参数设置为 时,录制信号音量将恢复为静音前 SDK 记录的音量。

+
+
+ 调用时机 +

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+
+ 参数 + + + mute + 是否静音录制信号: +
    +
  • :静音录制信号。
  • +
  • :(默认)不静音录制信号。
  • +
+
+
+ + muted + 是否静音录制信号: +
    +
  • :静音录制信号。
  • +
  • :(默认)不静音录制信号。
  • +
+
+
+ + muted + +
    +
  • :静音录制信号。
  • +
  • :(默认)不静音录制信号。
  • +
+
+
+ + muted + +
    +
  • :静音录制信号。
  • +
  • :(默认)不静音录制信号。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_muteremoteaudiostream.dita b/dita/RTC-AIDOC/API/api_irtcengine_muteremoteaudiostream.dita new file mode 100644 index 00000000000..28bd32310f0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_muteremoteaudiostream.dita @@ -0,0 +1,122 @@ + + + + <ph keyref="muteRemoteAudioStream"/> + 停止或恢复订阅指定远端用户的音频流。停止或恢复订阅指定远端用户的音频流。停止或恢复订阅指定用户的音频流。停止或恢复订阅指定用户的音频流。 + + + + + + + + +
+

+ virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0; + public abstract int muteRemoteAudioStream(int uid, boolean muted); + - (int)muteRemoteAudioStream:(NSUInteger)uid mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudioStream(_:mute:)); + - (int)muteRemoteAudioStream:(NSUInteger)uid mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteAudioStream(_:mute:)); +

+
+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+

在加入频道后调用该方法。

+
+ +
+ 参数 + + + uid + 指定远端用户的用户 ID。 + + + mute + 是否订阅指定远端用户的音频流。 +
    +
  • :停止订阅该用户的音频流。
  • +
  • :(默认)订阅该用户的音频流。
  • +
+
+
+ + uid + 指定远端用户的用户 ID。 + + + muted + 是否订阅指定远端用户的音频流: +
    +
  • :停止订阅该用户的音频流。
  • +
  • :订阅该用户的音频流。
  • +
+
+
+ + uid + 指定用户的用户 ID。 + + + mute + 是否订阅指定远端用户的音频流。 +
    +
  • :停止订阅该用户的音频流。
  • +
  • :(默认)订阅该用户的音频流。
  • +
+
+
+ + uid + 指定用户的用户 ID。 + + + mute + 是否订阅指定远端用户的音频流。 +
    +
  • :停止订阅该用户的音频流。
  • +
  • :(默认)订阅该用户的音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_muteremotevideostream.dita b/dita/RTC-AIDOC/API/api_irtcengine_muteremotevideostream.dita new file mode 100644 index 00000000000..e02d93ab907 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_muteremotevideostream.dita @@ -0,0 +1,125 @@ + + + + <ph keyref="muteRemoteVideoStream"/> + 停止或恢复订阅指定远端用户的视频流。停止或恢复订阅指定远端用户的视频流。停止或恢复订阅指定用户的视频流。停止或恢复订阅指定用户的视频流。 + + + + + + + + +
+

+ virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0; + public abstract int muteRemoteVideoStream(int uid, boolean muted); + - (int)muteRemoteVideoStream:(NSUInteger)uid + mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteVideoStream(_:mute:)); + - (int)muteRemoteVideoStream:(NSUInteger)uid + mute:(BOOL)mute NS_SWIFT_NAME(muteRemoteVideoStream(_:mute:)); +

+
+
+ 成功调用该方法后,SDK 会触发 回调。 + 成功调用该方法后,SDK 会触发 回调。 +
+
+ 调用时机 +

在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+ +
+ 参数 + + + uid + 指定远端用户的用户 ID。 + + + mute + 是否订阅指定远端用户的视频流: +
    +
  • :停止订阅该用户的视频流。
  • +
  • :(默认)订阅该用户的视频流。
  • +
+
+
+ + uid + 指定远端用户的用户 ID。 + + + muted + 是否订阅指定远端用户的视频流: +
    +
  • :停止订阅该用户的视频流。
  • +
  • :订阅该用户的视频流(默认)。
  • +
+
+
+ + uid + 指定用户的用户 ID。 + + + mute + 是否订阅指定远端用户的视频流: +
    +
  • :停止订阅该用户的视频流。
  • +
  • (默认):订阅该用户的视频流。
  • +
+
+
+ + uid + 指定用户的用户 ID。 + + + mute + 是否订阅指定远端用户的视频流: +
    +
  • :停止订阅该用户的视频流。
  • +
  • (默认):订阅该用户的视频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pauseallchannelmediarelay.dita b/dita/RTC-AIDOC/API/api_irtcengine_pauseallchannelmediarelay.dita new file mode 100644 index 00000000000..9e50456cc30 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pauseallchannelmediarelay.dita @@ -0,0 +1,76 @@ + + + + <ph keyref="pauseAllChannelMediaRelay"/> + 暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int pauseAllChannelMediaRelay() = 0; + public abstract int pauseAllChannelMediaRelay(); + - (int)pauseAllChannelMediaRelay NS_SWIFT_NAME(pauseAllChannelMediaRelay()); + - (int)pauseAllChannelMediaRelay NS_SWIFT_NAME(pauseAllChannelMediaRelay()); +

+
+
+

你可以在开始跨频道媒体流转发后调用该方法,以暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

你可以调用该方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

跨频道媒体流转发开始后,你可以调用此方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

跨频道媒体流转发开始后,你可以调用此方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+ 请在调用 方法之后调用此方法。 + 请在调用 方法之后调用该方法。 + 请在调用 方法之后调用此方法。 + 请在调用 方法之后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pausealleffects.dita b/dita/RTC-AIDOC/API/api_irtcengine_pausealleffects.dita new file mode 100644 index 00000000000..165646f24c3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pausealleffects.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="pauseAllEffects"/> + 暂停所有音效。暂停所有音效。暂停所有音效。暂停所有音效。 + + + + + + + + +
+

+ virtual int pauseAllEffects() = 0; + public abstract int pauseAllEffects(); + - (int)pauseAllEffects NS_SWIFT_NAME(pauseAllEffects()); + - (int)pauseAllEffects NS_SWIFT_NAME(pauseAllEffects()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pauseaudiomixing.dita b/dita/RTC-AIDOC/API/api_irtcengine_pauseaudiomixing.dita new file mode 100644 index 00000000000..b04822b3885 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pauseaudiomixing.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="pauseAudioMixing"/> + 暂停播放和混音的音乐文件。暂停播放和混音的音乐文件。暂停播放和混音音乐文件。暂停播放和混音音乐文件。 + + + + + + + + +
+

+ virtual int pauseAudioMixing() = 0; + public abstract int pauseAudioMixing(); + - (int)pauseAudioMixing NS_SWIFT_NAME(pauseAudioMixing()); + - (int)pauseAudioMixing NS_SWIFT_NAME(pauseAudioMixing()); +

+
+
+

调用 startAudioMixing 播放音乐文件后,可以调用该方法暂停播放。若需停止播放,请调用

+

调用 startAudioMixing 播放音乐文件后,可以调用该方法暂停播放。如果需要停止播放,请调用

+

调用 startAudioMixing 播放音乐文件后,你可以调用该方法暂停播放。若需停止播放,请调用

+

调用 startAudioMixing 播放音乐文件后,你可以调用该方法暂停播放。若需停止播放,请调用

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pauseeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_pauseeffect.dita new file mode 100644 index 00000000000..fab257b8cc9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pauseeffect.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="pauseEffect"/> + 暂停指定音效文件的播放。暂停指定音效文件的播放。暂停指定的音效文件。暂停指定的音效文件。 + + + + + + + + +
+

+ virtual int pauseEffect(int soundId) = 0; + public abstract int pauseEffect(int soundId); + - (int)pauseEffect:(int)soundId NS_SWIFT_NAME(pauseEffect(_:)); + - (int)pauseEffect:(int)soundId NS_SWIFT_NAME(pauseEffect(_:)); +

+
+
+

你可以调用该方法暂停指定的音效文件。

+

你可以调用该方法暂停指定的音效文件。

+
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_playalleffects.dita b/dita/RTC-AIDOC/API/api_irtcengine_playalleffects.dita new file mode 100644 index 00000000000..5cf3fad94b4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_playalleffects.dita @@ -0,0 +1,217 @@ + + + + <ph keyref="playAllEffects"/> + 播放所有音效文件。播放所有音效。播放所有音效。播放所有音效。 + + + + + + + + +
+

+ virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish = false) = 0; + public abstract int playAllEffects(int loopCount, double pitch, double pan, double gain, boolean publish); + - (int)playAllEffectsWithLoopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playAllEffects(withLoopCount:pitch:pan:gain:publish:)); + - (int)playAllEffectsWithLoopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playAllEffects(withLoopCount:pitch:pan:gain:publish:)); +

+
+
+

多次调用 将多个音效文件预加载到内存后,可以调用该方法为频道内的所有用户播放所有已加载的音效文件。

+

多次调用 preloadEffect 将多个音效预加载到内存后,可以调用该方法为频道内所有用户播放所有预加载的音效。

+

在多次调用 预加载多个音效到内存中后,你可以调用此方法为频道内的所有用户播放所有预加载的音效。

+

在多次调用 预加载多个音效到内存中后,你可以调用此方法为频道内的所有用户播放所有预加载的音效。

+
+
+ 参数 + + + loopCount + 音效文件的循环播放次数: +
    +
  • -1:无限循环播放,直到调用
  • +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 [0.5, 2.0],默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 [-1.0, 1.0]: +
    +
  • -1.0:音效出现在左侧。
  • +
  • 0:音效出现在正前方。
  • +
  • 1.0:音效出现在右侧。
  • +
+
+
+ + gain + 音效的音量。取值范围为 [0, 100],默认值为 100(原始音量)。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,本地和远端用户都能听到。
  • +
  • :(默认)不发布音效,只有本地用户能听到。
  • +
+
+
+ + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环播放音效,直到调用
  • +
  • 0:播放一次音效。
  • +
  • 1:播放两次音效。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从左侧播放。
  • +
  • 0.0:音效从前方播放。
  • +
  • 1.0:音效从右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 [0, 100],默认值为 100(原始音量)。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,本地用户和远端用户都能听到音效。
  • +
  • :(默认)不发布音效,只有本地用户能听到。
  • +
+
+
+ + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环播放音效,直到调用 stopEffect 停止播放。
  • +
  • 0:播放音效一次。
  • +
  • 1:播放音效两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效定位在左侧。
  • +
  • 0.0:音效定位在正前方。
  • +
  • 1.0:音效定位在右侧。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100(原始音量)。值越小,音效音量越低。 + + + publish + 是否将音效发布到远端: +
    +
  • :将音效发布到远端。
  • +
  • :不将音效发布到远端。
  • +
+
+
+ + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环播放音效,直到调用 stopEffect 停止播放。
  • +
  • 0:播放音效一次。
  • +
  • 1:播放音效两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效定位在左侧。
  • +
  • 0.0:音效定位在正前方。
  • +
  • 1.0:音效定位在右侧。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100(原始音量)。值越小,音效音量越低。 + + + publish + 是否将音效发布到远端: +
    +
  • :将音效发布到远端。
  • +
  • :不将音效发布到远端。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_playeffect1.dita b/dita/RTC-AIDOC/API/api_irtcengine_playeffect1.dita new file mode 100644 index 00000000000..f1e76853667 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_playeffect1.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="playEffect1"/> + 播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。 + + + + + + + + +
+

+ - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:)); + - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:)); +

+
+
+

你可以多次调用该方法,并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议不要同时播放超过三个音效文件。

+

你可以多次调用该方法,并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议不要同时播放超过三个音效文件。

+ 如果需要播放在线音效文件,声网建议先将其缓存到本地设备,调用 将其预加载到内存中,再调用本方法播放。否则,可能因加载超时或失败导致播放失败或无声。 + 如果需要播放在线音效文件,声网建议先将其缓存到本地设备,调用 将其预加载到内存中,再调用本方法播放。否则,可能因加载超时或失败导致播放失败或无声。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。注意:如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。注意:如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数。 +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。注意:如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。注意:如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数。 +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + +
+
+
+ 返回值 +

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_playeffect2.dita b/dita/RTC-AIDOC/API/api_irtcengine_playeffect2.dita new file mode 100644 index 00000000000..4c539383c7f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_playeffect2.dita @@ -0,0 +1,216 @@ + + + + <ph keyref="playEffect2"/> + 播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。 + + + + + + + + +
+

+ - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:publish:)); + public abstract int playEffect(int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish); + - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:publish:)); +

+
+
+

你可以多次调用该方法并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议你不要同时播放超过三个音效文件。你可以在加入频道前或加入频道后调用该方法。

+

该方法支持播放以 content:// 开头的 URI 文件。关于支持的音频文件格式,详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。若本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会报告 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

你可以多次调用该方法并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议你不要同时播放超过三个音效文件。你可以在加入频道前或加入频道后调用该方法。

+ 如果你需要播放在线音效文件,声网建议你先将该文件缓存到本地设备,再调用 将其预加载到内存中,然后调用 播放音效。否则,可能因加载超时或失败导致播放失败或无声。 + 如果需要播放在线音效文件,建议先将其缓存到本地设备,调用 preloadEffect 将文件预加载到内存中,再调用该方法播放音效。否则可能因加载超时或失败导致播放失败或无声。 + 如果你需要播放在线音效文件,声网建议你先将该文件缓存到本地设备,再调用 将其预加载到内存中,然后调用 播放音效。否则,可能因加载超时或失败导致播放失败或无声。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+ +
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。注意:如果你已通过 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。注意:如果你已通过 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数。 +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :发布音效到远端,远端用户和你都能听到该音效。
  • +
  • :不发布音效到远端,只有你能听到该音效。
  • +
+
+
+ + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 音效文件路径。支持以下格式: +
    +
  • content:// 开头的 URI 地址。
  • +
  • /assets/ 开头的路径。
  • +
  • URL。
  • +
  • 本地文件的绝对路径(需精确到文件名和扩展名)。
  • +
支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。
+
+ + loopCount + 音效的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音频文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧传来。
  • +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0.0 到 100.0,默认值为 100.0,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,本地用户和远端用户都能听到音效。
  • +
  • :不将音效发布给远端用户,只有本地用户能听到音效。
  • +
+
+
+ + soundId + 音效 ID。每个音效文件的 ID 必须唯一。注意:如果你已通过 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。注意:如果你已通过 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数。 +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :发布音效到远端,远端用户和你都能听到该音效。
  • +
  • :不发布音效到远端,只有你能听到该音效。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_playeffect3.dita b/dita/RTC-AIDOC/API/api_irtcengine_playeffect3.dita new file mode 100644 index 00000000000..ec24056589e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_playeffect3.dita @@ -0,0 +1,299 @@ + + + + <ph keyref="playEffect3"/> + 播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。播放指定的本地或在线音效文件。 + + + + + + + + +
+

+ virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0; + public abstract int playEffect(int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish, int startPos); + - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish + startPos:(int)startPos NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:publish:startPos:)); + - (int)playEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish + startPos:(int)startPos NS_SWIFT_NAME(playEffect(_:filePath:loopCount:pitch:pan:gain:publish:startPos:)); +

+
+
+

要同时播放多个音效文件,请使用不同的 soundIdfilePath 多次调用该方法。为获得最佳用户体验,声网建议不要同时播放超过三个音效文件。

+

该方法支持播放以 content:// 开头的 URI 文件。支持的音频文件格式详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果本地音频文件不存在、SDK 不支持该文件格式,或无法访问音频文件的 URL,SDK 会返回错误码 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

你可以多次调用该方法并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议你不要同时播放超过三个音效文件。

+

你可以多次调用该方法并传入不同的 soundIdfilePath,以同时播放多个音效文件。为获得最佳用户体验,声网建议你不要同时播放超过三个音效文件。

+ 如果需要播放在线音效文件,声网建议先将其缓存到本地设备,调用 将其预加载到内存中,再调用该方法播放音效。否则,可能因加载超时或失败导致播放失败或无声。 +如果在调用 前调用了 ,则在 执行后文件资源不会被关闭。下次调用 时将直接从头开始播放。 +如果在调用 前未调用 ,则在 执行后资源将被销毁。下次调用 时将尝试重新打开文件并从头播放。 + 如果需要播放在线音效文件,声网建议先将其缓存到本地设备,调用 preloadEffect 将文件预加载到内存中,再调用该方法播放音效。否则,可能因加载超时或失败导致播放失败或无声。 + 如果你需要播放在线音效文件,声网建议你先将该文件缓存到本地设备,再调用 将其预加载到内存中,然后调用该方法播放音效。否则,可能因加载超时或失败导致播放失败或无声。 + 如果你需要播放在线音效文件,声网建议你先将该文件缓存到本地设备,再调用 将其预加载到内存中,然后调用该方法播放音效。否则,可能因加载超时或失败导致播放失败或无声。 +
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+ +
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。如果已调用 将音效预加载到内存中,请确保该参数的值与 中的 soundId 相同。 + + + filePath + 文件路径。支持 URL 和本地文件的绝对路径,路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果已调用 将音效预加载到内存中,请确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效的循环播放次数: +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧传来。
  • +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0.0 到 100.0。默认值为 100.0,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,本地和远端用户都能听到音效。
  • +
  • :(默认)不将音效发布给远端用户,只有本地用户能听到音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + 如果你已通过调用 preloadEffect 将音效预加载到内存中,请确保该参数的值与 preloadEffect 中的 soundId 相同。 + + + + filePath + 音效文件路径。支持以 content:// 开头的 URI 地址、以 /assets/ 开头的路径、URL 以及本地文件的绝对路径。路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。 + 如果你已通过调用 preloadEffect 将音效预加载到内存中,请确保该参数的值与 preloadEffect 中的 filePath 相同。 + + + + loopCount + 音效循环播放的次数: +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音频文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧播放。
  • +
  • 0.0:音效从用户正前方播放。
  • +
  • 1.0:音效从用户右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0.0 到 100.0。默认值为 100.0,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,本地用户和远端用户都能听到音效。
  • +
  • :不将音效发布给远端用户,只有本地用户能听到音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + +如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。 + +如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数: +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,你和远端用户都能听到该音效。
  • +
  • :不将音效发布给远端用户,只有你能听到该音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + +如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 soundId 相同。 + + + filePath + 音效文件路径。支持以 ipod-library:// 开头的路径、URL 以及本地文件的绝对路径。绝对路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。 + +如果你已通过调用 将音效预加载到内存中,确保该参数的值与 中的 filePath 相同。 + + + loopCount + 音效循环播放的次数: +
    +
  • ≥ 0:播放的次数。例如,1 表示循环播放一次,即总共播放两次。
  • +
  • -1:无限循环播放该音效文件。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0。默认值为 1.0,表示原始音调。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从你左侧播放。
  • +
  • 0.0:音效从你正前方播放。
  • +
  • 1.0:音效从你右侧播放。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100。默认值为 100,表示原始音量。值越小,音量越低。 + + + publish + 是否将音效发布给远端用户: +
    +
  • :将音效发布给远端用户,你和远端用户都能听到该音效。
  • +
  • :不将音效发布给远端用户,只有你能听到该音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_preloadchannel.dita b/dita/RTC-AIDOC/API/api_irtcengine_preloadchannel.dita new file mode 100644 index 00000000000..b3fa4d4d78c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_preloadchannel.dita @@ -0,0 +1,243 @@ + + + + <ph keyref="preloadChannel"/> + 预加载指定频道以缩短观众加入频道的时间。预加载指定频道以缩短观众加入频道的时间。预加载指定频道。预加载指定频道。 + + + + + + + + +
+

+ virtual int preloadChannel(const char* token, const char* channelId, uid_t uid) = 0; + public abstract int preloadChannel(String token, String channelName, int optionalUid); + - (int)preloadChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + uid:(NSUInteger)uid NS_SWIFT_NAME(preloadChannel(byToken:channelId:uid:)); + - (int)preloadChannelByToken:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + uid:(NSUInteger)uid NS_SWIFT_NAME(preloadChannel(byToken:channelId:uid:)); +

+
+
+

当观众需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少观众听到和看到主播的延迟时间。如果你加入了一个已预加载的频道,离开后又想重新加入该频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。

+

当观众需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少观众听到和看到主播的延迟时间。如果你加入了一个已预加载的频道,离开后想重新加入该频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。

+

该方法用于预加载指定频道。当你作为观众需要频繁切换频道时,调用该方法可以缩短加入频道的时间,从而减少你听到和看到主播的延迟。该方法需要在加入频道前调用。如果你加入了一个已预加载的频道,离开后想要重新加入该频道,除非用于预加载的 Token 过期,否则无需再次调用该方法。为提升预加载频道的用户体验,声网建议你在确认频道名和用户信息后尽早调用该方法。

+

该方法用于预加载指定频道。当你作为观众需要频繁切换频道时,调用该方法可以缩短加入频道的时间,从而减少你听到和看到主播的延迟。该方法需要在加入频道前调用。如果你加入了一个已预加载的频道,离开后想要重新加入该频道,除非用于预加载的 Token 过期,否则无需再次调用该方法。为提升预加载频道的用户体验,声网建议你在确认频道名和用户信息后尽早调用该方法。

+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AUDIO_SCENARIO_CHORUS,否则该方法不生效。
  • +
  • 请确保用于预加载的频道名、用户 ID 和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道。超过该限制时,仅最新的 20 个预加载频道生效。
  • +
  • 预加载频道失败不会影响加入频道的能力,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AUDIO_SCENARIO_CHORUS,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的频道名、用户 ID 和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道,超出限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败并不意味着无法加入频道,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AgoraAudioScenarioChorus,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的频道名、用户 ID 和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道,超出限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败并不意味着无法加入频道,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AgoraAudioScenarioChorus,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的频道名、用户 ID 和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道,超出限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败并不意味着无法加入频道,也不会增加加入频道所需的时间。
  • +
+
+
+
+ 调用时机 +

为提升预加载频道的用户体验,声网建议在确认频道名和用户信息后尽早调用该方法。

+

该方法需要在加入频道前调用。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + token + 用于鉴权的 Token,由你的服务器生成。Token 过期后,你可以根据预加载频道的数量更新 Token: +
    +
  • 预加载一个频道时,调用该方法传入新的 Token。
  • +
  • 预加载多个频道时: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入你的用户 ID、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelId + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 下,填写相同频道名的用户会进入同一个频道。频道名长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID,用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中的每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32 - 1。如果未指定用户 ID(或设置为 0),SDK 会分配一个随机用户 ID,并在 回调中返回。你的应用必须记录并维护返回的用户 ID,SDK 不会保存。 + + + token + 在你的服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token: +
    +
  • 预加载一个频道时,调用该方法传入新的 Token。
  • +
  • 预加载多个频道时: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。注意:生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入你的用户 ID、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelName + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + optionalUid + 用户 ID。用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中的每个用户 ID 唯一。该参数为 32 位有符号整数,取值范围为 -2^31 到 2^31-1。如果未指定用户 ID(或设置为 0),SDK 会分配一个随机用户 ID,并在 回调中返回。你的应用必须记录并维护返回的用户 ID,SDK 不会保存。 + + + token + 在你的服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token。 +
    +
  • 如果只预加载一个频道,调用该方法传入新的 Token。
  • +
  • 如果预加载多个频道: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。
    • +
    +
  • +
注意:生成通配符 Token 时,确保用户 ID 不为 0。 +
    +
  • 如果你为不同频道使用不同的 Token,调用该方法传入用户 ID、频道名和新的 Token。
  • +
+
+
+ + channelId + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中的每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32 - 1。如果未指定用户 ID(或设置为 0),SDK 会分配一个随机用户 ID,并在 回调中返回。你的应用必须记录并维护返回的用户 ID,SDK 不会保存该信息。 + + + token + 在你的服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token。 +
    +
  • 如果只预加载一个频道,调用该方法传入新的 Token。
  • +
  • 如果预加载多个频道: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。
    • +
    +
  • +
注意:生成通配符 Token 时,确保用户 ID 不为 0。 +
    +
  • 如果你为不同频道使用不同的 Token,调用该方法传入用户 ID、频道名和新的 Token。
  • +
+
+
+ + channelId + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + uid + 用户 ID。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 ID,并确保同一频道中的每个用户 ID 唯一。该参数为 32 位无符号整数,取值范围为 1 到 2^32 - 1。如果未指定用户 ID(或设置为 0),SDK 会分配一个随机用户 ID,并在 回调中返回。你的应用必须记录并维护返回的用户 ID,SDK 不会保存该信息。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请先初始化 对象后再调用该方法。
    • +
    • -102:频道名无效。请传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • -102:频道名无效。请传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化该对象再调用此方法。
    • +
    • -102:频道名无效。你需要传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化该对象再调用此方法。
    • +
    • -102:频道名无效。你需要传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_preloadchannelwithuseraccount.dita b/dita/RTC-AIDOC/API/api_irtcengine_preloadchannelwithuseraccount.dita new file mode 100644 index 00000000000..aef288806d5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_preloadchannelwithuseraccount.dita @@ -0,0 +1,276 @@ + + + + <ph keyref="preloadChannelWithUserAccount"/> + 预加载指定的频道。预加载指定频道,缩短观众加入频道的时间。预加载指定的频道以缩短观众加入频道的时间。预加载指定的频道以缩短观众加入频道的时间。 + + + + + + + + +
+

+ virtual int preloadChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0; + public abstract int preloadChannelWithUserAccount(String token, String channelName, String userAccount); + - (int)preloadChannelByTokenWithUserAccount:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount NS_SWIFT_NAME(preloadChannelWithUserAccount(byToken:channelId:userAccount:)); + - (int)preloadChannelByTokenWithUserAccount:(NSString * _Nullable)token + channelId:(NSString * _Nonnull)channelId + userAccount:(NSString * _Nonnull)userAccount NS_SWIFT_NAME(preloadChannelWithUserAccount(byToken:channelId:userAccount:)); +

+
+
+

当观众用户需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少观众听到和看到主播的延迟时间。如果你加入了一个已预加载的频道,离开后想重新加入该频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。

+

当观众需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少观众听到和看到主播的延迟。如果你加入了一个已预加载的频道,离开后想重新加入同一个频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。

+

当你需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少你听到和看到主播的延迟。如果你加入了一个已预加载的频道,离开后想重新加入同一个频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。声网建议你在确认频道名和用户信息后尽早调用该方法,以提升预加载频道的用户体验。

+

当你需要频繁切换不同频道时,调用该方法可以缩短加入频道的时间,从而减少你听到和看到主播的延迟。如果你加入了一个已预加载的频道,离开后想重新加入同一个频道,除非用于预加载频道的 Token 过期,否则无需再次调用该方法。声网建议你在确认频道名和用户信息后尽早调用该方法,以提升预加载频道的用户体验。

+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AUDIO_SCENARIO_CHORUS,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的用户 User Account、频道名和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道。超过该限制时,仅最新的 20 个预加载频道生效。
  • +
  • 预加载频道失败不会影响加入频道的功能,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AUDIO_SCENARIO_CHORUS,否则该方法不生效。
  • +
  • 你需要确保用于预加载的用户 User Account、频道名和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道。超过该限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败不会影响加入频道的能力,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AgoraAudioScenarioChorus,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的用户 User Account、频道名和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道。超过该限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败并不意味着你无法加入频道,也不会增加加入频道所需的时间。
  • +
+
+ +
    +
  • 调用该方法时,请确保将用户角色设置为观众,且未将音频场景设置为 AgoraAudioScenarioChorus,否则该方法不生效。
  • +
  • 你还需要确保用于预加载的用户 User Account、频道名和 Token 与加入频道时传入的值一致,否则该方法不生效。
  • +
  • 一个 实例最多支持预加载 20 个频道。超过该限制时,仅最近的 20 个预加载频道生效。
  • +
  • 预加载频道失败并不意味着你无法加入频道,也不会增加加入频道所需的时间。
  • +
+
+
+
+ 调用时机 +

为提升预加载频道的用户体验,声网建议在确认频道名和用户信息后尽早调用该方法。

+

为提升预加载频道的用户体验,声网建议在确认频道名和用户信息后尽早调用该方法。

+

该方法需要在加入频道前调用。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + token + 你在服务器上生成的用于鉴权的 Token。Token 过期后,你可以根据预加载的频道数量更新 Token: +
    +
  • 预加载一个频道时,调用该方法传入新的 Token。
  • +
  • 预加载多个频道时: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。注意:生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入用户 ID、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelId + 你想要预加载的频道名。在相同 App ID 下,填写相同频道名的用户会进入同一个频道。频道名长度必须小于 64 字节,支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + token + 你在服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token: +
    +
  • 预加载一个频道时,调用该方法传入新的 Token。
  • +
  • 预加载多个频道时: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。注意:生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入用户 User Account、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelName + 你想要预加载的频道名。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account,用于标识频道中的用户。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + token + 在你的服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token。 +
    +
  • 如果只预加载一个频道,调用该方法传入新的 Token。
  • +
  • 如果预加载多个频道: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。注意:生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入你的用户 ID、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelId + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节。请确保设置了该参数,且不为 。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + token + 在你的服务器上生成的用于鉴权的 Token。当用于预加载频道的 Token 过期时,你可以根据预加载的频道数量更新 Token。 +
    +
  • 如果只预加载一个频道,调用该方法传入新的 Token。
  • +
  • 如果预加载多个频道: +
      +
    • 如果你为所有预加载频道使用通配符 Token,调用 更新 Token。注意:生成通配符 Token 时,确保用户 ID 不为 0。
    • +
    • 如果你为不同频道使用不同的 Token,调用该方法传入你的用户 ID、频道名和新的 Token。
    • +
    +
  • +
+
+
+ + channelId + 你想要预加载的频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节。请确保设置了该参数,且不为 。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如用户 User Account 为空。请传入有效参数后重新加入频道。
    • +
    • -7: 对象尚未初始化。请先初始化 对象后再调用该方法。
    • +
    • -102:频道名无效。请传入有效的频道名后重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如用户 User Account 为空。请传入有效参数后重新加入频道。
    • +
    • -7: 对象尚未初始化。请先初始化 对象后再调用该方法。
    • +
    • -102:频道名无效。请传入有效的频道名后重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如用户 User Account 为空。你需要传入有效参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。你需要在调用该方法前初始化该对象。
    • +
    • -102:频道名无效。你需要传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如用户 User Account 为空。你需要传入有效参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。你需要在调用该方法前初始化该对象。
    • +
    • -102:频道名无效。你需要传入有效的频道名并重新加入频道。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect.dita new file mode 100644 index 00000000000..1cc257e6abb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect.dita @@ -0,0 +1,159 @@ + + + + <ph keyref="preloadEffect"/> + 将指定的音效文件预加载到内存中。预加载指定的音效文件。将指定的音效文件预加载到内存中。将指定的音效文件预加载到内存中。 + + + + + + + + +
+

+ virtual int preloadEffect(int soundId, const char* filePath, int startPos = 0) = 0; + public abstract int preloadEffect(int soundId, String filePath, int startPos); + - (int)preloadEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + startPos:(int)startPos NS_SWIFT_NAME(preloadEffect(_:filePath:startPos:)); + - (int)preloadEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath + startPos:(int)startPos NS_SWIFT_NAME(preloadEffect(_:filePath:startPos:)); +

+
+
+

确保所有预加载文件的总大小不超过限制。

+

你可以多次调用该方法,将多个音效文件预加载到内存中。预加载完成后,可以调用 playEffect 播放预加载的音效,或调用 播放所有已预加载的音效。

+

确保所有预加载文件的总大小不超过限制。

+

确保所有预加载文件的总大小不超过限制。

+ +
    +
  • 如果在调用 之前调用 执行后不会关闭文件资源。下次调用 时会直接从头开始播放。
  • +
  • 如果在调用 之前未调用 执行后会销毁资源。下次调用 时会尝试重新打开文件并从头开始播放。
  • +
+
+ +
    +
  • 为确保通信流畅,请限制音效文件的大小。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
  • 如果在调用 playEffect 前调用了 preloadEffect,则在 playEffect 执行后文件资源不会被关闭。下次调用 playEffect 时将从头开始播放。
  • +
  • 如果未在调用 playEffect 前调用 preloadEffect,则在 playEffect 执行后资源将被销毁。下次调用 playEffect 时将尝试重新打开文件并从头播放。
  • +
+
+ +
    +
  • 如果你在调用 playEffect 之前调用了 preloadEffectplayEffect 执行后不会关闭文件资源。下次调用 playEffect 时会直接从头开始播放。
  • +
  • 如果你未在调用 playEffect 之前调用 preloadEffectplayEffect 执行后会销毁资源。下次调用 playEffect 时会尝试重新打开文件并从头开始播放。
  • +
+
+ +
    +
  • 如果你在调用 playEffect 之前调用了 preloadEffectplayEffect 执行后不会关闭文件资源。下次调用 playEffect 时会直接从头开始播放。
  • +
  • 如果你未在调用 playEffect 之前调用 preloadEffectplayEffect 执行后会销毁资源。下次调用 playEffect 时会尝试重新打开文件并从头开始播放。
  • +
+
+
+
+ 调用时机 +

建议在加入频道前调用该方法。

+

声网建议你在加入频道前调用该方法。

+

声网建议你在加入频道前调用该方法。

+
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • Android:文件路径需精确到文件名和后缀名。支持 URL 地址、绝对路径或以 /assets/ 开头的路径。使用绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址,例如:content://com.android.providers.media.documents/document/audio%3A14441
  • +
  • Windows:音效文件的绝对路径或 URL 地址(包括文件名后缀),例如:
  • +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀),例如:/var/mobile/Containers/Data/audio.mp4
  • +
+
+
+ + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + soundId + 音效的 ID。 + + + filePath + 本地音效文件的绝对路径或在线音效文件的 URL。 + + + startPos + 在线音效文件的起始播放位置。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect2.dita b/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect2.dita new file mode 100644 index 00000000000..9a813d04116 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_preloadeffect2.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="preloadEffect2"/> + 将指定的音效文件预加载到内存中。将指定的音效文件预加载到内存中。将指定的音效文件预加载到内存中。 + + + + + + + + +
+

+ - (int)preloadEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(preloadEffect(_:filePath:)); + public abstract int preloadEffect(int soundId, String filePath); + - (int)preloadEffect:(int)soundId + filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(preloadEffect(_:filePath:)); +

+
+
+

确保所有预加载文件的总大小不超过限制。关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。

+

确保所有预加载文件的总大小不超过限制。支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。

+

确保所有预加载文件的总大小不超过限制。关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。

+
+
+ 调用时机 +

声网建议你在加入频道前调用该方法。

+

声网建议在加入频道前调用该方法。

+

声网建议你在加入频道前调用该方法。

+
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • Android:文件路径需精确到文件名和后缀名。声网支持 URL 地址、绝对路径,或以 /assets/ 开头的文件路径。如果使用绝对路径访问本地文件,可能会遇到权限问题,因此建议使用 URI 地址。例如:
  • +
content://com.android.providers.media.documents/document/audio%3A14441
+
+ + soundId + 音效 ID。每个音效文件的 ID 必须唯一。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音效文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe.dita b/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe.dita new file mode 100644 index 00000000000..043c2fa397c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="pullAudioFrame"/> + 拉取远端音频数据。拉取远端混音后的音频数据用于播放。拉取远端音频数据。 + + + + + + + + +
+

+ - (BOOL)pullPlaybackAudioFrameRawData:(void * _Nonnull)data + lengthInByte:(NSUInteger)lengthInByte NS_SWIFT_NAME(pullPlaybackAudioFrameRawData(_:lengthInByte:)); + public abstract int pullPlaybackAudioFrame(byte[] data, int lengthInByte); + - (BOOL)pullPlaybackAudioFrameRawData:(void * _Nonnull)data + lengthInByte:(NSUInteger)lengthInByte NS_SWIFT_NAME(pullPlaybackAudioFrameRawData(_:lengthInByte:)); +

+
+
+

调用该方法成功后,你可以拉取解码并混音后的远端音频数据用于播放。调用该方法前,请先调用 enabled: YES)以开启并设置外部音频渲染。

+

调用该方法前,请先调用 并设置 enabled,以启用外部音频渲染。

+

调用该方法成功后,你可以拉取解码并混音后的远端音频数据用于播放。调用该方法前,请先调用 enabled: YES)以开启并设置外部音频渲染。

+ 方法和 onPlaybackAudioFrame: 回调都可用于获取远端混音后的音频数据。调用 开启外部音频渲染后,将无法再通过 onPlaybackAudioFrame: 回调获取数据。请根据实际业务需求选择使用该方法或 onPlaybackAudioFrame: 回调。两者的具体区别如下: +
    +
  • 调用 方法后,你会自动从 SDK 拉取音频数据。通过设置音频数据参数,SDK 会调整帧缓冲区以帮助你处理延迟,有效避免音频播放卡顿。
  • +
  • 注册 onPlaybackAudioFrame: 回调后,SDK 会通过回调将音频数据发送给你。若处理音频帧存在延迟,可能会导致音频卡顿。
  • +
该方法仅用于获取远端混音后的音频数据。如需获取采集、播放等其他音频处理阶段的数据,可通过调用 注册相应的回调。
+ pullPlaybackAudioFrame 方法和 回调都可用于获取远端混音后的音频数据。启用外部音频渲染(调用 )后,无法再通过 回调获取数据。请根据实际业务需求选择使用 pullPlaybackAudioFrame 方法或 回调。两者区别如下: +
    +
  • 调用 pullPlaybackAudioFrame 方法后,App 会自动从 SDK 拉取音频数据。通过设置音频数据参数,SDK 会调整帧缓冲区以帮助 App 处理延迟,有效避免音频播放抖动。
  • +
  • 注册 回调后,SDK 会通过回调将音频数据发送给 App。若处理音频帧存在延迟,可能会导致音频抖动。
  • +
该方法仅用于获取远端混音后的音频数据。如需获取采集、播放等其他音频处理阶段的数据,可通过调用 注册相应的回调。
+ 方法和 onPlaybackAudioFrame: 回调都可用于获取远端混音后的音频数据。调用 开启外部音频渲染后,将无法再通过 onPlaybackAudioFrame: 回调获取数据。请根据实际业务需求选择使用该方法或 onPlaybackAudioFrame: 回调。两者的具体区别如下: +
    +
  • 调用 方法后,你会自动从 SDK 拉取音频数据。通过设置音频数据参数,SDK 会调整帧缓冲区以帮助你处理延迟,有效避免音频播放卡顿。
  • +
  • 注册 onPlaybackAudioFrame: 回调后,SDK 会通过回调将音频数据发送给你。若处理音频帧存在延迟,可能会导致音频卡顿。
  • +
该方法仅用于获取远端混音后的音频数据。如需获取采集、播放等其他音频处理阶段的数据,可通过调用 注册相应的回调。
+
+
+ 调用时机 +

在加入频道后调用该方法。

+

该方法需要在加入频道后调用。

+

在加入频道后调用该方法。

+
+
+ 参数 + + + data + 输出参数,要拉取的远端音频数据。数据类型为 byte[] + + + lengthInByte + 数据长度(字节)。该参数的值与音频时长,以及在 中设置的 sampleRatechannels 参数有关。lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒)。 + + + data + 输出参数,要拉取的远端音频数据。 + + + lengthInByte + 数据长度(字节)。该值与音频时长,以及在 中设置的 sampleRatechannels 参数有关。计算公式为:lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒)。 + + + data + 输出参数,要拉取的远端音频数据。数据类型为 byte[] + + + lengthInByte + 数据长度(字节)。该参数的值与音频时长,以及在 中设置的 sampleRatechannels 参数有关。lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒)。 + + +
+
+ 返回值 +

+

    +
  • :调用成功。
  • +
  • :调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :调用成功。
  • +
  • :调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe2.dita b/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe2.dita new file mode 100644 index 00000000000..f71fa96d761 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pullaudioframe2.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="pullAudioFrame2"/> + 拉取远端音频数据。 + + + + + + + + +
+

+ public abstract int pullPlaybackAudioFrame(ByteBuffer data, int lengthInByte); +

+
+
+

在调用该方法之前,你需要调用 方法,并将 enabled 设置为 ,以启用并设置外部音频播放。调用该方法成功后,App 会拉取解码并混音后的音频数据用于播放。

+ +
    +
  • 该方法需要在加入频道后调用。
  • +
  • 该方法与 回调的区别如下: +
      +
    • :SDK 通过该回调将音频数据发送给 App。若 App 处理音频帧存在延迟,可能会导致音频抖动。
    • +
    • pullPlaybackAudioFrame:App 主动拉取远端音频数据。设置音频参数后,SDK 会调整帧缓冲区,避免外部音频播放中因抖动引发的问题。
    • +
    +
  • +
+
+
+
+ 参数 + + + data + 用于接收拉取的远端音频数据。详见 ByteBuffer + + + lengthInByte + 远端音频数据的字节长度。该值与音频时长,以及在 中设置的 sampleRatechannels 参数有关。 + +lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pullplaybackaudioframesamplebufferbylengthinbyte.dita b/dita/RTC-AIDOC/API/api_irtcengine_pullplaybackaudioframesamplebufferbylengthinbyte.dita new file mode 100644 index 00000000000..77beefc63a0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pullplaybackaudioframesamplebufferbylengthinbyte.dita @@ -0,0 +1,43 @@ + + + + <ph keyref="pullPlaybackAudioFrameSampleBufferByLengthInByte"/> + 拉取 SampleBuffer 格式的远端音频数据。拉取 SampleBuffer 格式的远端音频数据。 + + + + + + + + +
+

+ - (CMSampleBufferRef _Nullable)pullPlaybackAudioFrameSampleBufferByLengthInByte:(NSUInteger)lengthInByte NS_SWIFT_NAME(pullPlaybackAudioFrameSampleBufferBy(lengthInByte:)); + - (CMSampleBufferRef _Nullable)pullPlaybackAudioFrameSampleBufferByLengthInByte:(NSUInteger)lengthInByte NS_SWIFT_NAME(pullPlaybackAudioFrameSampleBufferBy(lengthInByte:)); +

+
+
+

调用该方法后,你可以拉取解码并混音后的音频数据用于播放。

+

调用该方法后,你可以拉取解码并混音后的音频数据用于播放。

+
+
+ 参数 + + + lengthInByte + 数据长度(字节)。该参数的值与你设置的音频时长、sampleRatechannels 参数有关。lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒) + + + lengthInByte + 数据长度(字节)。该参数的值与你设置的音频时长、sampleRatechannels 参数有关。lengthInByte = sampleRate / 1000 × 2 × channels × 音频时长(毫秒) + + +
+
+ 返回值 +

方法调用成功,返回 CMSampleBufferRef 对象;失败时返回

+

方法调用成功,返回 CMSampleBufferRef 对象;失败时返回

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushaudioframe2.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushaudioframe2.dita new file mode 100644 index 00000000000..fa3cfec109a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushaudioframe2.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="pushAudioFrame2"/> + 将外部音频帧推送到 SDK。将外部音频数据推送到 App。将外部音频帧推送到 SDK。 + + + + + + + + +
+

+ - (int)pushExternalAudioFrameRawData:(void* _Nonnull)data + samples:(NSInteger)samples + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + trackId:(NSInteger)trackId + timestamp:(NSTimeInterval)timestamp NS_SWIFT_NAME(pushExternalAudioFrameRawData(_:samples:sampleRate:channels:trackId:timestamp:)); + public abstract int pushExternalAudioFrame(ByteBuffer data, long timestamp, int sampleRate, int channels, Constants.BytesPerSample bytesPerSample, int trackId); + - (int)pushExternalAudioFrameRawData:(void* _Nonnull)data + samples:(NSInteger)samples + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + trackId:(NSInteger)trackId + timestamp:(NSTimeInterval)timestamp NS_SWIFT_NAME(pushExternalAudioFrameRawData(_:samples:sampleRate:channels:trackId:timestamp:)); +

+
+
+
+ +
废弃
+
该方法已废弃。请改用 pushExternalAudioFrame(byte[] data, long timestamp, int sampleRate, int channels, Constants.BytesPerSample bytesPerSample, int trackId)
+
+
+

你可以调用该方法通过音频轨道向 SDK 推送外部音频帧。 +调用该方法前,请先完成以下操作: +

    +
  1. 调用 createCustomAudioTrack 创建自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
+

+

你可以调用该方法通过音频轨道向 SDK 推送外部音频帧。 +调用该方法前,请先完成以下操作: +

    +
  1. 调用 createCustomAudioTrack 创建自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
+

+
+
+ 参数 + + + data + 外部音频数据。 + + + samples + 采样点数量。 + + + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + trackId + 音频轨道 ID,需设置为调用 createCustomAudioTrack 返回的自定义音频轨道 ID。 + + + timestamp + 外部音频帧的时间戳(毫秒)。该参数为必填项,可用于还原采集音频帧的顺序,或在涉及视频的场景中(包括使用自定义视频源的场景)实现音视频同步。 + + + data + 音频缓冲区数据。 + + + timestamp + 音频数据的时间戳。 + + + sampleRate + 采样率,单位为 Hz。可设置为以下值之一: +
    +
  • 8000
  • +
  • 16000
  • +
  • 32000
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + channels + 音频声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + bytesPerSample + 每个采样点的字节数。 + + + trackId + 音频轨道 ID。 + + + data + 外部音频数据。 + + + samples + 采样点数量。 + + + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + trackId + 音频轨道 ID,需设置为调用 createCustomAudioTrack 返回的自定义音频轨道 ID。 + + + timestamp + 外部音频帧的时间戳(毫秒)。该参数为必填项,可用于还原采集音频帧的顺序,或在涉及视频的场景中(包括使用自定义视频源的场景)实现音视频同步。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer1.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer1.dita new file mode 100644 index 00000000000..58bbc22546a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer1.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="pushExternalAudioFrameSampleBuffer1"/> + 推送外部 CMSampleBuffer 音频帧。推送外部 CMSampleBuffer 音频帧。 + + + + + + + + +
+

+ - (int)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer NS_SWIFT_NAME(pushExternalAudioFrameSampleBuffer(_:)) __deprecated_msg("use pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: instead."); + - (int)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer NS_SWIFT_NAME(pushExternalAudioFrameSampleBuffer(_:)) __deprecated_msg("use pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 参数 + + + sampleBuffer + 音频帧的 sample buffer,类型为 CMSampleBufferRef。详见 CMSampleBufferRef + + + sampleBuffer + 音频帧的 sample buffer,类型为 CMSampleBufferRef。详见 CMSampleBufferRef + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita new file mode 100644 index 00000000000..c104e131c94 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="pushExternalAudioFrameSampleBuffer2"/> + 通过自定义音频轨道将外部 CMSampleBuffer 音频帧推送到频道中。通过自定义音频轨道将外部 CMSampleBuffer 音频帧推送到频道中。 + + + + + + + + +
+

+ - (int)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + trackId:(NSInteger)trackId NS_SWIFT_NAME(pushExternalAudioFrameSampleBuffer(_:sampleRate:channels:trackId:)); + - (int)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + trackId:(NSInteger)trackId NS_SWIFT_NAME(pushExternalAudioFrameSampleBuffer(_:sampleRate:channels:trackId:)); +

+
+
+

在调用该方法推送外部音频数据之前,你需要完成以下操作: +

    +
  1. 调用 createCustomAudioTrack 创建自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为你要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
+

+

在调用该方法推送外部音频数据之前,你需要完成以下操作: +

    +
  1. 调用 createCustomAudioTrack 创建自定义音频轨道,并获取音频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 publishCustomAudioTrackId 设置为你要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为
  4. +
+

+
+
+ 参数 + + + sampleBuffer + 采样缓冲区。详见 CMSampleBufferRef + + + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + trackId + 音频轨道 ID。你需要将该参数设置为 createCustomAudioTrack 返回的自定义音频轨道 ID。 + + + sampleBuffer + 采样缓冲区。详见 CMSampleBufferRef + + + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + trackId + 音频轨道 ID。你需要将该参数设置为 createCustomAudioTrack 返回的自定义音频轨道 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe.dita new file mode 100644 index 00000000000..dfd9d81830e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="pushVideoFrame"/> + 通过视频轨道将外部原始视频帧推送到 SDK。通过视频轨道向 SDK 推送外部原始视频帧。通过视频轨道将外部原始视频帧推送到 SDK。 + + + + + + + + +
+

+ - (BOOL)pushExternalVideoFrame:(AgoraVideoFrame * _Nonnull)frame videoTrackId:(NSUInteger)videoTrackId NS_SWIFT_NAME(pushExternalVideoFrame(_:videoTrackId:)); + public abstract int pushExternalVideoFrameById(VideoFrame frame, int videoTrackId); + - (BOOL)pushExternalVideoFrame:(AgoraVideoFrame * _Nonnull)frame videoTrackId:(NSUInteger)videoTrackId NS_SWIFT_NAME(pushExternalVideoFrame(_:videoTrackId:)); +

+
+
+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用 创建视频轨道并获取视频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 方法,并将 videoTrackId 指定为第 2 步中设置的视频轨道 ID,即可在频道中发布相应的自定义视频源。
  6. +
+

+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用 创建视频轨道并获取视频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 pushExternalVideoFrameById,并将 videoTrackId 设置为第 2 步中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
你可以通过调用 pushExternalVideoFrameById 或调用 pushExternalVideoFrameById(参数为 )推送视频帧。两者的区别在于本方法支持纹理格式的视频数据。

+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用 创建视频轨道并获取视频轨道 ID。
  2. +
  3. 调用 joinChannelByToken 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 方法,并将 videoTrackId 指定为第 2 步中设置的视频轨道 ID,即可在频道中发布相应的自定义视频源。
  6. +
+

+ 如果你只需向频道中推送一个自定义视频源,可以直接调用 ,SDK 会自动创建一个 videoTrackId 为 0 的视频轨道。 +危险:调用本方法后,即使你停止向 SDK 推送外部视频帧,自定义视频流仍会计入视频时长并产生费用。声网建议你根据实际情况采取适当措施以避免此类视频计费: +
    +
  • 如果你不再需要采集外部视频数据,可以调用 销毁自定义视频轨道。
  • +
  • 如果你只想将外部视频数据用于本地预览而不发布到频道中,可以调用 取消发送视频流,或调用 publishCustomVideoTrack 设置为
  • +
+
+
+
+ 参数 + + + frame + 要推送的外部原始视频帧。详见 + + + videoTrackId + 通过调用 方法返回的视频轨道 ID。 +
    +
  • 如果你只需推送一个自定义视频源,请将该参数设置为 0。
  • +
+
+
+ + frame + 要推送的视频帧。 + + + videoTrackId + 调用 返回的视频轨道 ID。 + 如果你只需推送一个自定义视频源,请将 videoTrackId 设置为 0。 + + + + frame + 要推送的外部原始视频帧。详见 + + + videoTrackId + 通过调用 方法返回的视频轨道 ID。 +
    +
  • 如果你只需推送一个自定义视频源,请将该参数设置为 0。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • :推送外部视频帧成功。
  • +
  • :推送外部视频帧失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :推送外部视频帧成功。
  • +
  • :推送外部视频帧失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe2.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe2.dita new file mode 100644 index 00000000000..4a4aa7bf209 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe2.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="pushVideoFrame2"/> + 将外部原始视频帧推送到 SDK。将外部原始视频帧推送至 SDK。将外部原始视频帧推送到 SDK。 + + + + + + + + +
+

+ - (BOOL)pushExternalVideoFrame:(AgoraVideoFrame * _Nonnull)frame NS_SWIFT_NAME(pushExternalVideoFrame(_:)) __deprecated_msg("use pushExternalVideoFrame:frame,videoTrackId options instead."); + public abstract boolean pushExternalVideoFrame(VideoFrame frame) + - (BOOL)pushExternalVideoFrame:(AgoraVideoFrame * _Nonnull)frame NS_SWIFT_NAME(pushExternalVideoFrame(_:)) __deprecated_msg("use pushExternalVideoFrame:frame,videoTrackId options instead."); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 pushExternalVideoFrame:frame,videoTrackId
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
该方法已废弃,请改用 pushExternalVideoFrame:frame,videoTrackId
+
+
+

调用 方法,并将 enabled 参数设置为 encodedFrame 参数设置为 后,可以调用该方法将外部原始视频帧推送到 SDK。

+

调用 方法并将 enabled 参数设置为 encodedFrame 参数设置为 后,可以使用该方法将外部原始视频帧推送至 SDK。你可以调用该方法或 pushExternalVideoFrame 推送视频帧。两者的区别在于该方法支持纹理格式的视频数据。

+

调用 方法,并将 enabled 参数设置为 encodedFrame 参数设置为 后,可以调用该方法将外部原始视频帧推送到 SDK。

+
+
+ 参数 + + + frame + 要推送的外部原始视频帧。详见 + + + frame + 要推送的视频帧。 + + + frame + 要推送的外部原始视频帧。详见 + + +
+
+ 返回值 +

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+

+

    +
  • :推送视频帧成功。
  • +
  • :推送视频帧失败。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe3.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe3.dita new file mode 100644 index 00000000000..78db362b8b4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe3.dita @@ -0,0 +1,59 @@ + + + + <ph keyref="pushVideoFrame3"/> + 通过视频轨道向 SDK 推送外部原始视频帧。 + + + + + + + + +
+

+ public abstract int pushExternalVideoFrameById(AgoraVideoFrame frame, int videoTrackId); +

+
+
+

要发布自定义视频源,请按照以下步骤操作: +

    +
  1. 调用 创建视频轨道并获取视频轨道 ID。
  2. +
  3. 调用 joinChannel 加入频道。在 中,将 customVideoTrackId 设置为要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
  4. +
  5. 调用 pushExternalVideoFrameById,并将 videoTrackId 设置为步骤 2 中设置的视频轨道 ID,即可在频道中发布对应的自定义视频源。
  6. +
你可以通过调用 pushExternalVideoFrameById 或调用 pushExternalVideoFrame 推送视频帧。两者的区别在于 pushExternalVideoFrameById 不支持 Texture 格式的视频数据。

+ 如果你只需向频道中推送一个自定义视频源,可以直接调用 方法,SDK 会自动创建一个 videoTrackId 为 0 的视频轨道。 +警告:调用 pushExternalVideoFrameById 后,即使你停止向 SDK 推送外部视频帧,自定义视频流仍会被计入视频时长并产生费用。声网建议你根据实际情况采取适当措施以避免此类视频计费: +
    +
  • 如果你不再需要采集外部视频数据,可以调用 销毁自定义视频轨道。
  • +
  • 如果你只想将外部视频数据用于本地预览而不在频道中发布,可以调用 取消发送视频流,或调用 publishCustomVideoTrack 设置为
  • +
+
+
+
+ 参数 + + + frame + 要推送的外部原始视频帧。详见 + + + videoTrackId + 调用 返回的视频轨道 ID。 + 如果你只需推送一个自定义视频源,请将 videoTrackId 设置为 0。 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe4.dita b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe4.dita new file mode 100644 index 00000000000..163f5784ac2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_pushvideoframe4.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="pushVideoFrame4"/> + 将外部原始视频帧推送至 SDK。 + + + + + + + + +
+

+ public abstract boolean pushExternalVideoFrame(AgoraVideoFrame frame) +

+
+
+
+ +
废弃
+
自 v4.5.0 版本废弃。
+
+
+

调用 方法并将 enabled 参数设置为 encodedFrame 参数设置为 后,可以使用 pushExternalVideoFrame 将外部原始视频帧推送至 SDK。你也可以调用 pushExternalVideoFrame 推送视频帧。不同之处在于,此方法不支持 Texture 格式的视频数据。

+
+
+ 参数 + + + frame + 要推送的外部原始视频帧。详见 + + +
+
+ 返回值 +

+

    +
  • :推送成功。
  • +
  • :推送失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_querycamerafocallengthcapability.dita b/dita/RTC-AIDOC/API/api_irtcengine_querycamerafocallengthcapability.dita new file mode 100644 index 00000000000..9dd35775f4f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_querycamerafocallengthcapability.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="queryCameraFocalLengthCapability"/> + 查询摄像头支持的焦距能力。查询摄像头支持的焦距能力。查询摄像头支持的焦距能力。 + + + + + + + + +
+

+ virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0; + - (NSArray<AgoraFocalLengthInfo *>* _Nullable)queryCameraFocalLengthCapability NS_SWIFT_NAME(queryCameraFocalLengthCapability()); + public abstract AgoraFocalLengthInfo[] queryCameraFocalLengthCapability(); +

+
+
+

如果你希望在视频采集中启用广角或超广角模式,建议先调用该方法检查设备是否支持所需的焦距能力。然后根据查询结果调用 方法调整摄像头的焦距配置,以获得最佳的视频采集效果。

+

如果你希望在视频采集中启用广角或超广角模式,建议你首先调用 方法检查设备是否支持所需的焦距能力。然后,根据查询结果调用 方法调整摄像头的焦距配置,以确保最佳的视频采集性能。

+

建议在启用广角或超广角模式进行视频采集前,调用该方法检查设备是否支持所需的焦距能力。根据查询结果调用 方法调整摄像头的焦距配置,以确保最佳的视频采集性能。

+ 该方法仅适用于 Android 和 iOS 平台。 +
+
+ 参数 + + + focalLengthInfos + 输入和输出参数,表示 对象数组的指针。方法执行后,填充查询到的焦距信息。详见 + + + size + 输入和输出参数,表示焦距信息项的数量。输入时指定 focalLengthInfos 可容纳的最大焦距信息项数量,该值应不小于 8。输出时返回实际获取的焦距信息项数量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回一个 对象数组,包含摄像头的方向和焦距类型,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 对象数组,包含摄像头的方向和焦距类型。
  • +
  • 方法调用失败,返回空数组。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_querycodeccapability.dita b/dita/RTC-AIDOC/API/api_irtcengine_querycodeccapability.dita new file mode 100644 index 00000000000..f5dedb7deb9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_querycodeccapability.dita @@ -0,0 +1,59 @@ + + + + <ph keyref="queryCodecCapability"/> + 查询 SDK 支持的视频编解码器能力。查询 SDK 的视频编解码能力。查询设备支持的视频编解码能力。查询设备支持的视频编解码能力。 + + + + + + + + +
+

+ virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0; + public abstract CodecCapInfo[] queryCodecCapability(); + - (NSArray <AgoraVideoCodecCapInfo *> *_Nullable)queryCodecCapability; + - (NSArray <AgoraVideoCodecCapInfo *> *_Nullable)queryCodecCapability; +

+
+
+
+ 参数 + + + codecInfo + 输入和输出参数,表示 SDK 支持的视频编解码器能力数组。你在调用该方法时传入一个 数组,表示要查询的视频编解码器能力。方法执行完毕后,该数组将被填充为 SDK 实际支持的视频编解码器能力。详见 + + + size + 输入和输出参数,表示 codecInfo 数组的大小。你在调用该方法时传入 codecInfo 的大小。方法执行完毕后,该值将被更新为实际返回的 codecInfo 数组大小。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功,返回 数组,表示设备的视频编码能力。方法调用超时,请修改调用逻辑,避免在主线程中调用该方法。

+

+

    +
  • 方法调用成功时,返回一个 数组,表示设备的视频编码能力,详见
  • +
  • 方法调用失败时,返回 。如果调用超时,请调整调用逻辑,避免在主线程中调用该方法。
  • +
+

+

+

    +
  • 方法调用成功时,返回一个 数组,表示设备的视频编码能力,详见
  • +
  • 方法调用失败时,返回 。如果调用超时,请调整调用逻辑,避免在主线程中调用该方法。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_querydevicescore.dita b/dita/RTC-AIDOC/API/api_irtcengine_querydevicescore.dita new file mode 100644 index 00000000000..8d06cd23a1d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_querydevicescore.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="queryDeviceScore"/> + 查询设备评分。查询设备评分。查询设备评分。查询设备评分。 + + + + + + + + +
+

+ virtual int queryDeviceScore() = 0; + public abstract int queryDeviceScore(); + - (int)queryDeviceScore NS_SWIFT_NAME(queryDeviceScore()); + - (int)queryDeviceScore NS_SWIFT_NAME(queryDeviceScore()); +

+
+
+

在高清或超高清的视频场景中,可以调用该方法查询设备评分。如果返回的评分较低(例如低于 60),建议降低视频分辨率,以避免影响视频体验。不同业务场景对设备评分的最低要求不同,具体建议请[联系技术支持](https://ticket.shengwang.cn/)。

+

你可以调用该方法查询设备评分。如果返回的评分较低(例如低于 60),你需要降低视频分辨率,以避免影响视频体验。不同业务场景对设备评分的最低要求不同,具体评分建议请[联系技术支持](https://ticket.shengwang.cn/)。

+

在高清或超高清的视频场景中,你可以先调用该方法查询设备评分。如果返回的评分较低(例如低于 60),你需要降低视频分辨率,以避免影响视频体验。不同业务场景对设备评分的最低要求不同。具体评分建议请[联系技术支持](https://ticket.shengwang.cn/)。

+

在高清或超高清的视频场景中,你可以先调用该方法查询设备评分。如果返回的评分较低(例如低于 60),你需要降低视频分辨率,以避免影响视频体验。不同业务场景对设备评分的最低要求不同。具体评分建议请[联系技术支持](https://ticket.shengwang.cn/)。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回当前设备评分,范围为 [0, 100],数值越大表示设备性能越强。大多数设备评分在 60 到 100 之间。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • > 0:方法调用成功,返回当前设备评分,范围为 [0, 100],数值越大表示设备性能越强。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • > 0:方法调用成功,返回当前设备的评分,范围为 [0,100],数值越大表示设备性能越强。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • > 0:方法调用成功,返回当前设备的评分,范围为 [0,100],数值越大表示设备性能越强。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_queryinterface.dita b/dita/RTC-AIDOC/API/api_irtcengine_queryinterface.dita new file mode 100644 index 00000000000..8b4cd4d3aa6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_queryinterface.dita @@ -0,0 +1,43 @@ + + + + <ph keyref="queryInterface"/> + 获取指定接口的指针。 + + + + + + + + +
+

+ virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0; +

+
+
+
+ 参数 + + + iid + 接口的 ID,详见 + + + inter + 输出参数,表示指定接口的指针。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_queryscreencapturecapability.dita b/dita/RTC-AIDOC/API/api_irtcengine_queryscreencapturecapability.dita new file mode 100644 index 00000000000..3541757722b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_queryscreencapturecapability.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="queryScreenCaptureCapability"/> + 查询设备在屏幕共享时支持的最高帧率。查询设备在屏幕共享时支持的最高帧率。查询设备在屏幕共享时支持的最高帧率。 + + + + + + + + +
+

+ virtual int queryScreenCaptureCapability() = 0; + - (AgoraScreenCaptureFrameRateCapability)queryScreenCaptureCapability NS_SWIFT_NAME(queryScreenCaptureCapability()); + public abstract int queryScreenCaptureCapability(); +

+
+
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+

为了确保屏幕共享的最佳性能,特别是在启用如 60 fps 的高帧率时,建议你在共享前调用该方法,查询设备支持的最高帧率。如果设备不支持高帧率,你可以相应地降低屏幕共享流的帧率,以避免影响共享质量。

+

为了确保屏幕共享的最佳性能,特别是在启用如 60 fps 的高帧率时,声网建议你在共享前使用该方法查询设备支持的最大帧率。如果设备无法支持如此高的帧率,你可以相应地调整屏幕共享流的帧率,以避免影响共享质量。

+ 该方法仅适用于 Android 和 iOS 平台。 +
+
+ 适用场景 +

为确保屏幕共享的最佳性能,特别是在启用如 60 fps 的高帧率时,建议你在共享前使用该方法查询设备支持的最高帧率。

+
+
+ 调用时机 +

你可以在开始屏幕共享前调用该方法,查询设备支持的最高帧率,以确保屏幕共享的最佳性能,特别是在启用如 60 fps 的高帧率时。如果设备不支持高帧率,你可以相应地降低屏幕共享流的帧率,以避免影响共享质量,确保共享效果符合预期。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回设备支持的最高帧率,详见
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回设备支持的最高帧率。详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 0:设备最多支持 15 fps 的帧率。
  • +
  • 1:设备最多支持 30 fps 的帧率。
  • +
  • 2:设备最多支持 60 fps 的帧率。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_rate.dita b/dita/RTC-AIDOC/API/api_irtcengine_rate.dita new file mode 100644 index 00000000000..67cfed3bc37 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_rate.dita @@ -0,0 +1,133 @@ + + + + <ph keyref="rate"/> + 允许用户在通话结束后对通话进行评分。允许用户在通话结束后对通话进行评分。允许你在通话结束后对通话进行评分。允许你在通话结束后对通话进行评分。 + + + + + + + + +
+

+ virtual int rate(const char* callId, int rating, const char* description) = 0; + public abstract int rate(String callId, int rating, String description); + - (int)rate:(NSString * _Nonnull)callId + rating:(NSInteger)rating + description:(NSString * _Nullable)description NS_SWIFT_NAME(rate(_:rating:description:)); + - (int)rate:(NSString * _Nonnull)callId + rating:(NSInteger)rating + description:(NSString * _Nullable)description NS_SWIFT_NAME(rate(_:rating:description:)); +

+
+
+ 请确保在离开频道后再调用该方法。 + 请确保在离开频道后调用此方法。 + 请确保在离开频道后调用此方法。 + 请确保在离开频道后调用此方法。 +
+
+ 参数 + + + callId + 当前通话的 ID。你可以通过调用 获取。 + + + rating + 评分值,范围为 1(最低分)到 5(最高分)。 + + + description + (可选)通话的描述信息,字符串长度应小于 800 字节。 + + + callId + 当前通话的 ID。你可以通过调用 获取该 ID。 + + + rating + 评分值,范围为 1(最低分)到 5(最高分)。 + + + description + (可选)对通话的描述。字符串长度应小于 800 字节。 + + + callId + 当前通话的 ID。你可以通过调用 获取通话 ID。 + + + rating + 评分值,范围为 1(最低分)到 5(最高分)。 + + + description + (可选)对本次通话的描述。字符串长度应小于 800 字节。 + + + callId + 当前通话的 ID。你可以通过调用 获取通话 ID。 + + + rating + 评分值,范围为 1(最低分)到 5(最高分)。 + + + description + (可选)对本次通话的描述。字符串长度应小于 800 字节。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误。
    • +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -2:参数无效。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -2:参数无效。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registeraudioencodedframeobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registeraudioencodedframeobserver.dita new file mode 100644 index 00000000000..eb4ac9a2016 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registeraudioencodedframeobserver.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="registerAudioEncodedFrameObserver"/> + 注册编码音频数据的观察器。注册编码音频数据的观察器。注册编码音频数据的观察者。注册编码音频数据的观察者。 + + + + + + + + +
+

+ virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig& config, IAudioEncodedFrameObserver *observer) = 0; + public abstract int registerAudioEncodedFrameObserver(AudioEncodedFrameObserverConfig config, IAudioEncodedFrameObserver observer); + - (int)setAudioEncodedFrameDelegate:(id<AgoraAudioEncodedFrameDelegate> _Nullable)delegate config:(AgoraAudioEncodedFrameDelegateConfig * _Nonnull)config NS_SWIFT_NAME(setAudioEncodedFrameDelegate(_:config:)); + - (int)setAudioEncodedFrameDelegate:(id<AgoraAudioEncodedFrameDelegate> _Nullable)delegate config:(AgoraAudioEncodedFrameDelegateConfig * _Nonnull)config NS_SWIFT_NAME(setAudioEncodedFrameDelegate(_:config:)); +

+
+
+ 你需要在加入频道后调用该方法。你可以调用该方法或 startAudioRecording 来设置音频文件的录制类型和质量,但声网不建议同时使用这两个方法。只有后调用的方法会生效。 + 调用该方法需在加入频道后进行。你可以调用此方法或 startAudioRecording 来设置音频文件的录制类型和质量,但不建议同时使用这两个方法。只有后调用的方法会生效。 + 该方法需在加入频道后调用。你可以调用该方法或 来设置音频文件的录制类型和质量,但声网不建议同时使用这两个方法。只有后调用的方法会生效。 + 该方法需在加入频道后调用。你可以调用该方法或 来设置音频文件的录制类型和质量,但声网不建议同时使用这两个方法。只有后调用的方法会生效。 +
+
+ 参数 + + + config + 编码音频的观察器配置。详见 + + + observer + 编码音频数据的观察器。详见 + + + config + 编码音频的观察器配置。详见 + + + observer + 编码音频数据的观察器。详见 + + + delegate + 编码音频数据的观察者。详见 + + + config + 编码音频数据的观察者配置。详见 + + + delegate + 编码音频数据的观察者。详见 + + + config + 编码音频数据的观察者配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registeraudioframeobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registeraudioframeobserver.dita new file mode 100644 index 00000000000..4824ff1a17a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registeraudioframeobserver.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="registerAudioFrameObserver"/> + 注册音频帧观察者对象。注册音频帧观测器对象。注册音频帧观察者对象。 + + + + + + + + +
+

+ - (BOOL)setAudioFrameDelegate:(id<AgoraRtcMediaPlayerAudioFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setAudioFrameDelegate(_:)); + public abstract int registerAudioFrameObserver(IAudioFrameObserver observer); + - (BOOL)setAudioFrameDelegate:(id<AgoraAudioFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setAudioFrameDelegate(_:)); +

+
+
+

调用此方法可注册音频帧观察者对象。当你需要 SDK 触发 onMixedAudioFrameonRecordAudioFrameonPlaybackAudioFrameonPlaybackAudioFrameBeforeMixingonEarMonitoringAudioFrame 回调时,需要通过此方法注册回调。

+

调用该方法注册音频帧观测器对象后,SDK 会触发 回调。

+

调用此方法可注册音频帧观察者对象。当你需要 SDK 触发 onMixedAudioFrameonRecordAudioFrameonPlaybackAudioFrameonPlaybackAudioFrameBeforeMixingonEarMonitoringAudioFrame 回调时,需要通过此方法注册回调。

+
+
+ 调用时机 +

该方法需要在加入频道前调用。

+

在加入频道前调用此方法。

+

该方法需要在加入频道前调用。

+
+ +
+ 参数 + + + delegate + 观察者对象,传入 表示取消注册。详见 + + + observer + 音频帧观测器实例。详见 。设置为 null 可释放该实例。建议在收到 回调后调用此方法释放音频帧观测器对象。 + + + delegate + 观察者实例。将该参数设为 可释放该实例。声网建议在收到 回调后调用此方法释放音频观察者对象。详见 + + +
+
+ 返回值 +

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registeraudiospectrumobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registeraudiospectrumobserver.dita new file mode 100644 index 00000000000..75af7611321 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registeraudiospectrumobserver.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="registerAudioSpectrumObserver"/> + 注册音频频谱观察器。注册音频频谱观察器。注册音频频谱观察者。注册音频频谱观察者。 + + + + + + + + +
+

+ virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0; + public abstract int registerAudioSpectrumObserver(IAudioSpectrumObserver observer); + - (int)registerAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable )delegate NS_SWIFT_NAME(registerAudioSpectrumDelegate(_:)); + - (int)registerAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable )delegate NS_SWIFT_NAME(registerAudioSpectrumDelegate(_:)); +

+
+
+

成功注册音频频谱观察器并调用 启用音频频谱监测后,SDK 会根据你设置的时间间隔,触发你在 中实现的回调。

+

成功注册音频频谱观察器并调用 启用音频频谱监测后,SDK 会根据你设置的时间间隔,触发你在 中实现的回调。

+

成功注册音频频谱观察者并调用 启用音频频谱监测后,SDK 会根据你设置的时间间隔,触发你在 中实现的回调。

+

成功注册音频频谱观察者并调用 启用音频频谱监测后,SDK 会根据你设置的时间间隔,触发你在 中实现的回调。

+ 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 +
+
+ 参数 + + + observer + 音频频谱观察器。详见 + + + observer + 音频频谱观察器。详见 + + + delegate + 音频频谱观察者。详见 + + + delegate + 音频频谱观察者。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registerextension.dita b/dita/RTC-AIDOC/API/api_irtcengine_registerextension.dita new file mode 100644 index 00000000000..790dd3b5f3e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registerextension.dita @@ -0,0 +1,185 @@ + + + + <ph keyref="registerExtension"/> + 注册一个扩展。注册一个扩展。注册一个扩展。注册一个扩展。 + + + + + + + + +
+

+ virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; + public abstract int registerExtension(String provider, String extension, Constants.MediaSourceType sourceType); + - (int)registerExtensionWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(registerExtension(withVendor:extension:sourceType:)); + - (int)registerExtensionWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(registerExtension(withVendor:extension:sourceType:)); +

+
+
+

对于 SDK 外部的扩展(例如来自云市场和 SDK 扩展),你需要在调用该方法前先加载它们。对于 SDK 内部的扩展(即包含在完整 SDK 包中的扩展),在初始化 后会自动加载并注册。

+

+

    +
  • 对于 SDK 外部的扩展(例如来自云市场和 SDK 扩展),你需要在调用 之前先通过 加载它们。
  • +
  • 对于 SDK 内部的扩展(即包含在完整 SDK 包中的扩展),在初始化 后会自动加载并注册。
  • +
+

+

对于 SDK 外部的扩展(例如来自 Extensions Marketplace 和 SDK Extensions 的扩展),你需要在调用此方法前加载它们。对于 SDK 内部的扩展(即包含在完整 SDK 包中的扩展),在初始化 后会自动加载并注册。

+

对于 SDK 外部的扩展(例如来自 Extensions Marketplace 和 SDK Extensions 的扩展),你需要在调用此方法前加载它们。对于 SDK 内部的扩展(即包含在完整 SDK 包中的扩展),在初始化 后会自动加载并注册。

+ +
    +
  • 如果你想注册多个扩展,需要多次调用此方法。
  • +
  • SDK 中不同扩展的数据处理顺序由注册顺序决定,即先注册的扩展会优先处理数据。
  • +
+
+ +
    +
  • 如果你想注册多个扩展,需要多次调用此方法。
  • +
  • SDK 中不同扩展的数据处理顺序由注册顺序决定。即先注册的扩展会先处理数据。
  • +
+
+ +
    +
  • 如果你想注册多个扩展,需要多次调用此方法。
  • +
  • SDK 中不同扩展的数据处理顺序由注册顺序决定。即先注册的扩展会先处理数据。
  • +
+
+ +
    +
  • 如果你想注册多个扩展,需要多次调用此方法。
  • +
  • SDK 中不同扩展的数据处理顺序由注册顺序决定。即先注册的扩展会先处理数据。
  • +
+
+
+
+ 调用时机 +

声网建议你在初始化 后、加入频道前调用此方法。 +

    +
  • 对于视频扩展(如图像增强扩展),你需要在调用 启用视频模块后再调用此方法。
  • +
  • 在调用此方法前,你需要先调用 加载扩展。
  • +
+

+

声网建议你在初始化 后、加入频道前调用此方法。 +

    +
  • 对于视频扩展(如图像增强扩展),你需要在调用 启用视频模块后再调用此方法。
  • +
  • 在调用此方法之前,你需要先调用 加载扩展。
  • +
+

+

声网建议你在初始化 后、加入频道前调用此方法。 +

    +
  • 对于视频扩展(如图像增强扩展),你需要在调用 启用视频模块后调用此方法。
  • +
  • 在调用此方法之前,你需要将扩展动态库(.xcframework)链接到 Xcode 项目中以加载扩展。
  • +
+

+

声网建议你在初始化 后、加入频道前调用此方法。 +

    +
  • 对于视频扩展(如图像增强扩展),你需要在调用 启用视频模块后调用此方法。
  • +
  • 在调用此方法之前,你需要将扩展动态库(.xcframework)链接到 Xcode 项目中以加载扩展。
  • +
+

+
+
+ 参数 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + type + 扩展的数据源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + sourceType + 扩展的数据源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + sourceType + 扩展的数据源类型,详见 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + sourceType + 扩展的数据源类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registerlocaluseraccount.dita b/dita/RTC-AIDOC/API/api_irtcengine_registerlocaluseraccount.dita new file mode 100644 index 00000000000..3fa7d560785 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registerlocaluseraccount.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="registerLocalUserAccount"/> + 注册用户 User Account。注册用户 User Account。注册用户 User Account。注册用户 User Account。 + + + + + + + + +
+

+ virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0; + public abstract int registerLocalUserAccount(String appId, String userAccount); + - (int)registerLocalUserAccount:(NSString* _Nonnull)userAccount appId:(NSString* _Nonnull)appId NS_SWIFT_NAME(registerLocalUserAccount(_:appId:)); + - (int)registerLocalUserAccount:(NSString* _Nonnull)userAccount appId:(NSString* _Nonnull)appId NS_SWIFT_NAME(registerLocalUserAccount(_:appId:)); +

+
+
+

该方法用于注册用户 User Account。注册成功后,用户 User Account 可用于在加入频道时标识本地用户身份。你可以选择以下任一方式使用用户 User Account 加入频道: +

    +
  • 先调用 注册用户 User Account,再调用 joinChannelWithUserAccount 加入频道,可缩短进入频道的时间。
  • +
  • 直接调用 joinChannelWithUserAccount 加入频道。
  • +
从 v4.6.0 版本开始,SDK 不再自动将 int 类型的用户 ID 映射为注册用户 User Account 时使用的 string 类型 userAccount。如果你希望使用注册时的原始 string 类型 userAccount 加入频道,请调用 joinChannelWithUserAccount,而不是调用 joinChannel 并传入通过该方法获取的 int 类型用户 ID。确保 userAccount 在频道内唯一。为确保通信顺畅,建议使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID;同理,如果使用用户 User Account 加入频道,则其他用户也应使用用户 User Account。如果用户使用声网 Web SDK 加入频道,确保用户 ID 设置为相同的参数类型。

+

该方法用于注册用户 User Account。注册成功后,用户 User Account 可用于在加入频道时标识本地用户身份。该方法为可选项。如果你希望使用用户 User Account 加入频道,可以选择以下任一方式: +

    +
  • 先调用 方法注册用户 User Account,再调用 joinChannelWithUserAccount 方法加入频道,可缩短进入频道所需时间。
  • +
  • 直接调用 joinChannelWithUserAccount 方法加入频道。
  • +
+

+

方法用于注册一个 userAccount,注册成功后,该 userAccount 可用于在加入频道时标识本地用户身份。 +该方法为可选方法。如果你希望使用 userAccount 加入频道,可以选择以下任一方式: +

    +
  • 先调用 方法注册一个 userAccount,再调用 方法加入频道,可缩短进入频道所需时间。
  • +
  • 直接调用 方法加入频道。
  • +
调用该方法成功后,本地会触发 回调,报告本地用户的用户 ID 和 userAccount

+

方法用于注册一个 userAccount,注册成功后,该 userAccount 可用于在加入频道时标识本地用户身份。 +该方法为可选方法。如果你希望使用 userAccount 加入频道,可以选择以下任一方式: +

    +
  • 先调用 方法注册一个 userAccount,再调用 方法加入频道,可缩短进入频道所需时间。
  • +
  • 直接调用 方法加入频道。
  • +
调用该方法成功后,本地会触发 回调,报告本地用户的用户 ID 和 userAccount

+ +
    +
  • 从 v4.6.0 起,SDK 不再自动将 int 类型的用户 ID 映射为注册时使用的 string 类型 userAccount。如果你希望使用注册时的原始 userAccount 加入频道,请调用 方法,而不要调用 并传入通过该方法获取的 int 类型用户 ID。
  • +
  • 请确保 userAccount 在频道中唯一。
  • +
  • 为确保通信顺畅,请统一使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID;若使用 userAccount,则其他用户也应使用 userAccount。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 从 v4.6.0 起,SDK 不再自动将 int 类型的用户 ID 映射为注册时使用的 string 类型 userAccount。如果你希望使用注册时的原始 userAccount 加入频道,请调用 方法,而不要调用 并传入通过该方法获取的 int 类型用户 ID。
  • +
  • 请确保 userAccount 在频道中唯一。
  • +
  • 为确保通信顺畅,请统一使用相同的参数类型标识用户。例如,如果某用户使用用户 ID 加入频道,则其他用户也应使用用户 ID;若使用 userAccount,则其他用户也应使用 userAccount。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+ +
+ 参数 + + + appId + 声网控制台中项目的 App ID。 + + + userAccount + 用户 User Account。用于在频道中标识用户身份以实现实时音视频互动。你需要自行设置并管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符共 89 个,包括: +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + appId + 声网控制台中项目的 App ID。 + + + userAccount + 用户 User Account,用于在频道中标识用户身份以实现实时音视频互动。你需要自行设置并管理用户 User Account,并确保同一频道内的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符共 89 个,包括: +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!"、"#"、"$"、"%"、"&"、"("、")"、"+"、"-"、":"、";"、"<"、"="、"."、">"、"?"、"@"、"["、"]"、"^"、"_"、"{"、"}"、"|"、"~"、","
  • +
+
+
+ + userAccount + 用于在频道中标识用户身份,以实现实时音视频互动。你需要自行设置并管理 userAccount,并确保同一频道中每个 userAccount 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!"、"#"、"$"、"%"、"&"、"("、")"、"+"、"-"、":"、";"、"<"、"="、"."、">"、"?"、"@"、"["、"]"、"^"、"_"、"{"、"}"、"|"、"~"、","。
  • +
+
+
+ + appId + 你在声网控制台项目中的 App ID + + + userAccount + 用于在频道中标识用户身份,以实现实时音视频互动。你需要自行设置并管理 userAccount,并确保同一频道中每个 userAccount 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!"、"#"、"$"、"%"、"&"、"("、")"、"+"、"-"、":"、";"、"<"、"="、"."、">"、"?"、"@"、"["、"]"、"^"、"_"、"{"、"}"、"|"、"~"、","。
  • +
+
+
+ + appId + 你在声网控制台项目中的 App ID + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registermediametadataobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registermediametadataobserver.dita new file mode 100644 index 00000000000..db5718b24a4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registermediametadataobserver.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="registerMediaMetadataObserver"/> + 注册元数据观察器。注册元数据观察器。注册元数据观察者。注册元数据观察者。 + + + + + + + + +
+

+ virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0; + public abstract int registerMediaMetadataObserver(IMetadataObserver observer, int type); + - (BOOL)setMediaMetadataDelegate:(id<AgoraMediaMetadataDelegate> _Nullable)metadataDelegate withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDelegate(_:with:)); + - (BOOL)setMediaMetadataDelegate:(id<AgoraMediaMetadataDelegate> _Nullable)metadataDelegate withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDelegate(_:with:)); +

+
+
+

你需要实现 类,并在该方法中指定元数据类型。该方法支持在视频流中添加同步元数据,用于实现更丰富的互动直播场景,例如发送购物链接、数字优惠券和在线问答。成功调用该方法后,SDK 会触发 回调。

+

你需要实现 类,并在该方法中指定元数据类型。该方法支持你在视频流中添加同步元数据,以实现更丰富的互动直播场景,例如发送购物链接、数字优惠券和在线问答。成功调用该方法后,SDK 会触发 回调。

+

你需要实现 协议,并在该方法中指定元数据类型。该方法使你能够在视频流中添加同步的元数据,以实现更丰富的直播互动场景,例如发送购物链接、数字优惠券和在线问答。

+

你需要实现 协议,并在该方法中指定元数据类型。该方法使你能够在视频流中添加同步的元数据,以实现更丰富的直播互动场景,例如发送购物链接、数字优惠券和在线问答。

+ 请在调用 joinChannel 之前调用此方法。 + 请在调用 joinChannel 之前调用此方法。 + 请在调用 joinChannelByToken 之前调用该方法。 + 请在调用 joinChannelByToken 之前调用该方法。 +
+
+ 参数 + + + observer + 元数据观察器。详见 + + + type + 元数据类型。详见 。SDK 当前仅支持 VIDEO_METADATA + + + observer + 元数据观察器,详见 + + + type + 元数据类型。当前 SDK 仅支持以下类型: +
    +
  • VIDEO_METADATA:视频元数据。
  • +
+
+
+ + metadataDelegate + 元数据观察者,详见 + + + type + 元数据类型,详见 。当前 SDK 仅支持 AgoraMetadataTypeVideo + + + metadataDelegate + 元数据观察者,详见 + + + type + 元数据类型,详见 。当前 SDK 仅支持 AgoraMetadataTypeVideo + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registerpacketobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registerpacketobserver.dita new file mode 100644 index 00000000000..2fa18841709 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registerpacketobserver.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="registerPacketObserver"/> + 注册一个数据包观察器。 + + + + + + + + +
+

+ virtual int registerPacketObserver(IPacketObserver* observer) = 0; +

+
+
+

调用该方法注册一个数据包观察器。当声网 SDK 触发用于语音或视频数据包传输的 回调时,你可以通过该方法处理数据包,例如加密或解密。

+ +
    +
  • 处理后发送到网络的数据包大小不得超过 1200 字节,否则 SDK 可能无法发送该数据包。
  • +
  • 请确保接收端和发送端都调用该方法,否则可能会出现无声音或黑屏等未定义行为。
  • +
  • 当你使用媒体推流或录制功能时,声网不建议调用该方法。
  • +
  • 请在加入频道前调用该方法。
  • +
+
+
+
+ 参数 + + + observer + 数据包观察器。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registervideoencodedframeobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registervideoencodedframeobserver.dita new file mode 100644 index 00000000000..0f38cc39df6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registervideoencodedframeobserver.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="registerVideoEncodedFrameObserver"/> + 注册一个用于接收编码后视频图像的对象。注册用于接收编码后视频帧的观察器对象。注册一个用于接收编码后视频图像的对象。 + + + + + + + + +
+

+ - (BOOL)setEncodedVideoFrameDelegate:(id<AgoraEncodedVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setEncodedVideoFrameDelegate(_:)); + public abstract int registerVideoEncodedFrameObserver(IVideoEncodedFrameObserver receiver); + - (BOOL)setEncodedVideoFrameDelegate:(id<AgoraEncodedVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setEncodedVideoFrameDelegate(_:)); +

+
+
+

如果你只想观察编码后的视频帧(例如 H.264 格式),而不进行解码和渲染,声网建议你通过此方法实现一个 类。

+

建议通过此方法注册一个 实例,用于观察编码后的视频帧(例如 H.264 格式),而不进行解码和渲染。

+

如果你只想观察编码后的视频帧(例如 H.264 格式),而不进行解码和渲染,声网建议你通过此方法实现一个 类。

+ 请在加入频道前调用此方法。 + 请在加入频道前调用此方法。 + 请在加入频道前调用此方法。 +
+
+ 参数 + + + delegate + 观察者实例。设置为 可释放该实例。详见 + + + receiver + 编码后视频帧的观察器对象,详见 + + + delegate + 观察者实例。设置为 可释放该实例。详见 + + +
+
+ 返回值 +

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_registervideoframeobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_registervideoframeobserver.dita new file mode 100644 index 00000000000..860c56f5050 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_registervideoframeobserver.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="registerVideoFrameObserver"/> + 注册原始视频帧观察者对象。注册原始视频帧观察器对象。注册原始视频帧观察者对象。 + + + + + + + + +
+

+ - (BOOL)setVideoFrameDelegate:(id<AgoraVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setVideoFrameDelegate(_:)); + public abstract int registerVideoFrameObserver(IVideoFrameObserver observer); + - (BOOL)setVideoFrameDelegate:(id<AgoraVideoFrameDelegate> _Nullable)delegate NS_SWIFT_NAME(setVideoFrameDelegate(_:)); +

+
+
+

如果你希望观察原始视频帧(例如 YUV 或 RGBA 格式),声网建议你通过此方法实现一个 类。当你调用此方法注册视频观察者时,可以根据需要在 类中注册回调。注册成功后,SDK 每次接收到视频帧时都会触发已注册的回调。 + +你可以在各种视频预处理场景中使用获取到的原始视频数据,例如虚拟背景和图像增强。声网在 GitHub 上提供了一个开源的 iOS 示例项目 BeautyAPI 供你参考。

+

建议通过该方法注册一个 实例,并在该类中根据需要实现回调。成功注册后,每当接收到视频帧时,SDK 会触发相应的回调。你可以在虚拟背景、图像增强等视频预处理场景中使用这些原始视频数据。

+

如果你希望观察原始视频帧(例如 YUV 或 RGBA 格式),声网建议你通过此方法实现一个 类。当你调用此方法注册视频观察者时,可以根据需要在 类中注册回调。注册成功后,SDK 每次接收到视频帧时都会触发已注册的回调。 + +你可以在各种视频预处理场景中使用获取到的原始视频数据,例如虚拟背景和图像增强。声网在 GitHub 上提供了一个开源的 iOS 示例项目 BeautyAPI 供你参考。

+ 在处理回调中返回的视频数据时,请注意 widthheight 参数可能发生变化,具体情况如下: +
    +
  • 当网络状况恶化时,视频分辨率会逐步降低。
  • +
  • 当用户调整视频配置时,回调中返回的视频分辨率也会随之变化。
  • +
+
+
+
+ 调用时机 +

该方法需要在加入频道前调用。

+

请在加入频道前调用此方法。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + delegate + 观察者实例。要释放该实例,请将该参数设为 。详见 + + + observer + 观察器实例。详见 。 + 如需释放该实例,请将该参数设为 null + + + + delegate + 观察者实例。要释放该实例,请将该参数设为 。详见 + + +
+
+ 返回值 +

+

    +
  • :注册原始视频帧观察者成功。
  • +
  • :注册原始视频帧观察者失败。
  • +
  • < 0:方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :注册原始视频帧观察者成功。
  • +
  • :注册原始视频帧观察者失败。
  • +
  • < 0:方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_release.dita b/dita/RTC-AIDOC/API/api_irtcengine_release.dita new file mode 100644 index 00000000000..6639c51ef0c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_release.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="release"/> + 释放 实例。释放 实例。释放 实例。释放 实例。 + + + + + + + + +
+

+ AGORA_CPP_API static void release(RtcEngineReleaseCallback callback = nullptr); + public static synchronized void destroy() + + (void)destroy NS_SWIFT_NAME(destroy()); + + (void)destroy NS_SWIFT_NAME(destroy()); +

+
+
+

该方法释放声网 SDK 占用的所有资源,适用于用户偶尔进行语音或视频通话的场景。当用户不再通话时,可以释放资源以供其他操作使用。调用该方法成功后,将无法再使用 SDK 中的任何方法或回调。如需再次使用实时通信功能,必须调用 创建新的 实例。

+

该方法释放所有由声网 SDK 占用的资源。成功调用该方法后,将无法再使用 SDK 中的任何方法或回调。如需再次使用实时通信功能,必须调用 创建新的 实例。

+

该方法会释放 SDK 使用的所有资源。适用于用户偶尔进行语音或视频通话的场景。当你不再进行通话时,可以通过该方法释放资源,以便用于其他操作。成功调用该方法后,将无法再使用 SDK 中的任何方法或回调。如需再次使用实时通信功能,必须调用 方法重新创建 实例。

+

该方法会释放 SDK 使用的所有资源。适用于用户偶尔进行语音或视频通话的场景。当你不再进行通话时,可以通过该方法释放资源,以便用于其他操作。成功调用该方法后,将无法再使用 SDK 中的任何方法或回调。如需再次使用实时通信功能,必须调用 方法重新创建 实例。

+ 不建议在 SDK 的任何回调中调用 ,否则 SDK 需等待回调返回后才能释放资源,可能导致死锁。 + 不建议在 SDK 的任何回调中调用该方法。否则,SDK 需等待回调返回结果后才能释放资源,可能导致死锁。 + 声网不建议你在 SDK 的任何回调中调用 方法。否则,SDK 需等待回调返回结果后才能释放资源,可能导致死锁。 + 声网不建议你在 SDK 的任何回调中调用 方法。否则,SDK 需等待回调返回结果后才能释放资源,可能导致死锁。 +
+
+ 参数 + + + callback + 用于设置引擎销毁模式的回调函数指针,详见 。 +
    +
  • nullptr:异步销毁引擎。该方法会立即返回,此时引擎资源可能尚未完全释放。引擎销毁后,SDK 会触发
  • +
  • nullptr:同步销毁引擎。该方法仅在引擎资源完全释放后才返回。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_removehandler.dita b/dita/RTC-AIDOC/API/api_irtcengine_removehandler.dita new file mode 100644 index 00000000000..f8875377804 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_removehandler.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="removeHandler"/> + 移除指定的 实例。 + + + + + + + + +
+

+ public void removeHandler(IRtcEngineEventHandler handler) +

+
+
+

该方法用于移除指定的回调处理器。对于只需监听一次的回调事件,在接收到事件后,可以调用该方法移除对应的回调处理器。

+
+
+ 参数 + + + handler + 要移除的回调处理器。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_removevideowatermark.dita b/dita/RTC-AIDOC/API/api_irtcengine_removevideowatermark.dita new file mode 100644 index 00000000000..f5121589a5b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_removevideowatermark.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="removeVideoWatermark"/> + 从本地视频中移除水印图像。从本地视频中移除水印图像。从本地视频中移除水印图像。从本地视频中移除水印图像。 + + + + + + + + +
+

+ virtual int removeVideoWatermark(const char* id) = 0; + public abstract int removeVideoWatermark(String id); + - (int)removeVideoWatermark:(NSString* _Nonnull)id NS_SWIFT_NAME(removeVideoWatermark(_:)); + - (int)removeVideoWatermark:(NSString* _Nonnull)id NS_SWIFT_NAME(removeVideoWatermark(_:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

该方法根据指定的唯一 ID,从本地视频流中移除之前添加的水印图像。

+

该方法使用指定的唯一 ID,从本地视频流中移除之前添加的水印图像。

+

该方法使用你指定的唯一标识符,从本地视频流中移除之前添加的水印图像。

+

该方法使用你指定的唯一标识符,从本地视频流中移除之前添加的水印图像。

+
+
+ 参数 + + + id + 要移除的水印的 ID。该值需与添加水印时使用的 ID 相同。 + + + id + 要移除的水印图像的 ID。 + + + id + 要移除的水印的标识符。 + + + id + 要移除的水印的标识符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_renewtoken.dita b/dita/RTC-AIDOC/API/api_irtcengine_renewtoken.dita new file mode 100644 index 00000000000..66923223cfd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_renewtoken.dita @@ -0,0 +1,147 @@ + + + + <ph keyref="renewToken"/> + 更新 Token。更新 Token。更新 Token。更新 Token。 + + + + + + + + +
+

+ virtual int renewToken(const char* token) = 0; + public abstract int renewToken(String token); + - (int)renewToken:(NSString * _Nonnull)token NS_SWIFT_NAME(renewToken(_:)); + - (int)renewToken:(NSString * _Nonnull)token NS_SWIFT_NAME(renewToken(_:)); +

+
+
+

成功调用该方法后,SDK 会触发 回调。Token 在一段时间后会过期,届时 SDK 将无法与服务器建立连接。声网建议你在以下任一情况下,在你的服务器上生成新的 Token,并调用该方法进行更新: +

    +
  • 收到 回调,提示 Token 即将过期。
  • +
  • 收到 回调,提示 Token 已过期。
  • +
  • 收到 回调,报告 CONNECTION_CHANGED_TOKEN_EXPIRED(9)。
  • +
+

+

调用该方法更新 Token。调用成功后,SDK 会触发 回调。Token 会在一段时间后过期,届时 SDK 将无法与服务器建立连接。声网建议在以下任一情况下,在你的服务器上生成新的 Token,并调用该方法进行更新: +

    +
  • 收到 回调,提示 Token 即将过期。
  • +
  • 收到 回调,提示 Token 已过期。
  • +
  • 收到 回调,状态为 CONNECTION_CHANGED_TOKEN_EXPIRED(9)。
  • +
+

+

该方法用于更新 Token。调用该方法成功后,SDK 会触发 回调。 +你可以在以下任一情况下调用该方法更新 Token: +

    +
  • 收到 回调,提示 Token 即将过期。
  • +
  • 收到 回调,提示 Token 已过期。
  • +
  • 收到 回调,且 reasonAgoraConnectionChangedReasonTokenExpired(9)。
  • +
+

+

该方法用于更新 Token。调用该方法成功后,SDK 会触发 回调。 +你可以在以下任一情况下调用该方法更新 Token: +

    +
  • 收到 回调,提示 Token 即将过期。
  • +
  • 收到 回调,提示 Token 已过期。
  • +
  • 收到 回调,且 reasonAgoraConnectionChangedReasonTokenExpired(9)。
  • +
+

+
+
+ 参数 + + + token + 新的 Token。 + + + token + 新的 Token。 + + + token + 新的 Token。 + + + token + 新的 Token。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如传入的 Token 为空。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • 110:Token 无效。请确保以下两点: +
        +
      • 生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致。
      • +
      • 生成的 Token 与加入频道时传入的 Token 相同。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如传入的 Token 为空。
    • +
    • -7: 对象尚未初始化。请先初始化 对象再调用该方法。
    • +
    • 110:Token 无效。请确保以下事项: +
        +
      • 生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致。
      • +
      • 生成的 Token 与加入频道时传入的 Token 相同。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,token 为空。
    • +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    • 110:token 无效。请确保以下几点: +
        +
      • 生成 token 时指定的用户 ID 与加入频道时使用的用户 ID 一致。
      • +
      • 生成的 token 与加入频道时传入的 token 一致。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,token 为空。
    • +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    • 110:token 无效。请确保以下几点: +
        +
      • 生成 token 时指定的用户 ID 与加入频道时使用的用户 ID 一致。
      • +
      • 生成的 token 与加入频道时传入的 token 一致。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_resumeallchannelmediarelay.dita b/dita/RTC-AIDOC/API/api_irtcengine_resumeallchannelmediarelay.dita new file mode 100644 index 00000000000..b39438f78d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_resumeallchannelmediarelay.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="resumeAllChannelMediaRelay"/> + 恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int resumeAllChannelMediaRelay() = 0; + public abstract int resumeAllChannelMediaRelay(); + - (int)resumeAllChannelMediaRelay NS_SWIFT_NAME(resumeAllChannelMediaRelay()); + - (int)resumeAllChannelMediaRelay NS_SWIFT_NAME(resumeAllChannelMediaRelay()); +

+
+
+

调用 后,你可以调用该方法恢复媒体流的转发。

+

调用 方法后,可以调用此方法恢复向所有目标频道转发媒体流。

+

调用 方法后,可以调用此方法恢复向所有目标频道转发媒体流。

+ 请在调用 方法后再调用该方法。 + 请在调用 后再调用该方法。 + 请在调用 方法后调用此方法。 + 请在调用 方法后调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:方法调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:方法调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_resumealleffects.dita b/dita/RTC-AIDOC/API/api_irtcengine_resumealleffects.dita new file mode 100644 index 00000000000..efcb7e52173 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_resumealleffects.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="resumeAllEffects"/> + 恢复播放所有音效文件。恢复播放所有音效文件。恢复播放所有音效文件。恢复播放所有音效文件。 + + + + + + + + +
+

+ virtual int resumeAllEffects() = 0; + public abstract int resumeAllEffects(); + - (int)resumeAllEffects NS_SWIFT_NAME(resumeAllEffects()); + - (int)resumeAllEffects NS_SWIFT_NAME(resumeAllEffects()); +

+
+
+

调用 暂停播放后,可以调用该方法恢复播放。

+

调用 暂停播放后,可以调用该方法恢复播放。

+

调用 后,可以调用该方法恢复播放。

+

调用 后,可以调用该方法恢复播放。

+
+
+ 调用时机 +

请在调用 之后调用此方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_resumeaudiomixing.dita b/dita/RTC-AIDOC/API/api_irtcengine_resumeaudiomixing.dita new file mode 100644 index 00000000000..8316155a96c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_resumeaudiomixing.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="resumeAudioMixing"/> + 恢复播放并混音音乐文件。恢复播放和混音的音乐文件。恢复播放并混音音乐文件。恢复播放并混音音乐文件。 + + + + + + + + +
+

+ virtual int resumeAudioMixing() = 0; + public abstract int resumeAudioMixing(); + - (int)resumeAudioMixing NS_SWIFT_NAME(resumeAudioMixing()); + - (int)resumeAudioMixing NS_SWIFT_NAME(resumeAudioMixing()); +

+
+
+

调用 暂停播放后,可以调用 恢复播放。

+

调用 后,可以调用 恢复播放。

+

调用 后,你可以调用此方法恢复播放。

+

调用 后,你可以调用此方法恢复播放。

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用此方法。

+

请在加入频道后调用此方法。

+

请在加入频道后调用此方法。

+
+
+ 返回值 +

+

    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_resumeeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_resumeeffect.dita new file mode 100644 index 00000000000..23e64944d35 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_resumeeffect.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="resumeEffect"/> + 恢复播放指定音效的播放。恢复播放指定音效。恢复播放指定的音效。恢复播放指定的音效。 + + + + + + + + +
+

+ virtual int resumeEffect(int soundId) = 0; + public abstract int resumeEffect(int soundId); + - (int)resumeEffect:(int)soundId NS_SWIFT_NAME(resumeEffect(_:)); + - (int)resumeEffect:(int)soundId NS_SWIFT_NAME(resumeEffect(_:)); +

+
+
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_selectaudiotrack.dita b/dita/RTC-AIDOC/API/api_irtcengine_selectaudiotrack.dita new file mode 100644 index 00000000000..8e5dbe8daf6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_selectaudiotrack.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="selectAudioTrack"/> + 选择播放过程中使用的音轨。选择播放过程中使用的音轨。选择用于播放的音轨。选择用于播放的音轨。 + + + + + + + + +
+

+ virtual int selectAudioTrack(int index) = 0; + public abstract int selectAudioTrack(int audioIndex); + - (int)selectAudioTrack:(NSInteger)index NS_SWIFT_NAME(selectAudioTrack(_:)); + - (int)selectAudioTrack:(NSInteger)index NS_SWIFT_NAME(selectAudioTrack(_:)); +

+
+
+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果一个多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果一个多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+

获取音频文件的音轨索引后,可以调用该方法指定任意音轨进行播放。例如,如果多音轨文件的不同音轨存储了不同语言的歌曲,可以调用该方法设置播放语言。

+ +
    +
  • 支持的音频文件格式请参见 [音频文件扩展格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。
  • +
  • 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。
  • +
+
+ +
    +
  • 支持的音频文件格式详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。
  • +
  • 你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后再调用该方法。
  • +
+
+ +
    +
  • 支持的音频文件格式,详见 audio_format
  • +
  • 需要在调用 startAudioMixing 并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。
  • +
+
+ +
    +
  • 支持的音频文件格式,详见 audio_format
  • +
  • 需要在调用 startAudioMixing 并收到 audioMixingStateChanged 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。
  • +
+
+
+
+ 参数 + + + index + 指定的音轨索引。该值应大于 0 且小于 返回的值。 + + + audioIndex + 你想要指定的音轨索引。该值应大于 0 且小于 返回的值。 + + + index + 你想要指定的音轨索引。该值应大于等于 0 且小于 返回的值。 + + + index + 你想要指定的音轨索引。该值应大于等于 0 且小于 返回的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_sendcustomreportmessage.dita b/dita/RTC-AIDOC/API/api_irtcengine_sendcustomreportmessage.dita new file mode 100644 index 00000000000..9a5082784e2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_sendcustomreportmessage.dita @@ -0,0 +1,149 @@ + + + + <ph keyref="sendCustomReportMessage"/> + 上报自定义消息。上报自定义消息。上报自定义消息。上报自定义消息。 + + + + + + + + +
+

+ virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value) = 0; + public abstract int sendCustomReportMessage(String id, String category, String event, String label, int value); + - (int)sendCustomReportMessage:(NSString * _Nullable)messageId + category:(NSString * _Nullable)category + event:(NSString * _Nullable)event + label:(NSString * _Nullable)label + value:(NSInteger)value NS_SWIFT_NAME(sendCustomReportMessage(_:category:event:label:value:)); + - (int)sendCustomReportMessage:(NSString * _Nullable)messageId + category:(NSString * _Nullable)category + event:(NSString * _Nullable)event + label:(NSString * _Nullable)label + value:(NSInteger)value NS_SWIFT_NAME(sendCustomReportMessage(_:category:event:label:value:)); +

+
+
+

该功能处于测试阶段,支持上报和分析自定义消息,当前提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请联系销售并与我们讨论自定义消息的格式。

+

该功能目前处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/),并与我们讨论自定义消息的格式。

+

声网支持你上报和分析自定义消息。该功能目前处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/),并与我们讨论自定义消息的格式。

+

声网支持你上报和分析自定义消息。该功能目前处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/),并与我们讨论自定义消息的格式。

+
+
+ 参数 + + + id + 消息的唯一标识。 + + + category + 消息的分类。 + + + event + 事件名称。 + + + label + 消息标签。 + + + value + 消息的数值。 + + + id + 自定义消息的 ID。 + + + category + 自定义消息的类别。 + + + event + 自定义消息的事件名称。 + + + label + 自定义消息的标签。 + + + value + 自定义消息的数值。 + + + messageId + 消息 ID。 + + + category + 消息的分类。 + + + event + 消息的事件名称。 + + + label + 消息的标签。 + + + value + 消息的数值。 + + + messageId + 消息 ID。 + + + category + 消息的分类。 + + + event + 消息的事件名称。 + + + label + 消息的标签。 + + + value + 消息的数值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_sendstreammessage.dita b/dita/RTC-AIDOC/API/api_irtcengine_sendstreammessage.dita new file mode 100644 index 00000000000..13d6168520e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_sendstreammessage.dita @@ -0,0 +1,144 @@ + + + + <ph keyref="sendStreamMessage"/> + 发送数据流消息。发送数据流消息。发送数据流消息。发送数据流消息。 + + + + + + + + +
+

+ virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0; + public abstract int sendStreamMessage(int streamId, byte[] message); + - (int)sendStreamMessage:(NSInteger)streamId + data:(NSData * _Nonnull)data NS_SWIFT_NAME(sendStreamMessage(_:data:)); + - (int)sendStreamMessage:(NSInteger)streamId + data:(NSData * _Nonnull)data NS_SWIFT_NAME(sendStreamMessage(_:data:)); +

+
+
+

调用 createDataStream 后,可以调用该方法向频道内的所有用户发送数据流消息。

+

调用 createDataStream 后,可以使用该方法向频道内的所有用户发送数据流消息。SDK 对该方法有限制: +

    +
  • 每个频道内的客户端实例最多可同时拥有 5 个数据通道,所有数据通道共享的总包比特率上限为 30 KB/s。
  • +
  • 每个数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
  • +
+

+

调用 后,你可以使用此方法向频道内的所有用户发送数据流消息。SDK 对此方法有以下限制: +

    +
  • 每个客户端在频道中最多可同时拥有 5 个数据通道,所有数据通道共享的总包比特率上限为 30 KB/s。
  • +
  • 每个数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
  • +
+

+

调用 后,你可以使用此方法向频道内的所有用户发送数据流消息。SDK 对此方法有以下限制: +

    +
  • 每个客户端在频道中最多可同时拥有 5 个数据通道,所有数据通道共享的总包比特率上限为 30 KB/s。
  • +
  • 每个数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
  • +
+

+ +
    +
  • 如果你需要一个更全面的解决方案,以实现低延迟、高并发和可扩展的实时消息传递和状态同步,建议使用实时消息。
  • +
  • 该方法需在调用 createDataStream 并加入频道后调用。
  • +
  • 该方法仅适用于主播角色。
  • +
+
+ 如果你需要更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 +
    +
  • 必须在调用 createDataStream 并加入频道后调用该方法。
  • +
  • 该方法仅适用于主播角色。
  • +
+
+ 如果你需要一个更全面的解决方案来实现低延迟、高并发和可扩展的实时消息传递和状态同步,建议使用实时消息。 +
    +
  • 必须在调用 并加入频道后调用此方法。
  • +
  • 此方法仅适用于主播。
  • +
+
+ 如果你需要一个更全面的解决方案来实现低延迟、高并发和可扩展的实时消息传递和状态同步,建议使用实时消息。 +
    +
  • 必须在调用 并加入频道后调用此方法。
  • +
  • 此方法仅适用于主播。
  • +
+
+
+ +
+ 参数 + + + streamId + 数据流 ID,通过调用 createDataStream 获取。 + + + data + 要发送的消息内容。 + + + length + 数据内容的长度。 + + + streamId + 数据流 ID,通过调用 createDataStream 获取。 + + + message + 要发送的消息内容。 + + + streamId + 数据流 ID。你可以通过调用 获取该 ID。 + + + data + 要发送的消息。 + + + streamId + 数据流 ID。你可以通过调用 获取该 ID。 + + + data + 要发送的消息。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setadvancedaudiooptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setadvancedaudiooptions.dita new file mode 100644 index 00000000000..b9745689f50 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setadvancedaudiooptions.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="setAdvancedAudioOptions"/> + 设置高级音频选项。设置高级音频选项。设置音频高级选项。设置音频高级选项。 + + + + + + + + +
+

+ virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0; + public abstract int setAdvancedAudioOptions(AdvancedAudioOptions options); + - (int)setAdvancedAudioOptions:(AgoraAdvancedAudioOptions * _Nonnull)options NS_SWIFT_NAME(setAdvancedAudioOptions(_:)); + - (int)setAdvancedAudioOptions:(AgoraAdvancedAudioOptions * _Nonnull)options NS_SWIFT_NAME(setAdvancedAudioOptions(_:)); +

+
+
+

如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用该方法设置高级音频选项。

+

如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法。

+

如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法设置音频高级选项。

+

如果你有高级音频处理需求,例如采集和发送立体声音频,可以调用此方法设置音频高级选项。

+ 请在调用 joinChannel 之后调用该方法。 + 请在调用 joinChannel 之后调用此方法。 + 请在调用 joinChannelByTokenenableLocalAudio 之后调用此方法。 + 请在调用 joinChannelByTokenenableLocalAudio 之后调用此方法。 +
+
+ 参数 + + + options + 高级音频选项。详见 + + + sourceType + 音频源的类型。 + + + options + 高级音频选项。详见 + + + options + 音频的高级选项,详见 + + + options + 音频的高级选项,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setainsmode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setainsmode.dita new file mode 100644 index 00000000000..4fa96f34992 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setainsmode.dita @@ -0,0 +1,189 @@ + + + + <ph keyref="setAINSMode"/> + 设置是否启用 AI 降噪功能并设置降噪模式。设置是否启用 AI 降噪功能并设置降噪模式。设置是否启用 AI 降噪功能并设置降噪模式。设置是否启用 AI 降噪功能并设置降噪模式。 + + + + + + + + +
+

+ virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0; + public abstract int setAINSMode(boolean enabled, int mode); + - (int)setAINSMode:(BOOL)enabled mode:(AUDIO_AINS_MODE)mode NS_SWIFT_NAME(setAINSMode(_:mode:)); + - (int)setAINSMode:(BOOL)enabled mode:(AUDIO_AINS_MODE)mode NS_SWIFT_NAME(setAINSMode(_:mode:)); +

+
+
+

你可以调用该方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳态和非稳态噪声。 +稳态噪声是指在观察时间内平均统计特性恒定、幅度波动极小的噪声信号。常见来源包括: +

    +
  • 电视;
  • +
  • 空调;
  • +
  • 机械设备等。
  • +
非稳态噪声是指在观察时间内幅度波动剧烈的噪声信号。常见来源包括: +
    +
  • 雷声;
  • +
  • 爆炸声;
  • +
  • 破裂声等。
  • +
+

+

你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳态和非稳态噪声。 +

    +
  • 稳态噪声是指在观察时间内平均统计特性恒定、幅度波动极小的噪声信号,常见来源包括: +
      +
    • 电视;
    • +
    • 空调;
    • +
    • 机械设备等。
    • +
    +
  • +
  • 非稳态噪声是指在观察时间内幅度波动剧烈的噪声信号,常见来源包括: +
      +
    • 雷声;
    • +
    • 爆炸声;
    • +
    • 破裂声等。
    • +
    +
  • +
+

+

你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳定噪声和非稳定噪声。 +稳定噪声是指在观察时间内平均统计特性恒定、音量波动极小的噪声信号。常见的稳定噪声来源包括: +

    +
  • 电视;
  • +
  • 空调;
  • +
  • 机械设备等。
  • +
非稳定噪声是指在观察时间内音量波动剧烈的噪声信号。常见的非稳定噪声来源包括: +
    +
  • 雷声;
  • +
  • 爆炸声;
  • +
  • 破裂声等。
  • +
+

+

你可以调用此方法启用 AI 降噪功能。启用后,SDK 会在保证人声质量的前提下,自动检测并减少音频中的稳定噪声和非稳定噪声。 +稳定噪声是指在观察时间内平均统计特性恒定、音量波动极小的噪声信号。常见的稳定噪声来源包括: +

    +
  • 电视;
  • +
  • 空调;
  • +
  • 机械设备等。
  • +
非稳定噪声是指在观察时间内音量波动剧烈的噪声信号。常见的非稳定噪声来源包括: +
    +
  • 雷声;
  • +
  • 爆炸声;
  • +
  • 破裂声等。
  • +
+

+ +
    +
  • 该方法依赖 AI 降噪动态库 。如果该动态库被删除,则无法启用该功能。
  • +
  • 声网不建议在运行 Android 6.0 及以下版本的设备上启用该功能。
  • +
+
+ +
    +
  • 此方法依赖于 AI 降噪动态库 。如果该动态库被删除,则无法启用该功能。
  • +
  • 声网不建议在运行 Android 6.0 及以下版本的设备上启用此功能。
  • +
+
+ 该方法依赖 AI 降噪动态库 。如果该动态库被删除,则无法启用该功能。 + 该方法依赖 AI 降噪动态库 。如果该动态库被删除,则无法启用该功能。 +
+
+ 适用场景 +

在连麦、在线教育和视频会议等场景中,该功能可检测并减少背景噪声,从而提升体验。

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+
+
+ 参数 + + + enabled + 是否启用 AI 降噪功能: +
    +
  • :启用 AI 降噪。
  • +
  • :(默认)关闭 AI 降噪。
  • +
+
+
+ + mode + AI 降噪模式。详见 + + + enabled + 是否启用 AI 降噪功能: +
    +
  • :启用 AI 降噪。
  • +
  • :(默认)关闭 AI 降噪。
  • +
+
+
+ + mode + AI 降噪模式: +
    +
  • 0:(默认)平衡模式。该模式在降噪效果和延迟之间提供平衡表现。
  • +
  • 1:激进模式。适用于对降噪效果要求较高的场景,如户外活动直播。该模式降噪更强,但可能会影响音频的原始特性。
  • +
  • 2:低延迟激进模式。该模式的降噪延迟约为平衡模式和激进模式的一半,适用于对低延迟降噪有较高要求的场景,如实时在线合唱。
  • +
+
+
+ + enabled + 是否启用 AI 降噪功能: +
    +
  • :启用 AI 降噪功能。
  • +
  • :(默认)关闭 AI 降噪功能。
  • +
+
+
+ + mode + AI 降噪模式,详见 + + + enabled + 是否启用 AI 降噪功能: +
    +
  • :启用 AI 降噪功能。
  • +
  • :(默认)关闭 AI 降噪功能。
  • +
+
+
+ + mode + AI 降噪模式,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectparameters.dita new file mode 100644 index 00000000000..410af9ae16f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectparameters.dita @@ -0,0 +1,394 @@ + + + + <ph keyref="setAudioEffectParameters"/> + 设置 SDK 预设音效的参数。设置 SDK 预设音效的参数。设置 SDK 预设音效的参数。设置 SDK 预设音效的参数。 + + + + + + + + +
+

+ virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0; + public abstract int setAudioEffectParameters(int preset, int param1, int param2); + - (int)setAudioEffectParameters:(AgoraAudioEffectPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setAudioEffectParameters(_:param1:param2:)); + - (int)setAudioEffectParameters:(AgoraAudioEffectPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setAudioEffectParameters(_:param1:param2:)); +

+
+
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+
+

调用该方法可以为发送音频流的本地用户设置以下参数: +

    +
  • ROOM_ACOUSTICS_3D_VOICE:设置声音围绕用户移动的循环周期。
  • +
  • PITCH_CORRECTION:设置音高修正的基本模式和主音。
  • +
不同歌曲的模式和主音可能不同,声网建议将该方法与界面元素绑定,方便用户交互式调整音高修正效果。为了获得更好的人声效果,建议在调用该方法前先调用以下方法: +
    +
  • 调用 ,将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

调用该方法可以为发送音频流的本地用户设置以下参数: +

    +
  • 3D 人声特效:设置 3D 人声的循环周期。
  • +
  • 音高修正特效:设置音高修正的基本模式和主音。
  • +
声网建议将该方法与界面元素绑定,方便用户交互式地调整音高修正效果。为了获得更好的人声效果,建议在调用该方法前先调用以下 API: +
    +
  • 调用 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

调用该方法可为发送音频流的本地用户设置以下参数: +

    +
  • 3D 人声效果:设置 3D 人声效果的循环周期。
  • +
  • 音高修正效果:设置音高修正效果的基本调式和主音。
  • +
不同的歌曲有不同的调式和主音。声网建议将该方法与界面元素绑定,以便你交互式地调整音高修正效果。设置音效参数后,频道内所有用户都能听到效果。为了获得更好的人声效果,建议你在调用该方法前调用以下 API: +
    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+

调用该方法可为发送音频流的本地用户设置以下参数: +

    +
  • 3D 人声效果:设置 3D 人声效果的循环周期。
  • +
  • 音高修正效果:设置音高修正效果的基本调式和主音。
  • +
不同的歌曲有不同的调式和主音。声网建议将该方法与界面元素绑定,以便你交互式地调整音高修正效果。设置音效参数后,频道内所有用户都能听到效果。为了获得更好的人声效果,建议你在调用该方法前调用以下 API: +
    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+ +
    +
  • 请勿将 setAudioProfile 中的 profile 设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)或 AUDIO_PROFILE_IOT(6),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则该方法设置的效果会被覆盖: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖语音美声动态库 ,若该动态库被删除,该功能将无法启用。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 请勿将 setAudioProfile 中的 profile 设置为 SPEECH_STANDARD(1),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖语音美声动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于语音美声动态库 (iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于语音美声动态库 AgoraAudioBeautyExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + preset + SDK 预设音效选项: +
    +
  • ROOM_ACOUSTICS_3D_VOICE(3):3D 人声效果。 +
      +
    • 设置该枚举值前,需要将 setAudioProfile 中的 profile 设置为 AUDIO_PROFILE_MUSIC_STANDARD_STEREO(3)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5),否则该设置不生效。
    • +
    • 启用后,用户需使用立体声播放设备才能听到预期效果。
    • +
    +
  • +
  • PITCH_CORRECTION(10):音高修正效果。
  • +
+
+
+ + param1 + +
    +
  • presetROOM_ACOUSTICS_3D_VOICE 时,设置 3D 人声效果的循环周期,单位为秒,取值范围为 [1, 60],默认值为 10,表示声音每 10 秒围绕你移动一圈。
  • +
  • presetPITCH_CORRECTION 时,表示音高修正的基本模式: +
      +
    • 1:(默认)自然大调。
    • +
    • 2:自然小调。
    • +
    • 3:日本五声音阶。
    • +
    +
  • +
+
+
+ + param2 + +
    +
  • presetROOM_ACOUSTICS_3D_VOICE 时,需将 param2 设置为 0
  • +
  • presetPITCH_CORRECTION 时,表示音高修正的主音: +
      +
    • 1:A
    • +
    • 2:A#
    • +
    • 3:B
    • +
    • 4:(默认)C
    • +
    • 5:C#
    • +
    • 6:D
    • +
    • 7:D#
    • +
    • 8:E
    • +
    • 9:F
    • +
    • 10:F#
    • +
    • 11:G
    • +
    • 12:G#
    • +
    +
  • +
+
+
+ + preset + SDK 预设音效的选项: +
    +
  • ROOM_ACOUSTICS_3D_VOICE:3D 人声特效。 +
      +
    • 设置该枚举值前,需要将 setAudioProfile 中的 profile 设置为 MUSIC_STANDARD_STEREO(3)或 MUSIC_HIGH_QUALITY_STEREO(5),否则设置不生效。
    • +
    • 启用该特效后,用户需使用立体声播放设备才能听到预期效果。
    • +
    +
  • +
  • PITCH_CORRECTION:音高修正特效。
  • +
+
+
+ + param1 + +
    +
  • presetROOM_ACOUSTICS_3D_VOICE 时,表示 3D 人声特效的循环周期,单位为秒,取值范围为 [1,60],默认值为 10,表示声音每 10 秒绕你一圈。
  • +
  • presetPITCH_CORRECTION 时,表示音高修正特效的基本模式: +
      +
    • 1:(默认)自然大调。
    • +
    • 2:自然小调。
    • +
    • 3:日本五声音阶。
    • +
    +
  • +
+
+
+ + param2 + +
    +
  • presetROOM_ACOUSTICS_3D_VOICE 时,需将 param2 设置为 0
  • +
  • presetPITCH_CORRECTION 时,表示音高修正特效的主音: +
      +
    • 1:A
    • +
    • 2:A#
    • +
    • 3:B
    • +
    • 4:(默认)C
    • +
    • 5:C#
    • +
    • 6:D
    • +
    • 7:D#
    • +
    • 8:E
    • +
    • 9:F
    • +
    • 10:F#
    • +
    • 11:G
    • +
    • 12:G#
    • +
    +
  • +
+
+
+ + preset + SDK 预设音效的选项,详见 : +
    +
  • AgoraAudioEffectPresetRoomAcous3DVoice(10):3D 人声效果。 +
      +
    • 在设置该枚举值前,你需要将 中的 profile 参数设置为 AgoraAudioProfileMusicStandardStereo(3)或 AgoraAudioProfileMusicHighQualityStereo(5),否则设置不生效。
    • +
    • 启用 3D 人声效果后,用户需使用立体声播放设备才能听到预期效果。
    • +
    +
  • +
  • AgoraAudioEffectPresetPitchCorrection(11):音高修正效果。
  • +
+
+
+ + param1 + +
    +
  • 如果将 preset 设置为 AgoraAudioEffectPresetRoomAcous3DVoice,该参数表示 3D 人声效果的循环周期,单位为秒,取值范围为 [1, 60]。默认值为 10,表示声音每 10 秒环绕一次。
  • +
  • 如果将 preset 设置为 AgoraAudioEffectPresetPitchCorrection,该参数表示音高修正效果的基本调式: +
      +
    • 1:(默认)自然大调。
    • +
    • 2:自然小调。
    • +
    • 3:日本五声音阶。
    • +
    +
  • +
+
+
+ + param2 + +
    +
  • 如果将 preset 设置为 AgoraAudioEffectPresetRoomAcous3DVoice,你需要将该参数设置为 0
  • +
  • 如果将 preset 设置为 AgoraAudioEffectPresetPitchCorrection,该参数表示音高修正效果的主音: +
      +
    • 1:A
    • +
    • 2:A#
    • +
    • 3:B
    • +
    • 4:(默认)C
    • +
    • 5:C#
    • +
    • 6:D
    • +
    • 7:D#
    • +
    • 8:E
    • +
    • 9:F
    • +
    • 10:F#
    • +
    • 11:G
    • +
    • 12:G#
    • +
    +
  • +
+
+
+ + preset + SDK 预设音效的选项,详见 : +
    +
  • AgoraAudioEffectPresetRoomAcous3DVoice(10):3D 人声效果。 +
      +
    • 在设置该枚举值前,你需要将 中的 profile 参数设置为 AgoraAudioProfileMusicStandardStereo(3)或 AgoraAudioProfileMusicHighQualityStereo(5),否则设置不生效。
    • +
    • 启用 3D 人声效果后,用户需使用立体声播放设备才能听到预期效果。
    • +
    +
  • +
  • AgoraAudioEffectPresetPitchCorrection(11):音高修正效果。
  • +
+
+
+ + param1 + +
    +
  • 如果将 preset 设置为 AgoraAudioEffectPresetRoomAcous3DVoice,该参数表示 3D 人声效果的循环周期,单位为秒,取值范围为 [1, 60]。默认值为 10,表示声音每 10 秒环绕一次。
  • +
  • 如果将 preset 设置为 AgoraAudioEffectPresetPitchCorrection,该参数表示音高修正效果的基本调式: +
      +
    • 1:(默认)自然大调。
    • +
    • 2:自然小调。
    • +
    • 3:日本五声音阶。
    • +
    +
  • +
+
+
+ + param2 + +
    +
  • 如果将 preset 设置为 AgoraAudioEffectPresetRoomAcous3DVoice,你需要将该参数设置为 0
  • +
  • 如果将 preset 设置为 AgoraAudioEffectPresetPitchCorrection,该参数表示音高修正效果的主音: +
      +
    • 1:A
    • +
    • 2:A#
    • +
    • 3:B
    • +
    • 4:(默认)C
    • +
    • 5:C#
    • +
    • 6:D
    • +
    • 7:D#
    • +
    • 8:E
    • +
    • 9:F
    • +
    • 10:F#
    • +
    • 11:G
    • +
    • 12:G#
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectpreset.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectpreset.dita new file mode 100644 index 00000000000..3b95239e899 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudioeffectpreset.dita @@ -0,0 +1,206 @@ + + + + <ph keyref="setAudioEffectPreset"/> + 设置 SDK 预设的音效效果。设置 SDK 预设的音效效果。设置 SDK 预设的音效效果。设置 SDK 预设的音效效果。 + + + + + + + + +
+

+ virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0; + public abstract int setAudioEffectPreset(int preset); + - (int)setAudioEffectPreset:(AgoraAudioEffectPreset)preset NS_SWIFT_NAME(setAudioEffectPreset(_:)); + - (int)setAudioEffectPreset:(AgoraAudioEffectPreset)preset NS_SWIFT_NAME(setAudioEffectPreset(_:)); +

+
+
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+
+

调用该方法为发送音频流的本地用户设置 SDK 预设的音效效果。该音效不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该效果。 +为了获得更好的音效效果,建议在调用该方法前,先调用以下方法: +

    +
  • 调用 ,将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,并将 profile 参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

该方法不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该效果。 +为获得更好的人声效果,建议在调用该方法前先调用以下方法: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

你可以调用该方法为发送音频流的本地用户设置声网预设的音效效果。该音效不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该音效效果。 +建议你在调用该方法前,先调用以下 API 以获得更好的人声效果: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+

你可以调用该方法为发送音频流的本地用户设置声网预设的音效效果。该音效不会改变原始声音的性别特征。设置后,频道内所有用户都能听到该音效效果。 +建议你在调用该方法前,先调用以下 API 以获得更好的人声效果: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+ +
    +
  • 不要将 setAudioProfile 中的 profile 参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)或 AUDIO_PROFILE_IOT(6),否则该方法不生效。
  • +
  • 如果调用 并设置的枚举值不是 ROOM_ACOUSTICS_3D_VOICEPITCH_CORRECTION,请不要调用 ,否则 的设置会被覆盖。
  • +
  • 调用 后,声网不建议再调用以下方法,否则 设置的效果会被覆盖: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 此方法依赖于美声动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 setAudioProfile 中的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
  • +
  • 如果调用 设置的枚举值不是 ROOM_ACOUSTICS_3D_VOICEPITCH_CORRECTION,则不要调用 ,否则 的设置会被覆盖。
  • +
  • 调用 后,声网不建议再调用以下方法,否则 设置的效果会被覆盖: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖语音美声动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 如果调用 并设置的枚举值不是 AgoraAudioEffectPresetRoomAcous3DVoiceAgoraAudioEffectPresetPitchCorrection,请不要调用 ,否则 的设置会被覆盖。
  • +
  • 调用 后,声网不建议你再调用以下方法,否则 设置的效果会被覆盖: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 (iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 如果调用 并设置的枚举值不是 AgoraAudioEffectPresetRoomAcous3DVoiceAgoraAudioEffectPresetPitchCorrection,请不要调用 ,否则 的设置会被覆盖。
  • +
  • 调用 后,声网不建议你再调用以下方法,否则 设置的效果会被覆盖: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 AgoraAudioBeautyExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + preset + SDK 预设音效选项。详见 + + + preset + 预设的音效效果: +
    +
  • AUDIO_EFFECT_OFF(0):关闭音效,使用原始声音。
  • +
  • ROOM_ACOUSTICS_KTV(1):KTV 场所典型的混响风格。
  • +
  • ROOM_ACOUSTICS_VOCAL_CONCERT(2):音乐会场所典型的混响风格。
  • +
  • ROOM_ACOUSTICS_STUDIO(3):录音棚典型的混响风格。
  • +
  • ROOM_ACOUSTICS_PHONOGRAPH(4):老式留声机典型的混响风格。
  • +
  • ROOM_ACOUSTICS_VIRTUAL_STEREO(5):虚拟立体声效果,将单声道音频渲染为立体声。使用前需将 setAudioProfileprofile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • +
  • ROOM_ACOUSTICS_SPACIAL(6):更具空间感的音效。
  • +
  • ROOM_ACOUSTICS_ETHEREAL(7):更空灵的音效。
  • +
  • ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND(8):虚拟环绕声效果,SDK 在立体声通道基础上生成模拟环绕声场。启用后,用户需使用立体声播放设备才能听到预期音效。
  • +
  • ROOM_ACOUSTICS_CHORUS(9):合唱音效,适用于合唱场景,可增强人声的层次感和空间感。
  • +
  • ROOM_ACOUSTICS_3D_VOICE(10):3D 声音效果,使声音在用户周围移动,默认循环周期为 10 秒。使用前需将 setAudioProfileprofile 参数设置为 MUSIC_STANDARD_STEREO(3)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。启用后,用户需使用立体声播放设备才能听到预期音效。
  • +
  • VOICE_CHANGER_EFFECT_UNCLE(11):大叔音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • +
  • VOICE_CHANGER_EFFECT_OLDMAN(12):老人音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • +
  • VOICE_CHANGER_EFFECT_BOY(13):男孩音效,建议用于处理男性音色,否则可能无法听到预期效果。
  • +
  • VOICE_CHANGER_EFFECT_SISTER(14):年轻女性音效,建议用于处理女性音色,否则可能无法听到预期效果。
  • +
  • VOICE_CHANGER_EFFECT_GIRL(15):女孩音效,建议用于处理女性音色,否则可能无法听到预期效果。
  • +
  • VOICE_CHANGER_EFFECT_PIGKING(16):猪八戒音效,声音如熊吼。
  • +
  • VOICE_CHANGER_EFFECT_HULK(17):绿巨人音效。
  • +
  • STYLE_TRANSFORMATION_RNB(18):R&B 音乐典型的混响风格。使用前需将 setAudioProfileprofile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • +
  • STYLE_TRANSFORMATION_POPULAR(19):流行音乐典型的混响风格。使用前需将 setAudioProfileprofile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),否则该预设无效。
  • +
  • PITCH_CORRECTION(20):音高修正效果,根据自然 C 大调音阶修正用户音高。设置该效果后,可调用 调整调音的基本模式和主音音高。
  • +
+
+
+ + preset + 声网预设的音效选项,详见 + + + preset + 声网预设的音效选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingdualmonomode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingdualmonomode.dita new file mode 100644 index 00000000000..507e0211836 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingdualmonomode.dita @@ -0,0 +1,112 @@ + + + + <ph keyref="setAudioMixingDualMonoMode"/> + 设置当前音频文件的声道模式。设置当前音频文件的声道模式。设置当前音频文件的声道模式。设置当前音频文件的声道模式。 + + + + + + + + +
+

+ virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode) = 0; + public abstract int setAudioMixingDualMonoMode(Constants.AudioMixingDualMonoMode mode); + - (int)setAudioMixingDualMonoMode:(AgoraAudioMixingDualMonoMode)mode NS_SWIFT_NAME(setAudioMixingDualMonoMode(_:)); + - (int)setAudioMixingDualMonoMode:(AgoraAudioMixingDualMonoMode)mode NS_SWIFT_NAME(setAudioMixingDualMonoMode(_:)); +

+
+
+

在立体声音乐文件中,左右声道可以存储不同的音频数据。你可以根据需要将声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。

+

你可以根据需要将音频文件的声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储原唱人声。你可以根据实际需求进行设置: +

    +
  • 如果只想听伴奏,使用该方法将音频文件的声道模式设置为左声道模式。
  • +
  • 如果需要同时听到伴奏和原唱人声,调用该方法将声道模式设置为混合模式。
  • +
+

+

在立体声音乐文件中,左声道和右声道可以存储不同的音频数据。你可以根据需要将声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储原唱人声: +

    +
  • 如果你只想听伴奏,可以将声道模式设置为左声道模式。
  • +
  • 如果你想同时听到伴奏和原唱人声,可以将声道模式设置为混合模式。
  • +
+

+

在立体声音乐文件中,左声道和右声道可以存储不同的音频数据。你可以根据需要将声道模式设置为原始模式、左声道模式、右声道模式或混合声道模式。例如,在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储原唱人声: +

    +
  • 如果你只想听伴奏,可以将声道模式设置为左声道模式。
  • +
  • 如果你想同时听到伴奏和原唱人声,可以将声道模式设置为混合模式。
  • +
+

+ 该方法仅适用于立体声音频文件。 + 该方法仅适用于立体声音频文件。 + 该方法仅适用于立体声音频文件。 + 该方法仅适用于立体声音频文件。 +
+
+ 适用场景 +

在 KTV 场景中,音乐文件的左声道存储伴奏,右声道存储原唱人声。你可以根据实际需求进行设置: +

    +
  • 如果你只想听到伴奏,调用该方法将声道模式设置为左声道模式。
  • +
  • 如果你需要同时听到伴奏和原唱人声,调用该方法将声道模式设置为混合模式。
  • +
+

+
+
+ 调用时机 +

在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

在调用 方法并收到 audioMixingStateChanged:reasonCode:AgoraAudioMixingStateTypePlaying)回调后调用该方法。

+

在调用 方法并收到 audioMixingStateChanged:reasonCode:AgoraAudioMixingStateTypePlaying)回调后调用该方法。

+
+
+ 参数 + + + mode + 声道模式。详见 + + + mode + 声道模式。详见 + + + mode + 声道模式。详见 + + + mode + 声道模式。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingpitch.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingpitch.dita new file mode 100644 index 00000000000..c1fbab6ec95 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingpitch.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="setAudioMixingPitch"/> + 设置本地音乐文件的音调。设置本地音乐文件的音调。设置本地音乐文件的音调。设置本地音乐文件的音调。 + + + + + + + + +
+

+ virtual int setAudioMixingPitch(int pitch) = 0; + public abstract int setAudioMixingPitch(int pitch); + - (int)setAudioMixingPitch:(NSInteger)pitch NS_SWIFT_NAME(setAudioMixingPitch(_:)); + - (int)setAudioMixingPitch:(NSInteger)pitch NS_SWIFT_NAME(setAudioMixingPitch(_:)); +

+
+
+

调用该方法可在本地音乐文件与本地人声混音时,单独调整本地音乐文件的音调。

+

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

调用该方法可在本地音乐文件与本地人声混音时,仅调整本地音乐文件的音调。

+

调用该方法可在本地音乐文件与本地人声混音时,仅调整本地音乐文件的音调。

+
+
+ 调用时机 +

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

你需要在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用该方法。

+

你需要在调用 并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+

你需要在调用 并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+
+
+ 参数 + + + pitch + 按半音音阶设置本地音乐文件的音调。默认值为 0,表示保持原始音调。取值范围为 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,音调变化越明显。 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0)。取值范围为 -12 到 12,相邻数值之间的音调差为一个半音。该参数的绝对值越大,音调变化越明显。 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0,表示保持原始音调)。取值范围为 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,本地音乐文件的音调越高或越低。 + + + pitch + 按半音阶设置本地音乐文件的音调(默认值为 0,表示保持原始音调)。取值范围为 -12 到 12,相邻两个值之间的音调差为一个半音。该参数的绝对值越大,本地音乐文件的音调越高或越低。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingplaybackspeed.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingplaybackspeed.dita new file mode 100644 index 00000000000..1717d27a9ef --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingplaybackspeed.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setAudioMixingPlaybackSpeed"/> + 设置当前音频文件的播放速度。设置当前音频文件的播放速度。设置当前音频文件的播放速度。设置当前音频文件的播放速度。 + + + + + + + + +
+

+ virtual int setAudioMixingPlaybackSpeed(int speed) = 0; + public abstract int setAudioMixingPlaybackSpeed(int speed); + - (int)setAudioMixingPlaybackSpeed:(NSInteger)speed NS_SWIFT_NAME(setAudioMixingPlaybackSpeed(_:)); + - (int)setAudioMixingPlaybackSpeed:(NSInteger)speed NS_SWIFT_NAME(setAudioMixingPlaybackSpeed(_:)); +

+
+
+

请确保在调用 startAudioMixing 并收到 回调报告状态为 AUDIO_MIXING_STATE_PLAYING 后再调用此方法。

+

请确保在调用 startAudioMixing 并收到 回调,报告状态为 AUDIO_MIXING_STATE_PLAYING 后再调用此方法。

+

请在调用 并收到 audioMixingStateChanged:reasonCode: 回调报告状态为 AgoraAudioMixingStateTypePlaying 后调用此方法。

+

请在调用 并收到 audioMixingStateChanged:reasonCode: 回调报告状态为 AgoraAudioMixingStateTypePlaying 后调用此方法。

+
+
+ 参数 + + + speed + 播放速度。建议设置为 50 到 400 之间的值,定义如下: +
    +
  • 50:原始速度的一半。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。建议设置为 50 到 400 之间的值,定义如下: +
    +
  • 50:原始速度的一半。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。声网建议设置为 50 到 400 之间的值,定义如下: +
    +
  • 50:原始速度的一半。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+ + speed + 播放速度。声网建议设置为 50 到 400 之间的值,定义如下: +
    +
  • 50:原始速度的一半。
  • +
  • 100:原始速度。
  • +
  • 400:原始速度的 4 倍。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingposition.dita new file mode 100644 index 00000000000..867348ef4e0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudiomixingposition.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="setAudioMixingPosition"/> + 设置混音文件的播放起始位置。设置混音的播放位置。设置混音的播放位置。设置混音的播放位置。 + + + + + + + + +
+

+ virtual int setAudioMixingPosition(int pos /*in ms*/) = 0; + public abstract int setAudioMixingPosition(int pos); + - (int)setAudioMixingPosition:(NSInteger)pos NS_SWIFT_NAME(setAudioMixingPosition(_:)); + - (int)setAudioMixingPosition:(NSInteger)pos NS_SWIFT_NAME(setAudioMixingPosition(_:)); +

+
+
+

调用该方法可将音乐文件的播放位置设置为指定的起始位置,默认从头开始播放。

+

你可以调用该方法将音乐文件的播放位置设置为指定的起始位置。

+

你可以调用该方法将音乐文件的播放位置设置为指定的起始位置。

+
+
+ 调用时机 +

请在调用 startAudioMixing 并收到 AUDIO_MIXING_STATE_PLAYING)回调后调用此方法。

+

请在调用 startAudioMixing 并收到 回调后调用此方法。

+

请在调用 方法并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+

请在调用 方法并收到 audioMixingStateChanged:reasonCode: 回调(状态为 AgoraAudioMixingStateTypePlaying)后调用该方法。

+
+
+ 参数 + + + pos + 播放位置,单位为毫秒。 + + + pos + 播放位置,单位为毫秒。 + + + pos + 播放位置(单位为毫秒)。 + + + pos + 播放位置(单位为毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile.dita new file mode 100644 index 00000000000..4c8a447166a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="setAudioProfile"/> + 设置音频配置和音频场景。设置音频配置和音频场景。设置音频配置和音频场景。设置音频配置和音频场景。 + + + + + + + + +
+

+ virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated = 0; + public abstract int setAudioProfile(int profile, int scenario); + - (int)setAudioProfile:(AgoraAudioProfile)profile scenario:(AgoraAudioScenario)scenario NS_SWIFT_NAME(setAudioProfile(_:scenario:)) __deprecated_msg("use setAudioProfile: instead."); + - (int)setAudioProfile:(AgoraAudioProfile)profile scenario:(AgoraAudioScenario)scenario NS_SWIFT_NAME(setAudioProfile(_:scenario:)) __deprecated_msg("use setAudioProfile: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃。你可以改用 方法。若需设置音频场景,请调用 方法,并在 结构体中的 audioScenario 成员中传入值。
+
+ +
废弃
+
该方法已废弃。请使用 setAudioProfile(int profile) 设置音频配置,使用 setAudioScenario(int scenario) 设置音频场景。
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

该方法适用于多种音频场景,可根据需要选择。例如,在音乐教学等对音质要求较高的场景中,建议将 profile 设置为 AgoraAudioProfileMusicHighQuality(4),将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。

+

该方法适用于多种音频场景,可根据需要选择。例如,在音乐教学等对音质要求较高的场景中,建议将 profile 设置为 AgoraAudioProfileMusicHighQuality(4),将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。

+ 由于 iOS 系统限制,在通话音量模式下部分音频路由无法识别。因此,如需使用外置声卡,建议将音频场景设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。在该场景下,SDK 会切换为媒体音量以规避该问题。 + 由于 iOS 系统限制,在通话音量模式下某些音频路由无法被识别。如果你需要使用外置声卡,建议将音频场景设置为 AgoraAudioScenarioGameStreaming(3)。在该场景下,SDK 会切换为媒体音量以避免该问题。 + 由于 iOS 系统限制,在通话音量模式下某些音频路由无法被识别。如果你需要使用外置声卡,建议将音频场景设置为 AgoraAudioScenarioGameStreaming(3)。在该场景下,SDK 会切换为媒体音量以避免该问题。 +
+
+ 适用场景 +

该方法适用于多种音频场景,你可以根据实际需求进行选择。例如,在对音质要求较高的场景(如音乐教学)中,建议将 profile 设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4),将 scenario 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。你可以在加入频道前或加入频道后调用该方法。

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + scenario + 音频场景,在不同的音频场景下设备使用不同的音量类型。详见 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数,详见 profile: +
    +
  • DEFAULT (0):默认值。 +
      +
    • 互动直播场景:采样率 48 kHz,音乐编码,单声道,码率最高 64 Kbps。
    • +
    • 通信场景:采样率 32 kHz,语音编码,单声道,码率最高 18 Kbps。
    • +
    +
  • +
  • SPEECH_STANDARD (1):采样率 32 kHz,语音编码,单声道,码率最高 18 Kbps。
  • +
  • MUSIC_STANDARD (2):采样率 48 kHz,音乐编码,单声道,码率最高 64 Kbps。
  • +
  • MUSIC_STANDARD_STEREO (3):采样率 48 kHz,音乐编码,立体声,码率最高 80 Kbps。
  • +
  • MUSIC_HIGH_QUALITY (4):采样率 48 kHz,音乐编码,单声道,码率最高 96 Kbps。
  • +
  • MUSIC_HIGH_QUALITY_STEREO (5):采样率 48 kHz,音乐编码,立体声,码率最高 128 Kbps。
  • +
+
+
+ + scenario + 音频场景,不同场景下设备使用不同的音量类型,详见 scenario: +
    +
  • AUDIO_SCENARIO_DEFAULT (0):默认自动场景,SDK 会根据用户角色和音频路由选择合适的音频质量。
  • +
  • AUDIO_SCENARIO_GAME_STREAMING (3):高音质场景,适用于主要播放音乐的场景。
  • +
  • AUDIO_SCENARIO_CHATROOM (5):聊天室场景,适用于频繁切换角色或静音/取消静音麦克风的场景。
  • +
  • AUDIO_SCENARIO_CHORUS (7):实时合唱场景,适用于网络状况良好且对延迟要求极高的场景。使用该枚举前需调用 查看音频设备是否支持超低延迟采集和播放。若要体验超低延迟,需确保音频设备支持超低延迟(isLowLatencyAudioSupported = )。
  • +
  • AUDIO_SCENARIO_MEETING (8):会议场景,以人声为主。
  • +
  • AUDIO_SCENARIO_AI_CLIENT (10):AI 对话场景,仅适用于用户与由 Conversational AI Engine 创建的对话式智能体交互的场景。
  • +
+
+
+ + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + scenario + 音频场景。在不同的音频场景下,设备使用不同的音量类型。详见 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + scenario + 音频场景。在不同的音频场景下,设备使用不同的音量类型。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile2.dita new file mode 100644 index 00000000000..fddbd0751bc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudioprofile2.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setAudioProfile2"/> + 设置音频配置文件。设置音频配置文件。设置音频配置。设置音频配置。 + + + + + + + + +
+

+ virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile) = 0; + public abstract int setAudioProfile(int profile); + - (int)setAudioProfile:(AgoraAudioProfile)profile NS_SWIFT_NAME(setAudioProfile(_:)); + - (int)setAudioProfile:(AgoraAudioProfile)profile NS_SWIFT_NAME(setAudioProfile(_:)); +

+
+
+

如果你需要设置音频场景,可以调用 方法,或调用 并在 中设置 mAudioScenario

+

如果你需要设置音频场景,可以调用 ,或者调用 并在 中设置 audioScenario

+

如果你需要设置音频场景,可以调用 ,或者调用 并在 中设置 audioScenario

+
+
+ 适用场景 +

你可以根据实际需求选择合适的音频配置文件。例如,在音乐教学等对音质要求较高的场景中,建议将 profile 设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)。如果你需要设置音频场景,可以调用 ,或者调用 并在 中设置 audioScenario

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + profile + 音频配置文件,包括采样率、码率、编码模式和声道数。详见 + + + profile + 音频配置文件,包括采样率、码率、编码模式和声道数: +
    +
  • DEFAULT(0):默认配置。 +
      +
    • 互动直播场景:采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
    • +
    • 通信场景:采样率为 32 kHz,语音编码,单声道,码率最高为 18 Kbps。
    • +
    +
  • +
  • SPEECH_STANDARD(1):采样率为 32 kHz,语音编码,单声道,码率最高为 18 Kbps。
  • +
  • MUSIC_STANDARD(2):采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
  • +
  • MUSIC_STANDARD_STEREO(3):采样率为 48 kHz,音乐编码,立体声,码率最高为 80 Kbps。
  • +
  • MUSIC_HIGH_QUALITY(4):采样率为 48 kHz,音乐编码,单声道,码率最高为 96 Kbps。
  • +
  • MUSIC_HIGH_QUALITY_STEREO(5):采样率为 48 kHz,音乐编码,立体声,码率最高为 128 Kbps。
  • +
+
+
+ + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudioscenario.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudioscenario.dita new file mode 100644 index 00000000000..3cde9afcc99 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudioscenario.dita @@ -0,0 +1,98 @@ + + + + <ph keyref="setAudioScenario"/> + 设置音频场景。设置音频场景。设置音频场景。设置音频场景。 + + + + + + + + +
+

+ virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario) = 0; + public abstract int setAudioScenario(int scenario); + - (int)setAudioScenario:(AgoraAudioScenario)scenario NS_SWIFT_NAME(setAudioScenario(_:)); + - (int)setAudioScenario:(AgoraAudioScenario)scenario NS_SWIFT_NAME(setAudioScenario(_:)); +

+
+
+

该方法适用于多种音频场景。你可以根据需要进行选择。例如,在音乐教学等对音质要求较高的场景中,建议将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。

+

该方法适用于多种音频场景。你可以根据需要进行选择。例如,在音乐教学等对音质要求较高的场景中,建议将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。

+ 由于 iOS 系统限制,在通话音量模式下,部分音频路由可能无法识别。如果你需要使用外置声卡,建议将音频场景设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。在该场景下,SDK 会切换为媒体音量,以避免该问题。 + 由于 iOS 系统限制,在通话音量模式下某些音频路由无法被识别。如果你需要使用外置声卡,建议将音频场景设置为 AgoraAudioScenarioGameStreaming(3)。在该场景下,SDK 会切换为媒体音量以避免该问题。 + 由于 iOS 系统限制,在通话音量模式下某些音频路由无法被识别。如果你需要使用外置声卡,建议将音频场景设置为 AgoraAudioScenarioGameStreaming(3)。在该场景下,SDK 会切换为媒体音量以避免该问题。 +
+
+ 适用场景 +

该方法适用于多种音频场景。例如,在对音质要求较高的音乐教学场景中,建议将 scenario 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + scenario + 音频场景。不同音频场景下,设备使用不同的音量类型。详见 + + + scenario + 音频场景。在不同的音频场景下,设备使用不同的音量类型: +
    +
  • AUDIO_SCENARIO_DEFAULT(0):默认自动场景,SDK 会根据用户角色和音频路由选择合适的音质。
  • +
  • AUDIO_SCENARIO_GAME_STREAMING(3):高音质场景,适用于主要播放音乐的场景。
  • +
  • AUDIO_SCENARIO_CHATROOM(5):聊天室场景,适用于用户频繁切换角色或静音/取消静音麦克风的场景。
  • +
  • AUDIO_SCENARIO_CHORUS(7):实时合唱场景,适用于网络状况良好且对超低延迟有要求的场景。在使用该枚举值前,你需要调用 查看音频设备是否支持超低延迟采集和播放。若要体验超低延迟,需确保音频设备支持超低延迟(isLowLatencyAudioSupported = )。
  • +
  • AUDIO_SCENARIO_MEETING(8):会议场景,主要以人声为主。
  • +
  • AUDIO_SCENARIO_AI_CLIENT(10):AI 对话场景,仅适用于用户与由 Conversational AI Engine 创建的对话式智能体交互的场景。
  • +
+
+
+ + scenario + 音频场景。在不同的音频场景下,设备使用不同的音量类型。详见 + + + scenario + 音频场景。在不同的音频场景下,设备使用不同的音量类型。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setaudiosessionoperationrestriction.dita b/dita/RTC-AIDOC/API/api_irtcengine_setaudiosessionoperationrestriction.dita new file mode 100644 index 00000000000..b87e67fc370 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setaudiosessionoperationrestriction.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="setAudioSessionOperationRestriction"/> + 设置 SDK 对音频会话的操作权限。设置 SDK 对音频会话的操作权限。 + + + + + + + + +
+

+ virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction) = 0; + - (void)setAudioSessionOperationRestriction:(AgoraAudioSessionOperationRestriction)restriction NS_SWIFT_NAME(setAudioSessionOperationRestriction(_:)); +

+
+
+

默认情况下,SDK 和 App 都可以配置音频会话。如果你只希望由 App 配置音频会话,可以通过该方法限制 SDK 的操作权限。你可以在加入频道前或后调用该方法。一旦调用该方法进行限制,当 SDK 需要更改音频会话时,该限制将生效。

+

默认情况下,SDK 和 App 都可以配置音频会话。如果你只需要使用 App 来配置音频会话,可以通过该方法限制 SDK 对音频会话的操作权限。你可以在加入频道前或后调用该方法。一旦调用该方法限制 SDK 的操作权限,该限制会在 SDK 需要更改音频会话时生效。

+ +
    +
  • 该方法仅适用于 iOS。
  • +
  • 该方法不会限制 App 对音频会话的操作权限。
  • +
+
+ 该方法不会限制 App 对音频会话的操作权限。 +
+
+ 参数 + + + restriction + SDK 对音频会话的操作权限。该参数为位掩码格式,每一位对应一个权限。详见 + + + restriction + SDK 对音频会话的操作权限。该参数为位掩码格式,每一位对应一个权限。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setavsyncsource.dita b/dita/RTC-AIDOC/API/api_irtcengine_setavsyncsource.dita new file mode 100644 index 00000000000..33ac947e272 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setavsyncsource.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="setAVSyncSource"/> + 设置发送端的音视频同步。设置发布端的音视频同步源。设置发布端的音视频同步。设置发布端的音视频同步。 + + + + + + + + +
+

+ virtual int setAVSyncSource(const char* channelId, uid_t uid) = 0; + public abstract int setAVSyncSource(String channelId, int uid); + - (int)setAVSyncSource:(NSString* _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(setAVSyncSource(_:uid:)); + - (int)setAVSyncSource:(NSString* _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(setAVSyncSource(_:uid:)); +

+
+
+

用户可能会使用两台独立设备分别发送音频和视频流。为了确保接收端的音视频同步,你可以在视频发送端调用该方法,并传入音频发送端的频道名和用户 ID。SDK 会以音频流的时间戳为参考,自动调整视频流,即使两台发送设备处于不同的上行网络(如 Wi-Fi 和 4G),也能实现音视频同步。

+

你可以在视频发布设备上调用该方法,并传入音频发布设备所在频道的频道名和用户 ID。SDK 会以发送的音频流的时间戳为参考,自动调整视频流,从而确保即使两个发布设备的上行网络条件不同(例如一个使用 Wi-Fi,另一个使用 4G),接收端的音视频也能实现时间同步。

+

你可以使用两台独立设备分别发送音频和视频流。为了确保接收端的音视频同步,你需要在视频发布设备上调用该方法,并传入音频发布设备所在的频道名和用户 ID。SDK 会根据发送音频流的时间戳自动调整视频流,从而确保即使两个发布设备处于不同的上行网络(例如 Wi-Fi 和 4G)时,接收端也能实现音视频同步。

+

你可以使用两台独立设备分别发送音频和视频流。为了确保接收端的音视频同步,你需要在视频发布设备上调用该方法,并传入音频发布设备所在的频道名和用户 ID。SDK 会根据发送音频流的时间戳自动调整视频流,从而确保即使两个发布设备处于不同的上行网络(例如 Wi-Fi 和 4G)时,接收端也能实现音视频同步。

+ 声网建议你在加入频道前调用该方法。 + 建议在加入频道前调用此方法。 + 该方法需要在加入频道前调用。 + 该方法需要在加入频道前调用。 +
+
+ 参数 + + + channelId + 音频发送端的频道名。 + + + uid + 音频发送端的用户 ID。 + + + channelId + 音频发布设备所在频道的频道名。 + + + uid + 音频发布设备的用户 ID。 + + + channelId + 音频发布设备所在的频道名。 + + + uid + 音频发布设备的用户 ID。 + + + channelId + 音频发布设备所在的频道名。 + + + uid + 音频发布设备的用户 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions.dita new file mode 100644 index 00000000000..68130d946db --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions.dita @@ -0,0 +1,191 @@ + + + + <ph keyref="setBeautyEffectOptions"/> + 设置美颜特效选项。设置图像增强功能及其参数。设置图像增强选项。设置图像增强选项。 + + + + + + + + +
+

+ virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setBeautyEffectOptions(boolean enabled, BeautyOptions options); + - (int)setBeautyEffectOptions:(BOOL)enable options:(AgoraBeautyOptions* _Nullable)options NS_SWIFT_NAME(setBeautyEffectOptions(_:options:)); + - (int)setBeautyEffectOptions:(BOOL)enable options:(AgoraBeautyOptions* _Nullable)options NS_SWIFT_NAME(setBeautyEffectOptions(_:options:)); +

+
+
+
+ +
自从
+
自 v2.4.0 版本新增。
+
+
+

你可以通过该方法启用或禁用图像增强功能,并设置相关选项。请在调用 方法之后调用本方法。

+

你可以通过该方法启用或禁用图像增强功能,并设置相关选项。请在调用 方法之后调用本方法。

+ +
    +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+ +
    +
  • 此方法仅适用于 Android 5.0 或更高版本。
  • +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+
+
+ 调用时机 +

在调用 startPreview 之后调用该方法。

+

在调用 startPreview 之后调用此方法。

+

请在调用 方法之后调用本方法。

+

请在调用 方法之后调用本方法。

+
+
+ 参数 + + + enabled + 是否启用美颜特效功能: +
    +
  • :启用美颜特效功能。
  • +
  • :(默认)禁用美颜特效功能。
  • +
+
+
+ + options + 美颜特效选项。详见 + + + type + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+ + enabled + 是否启用图像增强功能: +
    +
  • :启用图像增强功能。
  • +
  • :(默认)禁用图像增强功能。
  • +
+
+
+ + options + 图像增强参数。详见 + + + enable + 是否启用图像增强功能: +
    +
  • :启用图像增强功能。
  • +
  • :(默认)禁用图像增强功能。
  • +
+
+
+ + options + 图像增强选项,详见 + + + enable + 是否启用图像增强功能: +
    +
  • :启用图像增强功能。
  • +
  • :(默认)禁用图像增强功能。
  • +
+
+
+ + options + 图像增强选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备性能不满足图像增强的要求。建议更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备能力不满足图像增强的要求。声网建议更换为高性能设备。
      • +
      • 当前设备版本低于 Android 5.0,不支持该功能。声网建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备性能不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备性能不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions2.dita new file mode 100644 index 00000000000..accd8ad8ad1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setbeautyeffectoptions2.dita @@ -0,0 +1,162 @@ + + + + <ph keyref="setBeautyEffectOptions2"/> + 设置美颜特效选项并指定媒体源。设置美颜特效选项并指定媒体源。设置美颜特效选项并指定媒体源。 + + + + + + + + +
+

+ - (int)setBeautyEffectOptions:(BOOL)enable options:(AgoraBeautyOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setBeautyEffectOptions(_:options:sourceType:)); + public abstract int setBeautyEffectOptions(boolean enabled, BeautyOptions options, Constants.MediaSourceType sourceType); + - (int)setBeautyEffectOptions:(BOOL)enable options:(AgoraBeautyOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setBeautyEffectOptions(_:options:sourceType:)); +

+
+
+
+ +
自从
+
自 v2.4.0 版本新增。
+
+
+

该方法与 都用于设置美颜特效选项,但该方法允许你指定应用美颜特效的媒体源。

+

该方法用于启用或禁用图像增强功能,并设置相关选项。与 方法类似,但该方法允许你指定应用图像增强的媒体源类型。

+

该方法与 都用于设置美颜特效选项,但该方法允许你指定应用美颜特效的媒体源。

+
+
+ 调用时机 +

请在调用 之后调用该方法。

+

在调用 startPreview 之后调用该方法。

+

请在调用 之后调用该方法。

+
+
+ 参数 + + + enable + 是否启用美颜特效功能: +
    +
  • :启用美颜特效功能。
  • +
  • :(默认)禁用美颜特效功能。
  • +
+
+
+ + options + 美颜特效选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+ + enabled + 是否启用图像增强功能: +
    +
  • :启用图像增强功能。
  • +
  • :(默认)禁用图像增强功能。
  • +
+
+
+ + options + 图像增强选项。详见 + + + sourceType + 应用图像增强效果的媒体源类型。详见 。 + 该参数仅支持以下两种设置: +
    +
  • 默认值为 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,请将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否启用美颜特效功能: +
    +
  • :启用美颜特效功能。
  • +
  • :(默认)禁用美颜特效功能。
  • +
+
+
+ + options + 美颜特效选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备性能不满足美颜特效的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备的性能不满足图像增强的要求,建议更换为高性能设备。
      • +
      • 当前设备的系统版本低于 Android 5.0,不支持该功能,建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备性能不满足美颜特效的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameraautoexposurefacemodeenabled.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameraautoexposurefacemodeenabled.dita new file mode 100644 index 00000000000..17e14176545 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameraautoexposurefacemodeenabled.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="setCameraAutoExposureFaceModeEnabled"/> + 设置是否启用自动曝光功能。设置是否启用自动曝光。 + + + + + + + + +
+

+ virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0; + - (BOOL)setCameraAutoExposureFaceModeEnabled:(BOOL)enable NS_SWIFT_NAME(setCameraAutoExposureFaceModeEnabled(_:)); +

+
+
+ 该方法仅适用于 iOS 平台。你必须在调用 方法之后再调用本方法。设置将在成功开启摄像头后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后。 + 你必须在调用 方法之后再调用此方法。设置结果将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。 +
+
+ 参数 + + + enabled + 是否启用自动曝光: +
    +
  • :启用自动曝光。
  • +
  • :关闭自动曝光。
  • +
+
+
+ + enable + 是否启用自动曝光: +
    +
  • :启用自动曝光。
  • +
  • :关闭自动曝光。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameraautofocusfacemodeenabled.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameraautofocusfacemodeenabled.dita new file mode 100644 index 00000000000..083ec76fbb2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameraautofocusfacemodeenabled.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="setCameraAutoFocusFaceModeEnabled"/> + 启用摄像头人脸自动对焦功能。启用或关闭摄像头人像自动对焦功能。启用或关闭摄像头人脸自动对焦功能。 + + + + + + + + +
+

+ virtual int setCameraAutoFocusFaceModeEnabled(bool enabled) = 0; + - (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable NS_SWIFT_NAME(setCameraAutoFocusFaceModeEnabled(_:)); + public abstract int setCameraAutoFocusFaceModeEnabled(boolean enabled); +

+
+
+

默认情况下,SDK 在 Android 上禁用人脸自动对焦,在 iOS 上启用。你可以调用该方法设置是否启用人脸自动对焦功能。

+

你可以通过调用该方法关闭人像自动对焦功能。SDK 默认启用该功能。

+ 此方法仅适用于 Android 和 iOS 平台。 +
+
+ 调用时机 +

必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。

+

必须在 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后调用。

+

必须在 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后调用。

+
+
+ 参数 + + + enabled + 是否启用人脸自动对焦功能: +
    +
  • :启用摄像头人脸自动对焦功能。
  • +
  • :关闭人脸自动对焦功能。
  • +
+
+
+ + enable + 是否启用摄像头人像自动对焦功能: +
    +
  • :启用摄像头人像自动对焦功能。
  • +
  • :关闭人像自动对焦功能。
  • +
+
+
+ + enabled + 是否启用人脸自动对焦功能: +
    +
  • :启用摄像头人脸自动对焦功能。
  • +
  • :关闭摄像头人脸自动对焦功能。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameracapturerconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameracapturerconfiguration.dita new file mode 100644 index 00000000000..168d83252c3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameracapturerconfiguration.dita @@ -0,0 +1,94 @@ + + + + <ph keyref="setCameraCapturerConfiguration"/> + 设置摄像头采集配置。设置摄像头采集配置。设置视频采集配置。设置视频采集配置。 + + + + + + + + +
+

+ virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0; + public abstract int setCameraCapturerConfiguration(CameraCapturerConfiguration config); + - (int)setCameraCapturerConfiguration:(AgoraCameraCapturerConfiguration * _Nullable)config NS_SWIFT_NAME(setCameraCapturerConfiguration(_:)); + - (int)setCameraCapturerConfiguration:(AgoraCameraCapturerConfiguration * _Nullable)config NS_SWIFT_NAME(setCameraCapturerConfiguration(_:)); +

+
+
+

在启用本地摄像头采集之前调用该方法,例如调用 startPreviewjoinChannel 之前。

+

该方法需要在启用本地视频采集前调用,例如调用 startPreviewjoinChannel 之前。

+

在启用本地摄像头采集前调用此方法,例如在调用 joinChannelByToken 之前。

+

在启用本地摄像头采集前调用此方法,例如在调用 joinChannelByToken 之前。

+ 如需调整摄像头焦距配置,建议先调用 查询设备的焦距能力,并根据查询结果进行配置。由于部分 Android 设备的限制,即使根据 返回的结果设置了焦距类型,设置也可能不会生效。 + 如需调整摄像头焦距配置,建议先调用 查询设备的焦距能力,并根据查询结果进行设置。由于部分 Android 设备的限制,即使根据 返回的结果设置了焦距类型,设置也可能不生效。 + 如需调整摄像头焦距配置,建议先调用 查询设备的焦距能力,并根据查询结果进行配置。 + 如需调整摄像头焦距配置,建议先调用 queryCameraFocalLengthCapability 查询设备的焦距能力,并根据查询结果进行配置。 +
+
+ 调用时机 +

在启用本地摄像头采集之前调用,例如调用 startPreviewjoinChannel 之前。

+

该方法需要在启用本地视频采集前调用,例如调用 startPreviewjoinChannel 之前。

+

在启用本地摄像头采集前调用,例如在调用 joinChannelByToken 之前。

+

在启用本地摄像头采集前调用,例如在调用 joinChannelByToken 之前。

+
+
+ 参数 + + + config + 摄像头采集配置。详见 。 + 在该方法中,无需设置 deviceId 参数。 + + + + config + 摄像头采集配置。详见 + + + config + 摄像头采集配置。详见 。 + 在此方法中,无需设置 deviceId 参数。 + + + + config + 摄像头采集配置。详见 。 + 在此方法中,无需设置 deviceId 参数。 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameradeviceorientation.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameradeviceorientation.dita new file mode 100644 index 00000000000..11cd1803aa3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameradeviceorientation.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="setCameraDeviceOrientation"/> + 设置采集视频的旋转角度。 + + + + + + + + +
+

+ virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0; +

+
+
+ 该方法仅适用于 Windows 平台。你必须在调用 之后再调用该方法。设置将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后生效。当视频采集设备不具备重力感应功能时,你可以调用该方法手动调整采集视频的旋转角度。 +
+
+ 参数 + + + type + 视频源类型,详见 + + + orientation + 顺时针旋转角度,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposurefactor.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposurefactor.dita new file mode 100644 index 00000000000..7b3ad1308b6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposurefactor.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setCameraExposureFactor"/> + 设置摄像头曝光值。设置摄像头曝光值。设置摄像头曝光值。 + + + + + + + + +
+

+ virtual int setCameraExposureFactor(float factor) = 0; + - (CGFloat)setCameraExposureFactor:(CGFloat)exposureFactor NS_SWIFT_NAME(setCameraExposureFactor(_:)); + public abstract int setCameraExposureFactor(int factor); +

+
+
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+ +
自从
+
自 v4.2.2 版本新增。
+
+
+

你可以通过此方法调整摄像头的曝光值,以获得最佳的视频质量。

+ +
    +
  • 该方法仅适用于 Android 和 iOS 平台。
  • +
  • 你必须在调用 后再调用该方法。设置结果在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后。
  • +
  • 在调用该方法前,声网建议调用 检查当前摄像头是否支持调整曝光值。
  • +
  • 该方法用于调整当前激活摄像头的曝光值,即调用 时指定的摄像头。
  • +
+
+ +
    +
  • 你必须在调用 方法之后再调用此方法。设置结果在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后。
  • +
  • 在调用此方法前,建议你调用 方法检查当前摄像头是否支持调整曝光值。
  • +
  • 该方法调整的是当前正在使用的摄像头的曝光值,即调用 方法时指定的摄像头。
  • +
+
+ +
    +
  • 你必须在调用 后再调用此方法。设置结果将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后。
  • +
  • 在调用此方法前,声网建议调用 检查当前摄像头是否支持调整曝光值。
  • +
  • 通过调用此方法,你可以调整当前激活摄像头的曝光值,即调用 时指定的摄像头。
  • +
+
+
+
+ 参数 + + + factor + 摄像头曝光值。默认值为 0,表示使用摄像头的默认曝光值。值越大,曝光越强。当视频图像过曝时,可以降低曝光值;当视频图像曝光不足且暗部细节丢失时,可以提高曝光值。如果设置的曝光值超出设备支持的范围,SDK 会自动将其调整为设备实际支持的范围。 + +
    +
  • 在 Android 上,取值范围为 [-20.0, 20.0]。
  • +
  • 在 iOS 上,取值范围为 [-8.0, 8.0]。
  • +
+
+
+
+ + exposureFactor + 摄像头曝光值(默认值为 0)。值越大,曝光越强。当视频图像过曝时,可以降低曝光值;当视频图像曝光不足且暗部细节丢失时,可以提高曝光值。如果设置的曝光值超出设备支持的范围,SDK 会自动将其调整为设备实际支持的范围。取值范围为 [-8.0, 8.0]。 + + + factor + 摄像头曝光值。默认值为 0,表示使用摄像头的默认曝光值。值越大,曝光越强。当视频图像过曝时,可以降低曝光值;当视频图像曝光不足且暗部细节丢失时,可以提高曝光值。如果设置的曝光值超出设备支持的范围,SDK 会自动将其调整为设备实际支持的范围。取值范围为 [-20, 20]。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

无实际意义。

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposureposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposureposition.dita new file mode 100644 index 00000000000..6dcdb983dab --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameraexposureposition.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="setCameraExposurePosition"/> + 设置相机曝光位置。设置摄像头曝光位置。设置摄像头曝光位置。 + + + + + + + + +
+

+ virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0; + - (BOOL)setCameraExposurePosition:(CGPoint)positionInView NS_SWIFT_NAME(setCameraExposurePosition(_:)); + public abstract int setCameraExposurePosition(float positionXinView, float positionYinView); +

+
+
+
+ +
自从
+
自 v2.3.2 版本新增。
+
+ +
自从
+
自 v2.3.2 版本新增。
+
+
+ +
    +
  • 仅适用于 Android 和 iOS 平台。
  • +
  • 你必须在调用 方法之后再调用该方法。
  • +
  • 设置将在相机成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)时生效。
  • +
+
+ 你必须在调用 方法之后再调用该方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后生效。成功调用该方法后,SDK 会触发 回调。 + 你必须在调用 方法之后再调用此方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后生效。成功调用该方法后,SDK 会触发 回调。 +
+ +
+ 参数 + + + positionXinView + 视图中触摸点的水平坐标。 + + + positionYinView + 视图中触摸点的垂直坐标。 + + + positionInView + 视图中触摸点的横坐标。 + + + positionXinView + 视图中触摸点的水平坐标。 + + + positionYinView + 视图中触摸点的垂直坐标。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcamerafocuspositioninpreview.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcamerafocuspositioninpreview.dita new file mode 100644 index 00000000000..2478712fc14 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcamerafocuspositioninpreview.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="setCameraFocusPositionInPreview"/> + 设置摄像头手动对焦位置。设置摄像头的手动对焦位置。设置摄像头的手动对焦位置。 + + + + + + + + +
+

+ virtual int setCameraFocusPositionInPreview(float positionX, float positionY) = 0; + - (BOOL)setCameraFocusPositionInPreview:(CGPoint)position NS_SWIFT_NAME(setCameraFocusPositionInPreview(_:)); + public abstract int setCameraFocusPositionInPreview(float positionX, float positionY); +

+
+
+

你必须在调用 之后再调用该方法。设置将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)时。方法调用成功后,SDK 会触发 回调。

+ 该方法仅适用于 Android 和 iOS 平台。 + 你必须在调用 方法之后再调用本方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后生效。成功调用该方法后,SDK 会触发 回调。 + 你必须在调用 之后再调用此方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后生效。成功调用该方法后,SDK 会触发 回调。 +
+ +
+ 参数 + + + positionX + 视图中触摸点的水平坐标。 + + + positionY + 视图中触摸点的垂直坐标。 + + + position + 视图中触摸点的坐标。 + + + positionX + 视图中触摸点的水平坐标。 + + + positionY + 视图中触摸点的垂直坐标。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcamerastabilizationmode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcamerastabilizationmode.dita new file mode 100644 index 00000000000..236880e9789 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcamerastabilizationmode.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="setCameraStabilizationMode"/> + 设置摄像头防抖模式。设置摄像头防抖模式。 + + + + + + + + +
+

+ virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode) = 0; + - (int) setCameraStabilizationMode:(AgoraCameraStabilizationMode)mode NS_SWIFT_NAME(setCameraStabilizationMode(_:)); +

+
+
+

摄像头防抖模式默认关闭。你需要调用该方法开启防抖功能,并设置合适的防抖模式。

+

你需要调用该方法以开启防抖功能并设置合适的防抖模式。摄像头防抖模式默认关闭。

+ +
    +
  • 摄像头防抖仅适用于分辨率大于 1280 × 720 的视频场景。
  • +
  • 启用摄像头防抖后,防抖等级越高,摄像头的视野越小,延迟越大。为提升用户体验,建议将 mode 参数设置为 CAMERA_STABILIZATION_MODE_LEVEL_1
  • +
  • 该方法仅适用于 iOS 平台。
  • +
+
+ +
    +
  • 摄像头防抖仅适用于分辨率大于 1280 × 720 的场景。
  • +
  • 启用摄像头防抖后,防抖等级越高,摄像头的视野越小,延迟越大。为提升用户体验,建议将 mode 参数设置为 AgoraCameraStabilizationModeLevel1
  • +
+
+
+
+ 适用场景 +

在移动拍摄、低光环境或使用移动设备时,可以设置摄像头防抖模式,以减少抖动带来的影响,获得更稳定清晰的画面。

+
+
+ 调用时机 +

该方法需在摄像头成功开启后调用,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+

你必须在摄像头成功开启后调用该方法,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+
+
+ 参数 + + + mode + 摄像头防抖模式,详见 + + + mode + 摄像头防抖模式,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcameratorchon.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcameratorchon.dita new file mode 100644 index 00000000000..746965f8344 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcameratorchon.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="setCameraTorchOn"/> + 打开或关闭摄像头闪光灯。启用摄像头闪光灯。打开或关闭摄像头闪光灯。 + + + + + + + + +
+

+ virtual int setCameraTorchOn(bool isOn) = 0; + - (BOOL)setCameraTorchOn:(BOOL)isOn NS_SWIFT_NAME(setCameraTorchOn(_:)); + public abstract int setCameraTorchOn(boolean isOn); +

+
+
+ 仅适用于 Android 和 iOS 平台。你必须在调用 之后再调用该方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。 + 你必须在调用 后再调用此方法。设置结果将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)后。 + 你必须在调用 之后再调用此方法。设置结果会在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后。 +
+
+ 参数 + + + isOn + 是否打开摄像头闪光灯: +
    +
  • :打开闪光灯。
  • +
  • :(默认)关闭闪光灯。
  • +
+
+
+ + isOn + 是否打开摄像头闪光灯: +
    +
  • :打开闪光灯。
  • +
  • :(默认)关闭闪光灯。
  • +
+
+
+ + isOn + 是否打开摄像头闪光灯: +
    +
  • :打开闪光灯。
  • +
  • :(默认)关闭闪光灯。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcamerazoomfactor.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcamerazoomfactor.dita new file mode 100644 index 00000000000..65f7779513d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcamerazoomfactor.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="setCameraZoomFactor"/> + 设置摄像头变焦倍数。设置摄像头的缩放因子。设置摄像头的缩放因子。 + + + + + + + + +
+

+ virtual int setCameraZoomFactor(float factor) = 0; + - (CGFloat)setCameraZoomFactor:(CGFloat)zoomFactor NS_SWIFT_NAME(setCameraZoomFactor(_:)); + public abstract int setCameraZoomFactor(float factor); +

+
+
+

对于配备多镜头后置摄像头的 iOS 设备,例如双摄(广角和超广角)或三摄(广角、超广角和长焦)设备,你可以先调用 方法,将 cameraFocalLengthType 设置为 CAMERA_FOCAL_LENGTH_DEFAULT(0)(标准镜头),然后将变焦倍数设置为小于 1.0 的值,以实现超广角视角的视频采集。

+

你可以调用 方法,将 cameraFocalLengthType 设置为 AgoraFocalLengthDefault(0),然后将摄像头缩放因子设置为小于 1.0 的值,以实现超广角视角的视频采集。该方法适用于配备多镜头后置摄像头的 iOS 设备,例如配有广角、超广角和长焦镜头的设备。

+ +
    +
  • 该方法仅适用于 Android 和 iOS 平台。
  • +
  • 你必须在调用 方法之后再调用该方法。设置将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。
  • +
+
+ 你必须在调用 之后再调用此方法。设置结果将在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。 + 你必须在调用 之后再调用此方法。该设置在摄像头成功开启后生效,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)后。 +
+
+ 参数 + + + factor + 摄像头变焦倍数。你可以调用 方法获取设备支持的最大变焦倍数。 + 对于不支持超广角的设备,该值范围为 1.0 到设备支持的最大变焦倍数;对于支持超广角的设备,该值范围为 0.5 到设备支持的最大变焦倍数。 + + + + zoomFactor + 摄像头缩放因子。对于不支持超广角的设备,该值范围为 1.0 到最大缩放因子;对于支持超广角的设备,该值范围为 0.5 到最大缩放因子。你可以通过调用 方法获取设备支持的最大缩放因子。 + + + factor + 摄像头缩放因子。你可以通过调用 获取设备支持的最大缩放因子。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功,返回设置的摄像头变焦倍数。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回摄像头缩放因子 factor 的值。
  • +
  • 方法调用失败,返回小于 0 的值。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setchannelprofile.dita b/dita/RTC-AIDOC/API/api_irtcengine_setchannelprofile.dita new file mode 100644 index 00000000000..bf5f8bebd2c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setchannelprofile.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="setChannelProfile"/> + 设置频道场景。设置频道场景。设置频道场景。设置频道场景。 + + + + + + + + +
+

+ virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0; + public abstract int setChannelProfile(int profile); + - (int)setChannelProfile:(AgoraChannelProfile)profile NS_SWIFT_NAME(setChannelProfile(_:)); + - (int)setChannelProfile:(AgoraChannelProfile)profile NS_SWIFT_NAME(setChannelProfile(_:)); +

+
+
+

SDK 会根据不同的频道场景采用不同的优化策略。例如,在极速直播场景中,SDK 会优先保证视频质量。初始化 SDK 后,默认频道场景为极速直播。

+

SDK 会根据不同的频道场景采用不同的优化策略,例如在极速直播场景中优先保证视频质量。初始化 SDK 后,默认频道场景为极速直播。

+

你可以调用该方法设置频道场景。SDK 会针对不同的频道场景采用不同的优化策略。例如,在极速直播场景中,SDK 会优先保证视频质量。初始化 SDK 后,默认频道场景为极速直播。

+

你可以调用该方法设置频道场景。SDK 会针对不同的频道场景采用不同的优化策略。例如,在极速直播场景中,SDK 会优先保证视频质量。初始化 SDK 后,默认频道场景为极速直播。

+ 为保证实时通信质量,声网建议频道内所有用户使用相同的频道场景。在不同的频道场景中,SDK 的默认音频路由也不同。详见 + 为确保实时通信质量,建议频道内所有用户使用相同的频道场景。不同频道场景下,SDK 的默认音频路由也不同,详见 setDefaultAudioRouteToSpeakerphone + +
    +
  • 为保证实时通信质量,声网建议频道内所有用户使用相同的频道场景。
  • +
  • 在 iOS 平台,不同频道场景下 SDK 的默认音频路由不同,详见
  • +
+
+ +
    +
  • 为保证实时通信质量,声网建议频道内所有用户使用相同的频道场景。
  • +
  • 在 iOS 平台,不同频道场景下 SDK 的默认音频路由不同,详见 setDefaultAudioRouteToSpeakerphone:
  • +
+
+
+
+ 调用时机 +

请在加入频道前调用此方法。

+

在加入频道前调用此方法。

+

该方法需要在加入频道前调用。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + profile + 频道场景。详见 + + + profile + 频道场景: +
    +
  • CHANNEL_PROFILE_COMMUNICATION(0):通信场景。建议使用 CHANNEL_PROFILE_LIVE_BROADCASTING 以获得更好的音视频体验。
  • +
  • CHANNEL_PROFILE_LIVE_BROADCASTING(1):(默认)极速直播场景。
  • +
  • CHANNEL_PROFILE_GAME(2):游戏场景。已废弃,请使用 CHANNEL_PROFILE_LIVE_BROADCASTING
  • +
  • CHANNEL_PROFILE_CLOUD_GAMING(3):互动场景。该场景对延迟进行了优化,适用于用户之间需要频繁互动的场景。已废弃,请使用 CHANNEL_PROFILE_LIVE_BROADCASTING
  • +
+
+
+ + profile + 频道场景。详见 + + + profile + 频道场景。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。
  • +
  • -7:SDK 尚未初始化。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。
  • +
  • -7:SDK 尚未初始化。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setclientrole1.dita b/dita/RTC-AIDOC/API/api_irtcengine_setclientrole1.dita new file mode 100644 index 00000000000..ffb6690bcba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setclientrole1.dita @@ -0,0 +1,177 @@ + + + + <ph keyref="setClientRole1"/> + 设置用户角色。设置客户端实例的用户角色。设置用户角色。设置用户角色。 + + + + + + + + +
+

+ virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0; + public abstract int setClientRole(int role); + - (int)setClientRole:(AgoraClientRole)role NS_SWIFT_NAME(setClientRole(_:)); + - (int)setClientRole:(AgoraClientRole)role NS_SWIFT_NAME(setClientRole(_:)); +

+
+
+

+

    +
  • 默认情况下,SDK 会将用户角色设置为观众。你可以调用该方法将用户角色设置为主播。用户角色(role)决定了用户在 SDK 层的权限,包括是否可以在频道中发布音视频流。
  • +
+
    +
  • 如果你在加入频道前调用该方法将用户角色设置为主播,并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。
  • +
+
    +
  • 如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 方法来更新音视频流的发布状态。
  • +
+

+

你可以调用该方法将用户角色设置为主播或观众。用户角色决定了用户在 SDK 层的权限,包括是否可以在频道中发布音视频流。 +你可以在加入频道前或加入频道后调用该方法: +

    +
  • 如果你在加入频道前调用该方法将用户角色设置为主播,并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。
  • +
  • 如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 更改音视频流的发布状态。
  • +
+

+

你可以调用该方法设置用户角色。默认情况下,SDK 会将用户角色设置为观众。用户角色决定了你在 SDK 层级的权限,包括是否可以在频道中发布音视频流。 +你可以在加入频道前或加入频道后调用该方法: +

    +
  • 如果你在加入频道前调用该方法将用户角色设置为主播,并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。
  • +
  • 如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 更改音视频流的发布状态。
  • +
如果你在加入频道后调用该方法切换用户角色,SDK 会触发以下回调: +
    +
  • 本地客户端触发 回调。 +
      +
    • 注意:在加入频道前调用该方法并将 role 设置为 AUDIENCE 也会触发该回调。
    • +
    +
  • +
  • 远端客户端触发 回调。
  • +
如果你在加入频道后调用该方法设置用户角色失败,SDK 会触发 回调,报告失败原因和当前角色。

+

你可以调用该方法设置用户角色。默认情况下,SDK 会将用户角色设置为观众。用户角色决定了你在 SDK 层级的权限,包括是否可以在频道中发布音视频流。 +你可以在加入频道前或加入频道后调用该方法: +

    +
  • 如果你在加入频道前调用该方法将用户角色设置为主播,并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。
  • +
  • 如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 更改音视频流的发布状态。
  • +
如果你在加入频道后调用该方法切换用户角色,SDK 会触发以下回调: +
    +
  • 本地客户端触发 回调。 +
      +
    • 注意:在加入频道前调用该方法并将 role 设置为 AUDIENCE 也会触发该回调。
    • +
    +
  • +
  • 远端客户端触发 回调。
  • +
如果你在加入频道后调用该方法设置用户角色失败,SDK 会触发 回调,报告失败原因和当前角色。

+ 在加入频道前调用该方法并将用户角色设置为 BROADCASTER 时,本地客户端不会触发 回调;但如果将 role 设置为 AUDIENCE,则会触发该回调。 + 在加入频道前调用该方法并将用户角色设置为 CLIENT_ROLE_BROADCASTER 时,本地客户端不会触发 回调。加入频道前调用该方法并将 role 设置为 CLIENT_ROLE_AUDIENCE 时也会触发该回调。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+
+ +
+ 参数 + + + role + 用户角色,详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。若希望在直播过程中发布媒体流,请确保将用户角色设置为主播。 + + + + role + + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。用户角色: +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众。
  • +
+
+
+ + role + 用户角色。详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + + + role + 用户角色。详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setclientrole2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setclientrole2.dita new file mode 100644 index 00000000000..6a08de82627 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setclientrole2.dita @@ -0,0 +1,194 @@ + + + + <ph keyref="setClientRole2"/> + 设置用户角色和观众延迟等级。设置直播场景下的用户角色和观众延迟等级。设置直播场景中的用户角色和观众延迟等级。设置直播场景中的用户角色和观众延迟等级。 + + + + + + + + +
+

+ virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions& options) = 0; + public abstract int setClientRole(int role, ClientRoleOptions options); + - (int)setClientRole:(AgoraClientRole)role options:(AgoraClientRoleOptions * _Nullable)options NS_SWIFT_NAME(setClientRole(_:options:)); + - (int)setClientRole:(AgoraClientRole)role options:(AgoraClientRoleOptions * _Nullable)options NS_SWIFT_NAME(setClientRole(_:options:)); +

+
+
+

该方法用于设置用户角色以及观众延迟等级。你可以调用该方法将用户角色设置为主播。用户角色 role 决定了用户在 SDK 层的权限,例如是否可以在频道中发布音视频流。 +该方法与 setClientRole 的区别在于,它支持设置 audienceLatencyLevel。你需要将 audienceLatencyLevelrole 搭配使用,以决定用户在其权限范围内可享受的服务等级。例如,观众可以选择接收低延迟或超低延迟的远端流。 +

    +
  • 如果你在加入频道前调用该方法将用户角色设置为主播,并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。
  • +
  • 如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 方法来改变音视频流的发布状态。
  • +
+

+

默认情况下,SDK 会将用户角色设置为观众。你可以调用此方法将用户角色设置为主播。用户角色 (role) 决定了用户在 SDK 层级的权限,包括是否可以在频道中发布音视频流。 +该方法与 setClientRole(int role) 的区别在于,它支持设置 audienceLatencyLevelaudienceLatencyLevel 需要与 role 搭配使用,以确定用户在其权限范围内可享受的服务等级。例如,观众可以选择接收低延迟或超低延迟的远端流。 +如果你在加入频道前调用此方法并通过 设置本地视频属性,则用户加入频道时会自动开启本地视频预览。 +如果你在加入频道后调用此方法设置用户角色,SDK 会自动调用 方法来改变音视频流的发布状态。

+

你可以调用该方法设置用户角色为主播或观众。用户角色(role)决定了你在 SDK 层的权限,例如是否可以在频道中发布音视频流。 + +该方法相比 ,支持设置 audienceLatencyLevel。你需要将 audienceLatencyLevelrole 搭配使用,以决定你在权限范围内可享受的服务等级。例如,观众可以选择接收低延迟或超低延迟的远端流。 + +如果你在加入频道前调用该方法将用户角色设置为主播,并通过 方法设置本地视频属性,则加入频道时会自动开启本地视频预览。 + +如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 方法来改变音视频流的发布状态。

+

你可以调用该方法设置用户角色为主播或观众。用户角色(role)决定了你在 SDK 层的权限,例如是否可以在频道中发布音视频流。 + +该方法相比 ,支持设置 audienceLatencyLevel。你需要将 audienceLatencyLevelrole 搭配使用,以决定你在权限范围内可享受的服务等级。例如,观众可以选择接收低延迟或超低延迟的远端流。 + +如果你在加入频道前调用该方法将用户角色设置为主播,并通过 方法设置本地视频属性,则加入频道时会自动开启本地视频预览。 + +如果你在加入频道后调用该方法设置用户角色,SDK 会自动调用 方法来改变音视频流的发布状态。

+ 当用户角色设置为主播时,观众延迟等级只能设置为 AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY。 +在加入频道前调用该方法并将 role 设置为 BROADCASTER 时,本地客户端不会触发 回调。 +在加入频道前调用该方法并将 role 设置为 AUDIENCE 时,会触发该回调。 + 当用户角色设置为主播时,观众延迟等级只能设置为 AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY。 +在加入频道前调用此方法并将 role 设置为 BROADCASTER 时,本地客户端不会触发 回调。 +在加入频道前调用此方法并将 role 设置为 AUDIENCE 时,也会触发该回调。 + 当用户角色设置为主播时,观众延迟等级只能设置为 AgoraAudienceLatencyLevelUltraLowLatency。 +
    +
  • 在加入频道前调用此方法并将 role 设置为 BROADCASTER 时,本地客户端不会触发 回调。
  • +
  • 在加入频道前调用此方法并将 role 设置为 AUDIENCE 时,会触发该回调。
  • +
+
+ 当用户角色设置为主播时,观众延迟等级只能设置为 AgoraAudienceLatencyLevelUltraLowLatency。 +
    +
  • 在加入频道前调用此方法并将 role 设置为 BROADCASTER 时,本地客户端不会触发 回调。
  • +
  • 在加入频道前调用此方法并将 role 设置为 AUDIENCE 时,会触发该回调。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+
+ +
+ 参数 + + + role + 用户角色,详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + + + options + 用户的详细选项,详见 + + + role + + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播过程中发布媒体流,请确保将用户角色设置为主播。用户角色。 +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众(默认)。
  • +
+
+
+ + options + 用户的详细选项,详见 + + + role + 用户角色。详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播过程中发布媒体流,请确保将用户角色设置为主播。 + + + + options + 用户的详细选项,包括用户等级。详见 + + + role + 用户角色。详见 。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播过程中发布媒体流,请确保将用户角色设置为主播。 + + + + options + 用户的详细选项,包括用户等级。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -5:请求被拒绝。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -5:请求被拒绝。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -1:发生通用错误(无明确原因)。
  • +
  • -2:参数无效。
  • +
  • -5:请求被拒绝。
  • +
  • -7:SDK 未初始化。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -1:发生通用错误(无明确原因)。
  • +
  • -2:参数无效。
  • +
  • -5:请求被拒绝。
  • +
  • -7:SDK 未初始化。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcloudproxy.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcloudproxy.dita new file mode 100644 index 00000000000..37b8fabb367 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcloudproxy.dita @@ -0,0 +1,164 @@ + + + + <ph keyref="setCloudProxy"/> + 设置云代理服务。设置云代理服务。设置云代理服务。设置云代理服务。 + + + + + + + + +
+

+ virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType) = 0; + public abstract int setCloudProxy(int proxyType); + - (int)setCloudProxy:(AgoraCloudProxyType)proxyType NS_SWIFT_NAME(setCloudProxy(_:)); + - (int)setCloudProxy:(AgoraCloudProxyType)proxyType NS_SWIFT_NAME(setCloudProxy(_:)); +

+
+
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+
+

当用户的网络访问受防火墙限制时,需要先配置防火墙,允许访问声网提供的特定 IP 地址和端口,然后调用该方法启用云代理,并通过 proxyType 参数设置云代理类型。 + +成功连接到云代理后,SDK 会触发 回调,状态为 CONNECTION_STATE_CONNECTING,原因为 CONNECTION_CHANGED_SETTING_PROXY_SERVER。 + +要禁用已设置的云代理,请调用 setCloudProxy(NONE_PROXY)。 + +要更改已设置的云代理类型,请先调用 setCloudProxy(NONE_PROXY),然后再调用 设置新的 proxyType

+

当用户的网络访问受防火墙限制时,需要先配置防火墙,允许访问声网提供的特定 IP 地址和端口,然后调用该方法启用云代理,并通过 proxyType 参数设置云代理类型。成功连接云代理后,SDK 会触发 回调,状态为 CONNECTION_STATE_CONNECTING,原因为 CONNECTION_CHANGED_SETTING_PROXY_SERVER。 + +如需关闭已设置的云代理,请调用 ,并将 proxyType 设置为 TRANSPORT_TYPE_NONE_PROXY。 +如需切换云代理类型,请先调用 关闭当前代理(proxyType 设置为 TRANSPORT_TYPE_NONE_PROXY),再调用 设置新的 proxyType

+

当你的网络访问受防火墙限制时,需要先配置防火墙,允许声网提供的特定 IP 地址和端口,然后调用此方法启用云代理,并通过 proxyType 参数设置云代理类型。 + +要关闭已设置的云代理,请调用 并传入 AgoraNoneProxy。 +要更改已设置的云代理类型,需先调用 并传入 AgoraNoneProxy 关闭当前代理,再调用 设置新的代理类型。

+

当你的网络访问受防火墙限制时,需要先配置防火墙,允许声网提供的特定 IP 地址和端口,然后调用此方法启用云代理,并通过 proxyType 参数设置云代理类型。 + +要关闭已设置的云代理,请调用 并传入 AgoraNoneProxy。 +要更改已设置的云代理类型,需先调用 并传入 AgoraNoneProxy 关闭当前代理,再调用 设置新的代理类型。

+ +
    +
  • 建议在加入频道前调用该方法。
  • +
  • 当用户处于防火墙之后并使用强制 UDP 云代理时,旁路推流和跨频道联播服务不可用。
  • +
  • 当使用强制 TCP 云代理时,调用 startAudioMixing 播放 HTTP 协议的在线音乐文件会发生错误。旁路推流和跨频道联播服务使用基于 TCP 协议的云代理。
  • +
+
+ +
    +
  • 建议在加入频道前调用该方法。
  • +
  • 当用户处于防火墙之后并使用强制 UDP 云代理时,媒体推流和跨频道联播服务不可用。
  • +
  • 使用强制 TCP 云代理时,调用 startAudioMixing 播放 HTTP 协议的在线音乐文件会报错。媒体推流和跨频道联播服务使用 TCP 协议的云代理。
  • +
+
+ +
    +
  • 该方法需要在加入频道前调用。
  • +
  • 当你处于防火墙之后并使用强制 UDP 云代理时,旁路推流和跨频道联播服务不可用。
  • +
  • 当你使用强制 TCP 云代理时,若调用 方法播放 HTTP 协议的在线音乐文件,会出现错误。旁路推流和跨频道联播服务使用基于 TCP 协议的云代理。
  • +
+
+ +
    +
  • 该方法需要在加入频道前调用。
  • +
  • 当你处于防火墙之后并使用强制 UDP 云代理时,旁路推流和跨频道联播服务不可用。
  • +
  • 当你使用强制 TCP 云代理时,若调用 方法播放 HTTP 协议的在线音乐文件,会出现错误。旁路推流和跨频道联播服务使用基于 TCP 协议的云代理。
  • +
+
+
+ +
+ 参数 + + + proxyType + 云代理类型,详见 + + + proxyType + 云代理的类型: +
    +
  • TRANSPORT_TYPE_NONE_PROXY (0):自动模式。SDK 默认启用该模式。在此模式下,SDK 会尝试直接连接 SD-RTN™,若失败则自动切换至 TCP/TLS 443。
  • +
  • TRANSPORT_TYPE_UDP_PROXY (1):UDP 协议的云代理,即强制 UDP 云代理模式。在此模式下,SDK 始终通过 UDP 传输数据。
  • +
  • TRANSPORT_TYPE_TCP_PROXY (2):TCP(加密)协议的云代理,即强制 TCP 云代理模式。在此模式下,SDK 始终通过 TCP/TLS 443 传输数据。
  • +
+
+
+ + proxyType + 云代理的类型,详见 。该参数为必填项,若未传入值,SDK 会报错。 + + + proxyType + 云代理的类型,详见 。该参数为必填项,若未传入值,SDK 会报错。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -7:SDK 未初始化。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions.dita new file mode 100644 index 00000000000..76bbc0882c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions.dita @@ -0,0 +1,168 @@ + + + + <ph keyref="setColorEnhanceOptions"/> + 设置视频色彩增强效果。设置色彩增强功能。设置色彩增强效果。设置色彩增强效果。 + + + + + + + + +
+

+ virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setColorEnhanceOptions(boolean enabled, ColorEnhanceOptions options); + - (int)setColorEnhanceOptions:(BOOL)enable options:(AgoraColorEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setColorEnhanceOptions(_:options:)); + - (int)setColorEnhanceOptions:(BOOL)enable options:(AgoraColorEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setColorEnhanceOptions(_:options:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等特性,从而增强视频的色彩丰富度和还原度,使画面更加生动。

+

摄像头采集的视频图像可能存在色彩失真。该功能可智能调整视频的饱和度和对比度等参数,从而提升视频的色彩丰富度和还原度,使画面更加生动。

+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等特性,从而增强视频的色彩丰富度和色彩还原度,使视频画面更加生动。你可以调用 方法开启色彩增强功能并设置色彩增强效果的参数。

+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等特性,从而增强视频的色彩丰富度和色彩还原度,使视频画面更加生动。你可以调用 方法开启色彩增强功能并设置色彩增强效果的参数。

+ +
    +
  • 请在调用 方法后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启该功能后,如设备出现严重发热,声网建议你降低色彩增强等级以减少性能消耗,或关闭该功能。
  • +
  • 此方法依赖图像增强动态库 。若该动态库被删除,将无法正常启用该功能。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启该功能后,如果设备出现严重发热问题,声网建议你降低色彩增强等级以减少性能消耗,或关闭该功能。
  • +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启色彩增强后,如果设备出现严重发热问题,声网建议你降低色彩增强等级以减少性能消耗,或关闭色彩增强功能。
  • +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启色彩增强后,如果设备出现严重发热问题,声网建议你降低色彩增强等级以减少性能消耗,或关闭色彩增强功能。
  • +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 参数 + + + enabled + 是否开启色彩增强功能: +
    +
  • :开启色彩增强。
  • +
  • :(默认)关闭色彩增强。
  • +
+
+
+ + options + 色彩增强选项。详见 + + + type + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 使用摄像头采集本地视频时,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 使用自定义视频源时,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+ + enabled + 是否启用色彩增强功能: +
    +
  • :启用色彩增强。
  • +
  • :(默认)关闭色彩增强。
  • +
+
+
+ + options + 色彩增强选项。详见 + + + enable + 是否开启色彩增强功能: +
    +
  • :开启色彩增强。
  • +
  • :(默认)关闭色彩增强。
  • +
+
+
+ + options + 色彩增强参数,详见 + + + enable + 是否开启色彩增强功能: +
    +
  • :开启色彩增强。
  • +
  • :(默认)关闭色彩增强。
  • +
+
+
+ + options + 色彩增强参数,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions2.dita new file mode 100644 index 00000000000..d25787f5205 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setcolorenhanceoptions2.dita @@ -0,0 +1,156 @@ + + + + <ph keyref="setColorEnhanceOptions2"/> + 设置色彩增强选项并指定媒体源。设置色彩增强选项并指定媒体源。设置色彩增强选项并指定媒体源。 + + + + + + + + +
+

+ - (int)setColorEnhanceOptions:(BOOL)enable options:(AgoraColorEnhanceOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setColorEnhanceOptions(_:options:sourceType:)); + public abstract int setColorEnhanceOptions(boolean enabled, ColorEnhanceOptions options, Constants.MediaSourceType sourceType); + - (int)setColorEnhanceOptions:(BOOL)enable options:(AgoraColorEnhanceOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setColorEnhanceOptions(_:options:sourceType:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等特性,从而增强视频的色彩丰富度和色彩还原度,使视频画面更加生动。该方法与 方法类似,但该方法允许你指定应用色彩增强选项的媒体源。

+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等参数,从而提升视频的色彩丰富度和还原度,使画面更加生动。该方法与 功能相同,但允许你指定应用色彩增强的媒体源类型。

+

摄像头采集的视频图像可能存在色彩失真。色彩增强功能可智能调整视频的饱和度和对比度等特性,从而增强视频的色彩丰富度和色彩还原度,使视频画面更加生动。该方法与 方法类似,但该方法允许你指定应用色彩增强选项的媒体源。

+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启色彩增强功能后,如果设备出现严重发热问题,声网建议你降低色彩增强等级以减少性能消耗,或关闭色彩增强功能。
  • +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 请在调用 后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启该功能后,如设备出现严重发热,声网建议你降低色彩增强等级以减少性能消耗,或关闭该功能。
  • +
  • 此方法依赖图像增强动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 请在调用 方法之后调用此方法。
  • +
  • 色彩增强功能对设备性能有一定要求。开启色彩增强功能后,如果设备出现严重发热问题,声网建议你降低色彩增强等级以减少性能消耗,或关闭色彩增强功能。
  • +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 参数 + + + enable + 是否开启色彩增强功能: +
    +
  • :开启色彩增强功能。
  • +
  • :(默认)关闭色彩增强功能。
  • +
+
+
+ + options + 色彩增强选项,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enabled + 是否启用色彩增强: +
    +
  • :启用色彩增强。
  • +
  • :(默认)关闭色彩增强。
  • +
+
+
+ + options + 色彩增强选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 + 该参数仅支持以下两种设置: +
    +
  • 默认值为 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,请将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否开启色彩增强功能: +
    +
  • :开启色彩增强功能。
  • +
  • :(默认)关闭色彩增强功能。
  • +
+
+
+ + options + 色彩增强选项,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdefaultaudioroutetospeakerphone.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdefaultaudioroutetospeakerphone.dita new file mode 100644 index 00000000000..dbcfdb6da80 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdefaultaudioroutetospeakerphone.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="setDefaultAudioRouteToSpeakerphone"/> + 设置默认音频播放路由。设置默认音频播放路由。设置默认音频播放路由。 + + + + + + + + +
+

+ virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0; + - (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeaker NS_SWIFT_NAME(setDefaultAudioRouteToSpeakerphone(_:)); + public abstract int setDefaultAudioRoutetoSpeakerphone(boolean defaultToSpeaker); +

+
+
+

大多数手机有两个音频路由:顶部的听筒和底部的扬声器。听筒音量较低,扬声器音量较高。你可以通过该方法设置在未连接外部音频设备时,默认使用听筒或扬声器播放音频。 +不同场景下系统的默认音频路由如下: +

    +
  • 语音通话:听筒。
  • +
  • 音频直播:扬声器。
  • +
  • 视频通话:扬声器。
  • +
  • 视频直播:扬声器。
  • +
+

+

大多数手机有两个音频路由:顶部的听筒和底部的扬声器。听筒音量较低,扬声器音量较高。你可以通过该方法设置在未连接外部音频设备时,音频是通过听筒还是扬声器播放。 +在不同场景下,系统的默认音频路由如下: +

    +
  • 语音通话:听筒。
  • +
  • 音频直播:扬声器。
  • +
  • 视频通话:扬声器。
  • +
  • 视频直播:扬声器。
  • +
你可以调用该方法更改默认音频路由。

+

大多数手机有两个音频路由:顶部的听筒和底部的扬声器。你可以通过调用该方法设置默认音频路由,在未连接外部音频设备时决定音频是通过听筒还是扬声器播放。 +在不同场景下,系统的默认音频路由如下: +

    +
  • 语音通话:听筒。
  • +
  • 音频直播:扬声器。
  • +
  • 视频通话:扬声器。
  • +
  • 视频直播:扬声器。
  • +
+

+ 该方法仅适用于 Android 和 iOS 平台。 + 调用此方法设置默认音频路由后,系统的实际音频路由会随着外部音频设备(有线耳机或蓝牙耳机)的连接而变化。 + 调用该方法设置默认音频路由后,系统的实际音频路由会根据外部音频设备(如有线耳机或蓝牙耳机)的连接情况自动切换。 +
+
+ 调用时机 +

在加入频道前调用此方法。如果需要在加入频道后更改音频路由,请调用

+

该方法需要在加入频道前调用。

+

请在加入频道前调用该方法。如果需要在加入频道后更改音频路由,请调用

+
+ +
+ 参数 + + + defaultToSpeaker + 是否将扬声器设置为默认音频路由: +
    +
  • :将扬声器设置为默认音频路由。
  • +
  • :将听筒设置为默认音频路由。
  • +
+
+
+ + defaultToSpeaker + 是否将扬声器设置为默认音频路由: +
    +
  • :将扬声器设置为默认音频路由。
  • +
  • :将听筒设置为默认音频路由。
  • +
+
+
+ + defaultToSpeaker + 是否将扬声器设置为默认音频路由: +
    +
  • :将扬声器设置为默认音频路由。
  • +
  • :将听筒设置为默认音频路由。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdevice_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdevice_irtcengine.dita new file mode 100644 index 00000000000..9775b6c94e5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdevice_irtcengine.dita @@ -0,0 +1,43 @@ + + + + <ph keyref="setDevice_IRtcEngine"/> + 指定具有设备 ID 的设备。 + + + + + + + + +
+

+ - (int)setDevice:(AgoraMediaDeviceType)type deviceId:(NSString * _Nonnull)deviceId NS_SWIFT_NAME(setDevice(_:deviceId:)); +

+
+
+
+ 参数 + + + type + 设备类型,包括音频采集、音频播放、视频采集或视频播放设备。详见 + + + deviceId + 设备 ID。你可以通过调用 获取设备 ID。连接或断开音频设备不会改变该值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdevicevolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdevicevolume.dita new file mode 100644 index 00000000000..ea24351a390 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdevicevolume.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="setDeviceVolume"/> + 设置指定设备的音量。 + + + + + + + + +
+

+ - (int)setDeviceVolume:(AgoraMediaDeviceType)type volume:(int)volume NS_SWIFT_NAME(setDeviceVolume(_:volume:)); +

+
+
+

设置音频或视频采集或播放设备的音量。

+ 请在加入频道后调用该方法。 +
+
+ 参数 + + + type + 设备类型,包括音频采集、音频播放、视频采集或视频播放设备,详见 + + + volume + 指定设备的音量,取值范围为 [0, 255]。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita new file mode 100644 index 00000000000..bd60d7a5283 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="setDirectCdnStreamingAudioConfiguration"/> + 设置主播直推 CDN 音频流的音频配置。设置主播直接 CDN 推流的音频配置。设置你作为主播时直接推流至 CDN 的音频配置。设置你作为主播时直接推流至 CDN 的音频配置。 + + + + + + + + +
+

+ virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0; + public abstract int setDirectCdnStreamingAudioConfiguration(int profile) + - (int)setDirectCdnStreamingAudioConfiguration:(AgoraAudioProfile)profile NS_SWIFT_NAME(setDirectCdnStreamingAudioConfiguration(_:)); + - (int)setDirectCdnStreamingAudioConfiguration:(AgoraAudioProfile)profile NS_SWIFT_NAME(setDirectCdnStreamingAudioConfiguration(_:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

当你在 中将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 时,可以调用该方法设置音频配置。

+

当你在 中将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 时,可以调用该方法设置音频配置。

+

当你在 中将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 时,可以调用该方法设置音频配置。

+

当你在 中将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 时,可以调用该方法设置音频配置。

+
+
+ 参数 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数: +
    +
  • DEFAULT (0):默认配置。 +
      +
    • 互动直播场景:采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
    • +
    • 通信场景:采样率为 32 kHz,语音编码,单声道,码率最高为 18 Kbps。
    • +
    +
  • +
  • SPEECH_STANDARD (1):采样率为 32 kHz,语音编码,单声道,码率最高为 18 Kbps。
  • +
  • MUSIC_STANDARD (2):采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
  • +
  • MUSIC_STANDARD_STEREO (3):采样率为 48 kHz,音乐编码,立体声,码率最高为 80 Kbps。
  • +
  • MUSIC_HIGH_QUALITY (4):采样率为 48 kHz,音乐编码,单声道,码率最高为 96 Kbps。
  • +
  • MUSIC_HIGH_QUALITY_STEREO (5):采样率为 48 kHz,音乐编码,立体声,码率最高为 128 Kbps。
  • +
+
+
+ + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + + + profile + 音频配置,包括采样率、码率、编码模式和声道数。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita new file mode 100644 index 00000000000..de8991ef0bc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="setDirectCdnStreamingVideoConfiguration"/> + 设置主播直接 CDN 推流的视频属性。设置主播直接 CDN 推流的视频属性配置。设置你通过直推 CDN 推送的媒体流的视频属性。设置你通过直推 CDN 推送的媒体流的视频属性。 + + + + + + + + +
+

+ virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config) = 0; + public abstract int setDirectCdnStreamingVideoConfiguration(VideoEncoderConfiguration config); + - (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config NS_SWIFT_NAME(setDirectCdnStreamingVideoConfiguration(_:)); + - (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config NS_SWIFT_NAME(setDirectCdnStreamingVideoConfiguration(_:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

该方法仅影响通过摄像头、屏幕或自定义视频采集源采集的视频流。当你在 中将 publishCameraTrackpublishCustomVideoTrack 设置为 时,可以调用该方法设置视频属性。 + +如果本地摄像头不支持你设置的视频分辨率,SDK 会自动将分辨率调整为最接近的值进行采集、编码或推流,并保持你设置的宽高比。你可以通过 回调获取实际的视频分辨率。

+

该方法仅影响通过摄像头、屏幕或自定义视频源采集的视频流。也就是说,当你在 中将 publishCameraTrackpublishCustomVideoTrack 设置为 时,可以调用该方法设置视频属性配置。 + +如果本地摄像头不支持你设置的视频分辨率,SDK 会自动将其调整为最接近的分辨率进行采集、编码或推流,并保持你设置的分辨率的宽高比。你可以通过 回调获取视频流的实际分辨率。

+

该方法仅影响通过摄像头、屏幕或自定义视频源采集的视频流。也就是说,当你在 中将 publishCameraTrackpublishCustomVideoTrack 设置为 以采集视频时,可以调用该方法设置视频属性。如果本地摄像头不支持你设置的视频分辨率,SDK 会自动将其调整为最接近你设置值的分辨率进行采集、编码或传输,并保持你设置的宽高比。你可以通过 回调获取视频流的实际分辨率。

+

该方法仅影响通过摄像头、屏幕或自定义视频源采集的视频流。也就是说,当你在 中将 publishCameraTrackpublishCustomVideoTrack 设置为 以采集视频时,可以调用该方法设置视频属性。如果本地摄像头不支持你设置的视频分辨率,SDK 会自动将其调整为最接近你设置值的分辨率进行采集、编码或传输,并保持你设置的宽高比。你可以通过 回调获取视频流的实际分辨率。

+ 在 CDN 直播过程中,声网仅支持将 设置为 ORIENTATION_MODE_FIXED_LANDSCAPEORIENTATION_MODE_FIXED_PORTRAIT + 在 CDN 直播过程中,声网仅支持将 设置为 ORIENTATION_MODE_FIXED_LANDSCAPEORIENTATION_MODE_FIXED_PORTRAIT + 在 CDN 直播过程中,声网仅支持将 设置为 AgoraVideoOutputOrientationModeFixedLandscapeAgoraVideoOutputOrientationModeFixedPortrait + 在 CDN 直播过程中,声网仅支持将 设置为 AgoraVideoOutputOrientationModeFixedLandscapeAgoraVideoOutputOrientationModeFixedPortrait +
+
+ 参数 + + + config + 视频属性。详见 。 + 在 CDN 直播过程中,声网仅支持将 设置为 ORIENTATION_MODE_FIXED_LANDSCAPEORIENTATION_MODE_FIXED_PORTRAIT + + + + config + 视频属性配置。详见 。 + 在 CDN 直播过程中,声网仅支持将 设置为 ORIENTATION_MODE_FIXED_LANDSCAPEORIENTATION_MODE_FIXED_PORTRAIT + + + + config + 视频属性,详见 + + + config + 视频属性,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode.dita new file mode 100644 index 00000000000..5e702e9296a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode.dita @@ -0,0 +1,125 @@ + + + + <ph keyref="setDualStreamMode"/> + 设置发送端的视频流模式,用于控制是否发送视频小流。设置发送端的视频流模式,用于控制是否发送视频小流。设置发送端的不同质量层级的视频流模式。设置发送端的不同质量层级的视频流模式。 + + + + + + + + +
+

+ virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0; + public abstract int setDualStreamMode(Constants.SimulcastStreamMode mode); + - (int)setDualStreamMode:(AgoraSimulcastStreamMode)mode NS_SWIFT_NAME(setDualStreamMode(_:)); + - (int)setDualStreamMode:(AgoraSimulcastStreamMode)mode NS_SWIFT_NAME(setDualStreamMode(_:)); +

+
+
+

SDK 默认在发送端开启视频小流的自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 请求视频小流,发送端在收到请求后会自动开始发送。 + +如果你希望修改此行为,可以调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。 + +如果你希望恢复默认行为,可以再次调用该方法并将 mode 设置为 AUTO_SIMULCAST_STREAM

+

你可以调用该方法设置发送端的视频流模式。 +SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 setRemoteVideoStreamType 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。
  • +
  • 如果你希望恢复默认行为,可以再次调用该方法并将 mode 设置为 AUTO_SIMULCAST_STREAM
  • +
+

+

SDK 默认在发送端开启视频小流自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 方法发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。
  • +
  • 如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream
  • +
+

+

SDK 默认在发送端开启视频小流自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 方法发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。
  • +
  • 如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream
  • +
+

+ 该方法与 enableDualStreamMode 的区别如下: +
    +
  • 当将 mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode(false)
  • +
  • 当将 mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode(true)
  • +
  • 两个方法均可在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 该方法与 enableDualStreamMode 的区别如下: +
    +
  • 当调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode(false)
  • +
  • 当调用该方法并将 mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode(true)
  • +
  • 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 本方法与 方法的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 ()。
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 ()。
  • +
  • 两个方法都可以在加入频道前后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 本方法与 方法的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 ()。
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 ()。
  • +
  • 两个方法都可以在加入频道前后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+
+
+ 参数 + + + mode + 发送视频流的模式。详见 + + + mode + 发送视频流的模式。详见 + + + mode + 发送视频流的模式,详见 + + + mode + 发送视频流的模式,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode2.dita new file mode 100644 index 00000000000..9579da718a9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setdualstreammode2.dita @@ -0,0 +1,144 @@ + + + + <ph keyref="setDualStreamMode2"/> + 设置发送端不同质量层级的视频流模式。设置发送端的不同质量层级的视频流模式配置。设置发送端的不同质量层级的视频流模式配置。设置发送端的不同质量层级的视频流模式配置。 + + + + + + + + +
+

+ virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0; + public abstract int setDualStreamMode(Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig); + - (int)setDualStreamMode:(AgoraSimulcastStreamMode)mode + streamConfig:(AgoraSimulcastStreamConfig* _Nonnull)streamConfig NS_SWIFT_NAME(setDualStreamMode(_:streamConfig:)); + - (int)setDualStreamMode:(AgoraSimulcastStreamMode)mode + streamConfig:(AgoraSimulcastStreamConfig* _Nonnull)streamConfig NS_SWIFT_NAME(setDualStreamMode(_:streamConfig:)); +

+
+
+

SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用此方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。
  • +
  • 如果你希望恢复默认行为,可以再次调用此方法并将 mode 设置为 AUTO_SIMULCAST_STREAM
  • +
setDualStreamMode 方法(参数为 SIMULCAST_STREAM_MODE mode)的区别在于:该方法还支持配置视频小流,SDK 会根据 streamConfig 中的配置发送视频流。

+

SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 setRemoteVideoStreamType 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改该行为,可以调用该方法,并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。
  • +
  • 如果你希望恢复默认行为,可以再次调用该方法,并将 mode 设置为 AUTO_SIMULCAST_STREAM
  • +
+

+

SDK 默认在发送端开启视频小流的自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 发起视频小流请求,发送端在收到请求后自动开始发送视频小流。 + +如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。 + +如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream。 + +与 方法的区别在于,本方法还可以配置视频小流,SDK 会根据 streamConfig 中的配置发送视频流。

+

SDK 默认在发送端开启视频小流的自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 发起视频小流请求,发送端在收到请求后自动开始发送视频小流。 + +如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。 + +如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream。 + +与 方法的区别在于,本方法还可以配置视频小流,SDK 会根据 streamConfig 中的配置发送视频流。

+ 此方法与 enableDualStreamMode 的区别如下: +
    +
  • 当调用此方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode 并将 enabled 设置为
  • +
  • 当调用此方法并将 mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode 并将 enabled 设置为
  • +
  • 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 该方法与 enableDualStreamMode 的区别如下: +
    +
  • 当调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode 并将 enabled 设置为
  • +
  • 当调用该方法并将 mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamMode 并将 enabled 设置为
  • +
  • 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 本方法与 的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 并将 enabled 设置为
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 并将 enabled 设置为
  • +
  • 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法中的设置生效。
  • +
+
+ 本方法与 的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 并将 enabled 设置为
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 并将 enabled 设置为
  • +
  • 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法中的设置生效。
  • +
+
+
+
+ 参数 + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置。详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置 streamConfig 不生效。 + + + + mode + 发送视频流的模式,详见 + + + streamConfig + 视频小流的配置,详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置该参数无效。 + + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置,详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置 streamConfig 不生效。 + + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置,详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置 streamConfig 不生效。 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setearmonitoringaudioframeparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setearmonitoringaudioframeparameters.dita new file mode 100644 index 00000000000..90405fbb495 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setearmonitoringaudioframeparameters.dita @@ -0,0 +1,180 @@ + + + + <ph keyref="setEarMonitoringAudioFrameParameters"/> + 设置耳返音频数据的格式。设置耳返音频数据格式。设置耳返原始音频数据的格式。设置耳返原始音频数据的格式。 + + + + + + + + +
+

+ virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0; + public abstract int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall); + - (int)setEarMonitoringAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setEarMonitoringAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); + - (int)setEarMonitoringAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setEarMonitoringAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); +

+
+
+

该方法用于设置 回调中报告的耳返音频数据格式。

+

该方法用于设置 回调中报告的耳返音频数据格式。

+

该方法用于设置 回调中报告的耳返音频数据格式。

+

该方法用于设置 回调中报告的耳返音频数据格式。

+ +
    +
  • 在调用该方法前,需先调用 ,并将 includeAudioFilters 设置为 EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERSEAR_MONITORING_FILTER_NOISE_SUPPRESSION
  • +
  • SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。
  • +
+
+ +
    +
  • 在调用该方法前,你需要先调用 enableInEarMonitoring 方法,并将 includeAudioFilters 设置为 EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERSEAR_MONITORING_FILTER_NOISE_SUPPRESSION
  • +
  • SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。
  • +
+
+ +
    +
  • 在调用该方法前,你需要先调用 enableInEarMonitoring 方法,并将 includeAudioFilters 设置为 AgoraEarMonitoringFilterBuiltInAudioFiltersAgoraEarMonitoringFilterNoiseSuppression
  • +
  • SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。
  • +
+
+ +
    +
  • 在调用该方法前,你需要先调用 enableInEarMonitoring 方法,并将 includeAudioFilters 设置为 AgoraEarMonitoringFilterBuiltInAudioFiltersAgoraEarMonitoringFilterNoiseSuppression
  • +
  • SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。
  • +
+
+
+
+ 参数 + + + sampleRate + 回调中报告的音频采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 回调中报告的音频通道数。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 回调中每次报告的采样点数量,例如媒体推流时为 1024。 + + + sampleRate + 回调中报告的音频采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 回调中报告的音频通道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式: +
    +
  • RAW_AUDIO_FRAME_OP_MODE_READ_ONLY(0):(默认)只读模式。例如,用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
  • +
  • RAW_AUDIO_FRAME_OP_MODE_READ_WRITE(2):读写模式。用户从 中读取数据,修改后再播放。例如,用户有自己的音效处理模块并进行语音预处理,如变声。
  • +
+
+
+ + samplesPerCall + 回调中报告的每次调用采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中报告的音频数据的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 回调中报告的音频声道数。 +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 回调中报告的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中报告的音频数据的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 回调中报告的音频声道数。 +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 回调中报告的数据采样数,例如媒体推流时为 1024。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_seteffectposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_seteffectposition.dita new file mode 100644 index 00000000000..c9d2dec2122 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_seteffectposition.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="setEffectPosition"/> + 设置音效文件的播放位置。设置音效文件的播放位置。设置音效文件的播放位置。设置音效文件的播放位置。 + + + + + + + + +
+

+ virtual int setEffectPosition(int soundId, int pos) = 0; + public abstract int setEffectPosition(int soundId, int pos); + - (int)setEffectPosition:(int)soundId pos:(NSInteger)pos NS_SWIFT_NAME(setEffectPosition(_:pos:)); + - (int)setEffectPosition:(int)soundId pos:(NSInteger)pos NS_SWIFT_NAME(setEffectPosition(_:pos:)); +

+
+
+

设置成功后,音效文件将从指定位置开始播放。

+

设置成功后,本地音效文件会从指定位置开始播放。

+

设置成功后,本地音效文件会从指定位置开始播放。

+ 请在调用 方法后调用此方法。 + 请在调用 playEffect 方法之后调用此方法。 + 请在调用 playEffect 方法之后调用此方法。 + 请在调用 playEffect 方法之后调用此方法。 +
+
+ 参数 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + pos + 音效文件的播放位置,单位为毫秒。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + pos + 音效文件的播放位置,单位为毫秒。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + pos + 音效文件的播放位置,单位为毫秒。 + + + soundId + 音效 ID。每个音效文件的 ID 是唯一的。 + + + pos + 音效文件的播放位置,单位为毫秒。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_seteffectsvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_seteffectsvolume.dita new file mode 100644 index 00000000000..53944492395 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_seteffectsvolume.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="setEffectsVolume"/> + 设置音效播放音量。设置音效的播放音量。设置音效的播放音量。设置音效的播放音量。 + + + + + + + + +
+

+ virtual int setEffectsVolume(int volume) = 0; + public abstract int setEffectsVolume(double volume); + - (int)setEffectsVolume:(NSInteger)volume NS_SWIFT_NAME(setEffectsVolume(_:)); + - (int)setEffectsVolume:(NSInteger)volume NS_SWIFT_NAME(setEffectsVolume(_:)); +

+
+
+

该方法需要在调用 playEffect 方法之后调用。

+
+
+ 调用时机 +

在调用 方法之后调用。

+

该方法需要在调用 playEffect 方法之后调用。

+

在调用 方法之后调用。

+

在调用 方法之后调用。

+
+
+ 参数 + + + volume + 播放音量。取值范围为 [0, 100]。默认值为 100,表示原始音量。 + + + volume + 播放音量,取值范围为 [0, 100]。(默认值为 100,表示原始音量。) + + + volume + 播放音量。取值范围为 [0, 100]。(默认)为 100,表示原始音量。 + + + volume + 播放音量。取值范围为 [0, 100]。(默认)为 100,表示原始音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setenablespeakerphone.dita b/dita/RTC-AIDOC/API/api_irtcengine_setenablespeakerphone.dita new file mode 100644 index 00000000000..86a3e4c098b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setenablespeakerphone.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="setEnableSpeakerphone"/> + 设置是否将音频路由切换为扬声器。设置是否将音频路由到扬声器。设置是否将音频路由切换到扬声器。 + + + + + + + + +
+

+ virtual int setEnableSpeakerphone(bool speakerOn) = 0; + - (int)setEnableSpeakerphone:(BOOL)enableSpeaker NS_SWIFT_NAME(setEnableSpeakerphone(_:)); + public abstract int setEnableSpeakerphone(boolean enabled); +

+
+
+

你可以调用该方法切换当前频道中的音频路由,以满足不同的音频播放需求。

+ 仅设置当前频道中的音频路由,不影响默认音频路由。如果用户离开当前频道并加入另一个频道,将使用默认音频路由。 +如果用户使用蓝牙或有线耳机等外部音频播放设备,该方法不生效,SDK 会通过外部设备播放音频。当用户连接多个外部设备时,SDK 会通过最后连接的设备播放音频。 +该方法仅适用于 Android 和 iOS 平台。 + +
    +
  • 该方法仅设置当前频道中的音频路由,不影响默认音频路由。如果你离开当前频道并加入另一个频道,将使用默认音频路由。
  • +
  • 如果你使用了蓝牙或有线耳机等外部音频播放设备,该方法不生效。SDK 会通过外部设备播放音频。当你连接多个外部设备时,SDK 会通过最后连接的设备播放音频。
  • +
+
+ 该方法仅设置当前频道中的音频路由,不影响默认音频路由。如果用户离开当前频道并加入另一个频道,将使用默认音频路由。 +如果用户使用了蓝牙或有线耳机等外部音频播放设备,该方法不生效,SDK 会通过外部设备播放音频。当用户连接多个外部设备时,SDK 会通过最后连接的设备播放音频。 +
+
+ 适用场景 +

如果 SDK 的默认音频路由或 的设置无法满足你的需求,可以调用该方法切换当前音频路由。

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+ +
+ 参数 + + + speakerOn + 是否启用扬声器: +
    +
  • :启用设备状态监测,音频路由为扬声器。
  • +
  • :禁用设备状态监测,音频路由为听筒。
  • +
+
+
+ + enableSpeaker + 设置是否启用扬声器或听筒: +
    +
  • :启用设备状态监测,音频路由为扬声器。
  • +
  • :关闭设备状态监测,音频路由为听筒。
  • +
+
+
+ + enabled + 是否启用扬声器: +
    +
  • :启用设备状态监测,音频路由为扬声器。
  • +
  • :关闭设备状态监测,音频路由为听筒。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setextensionproperty.dita b/dita/RTC-AIDOC/API/api_irtcengine_setextensionproperty.dita new file mode 100644 index 00000000000..b85cff210a3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setextensionproperty.dita @@ -0,0 +1,147 @@ + + + + <ph keyref="setExtensionProperty"/> + 设置插件的属性。设置扩展组件的属性。设置扩展属性。设置扩展属性。 + + + + + + + + +
+

+ virtual int setExtensionProperty(const char* provider, const char* extension, const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; + public abstract int setExtensionProperty(String provider, String extension, ExtensionInfo extensionInfo, String key, String value); + - (int)setExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key + value:(NSString * _Nonnull)value NS_SWIFT_NAME(setExtensionPropertyWithVendor(_:extension:key:value:)); + - (int)setExtensionPropertyWithVendor:(NSString * _Nonnull)provider + extension:(NSString * _Nonnull)extension + key:(NSString * _Nonnull)key + value:(NSString * _Nonnull)value NS_SWIFT_NAME(setExtensionPropertyWithVendor(_:extension:key:value:)); +

+
+
+

启用扩展组件后,可以调用该方法设置其属性。

+

启用扩展后,可以调用该方法设置扩展的属性。

+

启用扩展后,可以调用该方法设置扩展的属性。

+ 如果你需要为多个扩展组件设置属性,需要多次调用该方法。 + 如果需要为多个扩展设置属性,需要多次调用该方法。 + 如果需要为多个扩展设置属性,需要多次调用该方法。 +
+
+ 调用时机 +

在调用 方法之后调用该方法。

+

在调用 方法之后调用。

+

在调用 方法之后调用。

+
+
+ 参数 + + + provider + 插件提供方名称。 + + + extension + 插件名称。 + + + key + 插件属性的键名。 + + + value + 插件属性键对应的值。 + + + type + 插件的来源类型。详见 + + + provider + 扩展提供方的名称,例如声网。 + + + extension + 扩展的名称,例如声网美颜扩展 agora.beauty + + + extensionInfo + 扩展信息。 + + + key + 扩展属性的键名。 + + + value + 扩展属性的值,采用 JSON 格式。 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + key + 扩展属性的键。 + + + value + 扩展属性键对应的值。 + + + provider + 扩展提供方的名称。 + + + extension + 扩展的名称。 + + + key + 扩展属性的键。 + + + value + 扩展属性键对应的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setextensionproviderproperty.dita b/dita/RTC-AIDOC/API/api_irtcengine_setextensionproviderproperty.dita new file mode 100644 index 00000000000..02efb5e73e1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setextensionproviderproperty.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="setExtensionProviderProperty"/> + 设置扩展提供方的属性。设置扩展提供方的属性。设置扩展提供方的属性。设置扩展提供方的属性。 + + + + + + + + +
+

+ virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0; + public abstract int setExtensionProviderProperty(String provider, String key, String value); + - (int)setExtensionProviderPropertyWithVendor:(NSString * _Nonnull)provider + key:(NSString * _Nonnull)key + value:(NSString * _Nonnull)value NS_SWIFT_NAME(setExtensionProviderPropertyWithVendor(_:key:value:)); + - (int)setExtensionProviderPropertyWithVendor:(NSString * _Nonnull)provider + key:(NSString * _Nonnull)key + value:(NSString * _Nonnull)value NS_SWIFT_NAME(setExtensionProviderPropertyWithVendor(_:key:value:)); +

+
+
+

调用该方法可设置扩展提供方的属性,并根据提供方的类型初始化相关参数。

+

你可以调用该方法根据扩展提供方的类型初始化相关参数。

+

你可以调用此方法根据扩展提供方的类型初始化相关参数。

+

你可以调用此方法根据扩展提供方的类型初始化相关参数。

+ 如果你想为多个扩展设置扩展提供方的属性,需要多次调用该方法。 + 如果你想为多个扩展设置扩展提供方的属性,需要多次调用该方法。 + 如果你想为多个扩展设置扩展提供方的属性,需要多次调用此方法。 + 如果你想为多个扩展设置扩展提供方的属性,需要多次调用此方法。 +
+
+ 调用时机 +

在调用 之前,调用 之后。

+

在调用 之前, 之后调用该方法。

+

在调用 之前,且在调用 之后调用此方法。

+

在调用 之前,且在调用 之后调用此方法。

+
+
+ 参数 + + + provider + 扩展提供方的名称。 + + + key + 扩展属性的键名。 + + + value + 扩展属性键对应的值。 + + + provider + 扩展提供方的名称。 + + + key + 扩展属性的键名。 + + + value + 扩展属性键对应的值。 + + + provider + 扩展提供方的名称。 + + + key + 扩展的键名。 + + + value + 扩展键的值。 + + + provider + 扩展提供方的名称。 + + + key + 扩展的键名。 + + + value + 扩展键的值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosink.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosink.dita new file mode 100644 index 00000000000..78a333cbed3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosink.dita @@ -0,0 +1,131 @@ + + + + <ph keyref="setExternalAudioSink"/> + 设置外部音频渲染。设置外部音频渲染器。设置外部音频渲染。 + + + + + + + + +
+

+ - (void)enableExternalAudioSink:(BOOL)enabled + sampleRate:(NSUInteger)sampleRate + channels:(NSUInteger)channels NS_SWIFT_NAME(enableExternalAudioSink(_:sampleRate:channels:)); + public abstract int setExternalAudioSink(boolean enabled, int sampleRate, int channels); + - (void)enableExternalAudioSink:(BOOL)enabled + sampleRate:(NSUInteger)sampleRate + channels:(NSUInteger)channels NS_SWIFT_NAME(enableExternalAudioSink(_:sampleRate:channels:)); +

+
+
+

启用外部音频渲染后,你可以调用 方法拉取远端音频帧,应用程序可以处理远端音频,并使用期望的音效进行播放。

+

启用外部音频渲染器后,你可以调用 pullPlaybackAudioFrame 拉取远端音频帧,应用可以处理远端音频,并使用你希望的音效进行播放。

+

启用外部音频渲染后,你可以调用 方法拉取远端音频帧,应用程序可以处理远端音频,并使用期望的音效进行播放。

+ 启用外部音频渲染后,应用程序将无法从 onPlaybackAudioFrame: 回调中获取任何音频数据。 + 启用外部音频渲染器后,应用将无法从 回调中获取任何音频数据。 + 启用外部音频渲染后,应用程序将无法从 onPlaybackAudioFrame: 回调中获取任何音频数据。 +
+
+ 适用场景 +

适用于需要使用外部音频数据进行播放的场景。

+
+
+ 调用时机 +

该方法需要在加入频道前调用。

+

请在加入频道前调用该方法。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + enabled + 是否启用外部音频渲染: +
    +
  • :启用外部音频渲染。
  • +
  • :(默认)不启用外部音频渲染。
  • +
+
+
+ + sampleRate + 外部音频渲染的采样率(Hz),可设置为 16000、32000、44100 或 48000。 + + + channels + 外部音频渲染的声道数: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + enabled + 是否启用外部音频渲染器: +
    +
  • :启用外部音频渲染器。
  • +
  • :(默认)关闭外部音频渲染器。
  • +
+
+
+ + sampleRate + 外部音频渲染器的采样率(Hz),可设置为以下值: +
    +
  • 16000
  • +
  • 32000
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + channels + 外部音频渲染器的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + enabled + 是否启用外部音频渲染: +
    +
  • :启用外部音频渲染。
  • +
  • :(默认)不启用外部音频渲染。
  • +
+
+
+ + sampleRate + 外部音频渲染的采样率(Hz),可设置为 16000、32000、44100 或 48000。 + + + channels + 外部音频渲染的声道数: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource.dita new file mode 100644 index 00000000000..87978b77e81 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="setExternalAudioSource"/> + 设置外部音频源。设置外部音频源。设置外部音频源。 + + + + + + + + +
+

+ - (int)setExternalAudioSource:(BOOL)enabled + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels NS_SWIFT_NAME(setExternalAudioSource(_:sampleRate:channels:)) __deprecated_msg("use createCustomAudioTrack:config: instead."); + public abstract int setExternalAudioSource(boolean enabled, int sampleRate, int channels); + - (int)setExternalAudioSource:(BOOL)enabled + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels NS_SWIFT_NAME(setExternalAudioSource(_:sampleRate:channels:)) __deprecated_msg("use createCustomAudioTrack:config: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

在调用 joinChannelByToken 之前调用该方法。

+

在调用 joinChannelstartPreview 之前调用该方法。

+

在调用 joinChannelByToken 之前调用该方法。

+
+
+ 参数 + + + enabled + +
    +
  • :启用外部音频源。
  • +
  • :(默认)禁用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + enabled + 是否启用外部音频源: +
    +
  • :启用外部音频源。
  • +
  • :(默认)禁用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为以下值: +
    +
  • 8000
  • +
  • 16000
  • +
  • 32000
  • +
  • 44100
  • +
  • 48000。
  • +
+
+
+ + channels + 外部音频源的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + enabled + +
    +
  • :启用外部音频源。
  • +
  • :(默认)禁用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource2.dita new file mode 100644 index 00000000000..83f7551ebf6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalaudiosource2.dita @@ -0,0 +1,196 @@ + + + + <ph keyref="setExternalAudioSource2"/> + 设置外部音频源参数。设置外部音频源参数。设置外部音频源参数。 + + + + + + + + +
+

+ - (int)setExternalAudioSource:(BOOL)enabled + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + localPlayback:(BOOL)localPlayback + publish:(BOOL)publish NS_SWIFT_NAME(setExternalAudioSource(_:sampleRate:channels:localPlayback:publish:)) __deprecated_msg("use createCustomAudioTrack:config: instead."); + public abstract int setExternalAudioSource(boolean enabled, int sampleRate, int channels, boolean localPlayback, boolean publish); + - (int)setExternalAudioSource:(BOOL)enabled + sampleRate:(NSInteger)sampleRate + channels:(NSInteger)channels + localPlayback:(BOOL)localPlayback + publish:(BOOL)publish NS_SWIFT_NAME(setExternalAudioSource(_:sampleRate:channels:localPlayback:publish:)) __deprecated_msg("use createCustomAudioTrack:config: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 调用时机 +

请你在加入频道前调用该方法。

+

在加入频道前调用该方法。

+

请你在加入频道前调用该方法。

+
+
+ 参数 + + + enabled + 是否启用外部音频源: +
    +
  • :启用外部音频源。
  • +
  • :(默认)不启用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + localPlayback + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + publish + 是否向远端用户发布音频: +
    +
  • :(默认)发布音频到远端用户。
  • +
  • :不发布音频到远端用户。
  • +
+
+
+ + enabled + 是否启用外部音频源: +
    +
  • :启用外部音频源。
  • +
  • :(默认)不启用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为以下值: +
    +
  • 8000
  • +
  • 16000
  • +
  • 32000
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + channels + 外部音频源的声道数,可设置为以下值: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + localPlayback + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + publish + 是否向远端用户发布音频: +
    +
  • :(默认)发布音频到远端用户。
  • +
  • :不发布音频到远端用户。
  • +
+
+
+ + enabled + 是否启用外部音频源: +
    +
  • :启用外部音频源。
  • +
  • :(默认)不启用外部音频源。
  • +
+
+
+ + sampleRate + 外部音频源的采样率(Hz),可设置为 8000、16000、32000、44100 或 48000。 + + + channels + 外部音频源的声道数,可设置为 1(单声道)或 2(立体声)。 + + + localPlayback + 是否播放外部音频源: +
    +
  • :播放外部音频源。
  • +
  • :(默认)不播放外部音频源。
  • +
+
+
+ + publish + 是否向远端用户发布音频: +
    +
  • :(默认)发布音频到远端用户。
  • +
  • :不发布音频到远端用户。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalmediaprojection.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalmediaprojection.dita new file mode 100644 index 00000000000..9409a704a7e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalmediaprojection.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="setExternalMediaProjection"/> + 配置 SDK 外部的 MediaProjection 以采集屏幕视频流。配置 SDK 外部的 MediaProjection 以采集屏幕视频流。 + + + + + + + + +
+

+ virtual int setExternalMediaProjection(void* mediaProjection) = 0; + public abstract int setExternalMediaProjection(MediaProjection mediaProjection); +

+
+
+

调用该方法后,你设置的外部 MediaProjection 将替代 SDK 申请的 MediaProjection 用于采集屏幕视频流。当屏幕共享停止或 被销毁时,SDK 会自动释放该 MediaProjection

+

调用该方法成功后,设置的外部 MediaProjection 将替代 SDK 申请的 MediaProjection 用于采集屏幕视频流。当屏幕共享停止或 被销毁时,SDK 会自动释放该 MediaProjection

+ 调用该方法前,你必须先申请 [MediaProjection](https://developer.android.com/reference/android/media/projection/MediaProjection) 权限。该方法仅适用于 Android 平台。 + 在调用该方法前,必须先申请 [MediaProjection](https://developer.android.com/reference/android/media/projection/MediaProjection) 权限。 +
+
+ 适用场景 +

如果你已申请到 MediaProjection,可以直接使用你自己的 MediaProjection,而无需使用 SDK 申请的对象。适用场景包括: +

    +
  • 在定制系统设备上,避免系统弹窗(如用户授权采集屏幕)并直接开始采集屏幕视频流。
  • +
  • 在涉及一个或多个子进程的屏幕共享流程中,避免在子进程中创建对象时可能出现的错误,从而防止屏幕采集失败。
  • +
该方法适用于多频道场景。

+
+
+ 调用时机 +

在调用 startScreenCapture 之后调用该方法。

+

在调用 之后调用该方法。

+
+
+ 参数 + + + mediaProjection + 用于采集屏幕视频流的 MediaProjection 对象。 + + + mediaProjection + 用于采集屏幕视频流的对象。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalremoteeglcontext.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalremoteeglcontext.dita new file mode 100644 index 00000000000..4bbd158e5c5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalremoteeglcontext.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="setExternalRemoteEglContext"/> + 设置用于渲染远端视频流的 EGL 上下文。 + + + + + + + + +
+

+ public abstract int setExternalRemoteEglContext(Object eglContext); +

+
+
+

该方法用于替换 SDK 默认的远端 EGL 上下文,便于你自行管理 EGL 上下文。当引擎销毁时,SDK 会自动释放该上下文。

+
+
+ 适用场景 +

该方法适用于使用自定义渲染方式(如 Texture 格式)替代 SDK 默认渲染方式渲染远端视频帧的场景。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+
+
+ 参数 + + + eglContext + 用于渲染远端视频流的 EGL 上下文。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setexternalvideosource.dita b/dita/RTC-AIDOC/API/api_irtcengine_setexternalvideosource.dita new file mode 100644 index 00000000000..d42a40df0dc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setexternalvideosource.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="setExternalVideoSource"/> + 配置外部视频源。配置外部视频源。配置外部视频源。 + + + + + + + + +
+

+ - (void)setExternalVideoSource:(BOOL)enable useTexture:(BOOL)useTexture sourceType:(AgoraExternalVideoSourceType)sourceType NS_SWIFT_NAME(setExternalVideoSource(_:useTexture:sourceType:)); + public abstract int setExternalVideoSource(boolean enable, boolean useTexture, Constants.ExternalVideoSourceType sourceType); + - (void)setExternalVideoSource:(BOOL)enable useTexture:(BOOL)useTexture sourceType:(AgoraExternalVideoSourceType)sourceType NS_SWIFT_NAME(setExternalVideoSource(_:useTexture:sourceType:)); +

+
+
+

调用该方法启用外部视频源后,可以调用 方法将外部视频数据推送到 SDK。

+

调用该方法后,可以调用 pushExternalVideoFrameById 向 SDK 推送外部视频数据。

+

调用该方法启用外部视频源后,可以调用 方法将外部视频数据推送到 SDK。

+ 频道内不支持动态切换视频源。如需从外部视频源切换为内部视频源,必须先离开频道,调用该方法关闭外部视频源,再重新加入频道。 + 频道内不支持动态切换视频源。若需从外部视频源切换为内部视频源,必须先离开频道,调用该方法关闭外部视频源,再重新加入频道。 + 频道内不支持动态切换视频源。如需从外部视频源切换为内部视频源,必须先离开频道,调用该方法关闭外部视频源,再重新加入频道。 +
+
+ 调用时机 +

该方法需要在加入频道前调用。

+

请在加入频道前调用该方法。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + enable + 是否使用外部视频源: +
    +
  • :使用外部视频源,SDK 准备接收外部视频帧。
  • +
  • :(默认)不使用外部视频源。
  • +
+
+
+ + useTexture + 是否使用 Texture 格式的外部视频帧: +
    +
  • :使用 Texture 格式的外部视频帧。
  • +
  • :(默认)不使用 Texture 格式的外部视频帧。
  • +
+
+
+ + sourceType + 外部视频帧的类型,详见 + + + enable + 是否使用外部视频源: +
    +
  • :使用外部视频源,SDK 会准备接收外部视频帧。
  • +
  • :(默认)不使用外部视频源。
  • +
+
+
+ + useTexture + 是否使用 Texture 格式的外部视频帧: +
    +
  • :使用 Texture 格式的外部视频帧。
  • +
  • :(默认)不使用 Texture 格式的外部视频帧。
  • +
+
+
+ + sourceType + 外部视频帧是否为编码格式,详见 + + + enable + 是否使用外部视频源: +
    +
  • :使用外部视频源,SDK 准备接收外部视频帧。
  • +
  • :(默认)不使用外部视频源。
  • +
+
+
+ + useTexture + 是否使用 Texture 格式的外部视频帧: +
    +
  • :使用 Texture 格式的外部视频帧。
  • +
  • :(默认)不使用 Texture 格式的外部视频帧。
  • +
+
+
+ + sourceType + 外部视频帧的类型,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions.dita new file mode 100644 index 00000000000..acf4f425cda --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions.dita @@ -0,0 +1,184 @@ + + + + <ph keyref="setFaceShapeAreaOptions"/> + 设置面部区域的图像增强选项并指定媒体源。设置面部区域的图像增强选项并指定媒体源。设置美颜增强的面部区域选项。设置美颜增强的面部区域选项。 + + + + + + + + +
+

+ virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setFaceShapeAreaOptions(FaceShapeAreaOptions options, Constants.MediaSourceType sourceType); + - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeAreaOptions(_:sourceType:)); + - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeAreaOptions(_:sourceType:)); +

+
+
+

如果通过 实现的预设美颜特效无法满足预期效果,你可以使用该方法设置美颜区域选项,单独微调面部的每个部分,从而实现更精细的美颜效果。

+

如果通过 setFaceShapeBeautyOptions 方法实现的预设美颜特效无法满足预期,你可以使用此方法设置美颜区域选项,单独微调面部的每个部分,从而实现更精细的美颜效果。该方法与 类似,区别在于该方法支持指定应用美颜特效的媒体源。

+

如果通过 方法实现的预设美型效果不符合预期,你可以使用此方法设置美颜区域选项,单独微调面部的每个部分,从而实现更精细的美颜效果。

+

如果通过 方法实现的预设美型效果不符合预期,你可以使用此方法设置美颜区域选项,单独微调面部的每个部分,从而实现更精细的美颜效果。

+ +
    +
  • 该方法仅适用于 Android 4.4 或更高版本。
  • +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法仅适用于 Android 4.4 或更高版本。
  • +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+
+
+ 调用时机 +

在调用 之后调用该方法。

+

在调用 setFaceShapeBeautyOptions 后调用此方法。

+

在调用 setFaceShapeBeautyOptions 方法之后调用此方法。

+

在调用 setFaceShapeBeautyOptions 方法之后调用此方法。

+
+
+ 参数 + + + options + 面部增强区域,详见 + + + type + 媒体源类型,详见 。 + 该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + options + 面部增强区域,详见 + + + sourceType + 应用滤镜特效的媒体源类型,详见 。 + 在此方法中,该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + options + 面部增强区域,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + options + 面部增强区域,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强的要求。声网建议更换为高性能设备。
      • +
      • 当前设备版本低于 Android 4.4,不支持该功能。声网建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强的要求。建议更换为高性能设备。
      • +
      • 当前设备版本低于 Android 4.4,不支持此功能。建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions2.dita new file mode 100644 index 00000000000..7ebf5491e62 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapeareaoptions2.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="setFaceShapeAreaOptions2"/> + 设置美颜增强的面部区域选项。设置美颜增强的面部区域选项。设置美颜增强的面部区域选项。 + + + + + + + + +
+

+ - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options NS_SWIFT_NAME(setFaceShapeAreaOptions(_:)); + public abstract int setFaceShapeAreaOptions(FaceShapeAreaOptions options); + - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options NS_SWIFT_NAME(setFaceShapeAreaOptions(_:)); +

+
+
+

如果通过 setFaceShapeBeautyOptions: 方法设置的预设美型特效无法满足预期,可以使用此方法设置美颜区域选项,单独微调面部的每个部分,实现更精细的美颜效果。

+

你可以调用该方法设置面部区域选项,单独微调面部的每个部分,从而实现更精细的美颜效果。

+

如果通过 setFaceShapeBeautyOptions: 方法设置的预设美型特效无法满足预期,可以使用此方法设置美颜区域选项,单独微调面部的每个部分,实现更精细的美颜效果。

+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法仅适用于 Android 4.4 或更高版本。
  • +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+
+
+ 调用时机 +

在调用 setFaceShapeBeautyOptions: 方法之后调用。

+

请在调用 setFaceShapeBeautyOptions 方法之后调用此方法。

+

在调用 setFaceShapeBeautyOptions: 方法之后调用。

+
+
+ 参数 + + + options + 面部增强区域。详见 + + + options + 面部增强区域选项,详见 + + + options + 面部增强区域。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能的原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求,建议你更换为高性能设备。
      • +
      • 当前设备版本低于 Android 4.4,不支持此功能,建议你更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能的原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions.dita new file mode 100644 index 00000000000..72b9a4dc8fd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions.dita @@ -0,0 +1,215 @@ + + + + <ph keyref="setFaceShapeBeautyOptions"/> + 设置美型选项并指定媒体源。设置美型效果并指定应用的媒体源。设置美型选项并指定媒体源。设置美型选项并指定媒体源。 + + + + + + + + +
+

+ virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setFaceShapeBeautyOptions(boolean enabled, FaceShapeBeautyOptions options, Constants.MediaSourceType sourceType); + - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:sourceType:)); + - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:sourceType:)); +

+
+
+

调用该方法可以通过预设参数一次性调整多个面部部位,实现瘦脸、放大眼睛、瘦鼻等轻度美颜效果,并支持整体调节美型强度。

+

该方法可通过预设参数一次性调整面部多个部位,实现瘦脸、放大眼睛、瘦鼻等轻度美型效果,并支持整体调节美型强度。该方法与 功能类似,区别在于该方法支持指定应用美型特效的媒体源。

+

调用该方法可以通过预设参数一次性修改面部多个部位,实现瘦脸、放大眼睛、瘦鼻等轻度美型效果,并支持整体调整美型强度。该方法支持指定应用美颜特效的媒体源。

+

调用该方法可以通过预设参数一次性修改面部多个部位,实现瘦脸、放大眼睛、瘦鼻等轻度美型效果,并支持整体调整美型强度。该方法支持指定应用美颜特效的媒体源。

+ 该方法仅适用于 Android 4.4 或更高版本。 +该方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。 +该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。 + +
    +
  • 此方法仅适用于 Android 4.4 或更高版本。
  • +
  • 此方法依赖图像增强动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,功能将无法正常启用。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+
+
+ 调用时机 +

在调用 方法之后调用该方法。

+

在调用 后调用此方法。

+

在调用 后调用该方法。

+

在调用 后调用该方法。

+
+
+ 参数 + + + enabled + 是否启用美型特效: +
    +
  • :启用美型特效。
  • +
  • :(默认)关闭美型特效。
  • +
+
+
+ + options + 美型风格选项,详见 + + + type + 要应用滤镜特效的媒体源类型,详见 。 +该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+ + enabled + 是否启用美型特效: +
    +
  • :启用美型特效。
  • +
  • :(默认)关闭美型特效。
  • +
+
+
+ + options + 美型风格选项,详见 + + + sourceType + 应用美型特效的媒体源类型,详见 。 + 该参数仅支持以下两种设置: +
    +
  • 使用摄像头采集本地视频时,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 使用自定义视频源时,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否开启美型特效: +
    +
  • :开启美型特效。
  • +
  • :(默认)关闭美型特效。
  • +
+
+
+ + options + 美型风格选项,详见 + + + sourceType + 要应用滤镜特效的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enable + 是否开启美型特效: +
    +
  • :开启美型特效。
  • +
  • :(默认)关闭美型特效。
  • +
+
+
+ + options + 美型风格选项,详见 + + + sourceType + 要应用滤镜特效的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强要求。声网建议更换为高性能设备。
      • +
      • 当前设备版本低于 Android 4.4,不支持该功能。声网建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强要求,建议更换为高性能设备。
      • +
      • 当前设备系统版本低于 Android 4.4,建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能原因包括: +
        +
      • 当前设备能力不满足图像增强要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions2.dita new file mode 100644 index 00000000000..a72d40464eb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfaceshapebeautyoptions2.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="setFaceShapeBeautyOptions2"/> + 设置美型选项。设置美型选项。设置美型选项。 + + + + + + + + +
+

+ - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:)); + public abstract int setFaceShapeBeautyOptions(boolean enabled, FaceShapeBeautyOptions options); + - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:)); +

+
+
+

调用该方法可以调整面部的特定部位,实现瘦脸、放大眼睛和瘦鼻等美型效果。

+

调用该方法可以调整面部的特定部位,实现瘦脸、放大眼睛和瘦鼻等美型效果。

+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,则无法正常启用此功能。
  • +
  • 此功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法仅适用于 Android 4.4 或更高版本。
  • +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,则无法正常启用此功能。
  • +
  • 此功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+
+
+ 调用时机 +

在调用 方法之后调用。

+

在调用 方法之后调用此方法。

+

在调用 方法之后调用。

+
+
+ 参数 + + + enable + 是否启用美型效果: +
    +
  • :启用美型效果。
  • +
  • :(默认)关闭美型效果。
  • +
+
+
+ + options + 美型风格选项,详见 + + + enabled + 是否启用美型效果: +
    +
  • :启用美型效果。
  • +
  • :(默认)关闭美型效果。
  • +
+
+
+ + options + 美型风格选项,详见 + + + enable + 是否启用美型效果: +
    +
  • :启用美型效果。
  • +
  • :(默认)关闭美型效果。
  • +
+
+
+ + options + 美型风格选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能的原因包括: +
        +
      • 当前设备的图像增强能力不满足要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持该功能。可能的原因包括: +
        +
      • 当前设备的能力不满足图像增强的要求。建议更换为高性能设备。
      • +
      • 当前设备版本低于 Android 4.4,不支持该功能。建议更换设备或升级操作系统。
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -4:当前设备不支持此功能。可能的原因包括: +
        +
      • 当前设备的图像增强能力不满足要求。声网建议你更换为高性能设备。
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions.dita new file mode 100644 index 00000000000..d584c6196e6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions.dita @@ -0,0 +1,196 @@ + + + + <ph keyref="setFilterEffectOptions"/> + 设置滤镜特效选项并指定媒体源。设置滤镜特效参数并指定媒体源。设置滤镜特效参数并指定媒体源。设置滤镜特效参数并指定媒体源。 + + + + + + + + +
+

+ virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setFilterEffectOptions(boolean enabled, FilterEffectOptions options, Constants.MediaSourceType sourceType); + - (int)setFilterEffectOptions:(BOOL)enable options:(AgoraFilterEffectOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFilterEffectOptions(_:options:sourceType:)); + - (int)setFilterEffectOptions:(BOOL)enable options:(AgoraFilterEffectOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFilterEffectOptions(_:options:sourceType:)); +

+
+
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+
+

该方法允许你设置滤镜特效参数,并指定滤镜特效应用的媒体源。

+

该方法与 方法都用于设置滤镜特效参数。不同之处在于,该方法允许你指定滤镜特效应用的媒体源。

+

该方法与 方法都用于设置滤镜特效参数。不同之处在于,该方法允许你指定滤镜特效应用的媒体源。

+ 该方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用此功能。 +该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。 + +
    +
  • 该方法仅适用于 Android 5.0 或更高版本。
  • +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,该功能将无法正常启用。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,该功能将无法正常启用。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,该功能将无法正常启用。
  • +
  • 该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+
+
+ 调用时机 +

在调用 方法之后调用本方法。

+

在调用 之后调用该方法。

+

在调用 后调用该方法。

+

在调用 后调用该方法。

+
+
+ 参数 + + + enabled + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效选项。详见 + + + type + 应用滤镜特效的媒体源类型。详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+ + enabled + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效参数。详见 + + + sourceType + 滤镜特效应用的媒体源类型。详见 。 + 该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效参数,详见 + + + sourceType + 滤镜特效应用的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enable + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效参数,详见 + + + sourceType + 滤镜特效应用的媒体源类型,详见 。 +
    +
  • 如果使用摄像头采集本地视频,使用默认值 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果使用自定义视频源,设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions2.dita new file mode 100644 index 00000000000..1972b276559 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setfiltereffectoptions2.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="setFilterEffectOptions2"/> + 设置滤镜特效选项。设置滤镜特效选项。设置滤镜特效选项。 + + + + + + + + +
+

+ - (int)setFilterEffectOptions:(BOOL)enable options:(AgoraFilterEffectOptions* _Nullable)options NS_SWIFT_NAME(setFilterEffectOptions(_:options:)); + public abstract int setFilterEffectOptions(boolean enabled, FilterEffectOptions options); + - (int)setFilterEffectOptions:(BOOL)enable options:(AgoraFilterEffectOptions* _Nullable)options NS_SWIFT_NAME(setFilterEffectOptions(_:options:)); +

+
+
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+
+

在调用 方法之后调用本方法。

+

在调用 方法之后调用本方法。

+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用此功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+ 该方法仅适用于 Android 5.0 或更高版本。该方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。该功能对设备性能要求较高。调用该方法时,SDK 会自动检测当前设备的能力。 + +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用此功能。
  • +
  • 此功能对设备性能要求较高。调用此方法时,SDK 会自动检测当前设备的性能能力。
  • +
+
+
+
+ 调用时机 +

在调用 方法之后调用。

+

在调用 方法之后调用该方法。

+

在调用 方法之后调用。

+
+
+ 参数 + + + enable + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效选项,详见 + + + enabled + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效选项。详见 + + + enable + 是否启用滤镜特效: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + options + 滤镜特效选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqparameters.dita new file mode 100644 index 00000000000..53bc957300b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqparameters.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="setHeadphoneEQParameters"/> + 设置耳机均衡器的低频和高频参数。设置耳机均衡器的低频和高频参数。设置耳机均衡器的低频和高频参数。设置耳机均衡器的低频和高频参数。 + + + + + + + + +
+

+ virtual int setHeadphoneEQParameters(int lowGain, int highGain) = 0; + public abstract int setHeadphoneEQParameters(int lowGain, int highGain); + - (int)setHeadphoneEQParameters:(int)lowGain highGain:(int)highGain NS_SWIFT_NAME(setHeadphoneEQParameters(_:highGain:)); + - (int)setHeadphoneEQParameters:(int)lowGain highGain:(int)highGain NS_SWIFT_NAME(setHeadphoneEQParameters(_:highGain:)); +

+
+
+

在空间音效场景中,如果调用 后未达到预期的耳机均衡效果,可以通过调用该方法进一步调整。

+

如果调用 后未达到预期效果,可以调用 进一步调整耳机均衡器的低频和高频参数。

+

如果你调用 方法后未达到预设的耳机均衡效果,可以通过调用该方法进一步调整耳机均衡效果。

+

如果你调用 方法后未达到预设的耳机均衡效果,可以通过调用该方法进一步调整耳机均衡效果。

+
+
+ 参数 + + + lowGain + 耳机均衡器的低频参数,取值范围为 [-10, 10]。值越大,声音越浑厚。 + + + highGain + 耳机均衡器的高频参数,取值范围为 [-10, 10]。值越大,声音越清晰。 + + + lowGain + 耳机均衡器的低频参数,取值范围为 [-10, 10]。值越大,声音越深沉。 + + + highGain + 耳机均衡器的高频参数,取值范围为 [-10, 10]。值越大,声音越清晰。 + + + lowGain + 耳机均衡器的低频参数。取值范围为 [-10, 10]。值越大,声音越浑厚。 + + + highGain + 耳机均衡器的高频参数。取值范围为 [-10, 10]。值越大,声音越清晰。 + + + lowGain + 耳机均衡器的低频参数。取值范围为 [-10, 10]。值越大,声音越浑厚。 + + + highGain + 耳机均衡器的高频参数。取值范围为 [-10, 10]。值越大,声音越清晰。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqpreset.dita b/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqpreset.dita new file mode 100644 index 00000000000..5fc8b55a373 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setheadphoneeqpreset.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="setHeadphoneEQPreset"/> + 设置预设的耳机均衡效果。设置预设的耳机均衡器效果。设置预设的耳机均衡效果。设置预设的耳机均衡效果。 + + + + + + + + +
+

+ virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset) = 0; + public abstract int setHeadphoneEQPreset(int preset); + - (int)setHeadphoneEQPreset:(AgoraHeadphoneEQPreset)preset NS_SWIFT_NAME(setHeadphoneEQPreset(_:)); + - (int)setHeadphoneEQPreset:(AgoraHeadphoneEQPreset)preset NS_SWIFT_NAME(setHeadphoneEQPreset(_:)); +

+
+
+

该方法主要用于空间音效场景。你可以选择预设的耳机均衡器来聆听音频,以获得预期的音频体验。

+

该方法主要用于空间音效场景中。你可以选择预设的耳机均衡器来聆听音频,以实现预期的音频体验。

+

该方法主要用于空间音效场景。你可以选择预设的耳机均衡器来聆听音频,以实现预期的音频体验。

+

该方法主要用于空间音效场景。你可以选择预设的耳机均衡器来聆听音频,以实现预期的音频体验。

+ 如果你使用的耳机本身已经具有良好的均衡效果,调用该方法可能不会带来显著提升,甚至可能降低体验。 + 如果你使用的耳机本身已经具有良好的均衡效果,调用该方法可能不会带来显著提升,甚至可能降低体验。 + 如果你使用的耳机本身已经具有良好的均衡效果,调用该方法可能不会带来显著提升,甚至可能降低体验。 + 如果你使用的耳机本身已经具有良好的均衡效果,调用该方法可能不会带来显著提升,甚至可能降低体验。 +
+
+ 参数 + + + preset + 预设的耳机均衡效果,详见 + + + preset + 预设的耳机均衡器效果: +
    +
  • HEADPHONE_EQUALIZER_OFF:关闭耳机均衡器,听到原始音频。
  • +
  • HEADPHONE_EQUALIZER_OVEREAR:为头戴式耳机使用均衡器。
  • +
  • HEADPHONE_EQUALIZER_INEAR:为入耳式耳机使用均衡器。
  • +
+
+
+ + preset + 预设的耳机均衡效果,详见 + + + preset + 预设的耳机均衡效果,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setinearmonitoringvolume.dita b/dita/RTC-AIDOC/API/api_irtcengine_setinearmonitoringvolume.dita new file mode 100644 index 00000000000..0679d4da492 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setinearmonitoringvolume.dita @@ -0,0 +1,113 @@ + + + + <ph keyref="setInEarMonitoringVolume"/> + 设置耳返音量。设置耳返音量。设置耳返音量。设置耳返音量。 + + + + + + + + +
+

+ virtual int setInEarMonitoringVolume(int volume) = 0; + public abstract int setInEarMonitoringVolume(int volume); + - (int)setInEarMonitoringVolume:(NSInteger)volume NS_SWIFT_NAME(setInEarMonitoringVolume(_:)); + - (int)setInEarMonitoringVolume:(NSInteger)volume NS_SWIFT_NAME(setInEarMonitoringVolume(_:)); +

+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + volume + 用户的音量,取值范围为 [0, 400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量,取值范围为 [0, 400]。0 表示静音,100(默认)表示原始音量,400 表示原始音量的四倍(将音频信号放大四倍)。 + + + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + volume + 用户的音量。取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数设置不合法,例如耳返音量超出有效范围(小于 0 或大于 400)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数设置不合法,例如耳返音量超出有效范围(小于 0 或大于 400)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数设置不合法,例如耳返音量超出有效范围(小于 0 或大于 400)。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数设置不合法,例如耳返音量超出有效范围(小于 0 或大于 400)。
    • +
    +
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalaccesspoint.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalaccesspoint.dita new file mode 100644 index 00000000000..24838195ff4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalaccesspoint.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="setLocalAccessPoint"/> + 配置连接到声网私有媒体服务器接入模块。配置连接到声网私有媒体服务器接入模块。配置连接到声网私有媒体服务器接入模块。配置连接到声网私有媒体服务器接入模块。 + + + + + + + + +
+

+ virtual int setLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0; + public abstract int setLocalAccessPoint(LocalAccessPointConfiguration config); + - (int)setLocalAccessPoint:(AgoraLocalAccessPointConfiguration* _Nonnull)config NS_SWIFT_NAME(setLocalAccessPoint(withConfig:)); + - (int)setLocalAccessPoint:(AgoraLocalAccessPointConfiguration* _Nonnull)config NS_SWIFT_NAME(setLocalAccessPoint(withConfig:)); +

+
+
+

成功部署声网私有媒体服务器并在内网客户端集成 4.x RTC SDK 后,你可以调用该方法指定本地接入点,并将接入模块分配给 SDK。

+

成功部署声网混合云解决方案并将 4.x RTC SDK 集成到内网客户端后,可以调用该方法指定本地接入点,并将接入模块分配给 SDK。

+

成功部署声网私有媒体服务器并在内网客户端集成 4.x RTC SDK 后,你可以调用该方法指定本地接入点,并将接入模块分配给 SDK。

+

成功部署声网私有媒体服务器并在内网客户端集成 4.x RTC SDK 后,你可以调用该方法指定本地接入点,并将接入模块分配给 SDK。

+ 该方法仅在部署声网混合云解决方案后生效。你可以联系销售了解详情并部署声网混合云。 + 该方法仅在部署声网混合云解决方案后生效。你可以联系销售了解并部署声网混合云。 + 该方法仅在部署声网混合云方案后生效。你可以联系销售了解更多信息并部署声网混合云。 + 该方法仅在部署声网混合云方案后生效。你可以联系销售了解更多信息并部署声网混合云。 +
+
+ 调用时机 +

该方法必须在加入频道前调用。

+

必须在加入频道前调用该方法。

+

你必须在加入频道前调用该方法。

+

你必须在加入频道前调用该方法。

+
+
+ 参数 + + + config + 本地接入点配置。详见 + + + config + 本地接入点配置。详见 + + + config + 本地接入点配置,详见 + + + config + 本地接入点配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。详见错误码获取详细信息和排查建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。详见错误码获取详细信息和排查建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode1.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode1.dita new file mode 100644 index 00000000000..a4dcdecb3b9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode1.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="setLocalRenderMode1"/> + 更新本地视频画面的显示模式。设置本地视频的显示模式。设置本地视频显示模式。设置本地视频显示模式。 + + + + + + + + +
+

+ virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated = 0; + public abstract int setLocalRenderMode(int renderMode) + - (int)setLocalRenderMode:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode NS_SWIFT_NAME(setLocalRenderMode(_:mode:)) __deprecated; + - (int)setLocalRenderMode:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode NS_SWIFT_NAME(setLocalRenderMode(_:mode:)) __deprecated; +

+
+
+
+ +
废弃
+
自 v4.0.0 版本废弃,请改用
+
+ +
废弃
+
该方法已废弃,不推荐使用。
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
该方法已废弃。
+
+
+

你可以在初始化本地视频画面后调用该方法,更新其渲染模式和镜像模式。该方法仅影响本地用户看到的视频画面,不影响发布的视频流。

+

你可以调用该方法设置本地视频的显示模式。在通话过程中可以多次调用以动态调整显示模式。

+

你可以在通话过程中多次调用该方法以更改本地视频的显示模式。

+

你可以在通话过程中多次调用该方法以更改本地视频的显示模式。

+ +
    +
  • 请确保在调用该方法前已调用 初始化本地视频画面。
  • +
  • 通话过程中,你可以多次调用该方法以更新本地视频画面。
  • +
+
+
+
+ 参数 + + + renderMode + 本地画面的显示模式。详见 + + + renderMode + 本地视频的显示模式: +
    +
  • RENDER_MODE_HIDDEN(1):隐藏模式。按比例缩放视频,直到填满视图边界,可能会裁剪视频的一部分内容。
  • +
  • RENDER_MODE_FIT(2):适应模式。按比例缩放视频,直到某一边适配视图边界,未填满的区域以黑色填充。
  • +
  • RENDER_MODE_ADAPTIVE(3):自适应模式。该枚举值已废弃,不推荐使用。
  • +
+
+
+ + uid + 用户 ID。 + + + mode + 本地视频显示模式,详见 + + + uid + 用户 ID。 + + + mode + 本地视频显示模式,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode2.dita new file mode 100644 index 00000000000..dc1b3ef2230 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendermode2.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="setLocalRenderMode2"/> + 更新本地视频画面的显示模式。更新本地视频画面的显示模式。更新本地视频视图的显示模式。更新本地视频视图的显示模式。 + + + + + + + + +
+

+ virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0; + public abstract int setLocalRenderMode(int renderMode, int mirrorMode); + - (int)setLocalRenderMode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror NS_SWIFT_NAME(setLocalRenderMode(_:mirror:)); + - (int)setLocalRenderMode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror NS_SWIFT_NAME(setLocalRenderMode(_:mirror:)); +

+
+
+

你可以在初始化本地视频画面后调用该方法,更新其渲染模式和镜像模式。该方法仅影响本地用户看到的视频画面,不影响本地视频的发布。

+

该方法仅影响本地用户看到的视频画面,不影响本地视频的发布。

+

你可以在初始化本地视频视图后调用该方法,更新其渲染模式和镜像模式。该方法仅影响你本地看到的视频视图,不影响本地视频的发布。

+

你可以在初始化本地视频视图后调用该方法,更新其渲染模式和镜像模式。该方法仅影响你本地看到的视频视图,不影响本地视频的发布。

+ setLocalRenderMode 仅对主摄像头(PRIMARY_CAMERA_SOURCE)生效。在使用自定义视频采集或其他视频源的场景中,请使用 代替。 + 该方法仅对主摄像头(AgoraMediaSourceTypePrimaryCamera)生效。在使用自定义视频采集或其他视频源的场景中,应使用 方法替代。 + 该方法仅对主摄像头(AgoraMediaSourceTypePrimaryCamera)生效。在使用自定义视频采集或其他视频源的场景中,应使用 方法替代。 +
+
+ 调用时机 +

+

    +
  • 请确保在调用该方法前已调用 初始化本地视频画面。
  • +
  • 通话过程中,可多次调用该方法更新本地视频画面的显示模式。
  • +
+

+

确保在调用此方法前已调用 方法初始化本地视频画面。在通话过程中,你可以根据需要多次调用此方法更新本地视频画面的显示模式。

+

调用时序: +

    +
  • 请确保在调用该方法前已调用 方法初始化本地视频视图。
  • +
  • 通话过程中,你可以多次调用该方法更新本地视频视图的显示模式。
  • +
+

+

调用时序: +

    +
  • 请确保在调用该方法前已调用 方法初始化本地视频视图。
  • +
  • 通话过程中,你可以多次调用该方法更新本地视频视图的显示模式。
  • +
+

+
+
+ 参数 + + + renderMode + 本地视频画面的显示模式。详见 + + + mirrorMode + 本地视频画面的镜像模式。详见 。 + 如果使用前置摄像头,SDK 默认开启镜像模式;如果使用后置摄像头,SDK 默认关闭镜像模式。 + + + + renderMode + 本地视频的显示模式: +
    +
  • RENDER_MODE_HIDDEN (1):隐藏模式。按比例缩放视频,直到填满视图边界(可能被裁剪)。视频的一条边可能会被裁剪。
  • +
  • RENDER_MODE_FIT (2):适应模式。按比例缩放视频,直到某一边适配视图边界。由于宽高比不一致而未填满的区域将以黑色填充。
  • +
  • RENDER_MODE_ADAPTIVE (3):自适应模式(已废弃,不推荐使用)。
  • +
+
+
+ + mirrorMode + + 如果你使用前置摄像头,SDK 默认启用镜像模式;如果你使用后置摄像头,SDK 默认关闭镜像模式。本地用户的视频镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):SDK 自动决定是否启用镜像模式。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):启用本地视图的镜像模式。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭本地视图的镜像模式。
  • +
+
+
+ + mode + 本地视频的显示模式,详见 + + + mirror + 本地视频视图的镜像模式,详见 。如果使用前置摄像头,SDK 默认启用镜像模式;如果使用后置摄像头,SDK 默认关闭镜像模式。 + + + mode + 本地视频的显示模式,详见 + + + mirror + 本地视频视图的镜像模式,详见 。如果使用前置摄像头,SDK 默认启用镜像模式;如果使用后置摄像头,SDK 默认关闭镜像模式。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendertargetfps.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendertargetfps.dita new file mode 100644 index 00000000000..29f2d4a4718 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalrendertargetfps.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="setLocalRenderTargetFps"/> + 设置本地视频渲染的最大帧率。设置本地视频渲染的最大帧率。设置本地视频渲染的最大帧率。设置本地视频渲染的最大帧率。 + + + + + + + + +
+

+ virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps) = 0; + public abstract int setLocalRenderTargetFps(Constants.VideoSourceType sourceType, int targetFps); + - (int)setLocalRenderTargetFps:(AgoraVideoSourceType)sourceType + targetFps:(int)targetFps; + - (int)setLocalRenderTargetFps:(AgoraVideoSourceType)sourceType + targetFps:(int)targetFps; +

+
+
+

你可以在对视频渲染帧率要求不高的场景中调用该方法,例如屏幕共享或在线教育。SDK 会尝试将本地渲染的实际帧率保持在该值附近,从而降低 CPU 消耗并提升系统性能。

+

在对视频渲染帧率要求不高的场景(如屏幕共享或在线教育)中,可以调用该方法设置本地视频渲染的最大帧率。SDK 会尝试将本地渲染的实际帧率保持在该值附近,从而降低 CPU 消耗并提升系统性能。

+

在对视频渲染帧率要求不高的场景(如屏幕共享或在线教育)中,可以调用该方法设置本地视频渲染的最大帧率。SDK 会尝试将本地渲染的实际帧率保持在该值附近,从而降低 CPU 消耗并提升系统性能。

+
+
+ 适用场景 +

在对视频渲染帧率要求不高的场景(如屏幕共享或在线教育)中,你可以调用该方法设置本地视频渲染的最大帧率。SDK 会尝试将本地渲染的实际帧率保持在该值附近,以降低 CPU 消耗并提升系统性能。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + targetFps + 本地视频的采集帧率(fps)。支持的值包括:1、7、10、15、24、30、60。 + 将该参数设置为低于实际视频帧率的值,否则设置无效。 + + + + sourceType + 视频源类型,详见 + + + targetFps + 本地视频的采集帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。 + 该参数需设置为低于实际视频帧率的值,否则设置不生效。 + + + + sourceType + 视频源的类型,详见 + + + targetFps + 本地视频的采集帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。将该参数设置为低于实际视频帧率的值,否则设置不生效。 + + + sourceType + 视频源的类型,详见 + + + targetFps + 本地视频的采集帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。将该参数设置为低于实际视频帧率的值,否则设置不生效。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalvideomirrormode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvideomirrormode.dita new file mode 100644 index 00000000000..dad336be275 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvideomirrormode.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="setLocalVideoMirrorMode"/> + 设置本地视频镜像模式。设置本地视频镜像模式。设置本地视频镜像模式。设置本地视频镜像模式。 + + + + + + + + +
+

+ virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated = 0; + public abstract int setLocalVideoMirrorMode(int mode) + - (int)setLocalVideoMirrorMode:(AgoraVideoMirrorMode)mode NS_SWIFT_NAME(setLocalVideoMirrorMode(_:)) __deprecated; + - (int)setLocalVideoMirrorMode:(AgoraVideoMirrorMode)mode NS_SWIFT_NAME(setLocalVideoMirrorMode(_:)) __deprecated; +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 setLocalRenderMode
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 参数 + + + mirrorMode + 本地视频镜像模式。详见 + + + mode + 本地视频镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):由 SDK 决定是否启用镜像模式。如果使用前置摄像头,SDK 默认启用镜像模式;如果使用后置摄像头,SDK 默认关闭镜像模式。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):开启本地视图的镜像模式。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭本地视图的镜像模式。
  • +
+
+
+ + mode + 本地视频镜像模式。详见 + + + mode + 本地视频镜像模式。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceequalization.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceequalization.dita new file mode 100644 index 00000000000..5aee5a63f55 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceequalization.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="setLocalVoiceEqualization"/> + 设置本地语音的均衡效果。设置本地语音的均衡效果。设置本地语音的均衡效果。设置本地语音的均衡效果。 + + + + + + + + +
+

+ virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0; + public abstract int setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain); + - (int)setLocalVoiceEqualizationOfBandFrequency:(AgoraAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain NS_SWIFT_NAME(setLocalVoiceEqualizationOf(_:withGain:)); + - (int)setLocalVoiceEqualizationOfBandFrequency:(AgoraAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain NS_SWIFT_NAME(setLocalVoiceEqualizationOf(_:withGain:)); +

+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + bandFrequency + 频段索引,取值范围为 0 到 9,分别对应语音效果的 10 个中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。详见 + + + bandGain + 每个频段的增益值,单位为 dB。取值范围为 -15 到 15,默认值为 0。 + + + bandFrequency + 频段索引,取值范围为 0 到 9,分别对应 10 个语音效果的中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。详见 + + + bandGain + 每个频段的增益值,单位为 dB。取值范围为 -15 到 15,默认值为 0。 + + + bandFrequency + 频段频率,详见 。取值范围为 0 到 9,分别对应语音特效的 10 个中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。 + + + gain + 每个频段的增益值,单位为 dB。取值范围为 -15 到 15,默认值为 0。 + + + bandFrequency + 频段频率,详见 。取值范围为 0 到 9,分别对应语音特效的 10 个中心频率段:31、62、125、250、500、1k、2k、4k、8k 和 16k Hz。 + + + gain + 每个频段的增益值,单位为 dB。取值范围为 -15 到 15,默认值为 0。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceformant.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceformant.dita new file mode 100644 index 00000000000..06e7c702165 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoiceformant.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="setLocalVoiceFormant"/> + 设置共振峰比例以改变人声音色。设置共振峰比例以改变人声音色。设置共振峰比例以改变人声音色。设置共振峰比例以改变人声音色。 + + + + + + + + +
+

+ virtual int setLocalVoiceFormant(double formantRatio) = 0; + public abstract int setLocalVoiceFormant(double formantRatio); + - (int)setLocalVoiceFormant:(double)formantRatio; + - (int)setLocalVoiceFormant:(double)formantRatio; +

+
+
+

共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。如果你希望同时改变音色和音调,建议同时使用

+

共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。如果你希望同时改变音色和音调,建议同时使用 方法。

+

共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。设置共振峰比例后,频道内所有用户都能听到改变后的声音。如果你希望同时改变音色和音调,声网建议同时使用 方法。

+

共振峰比例会影响声音的音色。值越小,声音越低沉;值越大,声音越尖锐。设置共振峰比例后,频道内所有用户都能听到改变后的声音。如果你希望同时改变音色和音调,声网建议同时使用 方法。

+
+
+ 适用场景 +

你可以调用该方法设置本地音频的共振峰比例,以改变人声音色。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + formantRatio + 共振峰比例。取值范围为 [-1.0, 1.0]。默认值为 0.0,表示不改变音色。 + 建议将该值设置在 [-0.4, 0.6] 范围内,否则声音可能会严重失真。 + + + + formantRatio + 共振峰比例。取值范围为 [-1.0, 1.0]。(默认值为 0.0) + 建议将该值设置在 [-0.4, 0.6] 范围内,否则声音可能会严重失真。 + + + + formantRatio + 共振峰比例。取值范围为 [-1.0, 1.0]。默认值为 0.0,表示不改变声音的音色。 + 声网建议将该值设置在 [-0.4, 0.6] 范围内,否则声音可能会严重失真。 + + + + formantRatio + 共振峰比例。取值范围为 [-1.0, 1.0]。默认值为 0.0,表示不改变声音的音色。 + 声网建议将该值设置在 [-0.4, 0.6] 范围内,否则声音可能会严重失真。 + + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicepitch.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicepitch.dita new file mode 100644 index 00000000000..5e589aa1322 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicepitch.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="setLocalVoicePitch"/> + 设置本地语音的音调。设置本地语音的音调。改变本地语音的音调。改变本地语音的音调。 + + + + + + + + +
+

+ virtual int setLocalVoicePitch(double pitch) = 0; + public abstract int setLocalVoicePitch(double pitch); + - (int)setLocalVoicePitch:(double)pitch NS_SWIFT_NAME(setLocalVoicePitch(_:)); + - (int)setLocalVoicePitch:(double)pitch NS_SWIFT_NAME(setLocalVoicePitch(_:)); +

+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + pitch + 本地语音的音调。取值范围为 [0.5, 2.0],值越小,音调越低。(默认值为 1.0,表示不改变音调。) + + + pitch + 本地语音的音调。取值范围为 [0.5, 2.0]。值越小,音调越低。(默认值为 1.0,表示不改变音调。) + + + pitch + 本地语音的音调。取值范围为 [0.5, 2.0],值越小,音调越低。默认值为 1.0(默认),表示不改变音调。 + + + pitch + 本地语音的音调。取值范围为 [0.5, 2.0],值越小,音调越低。默认值为 1.0(默认),表示不改变音调。 + + +
+
+ 返回值 +

+

    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicereverb.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicereverb.dita new file mode 100644 index 00000000000..90e2dbc30b9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlocalvoicereverb.dita @@ -0,0 +1,98 @@ + + + + <ph keyref="setLocalVoiceReverb"/> + 设置本地语音的混响效果。设置本地语音的混响效果。设置本地语音的混响效果。设置本地语音的混响效果。 + + + + + + + + +
+

+ virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0; + public abstract int setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE reverbKey, int value); + - (int)setLocalVoiceReverbOfType:(AgoraAudioReverbType)reverbType withValue:(NSInteger)value NS_SWIFT_NAME(setLocalVoiceReverbOf(_:withValue:)); + - (int)setLocalVoiceReverbOfType:(AgoraAudioReverbType)reverbType withValue:(NSInteger)value NS_SWIFT_NAME(setLocalVoiceReverbOf(_:withValue:)); +

+
+
+

你也可以使用更易用的方法 ,直接实现如流行、R&B 和 KTV 等预设混响效果。

+

你可以使用更易用的方法 实现如流行、R&B 和 KTV 等预设混响效果。

+

你可以在加入频道前或加入频道后调用该方法。SDK 提供了更易用的方法 ,可直接实现如流行、R&B 和 KTV 等预设混响效果。

+

你可以在加入频道前或加入频道后调用该方法。SDK 提供了更易用的方法 ,可直接实现如流行、R&B 和 KTV 等预设混响效果。

+ 你可以在加入频道前或加入频道后调用该方法。 +
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + reverbKey + 混响键,详见 + + + value + 混响键对应的取值。 + + + reverbKey + 混响键。详见 + + + value + 混响键的取值。 + + + reverbType + 混响键。详见 + + + value + 混响键的取值。 + + + reverbType + 混响键。详见 + + + value + 混响键的取值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlogfile.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlogfile.dita new file mode 100644 index 00000000000..8c00a3a87e7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlogfile.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="setLogFile"/> + 设置 SDK 输出日志文件路径。设置 SDK 输出日志文件。设置 SDK 输出日志文件。设置 SDK 输出日志文件。 + + + + + + + + +
+

+ virtual int setLogFile(const char* filePath) = 0; + public abstract int setLogFile(String filePath); + - (int)setLogFile:(NSString * _Nonnull)filePath NS_SWIFT_NAME(setLogFile(_:)); + - (int)setLogFile:(NSString * _Nonnull)filePath NS_SWIFT_NAME(setLogFile(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 中的 context 设置日志文件路径。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志文件路径。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志文件路径。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志文件路径。
+
+
+

用于指定 SDK 输出日志的文件路径,日志文件记录 SDK 运行过程中的所有日志数据。你需要在调用 后立即调用该方法,否则日志输出可能不完整。

+

该方法需在调用 后立即调用,否则输出日志可能不完整。

+

指定一个 SDK 输出日志文件。该日志文件记录 SDK 运行过程中的所有日志数据。

+

指定一个 SDK 输出日志文件。该日志文件记录 SDK 运行过程中的所有日志数据。

+ 请确保日志文件所在目录已存在且具有写权限。 + 确保日志文件所在目录存在且可写。 + 确保日志文件所在的目录存在且可写。 + 确保日志文件所在的目录存在且可写。 +
+
+ 调用时机 +

该方法需要在调用 后立即调用,否则输出日志可能不完整。

+

该方法需在调用 后立即调用,否则输出日志可能不完整。

+

该方法需在调用 后立即调用,否则输出的日志可能不完整。

+

该方法需在调用 后立即调用,否则输出的日志可能不完整。

+
+
+ 参数 + + + filePath + 日志文件的完整路径,使用 UTF-8 编码。 + + + filePath + 日志文件的完整路径,日志文件使用 UTF-8 编码。 + + + filePath + 日志文件的完整路径。日志文件使用 UTF-8 编码。 + + + filePath + 日志文件的完整路径。日志文件使用 UTF-8 编码。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlogfilesize.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlogfilesize.dita new file mode 100644 index 00000000000..5306176f799 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlogfilesize.dita @@ -0,0 +1,172 @@ + + + + <ph keyref="setLogFileSize"/> + 设置日志文件大小。设置 SDK 日志文件的大小。设置 agorasdk.log 文件的大小。设置 agorasdk.log 文件的大小。 + + + + + + + + +
+

+ virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0; + public abstract int setLogFileSize(long fileSizeInKBytes); + - (int)setLogFileSize:(NSUInteger)fileSizeInKBytes NS_SWIFT_NAME(setLogFileSize(_:)); + - (int)setLogFileSize:(NSUInteger)fileSizeInKBytes NS_SWIFT_NAME(setLogFileSize(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig 设置日志文件大小。
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig 参数设置日志文件大小。
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig 参数设置日志文件大小。
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig 参数设置日志文件大小。
+
+
+

默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,规则如下: +

    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 调用日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个日志文件的默认大小为 2,048 KB,采用 UTF-8 编码。
  • +
  • SDK 会将最新日志写入 agorasdk.logagoraapi.log 文件。
  • +
  • agorasdk.log 写满时,SDK 会按以下顺序处理日志文件: +
      +
    1. 删除 agorasdk.4.log(如果存在)。
    2. +
    3. agorasdk.3.log 重命名为 agorasdk.4.log
    4. +
    5. agorasdk.2.log 重命名为 agorasdk.3.log
    6. +
    7. agorasdk.1.log 重命名为 agorasdk.2.log
    8. +
    9. 创建新的 agorasdk.log 文件。
    10. +
    +
  • +
  • agoraapi.log 的覆盖规则与 agorasdk.log 相同。
  • +
+

+

默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,规则如下: +

    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 调用日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个日志文件的默认大小为 2,048 KB,采用 UTF-8 编码。
  • +
  • SDK 会将最新日志写入 agorasdk.logagoraapi.log 文件。
  • +
  • agorasdk.log 写满时,SDK 会按以下顺序处理日志文件: +
      +
    1. 删除 agorasdk.4.log(如果存在)。
    2. +
    3. agorasdk.3.log 重命名为 agorasdk.4.log
    4. +
    5. agorasdk.2.log 重命名为 agorasdk.3.log
    6. +
    7. agorasdk.1.log 重命名为 agorasdk.2.log
    8. +
    9. 创建新的 agorasdk.log 文件。
    10. +
    +
  • +
  • agoraapi.log 的覆盖规则与 agorasdk.log 相同。
  • +
+

+

默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,规则如下: +

    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 调用日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个 SDK 日志文件和 API 日志文件的默认大小为 2,048 KB,日志文件采用 UTF-8 编码。
  • +
  • SDK 会将最新的日志写入 agorasdk.logagoraapi.log 文件中。
  • +
  • agorasdk.log 文件写满时,SDK 会按以下顺序处理日志文件: +
      +
    1. 删除 agorasdk.4.log 文件(如果存在)。
    2. +
    3. agorasdk.3.log 重命名为 agorasdk.4.log
    4. +
    5. agorasdk.2.log 重命名为 agorasdk.3.log
    6. +
    7. agorasdk.1.log 重命名为 agorasdk.2.log
    8. +
    9. 创建新的 agorasdk.log 文件。
    10. +
    +
  • +
  • agoraapi.log 文件的覆盖规则与 agorasdk.log 相同。
  • +
+

+

默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,规则如下: +

    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 调用日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个 SDK 日志文件和 API 日志文件的默认大小为 2,048 KB,日志文件采用 UTF-8 编码。
  • +
  • SDK 会将最新的日志写入 agorasdk.logagoraapi.log 文件中。
  • +
  • agorasdk.log 文件写满时,SDK 会按以下顺序处理日志文件: +
      +
    1. 删除 agorasdk.4.log 文件(如果存在)。
    2. +
    3. agorasdk.3.log 重命名为 agorasdk.4.log
    4. +
    5. agorasdk.2.log 重命名为 agorasdk.3.log
    6. +
    7. agorasdk.1.log 重命名为 agorasdk.2.log
    8. +
    9. 创建新的 agorasdk.log 文件。
    10. +
    +
  • +
  • agoraapi.log 文件的覆盖规则与 agorasdk.log 相同。
  • +
+

+ 该方法仅用于设置 agorasdk.log 文件的大小,不影响 agoraapi.log 文件。 + 仅用于设置 agorasdk.log 文件的大小,不影响 agoraapi.log 文件。 + 该方法仅用于设置 agorasdk.log 文件的大小,不影响 agoraapi.log 文件。 + 该方法仅用于设置 agorasdk.log 文件的大小,不影响 agoraapi.log 文件。 +
+
+ 参数 + + + fileSizeInKBytes + agorasdk.log 文件的大小(单位:KB)。取值范围为 [128, 20480]。默认值为 2,048 KB。如果设置值小于 128 KB,SDK 会自动调整为 128 KB;如果设置值大于 20,480 KB,SDK 会自动调整为 20,480 KB。 + + + fileSizeInKBytes + agorasdk.log 文件的大小,单位为 KB。取值范围为 [128, 20480],默认值为 2,048 KB。 +
    +
  • 如果设置值小于 128 KB,SDK 会自动调整为 128 KB。
  • +
  • 如果设置值大于 20,480 KB,SDK 会自动调整为 20,480 KB。
  • +
+
+
+ + fileSizeInKBytes + agorasdk.log 文件的大小(单位:KB)。取值范围为 [128, 20480]。(默认值:2,048 KB)。如果你设置的值小于 128 KB,SDK 会自动调整为 128 KB;如果设置的值大于 20,480 KB,SDK 会自动调整为 20,480 KB。 + + + fileSizeInKBytes + agorasdk.log 文件的大小(单位:KB)。取值范围为 [128, 20480]。(默认值:2,048 KB)。如果你设置的值小于 128 KB,SDK 会自动调整为 128 KB;如果设置的值大于 20,480 KB,SDK 会自动调整为 20,480 KB。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlogfilter.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlogfilter.dita new file mode 100644 index 00000000000..2b8ba8e5d19 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlogfilter.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="setLogFilter"/> + 设置 SDK 的日志输出等级。设置 SDK 的日志输出等级。设置 SDK 的日志输出等级。设置 SDK 的日志输出等级。 + + + + + + + + +
+

+ virtual int setLogFilter(unsigned int filter) = 0; + public abstract int setLogFilter(int filter); + - (int)setLogFilter:(NSUInteger)filter NS_SWIFT_NAME(setLogFilter(_:)); + - (int)setLogFilter:(NSUInteger)filter NS_SWIFT_NAME(setLogFilter(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig 设置日志过滤等级。
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig
+
+ +
废弃
+
该方法已废弃,请改用 中的 logConfig
+
+
+

你可以使用一个或多个日志过滤等级的组合来设置 SDK 的日志输出等级。日志等级的顺序为 LOG_FILTER_OFFLOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARNLOG_FILTER_INFOLOG_FILTER_DEBUG。选择某个等级后,将输出该等级及更高级别的日志。例如,如果将日志等级设置为 LOG_FILTER_WARN,你将看到 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARN 等级的日志。

+

你可以使用一个或多个日志过滤等级的组合。日志等级的顺序为 LOG_FILTER_OFFLOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARNLOG_FILTER_INFOLOG_FILTER_DEBUG。选择一个等级可以查看该等级及其之前的日志信息。例如,如果将日志等级设置为 LOG_FILTER_WARN,你将看到 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARN 等级的日志信息。

+

你可以使用该方法设置 SDK 的日志输出等级。日志等级按以下顺序排列:AgoraLogFilterOffAgoraLogFilterCriticalAgoraLogFilterErrorAgoraLogFilterWarningAgoraLogFilterInfoAgoraLogFilterDebug。选择某个等级后,你可以查看该等级及其之前的日志内容。例如,如果将日志等级设置为 AgoraLogFilterWarning,你将看到 AgoraLogFilterCriticalAgoraLogFilterErrorAgoraLogFilterWarning 等级的日志。

+

你可以使用该方法设置 SDK 的日志输出等级。日志等级按以下顺序排列:AgoraLogFilterOffAgoraLogFilterCriticalAgoraLogFilterErrorAgoraLogFilterWarningAgoraLogFilterInfoAgoraLogFilterDebug。选择某个等级后,你可以查看该等级及其之前的日志内容。例如,如果将日志等级设置为 AgoraLogFilterWarning,你将看到 AgoraLogFilterCriticalAgoraLogFilterErrorAgoraLogFilterWarning 等级的日志。

+
+
+ 参数 + + + filter + SDK 的日志输出等级,详见 + + + filter + SDK 的日志输出等级。 +
    +
  • LOG_FILTER_OFF (0):不输出任何日志信息。
  • +
  • LOG_FILTER_DEBUG (0x080f):输出所有日志信息。如果你希望获取最完整的日志文件,请将日志过滤等级设置为 LOG_FILTER_DEBUG
  • +
  • LOG_FILTER_INFO (0x0f):输出 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARNLOG_FILTER_INFO 等级的日志信息。建议将日志等级设置为该等级。
  • +
  • LOG_FILTER_WARN (0x0e):输出 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARN 等级的日志信息。
  • +
  • LOG_FILTER_ERROR (0x0c):输出 LOG_FILTER_CRITICALLOG_FILTER_ERROR 等级的日志信息。
  • +
  • LOG_FILTER_CRITICAL (0x08):仅输出 LOG_FILTER_CRITICAL 等级的日志信息。
  • +
+
+
+ + filter + 日志输出等级,详见 + + + filter + 日志输出等级,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setloglevel.dita b/dita/RTC-AIDOC/API/api_irtcengine_setloglevel.dita new file mode 100644 index 00000000000..9a3abd5bf2b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setloglevel.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="setLogLevel"/> + 设置 SDK 的输出日志等级。设置 SDK 的输出日志等级。设置 SDK 的输出日志等级。设置 SDK 的输出日志等级。 + + + + + + + + +
+

+ virtual int setLogLevel(commons::LOG_LEVEL level) = 0; + public abstract int setLogLevel(int level); + - (int)setLogLevel:(AgoraLogLevel)level NS_SWIFT_NAME(setLogLevel(_:)); + - (int)setLogLevel:(AgoraLogLevel)level NS_SWIFT_NAME(setLogLevel(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 中的 context 设置日志等级。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志输出级别。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志输出级别。
+
+ +
废弃
+
该方法已废弃,请在调用 时通过 config 参数设置日志输出级别。
+
+
+

选择一个日志等级,以查看该等级及以上的日志信息。

+

选择一个日志等级,以查看该等级及更高级别的日志信息。

+

你可以选择一个日志等级,以查看该等级及更高级别的日志信息。详见

+

你可以选择一个日志等级,以查看该等级及更高级别的日志信息。详见

+
+
+ 参数 + + + level + 日志等级,详见 + + + level + 日志等级。详见 + + + level + 日志等级。详见 + + + level + 日志等级。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions.dita new file mode 100644 index 00000000000..bddd4bceaba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions.dita @@ -0,0 +1,200 @@ + + + + <ph keyref="setLowlightEnhanceOptions"/> + 设置暗光增强功能。设置暗光增强功能。设置暗光增强功能。设置暗光增强功能。 + + + + + + + + +
+

+ virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setLowlightEnhanceOptions(boolean enabled, LowLightEnhanceOptions options); + - (int)setLowlightEnhanceOptions:(BOOL)enable options:(AgoraLowlightEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setLowlightEnhanceOptions(_:options:)); + - (int)setLowlightEnhanceOptions:(BOOL)enable options:(AgoraLowlightEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setLowlightEnhanceOptions(_:options:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

你可以调用该方法启用暗光增强功能,并设置增强效果的参数。

+

你可以调用此方法开启暗光增强功能并设置暗光增强效果的选项。

+

你可以调用此方法开启暗光增强功能并设置暗光增强效果的选项。

+ +
    +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,该功能将无法正常启用。
  • +
  • 暗光增强对设备性能有一定要求。如果启用暗光增强后设备出现过热,声网建议将暗光增强选项设置为较低的性能消耗等级,或完全关闭暗光增强功能。
  • +
  • 如果你希望在使用暗光增强功能时优先保证画质(LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY),需要先调用 实现视频降噪,具体对应关系如下: +
      +
    • 当暗光增强设置为自动模式(LOW_LIGHT_ENHANCE_AUTO)时,视频降噪需设置为优先保证画质(VIDEO_DENOISER_LEVEL_HIGH_QUALITY)和自动模式(VIDEO_DENOISER_AUTO)。
    • +
    • 当暗光增强设置为手动模式(LOW_LIGHT_ENHANCE_MANUAL)时,视频降噪需设置为优先保证画质(VIDEO_DENOISER_LEVEL_HIGH_QUALITY)和手动模式(VIDEO_DENOISER_MANUAL)。
    • +
    +
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
  • 暗光增强功能对设备性能有一定要求。如果启用后设备出现过热,声网建议将暗光增强选项设置为较低的性能消耗等级,或关闭该功能。
  • +
  • 如果你希望在使用暗光增强功能时优先保证画质(LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY),需要先调用 setVideoDenoiserOptions 实现视频降噪,具体对应关系如下: +
      +
    • 当暗光增强设置为自动模式(LOW_LIGHT_ENHANCE_AUTO)时,视频降噪需设置为优先保证画质(VIDEO_DENOISER_LEVEL_HIGH_QUALITY)和自动模式(VIDEO_DENOISER_AUTO)。
    • +
    • 当暗光增强设置为手动模式(LOW_LIGHT_ENHANCE_MANUAL)时,视频降噪需设置为优先保证画质(VIDEO_DENOISER_LEVEL_HIGH_QUALITY)和手动模式(VIDEO_DENOISER_MANUAL)。
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 暗光增强对设备性能有一定要求。如果启用暗光增强后设备出现过热,声网建议将暗光增强选项设置为较低的性能消耗等级,或完全关闭暗光增强功能。
  • +
  • 如果你希望在使用暗光增强功能时优先保证画质(AgoraLowlightEnhanceLevelQuality),需要先调用 实现视频降噪,具体对应关系如下: +
      +
    • 当暗光增强设置为自动模式(AgoraLowlightEnhanceModeAuto)时,视频降噪需设置为优先保证画质(AgoraVideoDenoiserLevelHighQuality)和自动模式(AgoraVideoDenoiserModeAuto)。
    • +
    • 当暗光增强设置为手动模式(AgoraLowlightEnhanceModeManual)时,视频降噪需设置为优先保证画质(AgoraVideoDenoiserLevelHighQuality)和手动模式(AgoraVideoDenoiserModeManual)。
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 暗光增强对设备性能有一定要求。如果启用暗光增强后设备出现过热,声网建议将暗光增强选项设置为较低的性能消耗等级,或完全关闭暗光增强功能。
  • +
  • 如果你希望在使用暗光增强功能时优先保证画质(AgoraLowlightEnhanceLevelQuality),需要先调用 实现视频降噪,具体对应关系如下: +
      +
    • 当暗光增强设置为自动模式(AgoraLowlightEnhanceModeAuto)时,视频降噪需设置为优先保证画质(AgoraVideoDenoiserLevelHighQuality)和自动模式(AgoraVideoDenoiserModeAuto)。
    • +
    • 当暗光增强设置为手动模式(AgoraLowlightEnhanceModeManual)时,视频降噪需设置为优先保证画质(AgoraVideoDenoiserLevelHighQuality)和手动模式(AgoraVideoDenoiserModeManual)。
    • +
    +
  • +
+
+
+
+ 适用场景 +

暗光增强功能可自适应调整在背光、多云或黑暗等低光或光线不均的场景中采集的视频亮度值,恢复或突出图像细节,提升视频整体视觉效果。

+
+
+ 调用时机 +

请在调用 后调用该方法。

+

请在调用 后调用此方法。

+

在调用 之后调用此方法。

+

在调用 之后调用此方法。

+
+
+ 参数 + + + enabled + 是否启用暗光增强功能: +
    +
  • :启用暗光增强功能。
  • +
  • :(默认)关闭暗光增强功能。
  • +
+
+
+ + options + 暗光增强选项,详见 + + + type + 应用滤镜效果的媒体源类型,详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enabled + 是否启用暗光增强功能: +
    +
  • :启用暗光增强。
  • +
  • :(默认)关闭暗光增强。
  • +
+
+
+ + options + 暗光增强选项。详见 + + + enable + 是否开启暗光增强功能: +
    +
  • :开启暗光增强。
  • +
  • :(默认)关闭暗光增强。
  • +
+
+
+ + options + 暗光增强选项,详见 + + + enable + 是否开启暗光增强功能: +
    +
  • :开启暗光增强。
  • +
  • :(默认)关闭暗光增强。
  • +
+
+
+ + options + 暗光增强选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions2.dita new file mode 100644 index 00000000000..cba9b36d256 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setlowlightenhanceoptions2.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="setLowlightEnhanceOptions2"/> + 设置低光增强选项并指定媒体源。设置低光增强选项并指定媒体源。设置低光增强选项并指定媒体源。 + + + + + + + + +
+

+ - (int)setLowlightEnhanceOptions:(BOOL)enable options:(AgoraLowlightEnhanceOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setLowlightEnhanceOptions(_:options:sourceType:)); + public abstract int setLowlightEnhanceOptions(boolean enabled, LowLightEnhanceOptions options, Constants.MediaSourceType sourceType); + - (int)setLowlightEnhanceOptions:(BOOL)enable options:(AgoraLowlightEnhanceOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setLowlightEnhanceOptions(_:options:sourceType:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

该方法与 方法都用于设置低光增强选项,但该方法允许你指定应用低光增强选项的媒体源类型。

+

该方法用于设置低光增强选项,并允许你指定应用低光增强的媒体源类型。

+

该方法与 方法都用于设置低光增强选项,但该方法允许你指定应用低光增强选项的媒体源类型。

+ +
    +
  • 该方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果删除该动态库,该功能将无法正常启用。
  • +
  • 视频降噪对设备性能有一定要求。如果你在启用视频降噪后设备出现过热,声网建议你将视频降噪选项调整为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果你在启用视频降噪后设备出现过热,声网建议你将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪。
  • +
+
+ +
    +
  • 该方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果删除该动态库,该功能将无法正常启用。
  • +
  • 视频降噪对设备性能有一定要求。如果你在启用视频降噪后设备出现过热,声网建议你将视频降噪选项调整为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
+
+
+
+ 适用场景 +

在黑暗环境中或使用低端视频采集设备时,视频图像可能会出现明显噪点,影响视频质量。在实时互动场景中,视频噪点还会占用码流资源,降低编码效率。

+
+
+ 调用时机 +

请在调用 方法之后调用本方法。

+

请在调用 方法之后调用该方法。

+

请在调用 方法之后调用本方法。

+
+
+ 参数 + + + enable + 是否启用低光增强: +
    +
  • :启用低光增强。
  • +
  • :(默认)关闭低光增强。
  • +
+
+
+ + options + 低光增强选项,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +注意:在该方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enabled + 是否启用低光增强: +
    +
  • :启用低光增强。
  • +
  • :(默认)关闭低光增强。
  • +
+
+
+ + options + 低光增强选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 + 该参数仅支持以下两种设置: +
    +
  • 默认值为 PRIMARY_CAMERA_SOURCE
  • +
  • 如果你使用自定义视频源,请将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否启用低光增强: +
    +
  • :启用低光增强。
  • +
  • :(默认)关闭低光增强。
  • +
+
+
+ + options + 低光增强选项,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 +注意:在该方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setmediametadatadatasource.dita b/dita/RTC-AIDOC/API/api_irtcengine_setmediametadatadatasource.dita new file mode 100644 index 00000000000..36bb7f1ad8a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setmediametadatadatasource.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="setMediaMetadataDataSource"/> + 设置元数据的数据源。设置元数据的数据源。 + + + + + + + + +
+

+ - (BOOL)setMediaMetadataDataSource:(id<AgoraMediaMetadataDataSource> _Nullable)metadataDataSource withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDataSource(_:with:)); + - (BOOL)setMediaMetadataDataSource:(id<AgoraMediaMetadataDataSource> _Nullable)metadataDataSource withType:(AgoraMetadataType)type NS_SWIFT_NAME(setMediaMetadataDataSource(_:with:)); +

+
+
+

你需要在该方法中实现 协议,并指定元数据的数据格式。成功调用该方法后,SDK 会触发 回调。你可以结合 方法,在视频流中添加同步的元数据,实现更丰富的直播互动,例如发送购物链接、数字优惠券和在线问答。

+

你需要在该方法中实现 协议,并指定元数据的数据格式。成功调用该方法后,SDK 会触发 回调。你可以结合 方法,在视频流中添加同步的元数据,实现更丰富的直播互动,例如发送购物链接、数字优惠券和在线问答。

+ 该方法需要在加入频道前调用。 + 该方法需要在加入频道前调用。 +
+
+ 参数 + + + metadataDataSource + 元数据的数据源,需实现 协议。详见 + + + type + 元数据的类型,详见 。SDK 当前仅支持 AgoraMetadataTypeVideo + + + metadataDataSource + 元数据的数据源,需实现 协议。详见 + + + type + 元数据的类型,详见 。SDK 当前仅支持 AgoraMetadataTypeVideo + + +
+
+ 返回值 +

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+

+

    +
  • :方法调用成功。
  • +
  • :方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setmixedaudioframeparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setmixedaudioframeparameters.dita new file mode 100644 index 00000000000..f72a7f0015e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setmixedaudioframeparameters.dita @@ -0,0 +1,142 @@ + + + + <ph keyref="setMixedAudioFrameParameters"/> + 设置混音后用于音频采集和播放的原始音频数据格式。设置混音后用于采集和播放的原始音频数据格式。设置用于音频采集和播放的混音后原始音频数据格式。设置用于音频采集和播放的混音后原始音频数据格式。 + + + + + + + + +
+

+ virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0; + public abstract int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall); + - (int)setMixedAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setMixedAudioFrameParametersWithSampleRate(_:channel:samplesPerCall:)); + - (int)setMixedAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setMixedAudioFrameParametersWithSampleRate(_:channel:samplesPerCall:)); +

+
+
+

会根据设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。 +采样间隔(秒) = samplesPerCall / (sampleRate × channel),请确保采样间隔 ≥ 0.01 秒。 +SDK 会根据采样间隔触发 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒) = samplesPerCall / (sampleRate × channel),请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒) = samplesPerCall / (sampleRate × channel),请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+
+
+ 参数 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 每次调用的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为以下取值: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setparameters.dita new file mode 100644 index 00000000000..171d0631a3a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setparameters.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="setParameters"/> + 通过配置 JSON 选项为 SDK 提供技术预览功能或特殊定制。通过配置 JSON 选项,为 SDK 提供技术预览功能或特殊定制。通过配置 JSON 选项为 SDK 提供技术预览功能或特殊定制。通过配置 JSON 选项为 SDK 提供技术预览功能或特殊定制。 + + + + + + + + +
+

+ virtual int setParameters(const char* parameters) = 0; + public abstract int setParameters(String parameters); + - (int)setParameters:(NSString * _Nonnull)options NS_SWIFT_NAME(setParameters(_:)); + - (int)setParameters:(NSString * _Nonnull)options NS_SWIFT_NAME(setParameters(_:)); +

+
+
+

请[联系技术支持](https://ticket.shengwang.cn/)以获取 JSON 配置方法。

+
+
+ 参数 + + + parameters + 指向 JSON 字符串格式的参数集合。 + + + parameters + 用于设置参数的 JSON 字符串。 + + + options + 以 JSON 字符串形式设置的参数。 + + + options + 以 JSON 字符串形式设置的参数。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters.dita new file mode 100644 index 00000000000..93c2bce55c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters.dita @@ -0,0 +1,134 @@ + + + + <ph keyref="setPlaybackAudioFrameBeforeMixingParameters"/> + 设置混音前的原始音频播放数据格式。设置混音前原始音频播放数据的格式。设置混音前原始音频播放数据的格式。设置混音前原始音频播放数据的格式。 + + + + + + + + +
+

+ virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0; + public abstract int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel); + - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:)); + - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:)); +

+
+
+

SDK 会根据采样间隔触发 回调。请在加入频道前调用该方法。

+

SDK 会根据采样间隔触发 回调。

+

你可以在加入频道前调用该方法,设置混音前原始音频播放数据的采样率和声道数。SDK 会根据采样间隔触发 回调。

+

你可以在加入频道前调用该方法,设置混音前原始音频播放数据的采样率和声道数。SDK 会根据采样间隔触发 回调。

+
+
+ 调用时机 +

请在加入频道前调用此方法。

+

请在加入频道前调用此方法。

+

在加入频道前调用该方法。

+

在加入频道前调用该方法。

+
+ +
+ 参数 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + sampleRate + 回调中返回的采样率。可设置为以下值: +
    +
  • 8000:8 kHz。
  • +
  • 16000:16 kHz。
  • +
  • 32000:32 kHz。
  • +
  • 44100:44.1 kHz。
  • +
  • 48000:48 kHz。
  • +
+
+
+ + channel + 音频声道数。可设置为以下值: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数。可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数。可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita new file mode 100644 index 00000000000..96319774819 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita @@ -0,0 +1,146 @@ + + + + <ph keyref="setPlaybackAudioFrameBeforeMixingParameters1"/> + 设置 回调中返回音频数据的格式。设置 回调中返回音频数据的格式。设置 回调中音频数据的格式。设置 回调中音频数据的格式。 + + + + + + + + +
+

+ virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall) = 0; + public abstract int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall); + - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:samplesPerCall:)); + - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:samplesPerCall:)); +

+
+
+

设置 回调中返回音频数据的采样率、声道数和每次回调的采样点数。

+

用于设置 回调中返回的音频数据的采样率、声道数和每次回调的采样点数。

+

用于设置 回调中返回的音频数据的采样率、声道数和每次回调的采样点数。

+
+
+ 调用时机 +

请在加入频道前调用此方法。

+
+
+ 参数 + + + sampleRate + 设置 回调中返回音频数据的采样率。可设置为以下值:8000、16000、32000、44100 或 48000。 + + + channel + 设置 回调中返回音频数据的声道数。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 设置 回调中返回音频数据的采样点数。在 RTMP 推流场景中,建议设置为 1024。 + + + sampleRate + 设置 回调中返回的采样率。可设置为以下值(单位:Hz): +
    +
  • 8000
  • +
  • 16000
  • +
  • 32000
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + channel + 设置 回调中返回的音频数据的声道数。可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 设置 回调中返回的音频数据的采样点数。 + 在 RTMP 推流场景中,建议设置为 1024。 + + + + sampleRate + 设置 回调中返回的采样率(Hz)。可设置为以下值:8000、16000、32000、44100 或 48000。 + + + channel + 设置 回调中返回的音频数据的声道数。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 设置 回调中返回的数据的每次回调采样点数。例如,在 RTMP 推流场景中,建议设置为 1024。 + + + sampleRate + 设置 回调中返回的采样率(Hz)。可设置为以下值:8000、16000、32000、44100 或 48000。 + + + channel + 设置 回调中返回的音频数据的声道数。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerCall + 设置 回调中返回的数据的每次回调采样点数。例如,在 RTMP 推流场景中,建议设置为 1024。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframeparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframeparameters.dita new file mode 100644 index 00000000000..e371585bfad --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setplaybackaudioframeparameters.dita @@ -0,0 +1,163 @@ + + + + <ph keyref="setPlaybackAudioFrameParameters"/> + 设置原始音频播放数据的格式。设置原始音频播放数据的格式。设置原始音频播放数据的格式。设置原始音频播放数据的格式。 + + + + + + + + +
+

+ virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0; + public abstract int setPlaybackAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall); + - (int)setPlaybackAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); + - (int)setPlaybackAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); +

+
+
+

SDK 会根据该方法中设置的 samplesPerCallsampleRatechannel 参数计算采样间隔:采样间隔(秒) = samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(单位:秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔不小于 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onPlaybackAudioFrame: 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 onPlaybackAudioFrame: 回调。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+
+
+ 参数 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数。可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次调用返回的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式: +
    +
  • 0:(默认)只读模式。例如,用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
  • +
  • 2:读写模式。用户从 中读取数据,修改后再播放。例如,用户有自己的音效处理模块并进行语音预处理,如变声。
  • +
+
+
+ + samplesPerCall + 每次调用的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次回调返回的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为 1 或 2。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次回调返回的数据采样数,例如媒体推流时为 1024。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setrecordingaudioframeparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setrecordingaudioframeparameters.dita new file mode 100644 index 00000000000..2c395babad7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setrecordingaudioframeparameters.dita @@ -0,0 +1,163 @@ + + + + <ph keyref="setRecordingAudioFrameParameters"/> + 设置采集的原始音频数据格式。设置采集的原始音频数据格式。设置采集的原始音频数据格式。设置采集的原始音频数据格式。 + + + + + + + + +
+

+ virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0; + public abstract int setRecordingAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall); + - (int)setRecordingAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setRecordingAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); + - (int)setRecordingAudioFrameParametersWithSampleRate:(NSInteger)sampleRate + channel:(NSInteger)channel + mode:(AgoraAudioRawFrameOperationMode)mode + samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setRecordingAudioFrameParametersWithSampleRate(_:channel:mode:samplesPerCall:)); +

+
+
+

会根据 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(单位:秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(单位:秒) = samplesPerCall /(sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(单位:秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+

SDK 会根据你设置的 samplesPerCallsampleRatechannel 参数计算采样间隔。采样间隔(单位:秒)= samplesPerCall / (sampleRate × channel)。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 回调。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+
+
+ 参数 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000(Hz)。 + + + channel + 音频声道数。可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率,可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数,可设置为: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频帧的使用模式: +
    +
  • 0:只读模式。例如,用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
  • +
  • 2:读写模式。用户从 中读取数据并进行修改后播放。例如,用户有自己的音效处理模块并进行语音预处理,如变声。
  • +
+
+
+ + samplesPerCall + 每次调用的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数。可设置为: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + + + sampleRate + 回调中返回的采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。 + + + channel + 音频声道数。可设置为: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + mode + 音频帧的使用模式,详见 + + + samplesPerCall + 每次回调的数据采样数,例如媒体推流时为 1024。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype.dita new file mode 100644 index 00000000000..3b790b47784 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="setRemoteDefaultVideoStreamType"/> + 设置默认订阅的视频流类型。设置默认订阅的视频流类型。设置默认订阅的视频流类型。设置默认订阅的视频流类型。 + + + + + + + + +
+

+ virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0; + public abstract int setRemoteDefaultVideoStreamType(Constants.VideoStreamType streamType); + - (int)setRemoteDefaultVideoStreamType:(AgoraVideoStreamType)streamType NS_SWIFT_NAME(setRemoteDefaultVideoStreamType(_:)); + - (int)setRemoteDefaultVideoStreamType:(AgoraVideoStreamType)streamType NS_SWIFT_NAME(setRemoteDefaultVideoStreamType(_:)); +

+
+
+

根据发送端的默认行为,以及调用 setDualStreamMode 时的具体设置,接收端调用此方法的场景如下: +

    +
  • SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。此时,仅角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户均可调用此方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端均可调用此方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 setDualStreamMode 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ 如果同时调用此方法和 ,则以 的设置为准。 + 如果同时调用该方法和 setRemoteVideoStreamType,则以 setRemoteVideoStreamType 的设置为准。 + 如果你同时调用此方法和 ,则以 的设置为准。 + 如果你同时调用此方法和 ,则以 的设置为准。 +
+
+ 调用时机 +

请在加入频道前调用此方法。

+

请在加入频道前调用该方法。SDK 不支持在加入频道后更改默认订阅的视频流类型。

+

该方法需要在加入频道前调用。SDK 不支持在加入频道后更改默认订阅的视频流类型。

+

该方法需要在加入频道前调用。SDK 不支持在加入频道后更改默认订阅的视频流类型。

+
+
+ 参数 + + + streamType + 默认订阅的视频流类型,详见 + + + streamType + 视频流类型。详见 + + + streamType + 默认订阅的视频流类型,详见 + + + streamType + 默认订阅的视频流类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype2.dita new file mode 100644 index 00000000000..e041b83baaf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotedefaultvideostreamtype2.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="setRemoteDefaultVideoStreamType2"/> + 设置默认订阅的视频流类型。 + + + + + + + + +
+

+ public abstract int setRemoteDefaultVideoStreamType(int streamType) +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

根据发送端的默认行为以及调用 setDualStreamMode 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ 如果同时调用该方法和 setRemoteVideoStreamType,则以 setRemoteVideoStreamType 的设置为准。 +
+
+ 调用时机 +

请在加入频道前调用该方法。SDK 不支持在加入频道后更改默认订阅的视频流类型。

+
+
+ 参数 + + + streamType + 默认订阅的视频流类型: +
    +
  • VIDEO_STREAM_HIGH(0):视频大流,即高分辨率和高码率的视频流。
  • +
  • VIDEO_STREAM_LOW(1):视频小流,即低分辨率和低码率的视频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremoterendermode2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremoterendermode2.dita new file mode 100644 index 00000000000..578be4c77da --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremoterendermode2.dita @@ -0,0 +1,155 @@ + + + + <ph keyref="setRemoteRenderMode2"/> + 更新远端用户视频视图的显示模式。更新远端用户视频视图的显示模式。更新远端用户视频视图的显示模式。更新远端用户视频视图的显示模式。 + + + + + + + + +
+

+ virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0; + public abstract int setRemoteRenderMode(int uid, int renderMode, int mirrorMode); + - (int)setRemoteRenderMode:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror NS_SWIFT_NAME(setRemoteRenderMode(_:mode:mirror:)); + - (int)setRemoteRenderMode:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror NS_SWIFT_NAME(setRemoteRenderMode(_:mode:mirror:)); +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+

你可以在初始化远端用户视频视图后调用此方法,更新其渲染模式和镜像模式。该方法仅影响本地用户看到的远端视频视图。

+

你可以调用该方法更新远端用户视频视图的渲染模式和镜像模式。该方法仅影响本地用户看到的视频视图。

+

初始化远端用户的视频视图后,你可以调用该方法更新其渲染模式和镜像模式。该方法仅影响本地用户看到的视频视图。

+

初始化远端用户的视频视图后,你可以调用该方法更新其渲染模式和镜像模式。该方法仅影响本地用户看到的视频视图。

+ +
    +
  • 请在调用 初始化远端视图后再调用此方法。
  • +
  • 通话过程中,你可以根据需要多次调用此方法更新远端用户视频视图的显示模式。
  • +
+
+ +
    +
  • 请确保在调用此方法前已调用 初始化远端视频视图。
  • +
  • 通话过程中,你可以多次调用此方法以更新远端用户视频视图的显示模式。
  • +
+
+ +
    +
  • 调用该方法前需先通过 方法初始化远端视图。
  • +
  • 通话过程中,你可以多次调用该方法以更新远端用户视频视图的显示模式。
  • +
+
+ +
    +
  • 调用该方法前需先通过 方法初始化远端视图。
  • +
  • 通话过程中,你可以多次调用该方法以更新远端用户视频视图的显示模式。
  • +
+
+
+
+ 参数 + + + uid + 远端用户 ID。 + + + renderMode + 远端用户视图的渲染模式,详见 + + + mirrorMode + 远端用户视图的镜像模式,详见 + + + uid + 远端用户的用户 ID。 + + + renderMode + 远端用户视图的渲染模式: +
    +
  • RENDER_MODE_HIDDEN (1):隐藏模式。按比例缩放视频,直到填满视图边界(可能被裁剪)。视频的一部分内容可能会被截断。
  • +
  • RENDER_MODE_FIT (2):适应模式。按比例缩放视频,直到某一维度适配视图边界。由于宽高比不一致而未填满的区域将以黑色填充。
  • +
  • RENDER_MODE_ADAPTIVE (3):自适应模式。该枚举值已废弃,不推荐使用。
  • +
+
+
+ + mirrorMode + 远端用户视图的镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):由 SDK 决定是否启用镜像模式。默认情况下,SDK 禁用镜像模式。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):启用镜像模式。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):禁用镜像模式。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + mode + 远端用户视图的渲染模式,详见 + + + mirror + 远端用户视图的镜像模式,详见 + + + uid + 远端用户的用户 ID。 + + + mode + 远端用户视图的渲染模式,详见 + + + mirror + 远端用户视图的镜像模式,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremoterendertargetfps.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremoterendertargetfps.dita new file mode 100644 index 00000000000..917ba26a439 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremoterendertargetfps.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="setRemoteRenderTargetFps"/> + 设置远端视频渲染的最大帧率。设置远端视频渲染的最大帧率。设置远端视频渲染的最大帧率。设置远端视频渲染的最大帧率。 + + + + + + + + +
+

+ virtual int setRemoteRenderTargetFps(int targetFps) = 0; + public abstract int setRemoteRenderTargetFps(int targetFps); + - (int)setRemoteRenderTargetFps:(int)targetFps; + - (int)setRemoteRenderTargetFps:(int)targetFps; +

+
+
+

在对视频渲染帧率要求不高的场景(如屏幕共享、在线教育)或远端用户使用中低端设备时,可以调用该方法设置远端客户端的视频渲染最大帧率。SDK 会尽可能将实际渲染帧率控制在该值附近,从而降低 CPU 消耗并提升系统性能。

+

在视频渲染帧率要求不高的场景(例如屏幕共享、在线教育)或远端用户使用中低端设备的情况下,你可以调用该方法设置远端客户端的视频渲染最大帧率。SDK 会尽可能将实际渲染帧率控制在该值附近,从而降低 CPU 消耗并提升系统性能。

+

在视频渲染帧率要求不高的场景(例如屏幕共享、在线教育)或远端用户使用中低端设备的情况下,你可以调用该方法设置远端客户端的视频渲染最大帧率。SDK 会尽可能将实际渲染帧率控制在该值附近,从而降低 CPU 消耗并提升系统性能。

+
+
+ 适用场景 +

在视频渲染帧率要求不高的场景(例如屏幕共享、在线教育)或远端用户使用中低端设备的情况下,你可以调用该方法设置远端客户端的视频渲染最大帧率。SDK 会尽可能将实际渲染帧率控制在该值附近,从而降低 CPU 消耗并提升系统性能。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + targetFps + 远端视频的渲染最大帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。 +
    +
  • 请将该参数设置为低于实际视频帧率的值,否则设置不会生效。
  • +
+
+
+ + targetFps + 目标渲染帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。 + 将该参数设置为低于实际视频帧率的值,否则设置不生效。 + + + + targetFps + 本地视频的采集帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。将该参数设置为低于实际视频帧率的值,否则设置不生效。 + + + targetFps + 本地视频的采集帧率(fps)。支持的取值包括:1、7、10、15、24、30、60。将该参数设置为低于实际视频帧率的值,否则设置不生效。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption.dita new file mode 100644 index 00000000000..0ac83f71217 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="setRemoteSubscribeFallbackOption"/> + 根据网络状况设置订阅端的视频流回退选项。根据网络状况设置订阅端的视频流回退选项。设置订阅端视频流的回退选项。设置订阅端视频流的回退选项。 + + + + + + + + +
+

+ virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0; + public abstract int setRemoteSubscribeFallbackOption(Constants.StreamFallbackOptions option); + - (int)setRemoteSubscribeFallbackOption:(AgoraStreamFallbackOptions)option NS_SWIFT_NAME(setRemoteSubscribeFallbackOption(_:)); + - (int)setRemoteSubscribeFallbackOption:(AgoraStreamFallbackOptions)option NS_SWIFT_NAME(setRemoteSubscribeFallbackOption(_:)); +

+
+
+

不稳定的网络会影响视频通话或互动直播中的音视频质量。你可以通过设置 optionSTREAM_FALLBACK_OPTION_VIDEO_STREAM_LOWSTREAM_FALLBACK_OPTION_AUDIO_ONLY,在下行网络无法同时支持音视频时,SDK 会自动将视频从高质量流切换为低质量流,或关闭视频以保障音频质量。SDK 会持续监测网络状况,并在网络改善时恢复音视频流的订阅。

+

如果将 option 设置为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOWSTREAM_FALLBACK_OPTION_AUDIO_ONLY,当下行网络无法同时支持音视频时,SDK 会自动将视频从高质量流切换为低质量流,或关闭视频以保障音频质量。SDK 会持续监测网络质量,在网络改善时恢复音视频流的订阅。

+

不稳定的网络会影响视频通话或互动直播中的音视频质量。如果你将 option 设置为 AgoraStreamFallbackOptionVideoStreamLowAgoraStreamFallbackOptionAudioOnly,当下行网络无法同时支持音频和视频时,SDK 会自动将视频从高质量流切换为低质量流,或关闭视频,以保证音频质量。SDK 会持续监测网络质量,在网络改善时恢复订阅音视频流。

+

不稳定的网络会影响视频通话或互动直播中的音视频质量。如果你将 option 设置为 AgoraStreamFallbackOptionVideoStreamLowAgoraStreamFallbackOptionAudioOnly,当下行网络无法同时支持音频和视频时,SDK 会自动将视频从高质量流切换为低质量流,或关闭视频,以保证音频质量。SDK 会持续监测网络质量,在网络改善时恢复订阅音视频流。

+ 当订阅的视频流回退为纯音频流,或从纯音频流恢复为音视频流时,SDK 会触发 回调。 +
+ +
+ 参数 + + + option + 订阅流的回退选项,详见 + + + option + 订阅流的回退选项。详见 + + + option + 订阅流的回退选项,详见 + + + option + 订阅流的回退选项,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption2.dita new file mode 100644 index 00000000000..ad323fdbad9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotesubscribefallbackoption2.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="setRemoteSubscribeFallbackOption2"/> + 根据网络状况设置已订阅视频流的回退选项。 + + + + + + + + +
+

+ public abstract int setRemoteSubscribeFallbackOption(int option) +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+

不稳定的网络会影响视频通话或互动直播中的音视频质量。当下行网络无法同时支持音视频时,若将 option 设置为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOWSTREAM_FALLBACK_OPTION_AUDIO_ONLY,SDK 会自动将视频从高质量流切换为低质量流,或关闭视频以保障音频质量。SDK 会持续监测网络质量,在网络改善后恢复订阅音视频流。

+ 当已订阅的视频流回退为纯音频流,或从纯音频流恢复为音视频流时,SDK 会触发 回调。 +
+
+ 参数 + + + option + 已订阅流的回退选项: +
    +
  • STREAM_FALLBACK_OPTION_DISABLED(0):不对音视频流进行回退处理,无法保证音视频质量。
  • +
  • STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW(1):(默认)在下行网络较差时,订阅的远端视频流回退为低质量(低分辨率、低码率)的视频流。
  • +
  • STREAM_FALLBACK_OPTION_AUDIO_ONLY(2):在网络条件较差时,优先尝试接收视频小流;若因网络极差无法显示视频,则回退为仅接收音频流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremoteuserspatialaudioparams.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremoteuserspatialaudioparams.dita new file mode 100644 index 00000000000..ce07247ed1e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremoteuserspatialaudioparams.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="setRemoteUserSpatialAudioParams"/> + 设置远端用户的空间音效参数。设置远端用户的空间音效参数。设置远端用户的空间音效参数。设置远端用户的空间音效参数。 + + + + + + + + +
+

+ virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams& params) = 0; + public abstract int setRemoteUserSpatialAudioParams(int uid, SpatialAudioParams params); + - (int)setRemoteUserSpatialAudioParams:(NSUInteger)uid + params:(AgoraSpatialAudioParams* _Nonnull)params NS_SWIFT_NAME(setRemoteUserSpatialAudioParams(_:params:)); + - (int)setRemoteUserSpatialAudioParams:(NSUInteger)uid + params:(AgoraSpatialAudioParams* _Nonnull)params NS_SWIFT_NAME(setRemoteUserSpatialAudioParams(_:params:)); +

+
+
+

调用 后调用该方法。设置成功后,你可以听到具有空间感的远端用户的声音。

+

在调用 后调用此方法。设置成功后,你可以听到具有空间感的远端用户的声音。

+

调用 方法后,使用该方法设置远端用户的空间音效参数。成功设置后,你可以听到具有空间感的远端用户的声音。

+

调用 方法后,使用该方法设置远端用户的空间音效参数。成功设置后,你可以听到具有空间感的远端用户的声音。

+
+
+ 参数 + + + uid + 远端用户 ID。该参数必须与你调用加入频道方法时传入的用户 ID 相同。 + + + params + 空间音效参数。详见 + + + uid + 用户 ID,必须与该用户加入频道时使用的 ID 相同。 + + + params + 空间音效参数。详见 + + + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + params + 空间音效参数。详见 + + + uid + 用户 ID。该参数必须与用户加入频道时传入的用户 ID 相同。 + + + params + 空间音效参数。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype.dita new file mode 100644 index 00000000000..9c15134a4d0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype.dita @@ -0,0 +1,138 @@ + + + + <ph keyref="setRemoteVideoStreamType"/> + 设置要订阅的视频流类型。设置要订阅的视频流类型。设置你要订阅的视频流类型。设置你要订阅的视频流类型。 + + + + + + + + +
+

+ virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0; + public abstract int setRemoteVideoStreamType(int uid, Constants.VideoStreamType streamType); + - (int)setRemoteVideoStream:(NSUInteger)uid + type:(AgoraVideoStreamType)streamType NS_SWIFT_NAME(setRemoteVideoStream(_:type:)); + - (int)setRemoteVideoStream:(NSUInteger)uid + type:(AgoraVideoStreamType)streamType NS_SWIFT_NAME(setRemoteVideoStream(_:type:)); +

+
+
+

根据发送端的默认行为以及调用 setDualStreamMode 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即默认只发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 setDualStreamMode 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。发送端收到请求后会自动开始发送视频小流,频道内所有用户都可以调用此方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流相同。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。发送端收到请求后会自动开始发送视频小流,频道内所有用户都可以调用此方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流相同。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ 如果同时调用该方法和 ,则以该方法的设置为准。 + +
    +
  • 可以在加入频道前或加入频道后调用该方法。
  • +
  • 如果同时调用该方法和 setRemoteDefaultVideoStreamType,则以该方法的设置为准。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 如果你同时调用此方法和 ,以 的设置为准。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 如果你同时调用此方法和 ,以 的设置为准。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法

+
+
+ 参数 + + + uid + 用户 ID。 + + + streamType + 视频流类型,详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型。详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型,详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype2.dita new file mode 100644 index 00000000000..576e907466d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideostreamtype2.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="setRemoteVideoStreamType2"/> + 设置要订阅的视频流类型。 + + + + + + + + +
+

+ public abstract int setRemoteVideoStreamType(int uid, int streamType) +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 setRemoteVideoStreamType(int uid, Constants.VideoStreamType streamType)
+
+
+

根据发送端的默认行为以及调用 setDualStreamMode 时的具体设置,接收端调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为订阅视频小流模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为订阅视频小流模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流相同。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ +
    +
  • 可以在加入频道前或后调用此方法。
  • +
  • 如果同时调用此方法和 setRemoteDefaultVideoStreamType,则以此方法的设置为准。
  • +
+
+
+
+ 参数 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型: +
    +
  • 0:视频大流。
  • +
  • 1:视频小流。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotevideosubscriptionoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideosubscriptionoptions.dita new file mode 100644 index 00000000000..172eee7a16b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotevideosubscriptionoptions.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="setRemoteVideoSubscriptionOptions"/> + 设置订阅远端视频流的选项。设置订阅远端视频流的选项。设置订阅远端视频流的选项。设置订阅远端视频流的选项。 + + + + + + + + +
+

+ virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0; + public abstract int setRemoteVideoSubscriptionOptions(int uid, VideoSubscriptionOptions options); + - (int)setRemoteVideoSubscriptionOptions:(NSUInteger)uid + options:(AgoraVideoSubscriptionOptions* _Nonnull)options NS_SWIFT_NAME(setRemoteVideoSubscriptionOptions(_:options:)); + - (int)setRemoteVideoSubscriptionOptions:(NSUInteger)uid + options:(AgoraVideoSubscriptionOptions* _Nonnull)options NS_SWIFT_NAME(setRemoteVideoSubscriptionOptions(_:options:)); +

+
+
+

当远端用户开启双流模式时,你可以调用该方法设置订阅该远端用户发送的视频流的选项。SDK 默认的远端视频流订阅行为取决于注册的视频观察器类型: +

    +
  • 如果注册了 观察器,默认订阅原始数据和编码数据;
  • +
  • 如果注册了 观察器,默认仅订阅编码数据;
  • +
  • 如果同时注册了上述两种观察器,默认行为遵循最后注册的观察器。例如,如果最后注册的是 ,则默认订阅原始数据和编码数据。
  • +
如果你希望修改默认行为,或为不同的用户 ID 设置不同的订阅选项,可以调用该方法进行设置。

+

你可以调用该方法设置订阅远端用户发送的视频流的选项,适用于远端用户开启双流模式的场景。SDK 默认的远端视频流订阅行为取决于注册的视频观察器类型: +

    +
  • 如果注册了 观察器,默认订阅原始数据和编码数据;
  • +
  • 如果注册了 观察器,默认仅订阅编码数据;
  • +
  • 如果同时注册了两种观察器,默认行为遵循最后注册的视频观察器。例如,如果最后注册的是 ,则默认订阅原始数据和编码数据。
  • +
如果你希望修改默认行为,或为不同的用户 ID 设置不同的订阅选项,可以调用该方法进行设置。

+

当远端用户开启双流模式时,你可以调用此方法设置订阅该远端用户发送的视频流的选项。SDK 默认的远端视频流订阅行为取决于注册的视频观察者类型: +

    +
  • 如果注册了 观察者,默认订阅原始数据和编码数据;
  • +
  • 如果注册了 观察者,默认仅订阅编码数据;
  • +
  • 如果同时注册了两种观察者,默认行为遵循最后注册的观察者。例如,如果最后注册的是 观察者,则默认订阅原始数据和编码数据。
  • +
如果你希望修改默认行为,或为不同的 uid 设置不同的订阅选项,可以调用此方法进行设置。

+

当远端用户开启双流模式时,你可以调用此方法设置订阅该远端用户发送的视频流的选项。SDK 默认的远端视频流订阅行为取决于注册的视频观察者类型: +

    +
  • 如果注册了 观察者,默认订阅原始数据和编码数据;
  • +
  • 如果注册了 观察者,默认仅订阅编码数据;
  • +
  • 如果同时注册了两种观察者,默认行为遵循最后注册的观察者。例如,如果最后注册的是 观察者,则默认订阅原始数据和编码数据。
  • +
如果你希望修改默认行为,或为不同的 uid 设置不同的订阅选项,可以调用此方法进行设置。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + options + 视频订阅选项。详见 + + + uid + 远端用户的用户 ID。 + + + options + 视频订阅选项,详见 + + + uid + 远端用户的用户 ID。 + + + options + 视频订阅选项,详见 + + + uid + 远端用户的用户 ID。 + + + options + 视频订阅选项,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setremotevoiceposition.dita b/dita/RTC-AIDOC/API/api_irtcengine_setremotevoiceposition.dita new file mode 100644 index 00000000000..30483ed147a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setremotevoiceposition.dita @@ -0,0 +1,161 @@ + + + + <ph keyref="setRemoteVoicePosition"/> + 设置远端用户语音在水平面上的位置和音量。设置远端用户语音的二维位置和音量。设置远端用户语音的二维位置和音量。设置远端用户语音的二维位置和音量。 + + + + + + + + +
+

+ virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0; + public abstract int setRemoteVoicePosition(int uid, double pan, double gain); + - (int)setRemoteVoicePosition:(NSUInteger)uid pan:(double)pan gain:(double)gain NS_SWIFT_NAME(setRemoteVoicePosition(_:pan:gain:)); + - (int)setRemoteVoicePosition:(NSUInteger)uid pan:(double)pan gain:(double)gain NS_SWIFT_NAME(setRemoteVoicePosition(_:pan:gain:)); +

+
+
+

该方法设置远端用户的二维位置和音量,帮助你更清晰地听到并识别远端用户的位置。通过左右声道的声音差异,你可以实时感知远端用户的方位,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

该方法通过左右声道的声音差异设置远端用户的语音位置和音量,使本地用户可以更容易地识别远端用户的位置,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

该方法设置远端用户的二维位置和音量,使你可以更容易地听到并识别远端用户的位置。通过左右声道的声音差异,你可以实时追踪远端用户的位置,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

该方法设置远端用户的二维位置和音量,使你可以更容易地听到并识别远端用户的位置。通过左右声道的声音差异,你可以实时追踪远端用户的位置,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+ +
    +
  • 要使该方法生效,请在加入频道前调用 方法开启远端用户的立体声声像。
  • +
  • 为获得最佳语音定位效果,声网建议使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 要使该方法生效,请在加入频道前调用 方法为远端用户开启立体声声像。
  • +
  • 为获得最佳语音定位效果,建议使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 要使该方法生效,请在加入频道前调用 方法为远端用户开启立体声声道。
  • +
  • 为获得最佳语音定位效果,声网建议你使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 要使该方法生效,请在加入频道前调用 方法为远端用户开启立体声声道。
  • +
  • 为获得最佳语音定位效果,声网建议你使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+
+
+ 参数 + + + uid + 远端用户 ID。 + + + pan + 远端用户的语音位置,取值范围为 -1.0 到 1.0: +
    +
  • 0.0:(默认)远端语音来自正前方。
  • +
  • -1.0:远端语音来自左侧。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量,取值范围为 0.0 到 100.0。默认值为 100.0,表示远端用户的原始音量。数值越小,音量越低。 + + + uid + 远端用户 ID。 + + + pan + 远端用户的语音位置,取值范围为 -1.0 到 1.0: +
    +
  • 0.0:(默认)远端语音来自正前方。
  • +
  • -1.0:远端语音来自左侧。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量,取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。数值越小,音量越低。 + + + uid + 远端用户的用户 ID。 + + + pan + 远端用户的语音位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:(默认)远端语音来自正前方。
  • +
  • -1.0:远端语音来自左侧。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量。取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。数值越小,音量越低。 + + + uid + 远端用户的用户 ID。 + + + pan + 远端用户的语音位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:(默认)远端语音来自正前方。
  • +
  • -1.0:远端语音来自左侧。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量。取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。数值越小,音量越低。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setrouteincommunicationmode.dita b/dita/RTC-AIDOC/API/api_irtcengine_setrouteincommunicationmode.dita new file mode 100644 index 00000000000..28b1c5fa061 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setrouteincommunicationmode.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="setRouteInCommunicationMode"/> + 设置通信音频模式下的音频播放路由。在通信音频模式下设置音频播放路由。 + + + + + + + + +
+

+ virtual int setRouteInCommunicationMode(int route) = 0; + public abstract int setRouteInCommunicationMode(int route); +

+
+
+

该方法用于将音频路由从蓝牙耳机切换为听筒、有线耳机或扬声器。

+ 同时使用该方法和 方法可能会导致冲突。建议你仅使用 方法。该方法仅适用于 Android 平台。 + 同时使用该方法和 方法可能会导致冲突。建议仅使用 方法。 +
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+ +
+ 参数 + + + route + 你希望使用的音频播放路由: +
    +
  • -1:默认音频路由。
  • +
  • 0:带麦克风的耳机。
  • +
  • 1:听筒。
  • +
  • 2:不带麦克风的耳机。
  • +
  • 3:设备内置扬声器。
  • +
  • 4:(尚不支持)外部扬声器。
  • +
  • 5:蓝牙耳机。
  • +
  • 6:USB 设备。
  • +
+
+
+ + route + 你希望使用的音频播放路由: +
    +
  • -1:默认音频路由。
  • +
  • 0:带麦克风的耳机。
  • +
  • 1:听筒。
  • +
  • 2:不带麦克风的耳机。
  • +
  • 3:设备内置扬声器。
  • +
  • 4:(尚不支持)外部扬声器。
  • +
  • 5:蓝牙耳机。
  • +
  • 6:USB 设备。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturecontenthint.dita b/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturecontenthint.dita new file mode 100644 index 00000000000..81cd149b877 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturecontenthint.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="setScreenCaptureContentHint"/> + 设置屏幕共享的内容提示。 + + + + + + + + +
+

+ virtual int setScreenCaptureContentHint(VIDEO_CONTENT_HINT contentHint) = 0; +

+
+
+

该方法用于设置屏幕共享的内容类型提示,以便 SDK 针对不同类型的内容应用相应的优化算法。如果你未调用该方法,默认内容提示为 CONTENT_HINT_NONE

+ 你可以在开始或停止屏幕共享之前或之后调用此方法。 +
+
+ 参数 + + + contentHint + 屏幕共享的内容提示,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效,可能是因为你已共享了其他屏幕或窗口。请调用 stopScreenCapture 停止当前共享后重新开始。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturescenario.dita b/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturescenario.dita new file mode 100644 index 00000000000..3a677d0e7f5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setscreencapturescenario.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="setScreenCaptureScenario"/> + 设置屏幕共享场景。设置屏幕共享场景。设置屏幕共享场景。设置屏幕共享场景。 + + + + + + + + +
+

+ virtual int setScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) = 0; + public abstract int setScreenCaptureScenario(Constants.ScreenScenarioType screenScenario); + - (int)setScreenCaptureScenario:(AgoraScreenScenarioType)scenarioType NS_SWIFT_NAME(setScreenCaptureScenario(_:)); + - (int)setScreenCaptureScenario:(AgoraScreenScenarioType)scenarioType NS_SWIFT_NAME(setScreenCaptureScenario(_:)); +

+
+
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+

调用该方法设置屏幕共享场景,SDK 会根据场景自动优化共享的视频质量和用户体验。

+

SDK 会根据设置的场景自动调整共享的视频质量和用户体验。

+

调用该方法设置屏幕共享场景。SDK 会根据设置的场景优化共享的视频质量和用户体验。

+

调用该方法设置屏幕共享场景。SDK 会根据设置的场景优化共享的视频质量和用户体验。

+ 建议在加入频道前调用此方法。 + 声网建议你在加入频道前调用此方法。 + 声网建议你在加入频道前调用此方法。 + 声网建议你在加入频道前调用此方法。 +
+
+ 参数 + + + screenScenario + 屏幕共享场景。详见 + + + screenScenario + 屏幕共享场景。详见 + + + scenarioType + 屏幕共享场景。详见 + + + scenarioType + 屏幕共享场景。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioallowlist.dita b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioallowlist.dita new file mode 100644 index 00000000000..b10541c7367 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioallowlist.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="setSubscribeAudioAllowlist"/> + 设置音频流订阅的白名单。设置音频流订阅的白名单。设置音频流订阅的白名单。设置音频流订阅的白名单。 + + + + + + + + +
+

+ virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0; + public abstract int setSubscribeAudioAllowlist(int[] uidList); + - (int)setSubscribeAudioAllowlist:(NSArray <NSNumber *> *_Nonnull)allowlist NS_SWIFT_NAME(setSubscribeAudioAllowlist(_:)); + - (int)setSubscribeAudioAllowlist:(NSArray <NSNumber *> *_Nonnull)allowlist NS_SWIFT_NAME(setSubscribeAudioAllowlist(_:)); +

+
+
+

你可以调用此方法来指定希望订阅的用户的音频流。

+

你可以调用此方法来指定希望订阅的用户的音频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道之前或之后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道之前或之后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
  • +
+
+
+
+ 参数 + + + uidList + 你希望订阅的用户 ID 列表。如果你想订阅某个用户的音频流,请将该用户的用户 ID 添加到该列表中。如果你想将某个用户从白名单中移除,需要调用 方法更新该列表,即仅保留你希望订阅的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + uidList + 你希望订阅的用户 ID 列表。调用该方法时,仅订阅该列表中用户的音频流。如果你希望将某个用户从白名单中移除,需要重新调用 方法,并在新的列表中仅包含你希望订阅的用户 ID。 + + + allowlist + 希望订阅的用户的用户 ID 列表。如果希望订阅某个用户的音频流,请将该用户的 ID 添加到该列表中。如果希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表;也就是说,只需在新的用户 ID 列表中添加希望订阅的用户的 uid + + + allowlist + 希望订阅的用户的用户 ID 列表。如果希望订阅某个用户的音频流,请将该用户的 ID 添加到该列表中。如果希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表;也就是说,只需在新的用户 ID 列表中添加希望订阅的用户的 uid + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioblocklist.dita b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioblocklist.dita new file mode 100644 index 00000000000..7527d928ea3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribeaudioblocklist.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="setSubscribeAudioBlocklist"/> + 设置不订阅的音频流用户黑名单。设置音频流订阅的黑名单。设置音频流订阅的黑名单。设置音频流订阅的黑名单。 + + + + + + + + +
+

+ virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0; + public abstract int setSubscribeAudioBlocklist(int[] uidList); + - (int)setSubscribeAudioBlocklist:(NSArray <NSNumber *> *_Nonnull)blocklist NS_SWIFT_NAME(setSubscribeAudioBlocklist(_:)); + - (int)setSubscribeAudioBlocklist:(NSArray <NSNumber *> *_Nonnull)blocklist NS_SWIFT_NAME(setSubscribeAudioBlocklist(_:)); +

+
+
+

你可以调用此方法来指定不希望订阅的用户的音频流。

+

你可以调用此方法来指定不希望订阅的用户的音频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单设置不受 autoSubscribeAudio 的影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+
+
+ 参数 + + + uidList + 不希望订阅其音频流的用户 ID 列表。要将某个用户从黑名单中移除,需要调用 方法更新该列表,即仅在新的列表中保留不希望订阅的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + uidList + 不希望订阅其音频流的用户 ID 列表。 +
    +
  • 如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表,即在新的列表中仅保留不希望订阅的用户 ID。
  • +
+
+
+ + blocklist + 不希望订阅其音频流的远端用户 ID 列表。如果你希望指定不订阅某个用户的音频流,请将该用户的 ID 添加到此列表中。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的 ID。 + + + blocklist + 不希望订阅其音频流的远端用户 ID 列表。如果你希望指定不订阅某个用户的音频流,请将该用户的 ID 添加到此列表中。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的 ID。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoallowlist.dita b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoallowlist.dita new file mode 100644 index 00000000000..e32a05beecf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoallowlist.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="setSubscribeVideoAllowlist"/> + 设置视频流订阅的允许列表。设置视频流订阅的白名单。设置视频流订阅的白名单。设置视频流订阅的白名单。 + + + + + + + + +
+

+ virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0; + public abstract int setSubscribeVideoAllowlist(int[] uidList); + - (int)setSubscribeVideoAllowlist:(NSArray <NSNumber *> *_Nonnull)allowlist NS_SWIFT_NAME(setSubscribeVideoAllowlist(_:)); + - (int)setSubscribeVideoAllowlist:(NSArray <NSNumber *> *_Nonnull)allowlist NS_SWIFT_NAME(setSubscribeVideoAllowlist(_:)); +

+
+
+

你可以调用该方法来指定你想要订阅的用户的视频流。

+

你可以调用该方法来指定你想要订阅的用户的视频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 允许列表不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅的允许列表,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到允许列表和阻止列表中,则仅阻止列表生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeVideo 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则只有黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则只有黑名单生效。
  • +
+
+
+
+ 参数 + + + uidList + 希望订阅的视频流用户的用户 ID 列表。如果你想移除某个用户,需要调用 更新该列表,仅保留你希望订阅的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + uidList + 希望订阅的视频流所属用户的用户 ID 列表。 +
    +
  • 如果你希望订阅某个用户的视频流,请将该用户的用户 ID 添加到该列表中。
  • +
  • 如果你希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表,即在新的用户 ID 列表中仅包含你希望订阅的用户的用户 ID。
  • +
+
+
+ + allowlist + 你想要订阅的视频流用户的用户 ID 列表。如果你想指定某个用户的视频流进行订阅,请将该用户的用户 ID 添加到此列表中。如果你想将某个用户从白名单中移除,你需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加你想要订阅的用户的用户 ID。 + + + allowlist + 你想要订阅的视频流用户的用户 ID 列表。如果你想指定某个用户的视频流进行订阅,请将该用户的用户 ID 添加到此列表中。如果你想将某个用户从白名单中移除,你需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加你想要订阅的用户的用户 ID。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoblocklist.dita b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoblocklist.dita new file mode 100644 index 00000000000..df0388b6723 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setsubscribevideoblocklist.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="setSubscribeVideoBlocklist"/> + 设置视频流订阅的黑名单。设置视频流订阅的阻止名单。设置不订阅的视频流用户的 blocklist。设置不订阅的视频流用户的 blocklist。 + + + + + + + + +
+

+ virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0; + public abstract int setSubscribeVideoBlocklist(int[] uidList); + - (int)setSubscribeVideoBlocklist:(NSArray <NSNumber *> *_Nonnull)blocklist NS_SWIFT_NAME(setSubscribeVideoBlocklist(_:)); + - (int)setSubscribeVideoBlocklist:(NSArray <NSNumber *> *_Nonnull)blocklist NS_SWIFT_NAME(setSubscribeVideoBlocklist(_:)); +

+
+
+

你可以调用此方法来指定不希望订阅的用户的视频流。

+

你可以调用此方法来指定不希望订阅的用户的视频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅黑名单,即使离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时出现在白名单和黑名单中,只有黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 阻止名单不受 中的 autoSubscribeVideo 的设置影响。
  • +
  • 一旦设置了订阅的阻止名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到允许名单和阻止名单中,则仅阻止名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 该 blocklist 不受 muteRemoteVideoStreammuteAllRemoteVideoStreams 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅的 blocklist,即使你离开并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到 allowlist 和 blocklist 中,只有 blocklist 生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 该 blocklist 不受 muteRemoteVideoStreammuteAllRemoteVideoStreams 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅的 blocklist,即使你离开并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到 allowlist 和 blocklist 中,只有 blocklist 生效。
  • +
+
+
+
+ 参数 + + + uidList + 不希望订阅其视频流的用户 ID 列表。如果你希望将某个用户从黑名单中移除,需要调用 更新该列表,即只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + uidList + 不希望订阅其视频流的用户 ID 列表。 +
    +
  • 如果你希望屏蔽某个用户的视频流,请将该用户的用户 ID 添加到该列表中。
  • +
  • 如果你希望将某个用户从阻止名单中移除,需要调用 方法更新该列表,即仅在新的列表中保留你仍希望屏蔽的用户 ID。
  • +
+
+
+ + blocklist + 不希望订阅其视频流的用户 ID 列表。如果你希望指定不订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从 blocklist 中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + blocklist + 不希望订阅其视频流的用户 ID 列表。如果你希望指定不订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从 blocklist 中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setuplocalvideo.dita b/dita/RTC-AIDOC/API/api_irtcengine_setuplocalvideo.dita new file mode 100644 index 00000000000..8a5622ccadc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setuplocalvideo.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="setupLocalVideo"/> + 初始化本地视频画面。初始化本地视频画面。初始化本地视频画面。初始化本地视频画面。 + + + + + + + + +
+

+ virtual int setupLocalVideo(const VideoCanvas& canvas) = 0; + public abstract int setupLocalVideo(VideoCanvas local); + - (int)setupLocalVideo:(AgoraRtcVideoCanvas * _Nullable)local NS_SWIFT_NAME(setupLocalVideo(_:)); + - (int)setupLocalVideo:(AgoraRtcVideoCanvas * _Nullable)local NS_SWIFT_NAME(setupLocalVideo(_:)); +

+
+
+

该方法在本地设备上初始化本地视频流的画面视图,仅影响本地用户看到的视频画面,不影响本地视频的发布。你可以调用该方法将本地视频流绑定到指定的视频视图(view),并设置该视图的渲染模式和镜像模式。 +绑定关系在离开频道后仍然有效。若需停止渲染或解绑本地视频与视图的绑定关系,可将 view 设置为 。 +在实时互动场景中,如果你需要在本地视频预览中同时查看多个不同观察位置的画面,可以多次调用该方法,为每个 view 设置不同的观察位置。例如,将视频源设置为摄像头后,配置两个 view,其 position 分别设置为 POSITION_POST_CAPTURER_ORIGINPOSITION_POST_CAPTURER,即可同时预览原始未处理的视频帧和经过图像增强、虚拟背景、水印等预处理后的视频帧。

+

你可以调用该方法将本地视频流绑定到视频画面(view),并设置画面的渲染模式和镜像模式。绑定关系在离开频道后仍然有效。如需停止渲染或解绑本地视频与画面,可将 view 设为 null。 + +在实时互动场景中,如果你需要在本地视频预览中同时查看多个预览画面,且每个画面位于视频链路的不同观察位置,可以多次调用该方法设置不同的 view,并为每个 view 设置不同的观察位置。例如,将视频源设置为摄像头后,配置两个 view,其 position 分别设置为 VIDEO_MODULE_POSITION_POST_CAPTURER_ORIGINVIDEO_MODULE_POSITION_POST_CAPTURER,即可在本地视频预览中同时查看原始未处理的视频帧和经过图像增强、虚拟背景、水印等预处理后的视频帧。

+

该方法在本地设备上初始化本地视频流的画面,仅影响你本地看到的视频内容,不影响本地视频的发布。你可以调用该方法将本地视频流绑定到指定的视频画面(view),并设置画面的渲染模式和镜像模式。绑定关系在离开频道后仍然有效。如需停止渲染或解绑本地视频与画面,将 view 设为 即可。 + +在实时互动场景中,如果你需要在本地视频预览中同时查看多个处于视频链路不同观察位置的预览画面,可以多次调用该方法,设置不同的 view,并为每个 view 设置不同的观察位置。例如,将视频源设置为摄像头后,配置两个 view,分别设置 positionAgoraVideoModulePositionPostCaptureOriginAgoraVideoModulePositionPostCapture,即可在本地视频预览中同时查看原始未处理的视频帧和经过图像增强、虚拟背景、水印等预处理后的视频帧。

+

该方法在本地设备上初始化本地视频流的画面,仅影响你本地看到的视频内容,不影响本地视频的发布。你可以调用该方法将本地视频流绑定到指定的视频画面(view),并设置画面的渲染模式和镜像模式。绑定关系在离开频道后仍然有效。如需停止渲染或解绑本地视频与画面,将 view 设为 即可。 + +在实时互动场景中,如果你需要在本地视频预览中同时查看多个处于视频链路不同观察位置的预览画面,可以多次调用该方法,设置不同的 view,并为每个 view 设置不同的观察位置。例如,将视频源设置为摄像头后,配置两个 view,分别设置 positionAgoraVideoModulePositionPostCaptureOriginAgoraVideoModulePositionPostCapture,即可在本地视频预览中同时查看原始未处理的视频帧和经过图像增强、虚拟背景、水印等预处理后的视频帧。

+ 若仅需在通话中更新本地视频视图的渲染模式或镜像模式,请改用 setLocalRenderMode + 如需在通话过程中仅更新本地视频画面的渲染模式或镜像模式,请调用 setLocalRenderMode + 若仅需在通话中更新本地视频画面的渲染模式或镜像模式,请调用 方法。 + 若仅需在通话中更新本地视频画面的渲染模式或镜像模式,请调用 方法。 +
+
+ 适用场景 +

初始化后调用该方法设置本地视频,然后加入频道。在实时互动场景中,如需在本地预览中同时查看多个不同观察位置的画面,可多次调用该方法设置不同的 view 和观察位置。

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+
+
+ 参数 + + + canvas + 本地视频视图及相关设置,详见 + + + local + 本地视频画面及相关设置。详见 + + + local + 本地视频画面及相关设置,详见 + + + local + 本地视频画面及相关设置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setupremotevideo.dita b/dita/RTC-AIDOC/API/api_irtcengine_setupremotevideo.dita new file mode 100644 index 00000000000..2e7632e06b0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setupremotevideo.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="setupRemoteVideo"/> + 初始化远端用户的视频视图。初始化远端视频视图。初始化远端用户的视频视图。初始化远端用户的视频视图。 + + + + + + + + +
+

+ virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0; + public abstract int setupRemoteVideo(VideoCanvas remote); + - (int)setupRemoteVideo:(AgoraRtcVideoCanvas * _Nonnull)remote NS_SWIFT_NAME(setupRemoteVideo(_:)); + - (int)setupRemoteVideo:(AgoraRtcVideoCanvas * _Nonnull)remote NS_SWIFT_NAME(setupRemoteVideo(_:)); +

+
+
+

该方法在本地设备上初始化远端视频流的视频视图,仅影响本地用户所见的视频画面。你可以通过该方法将远端视频流绑定到指定视图,并设置该视图的渲染模式和镜像模式。你需要在调用该方法时指定远端用户的 ID。如果应用尚未获取远端用户的 ID,请在收到 回调后再设置。若要解绑远端用户与视图的绑定关系,可将 view 参数设置为 。当远端用户离开频道时,SDK 会自动解绑该用户。在移动端进行视频合流布局自定义的场景中,你可以调用该方法,并为合流视频流中的每个子视频流设置独立的 view 进行渲染。

+

该方法在本地设备上初始化远端视频流的视图,仅影响本地用户看到的视频画面。调用该方法可将远端视频流绑定到视频视图,并设置该视图的渲染模式和镜像模式。你需要在该方法中指定远端用户的 ID。如果应用尚未获取远端用户的 ID,请在收到 回调后设置。若要将远端用户与视图解绑,请将 view 参数设置为 null。一旦远端用户离开频道,SDK 会自动解绑该用户。在移动端进行视频合流布局自定义的场景中,你可以调用该方法,并为合流视频流中的每个子视频流设置独立的 view 进行渲染。

+

该方法在本地设备上初始化远端视频流的视频视图,仅影响你本地看到的视频画面。调用该方法可以将远端视频流绑定到指定视图,并设置该视图的渲染模式和镜像模式。你需要在该方法中指定远端用户 ID。如果你尚未获取远端用户 ID,请在收到 回调后再设置。 + +若要解绑远端用户与视图的绑定关系,请将 view 参数设置为 。一旦远端用户离开频道,SDK 会自动解绑该用户。 + +在移动端进行合流视频自定义布局的场景中,你可以调用该方法,并为合流视频流中的每个子视频流设置独立的 view 进行渲染。

+

该方法在本地设备上初始化远端视频流的视频视图,仅影响你本地看到的视频画面。调用该方法可以将远端视频流绑定到指定视图,并设置该视图的渲染模式和镜像模式。你需要在该方法中指定远端用户 ID。如果你尚未获取远端用户 ID,请在收到 回调后再设置。 + +若要解绑远端用户与视图的绑定关系,请将 view 参数设置为 。一旦远端用户离开频道,SDK 会自动解绑该用户。 + +在移动端进行合流视频自定义布局的场景中,你可以调用该方法,并为合流视频流中的每个子视频流设置独立的 view 进行渲染。

+ +
    +
  • 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 方法。
  • +
  • 使用录制服务时,应用无需绑定视图,因为录制服务不会发送视频流。如果你的应用无法识别录制服务,请在 SDK 触发 回调时将远端用户绑定到视图。
  • +
+
+ +
    +
  • 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 方法。
  • +
  • 使用录制服务时,应用无需绑定视图,因为录制服务不会发送视频流。如果你的应用无法识别录制服务,请在 SDK 触发 回调时将远端用户绑定到视图。
  • +
+
+ +
    +
  • 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 setRemoteRenderMode 方法。
  • +
  • 使用录制服务时,应用无需绑定视图,因为录制服务不会发送视频流。如果你的应用无法识别录制服务,请在 SDK 触发 回调时将远端用户绑定到视图。
  • +
+
+ +
    +
  • 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 setRemoteRenderMode 方法。
  • +
  • 使用录制服务时,应用无需绑定视图,因为录制服务不会发送视频流。如果你的应用无法识别录制服务,请在 SDK 触发 回调时将远端用户绑定到视图。
  • +
+
+
+
+ 参数 + + + canvas + 远端视频视图及其相关设置。详见 + + + remote + 远端视频视图及相关设置。详见 + + + remote + 远端视频视图及其相关设置,详见 + + + remote + 远端视频视图及其相关设置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions.dita new file mode 100644 index 00000000000..4f714be81c3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions.dita @@ -0,0 +1,212 @@ + + + + <ph keyref="setVideoDenoiserOptions"/> + 设置视频降噪功能。设置视频降噪功能及其选项。设置视频降噪功能。设置视频降噪功能。 + + + + + + + + +
+

+ virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + public abstract int setVideoDenoiserOptions(boolean enabled, VideoDenoiserOptions options); + - (int)setVideoDenoiserOptions:(BOOL)enable options:(AgoraVideoDenoiserOptions* _Nullable)options NS_SWIFT_NAME(setVideoDenoiserOptions(_:options:)); + - (int)setVideoDenoiserOptions:(BOOL)enable options:(AgoraVideoDenoiserOptions* _Nullable)options NS_SWIFT_NAME(setVideoDenoiserOptions(_:options:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

你可以调用该方法设置视频降噪效果的相关选项。

+

你可以调用该方法开启视频降噪功能,并设置视频降噪效果的选项。

+

你可以调用该方法开启视频降噪功能,并设置视频降噪效果的选项。

+ +
    +
  • 该方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果你在启用视频降噪后设备出现过热情况,声网建议你将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议你调用 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel:LIGHTENING_CONTRAST_NORMAL。
    • +
    • lighteningLevel:0.0。
    • +
    • smoothnessLevel:0.5。
    • +
    • rednessLevel:0.0。
    • +
    • sharpnessLevel:0.1。
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,将无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用后设备出现过热,声网建议你将降噪选项调整为较低性能消耗的等级,或关闭视频降噪功能。
  • +
  • 如果该方法实现的降噪效果无法满足你的需求,声网建议你调用 setBeautyEffectOptions 方法启用美颜和磨皮功能,以获得更好的降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: LIGHTENING_CONTRAST_NORMAL
    • +
    • lighteningLevel: 0.0
    • +
    • smoothnessLevel: 0.5
    • +
    • rednessLevel: 0.0
    • +
    • sharpnessLevel: 0.1
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用视频降噪后设备过热,声网建议将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议调用 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: AgoraLighteningContrastNormal
    • +
    • lighteningLevel: 0.0
    • +
    • smoothnessLevel: 0.5
    • +
    • rednessLevel: 0.0
    • +
    • sharpnessLevel: 0.1
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用视频降噪后设备过热,声网建议将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议调用 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: AgoraLighteningContrastNormal
    • +
    • lighteningLevel: 0.0
    • +
    • smoothnessLevel: 0.5
    • +
    • rednessLevel: 0.0
    • +
    • sharpnessLevel: 0.1
    • +
    +
  • +
+
+
+
+ 适用场景 +

在光线较暗的环境中或使用低端视频采集设备时,视频图像可能会出现明显噪点,影响视频质量。在实时互动场景中,视频噪点还会占用码流资源,降低编码效率。该方法适用于多频道场景。

+
+
+ 调用时机 +

调用 方法后调用该方法。

+

调用 方法后调用此方法。

+

请在调用 方法之后调用此方法。

+

请在调用 方法之后调用此方法。

+
+
+ 参数 + + + enabled + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项,详见 + + + type + 媒体源类型,详见 。 + 在该方法中,该参数仅支持以下两种设置: +
    +
  • 如果使用摄像头采集本地视频,使用默认值 PRIMARY_CAMERA_SOURCE
  • +
  • 如果使用自定义视频源,设置该参数为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enabled + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项。详见 + + + enable + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项,详见 + + + enable + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions2.dita new file mode 100644 index 00000000000..5876ee03d9b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvideodenoiseroptions2.dita @@ -0,0 +1,190 @@ + + + + <ph keyref="setVideoDenoiserOptions2"/> + 设置视频降噪并指定媒体源。设置视频降噪并指定媒体源。设置视频降噪并指定媒体源。 + + + + + + + + +
+

+ - (int)setVideoDenoiserOptions:(BOOL)enable options:(AgoraVideoDenoiserOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setVideoDenoiserOptions(_:options:sourceType:)); + public abstract int setVideoDenoiserOptions(boolean enabled, VideoDenoiserOptions options, Constants.MediaSourceType sourceType); + - (int)setVideoDenoiserOptions:(BOOL)enable options:(AgoraVideoDenoiserOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setVideoDenoiserOptions(_:options:sourceType:)); +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

你可以调用此方法启用视频降噪功能并设置视频降噪效果的选项。此方法与 都可设置视频降噪,但此方法允许你指定应用降噪的媒体源类型。

+

你可以调用此方法启用视频降噪功能并设置视频降噪效果的选项。该方法与 类似,但支持你指定应用降噪的媒体源类型。

+

你可以调用此方法启用视频降噪功能并设置视频降噪效果的选项。此方法与 都可设置视频降噪,但此方法允许你指定应用降噪的媒体源类型。

+ +
    +
  • 此方法依赖图像增强动态库 (iOS)或 AgoraClearVisionExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用视频降噪后设备出现过热情况,声网建议你将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议你调用 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: AgoraLighteningContrastNormal
    • +
    • lighteningLevel: 0.0
    • +
    • smoothnessLevel: 0.5
    • +
    • rednessLevel: 0.0
    • +
    • sharpnessLevel: 0.1
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用视频降噪后设备出现过热,声网建议你将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议你调用 setBeautyEffectOptions 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: LIGHTENING_CONTRAST_NORMAL。
    • +
    • lighteningLevel: 0.0。
    • +
    • smoothnessLevel: 0.5。
    • +
    • rednessLevel: 0.0。
    • +
    • sharpnessLevel: 0.1。
    • +
    +
  • +
+
+ +
    +
  • 此方法依赖图像增强动态库 AgoraClearVisionExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
  • 视频降噪对设备性能有一定要求。如果启用视频降噪后设备出现过热情况,声网建议你将视频降噪选项设置为较低的性能消耗等级,或完全关闭视频降噪功能。
  • +
  • 如果该方法实现的视频降噪效果无法满足你的需求,声网建议你调用 方法启用美颜和磨皮功能,以获得更好的视频降噪效果。推荐用于强降噪效果的 设置如下: +
      +
    • lighteningContrastLevel: AgoraLighteningContrastNormal
    • +
    • lighteningLevel: 0.0
    • +
    • smoothnessLevel: 0.5
    • +
    • rednessLevel: 0.0
    • +
    • sharpnessLevel: 0.1
    • +
    +
  • +
+
+
+
+ 适用场景 +

在光线较暗的环境中或使用低端视频采集设备时,视频图像可能会出现明显噪点,影响视频质量。在实时互动场景中,视频噪点还会占用码流资源,降低编码效率。

+
+
+ 调用时机 +

请在调用 方法之后调用此方法。

+

请在调用 方法之后调用此方法。

+

请在调用 方法之后调用此方法。

+
+
+ 参数 + + + enable + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+ + enabled + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项,详见 + + + sourceType + 应用滤镜效果的媒体源类型,详见 。 + 在此方法中,该参数仅支持以下两种设置: +
    +
  • 默认值为 PRIMARY_CAMERA_SOURCE
  • +
  • 如果你使用自定义视频源,请将该参数设置为 CUSTOM_VIDEO_SOURCE
  • +
+
+
+
+ + enable + 是否启用视频降噪功能: +
    +
  • :启用视频降噪。
  • +
  • :(默认)关闭视频降噪。
  • +
+
+
+ + options + 视频降噪选项。详见 + + + sourceType + 应用滤镜效果的媒体源类型。详见 。 +
    +
  • 默认值为 AgoraMediaSourceTypePrimaryCamera
  • +
  • 如果你使用自定义视频源,请将该参数设置为 AgoraMediaSourceTypeCustomVideo
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvideoencoderconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvideoencoderconfiguration.dita new file mode 100644 index 00000000000..1121ac19d54 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvideoencoderconfiguration.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="setVideoEncoderConfiguration"/> + 设置本地视频的编码器配置。设置本地视频的编码器配置。设置本地视频的编码配置。设置本地视频的编码配置。 + + + + + + + + +
+

+ virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0; + public abstract int setVideoEncoderConfiguration(VideoEncoderConfiguration config); + - (int)setVideoEncoderConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config NS_SWIFT_NAME(setVideoEncoderConfiguration(_:)); + - (int)setVideoEncoderConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config NS_SWIFT_NAME(setVideoEncoderConfiguration(_:)); +

+
+
+

设置本地视频的编码配置。每个配置文件对应一组视频参数,包括分辨率、帧率和码率。

+

设置本地视频的编码配置。每个配置文件对应一组视频参数,包括分辨率、帧率和码率。

+ +
    +
  • 该方法和 方法都支持设置镜像效果。声网建议只使用其中一种方法进行设置,同时使用两种方法会导致镜像效果叠加,从而使设置失效。
  • +
  • 该方法中指定的 config 是在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中更低的参数,直到找到可用的配置。
  • +
+
+ +
    +
  • 此方法和 方法都支持设置镜像效果。声网建议只使用其中一种方法进行设置,同时使用两种方法会导致镜像效果叠加,镜像设置失效。
  • +
  • 此方法中指定的 config 是在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中较低的参数,直到找到可用的配置。
  • +
+
+ +
    +
  • 此方法和 方法都支持设置镜像效果。声网建议你只使用其中一种方法进行设置,同时使用会导致镜像效果叠加,设置失败。
  • +
  • 此方法中指定的 config 是在理想网络条件下的最大值。如果由于网络不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中更低的参数,直到找到可用的配置。
  • +
+
+ +
    +
  • 此方法和 方法都支持设置镜像效果。声网建议你只使用其中一种方法进行设置,同时使用会导致镜像效果叠加,设置失败。
  • +
  • 此方法中指定的 config 是在理想网络条件下的最大值。如果由于网络不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中更低的参数,直到找到可用的配置。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。如果在加入频道后不需要重新设置视频编码属性,声网建议在调用 之前调用该方法,以减少首帧视频渲染时间。

+

你可以在加入频道前或加入频道后调用此方法。如果用户在加入频道后不需要重新设置视频编码属性,声网建议在调用 之前调用此方法,以减少首帧视频渲染时间。

+

你可以在加入频道前或后调用此方法。如果你在加入频道后不需要重新设置视频编码属性,声网建议你在调用 之前调用此方法,以减少首帧视频渲染时间。

+

你可以在加入频道前或后调用此方法。如果你在加入频道后不需要重新设置视频编码属性,声网建议你在调用 之前调用此方法,以减少首帧视频渲染时间。

+
+
+ 参数 + + + config + 视频编码配置,详见 + + + config + 视频编码配置,详见 + + + config + 视频配置参数。详见 + + + config + 视频配置参数。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvideoprofile2.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvideoprofile2.dita new file mode 100644 index 00000000000..bcf7dd3ad66 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvideoprofile2.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="setVideoProfile2"/> + 手动设置视频编码配置。手动设置视频编码配置。 + + + + + + + + +
+

+ - (int)setVideoResolution:(CGSize)size andFrameRate:(NSInteger)frameRate bitrate:(NSInteger)bitrate NS_SWIFT_NAME(setVideoResolution(_:andFrameRate:bitrate:)) __deprecated_msg("use setVideoEncoderConfiguration: instead."); + - (int)setVideoResolution:(CGSize)size andFrameRate:(NSInteger)frameRate bitrate:(NSInteger)bitrate NS_SWIFT_NAME(setVideoResolution(_:andFrameRate:bitrate:)) __deprecated_msg("use setVideoEncoderConfiguration: instead."); +

+
+
+
+ +
废弃
+
自 v2.3 版本废弃,请改用
+
+ +
废弃
+
自 v2.3 版本废弃,请改用
+
+
+
+
+ 参数 + + + size + 你想要设置的视频尺寸。最大值为 1280 × 720。 + + + frameRate + 你想要设置的视频帧率。最大值为 30。你可以设置为 5、10、15、24、30 等。 + + + bitrate + 你想要设置的视频码率。你需要根据宽度、高度和帧率手动计算码率。在相同宽高下,码率会随着帧率的变化而变化: +
    +
  • 如果帧率为 5 fps,推荐码率除以 2。
  • +
  • 如果帧率为 15 fps,使用推荐码率。
  • +
  • 如果帧率为 30 fps,推荐码率乘以 1.5。
  • +
  • 如果选择其他帧率,请按比例计算码率。
  • +
例如,分辨率为 320 × 240,帧率为 15 fps,则码率为 200: +
    +
  • 如果帧率为 5 fps,码率为 100。
  • +
  • 如果帧率为 30 fps,码率为 300。
  • +
如果你设置的码率超出合理范围,SDK 会自动将其调整到范围内的值。
+
+ + size + 你想要设置的视频尺寸。最大值为 1280 × 720。 + + + frameRate + 你想要设置的视频帧率。最大值为 30。你可以设置为 5、10、15、24、30 等。 + + + bitrate + 你想要设置的视频码率。你需要根据宽度、高度和帧率手动计算码率。在相同宽高下,码率会随着帧率的变化而变化: +
    +
  • 如果帧率为 5 fps,推荐码率除以 2。
  • +
  • 如果帧率为 15 fps,使用推荐码率。
  • +
  • 如果帧率为 30 fps,推荐码率乘以 1.5。
  • +
  • 如果选择其他帧率,请按比例计算码率。
  • +
例如,分辨率为 320 × 240,帧率为 15 fps,则码率为 200: +
    +
  • 如果帧率为 5 fps,码率为 100。
  • +
  • 如果帧率为 30 fps,码率为 300。
  • +
如果你设置的码率超出合理范围,SDK 会自动将其调整到范围内的值。
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvideoscenario.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvideoscenario.dita new file mode 100644 index 00000000000..e75a128bc5e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvideoscenario.dita @@ -0,0 +1,298 @@ + + + + <ph keyref="setVideoScenario"/> + 设置视频应用场景。设置视频应用场景。设置视频应用场景。设置视频应用场景。 + + + + + + + + +
+

+ virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType) = 0; + public abstract int setVideoScenario(Constants.VideoScenario scenarioType); + - (int)setVideoScenario:(AgoraApplicationScenarioType)scenarioType NS_SWIFT_NAME(setVideoScenario(_:)); + - (int)setVideoScenario:(AgoraApplicationScenarioType)scenarioType NS_SWIFT_NAME(setVideoScenario(_:)); +

+
+
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+

成功调用该方法后,SDK 会根据指定的视频应用场景自动启用最佳实践策略,并调整关键性能指标,以优化视频体验。

+

调用该方法后,SDK 会根据指定的视频应用场景自动启用最佳实践策略,并调整关键性能指标,以优化视频体验。

+

调用该方法后,SDK 会根据指定的视频应用场景自动启用最佳实践策略,并调整关键性能指标,以优化视频体验。

+ 请在加入频道前调用该方法。 + 请在加入频道前调用该方法。 + 请在加入频道前调用该方法。 + 请在加入频道前调用该方法。 +
+
+ 参数 + + + scenarioType + 视频应用场景类型,详见 。 +
    +
  • APPLICATION_SCENARIO_MEETING(1):适用于会议场景。SDK 会自动启用以下策略: +
      +
    • 当低画质视频流需要较高码率时,SDK 会启用多种抗网络拥塞技术,提升低画质视频流的性能,确保订阅端流畅接收。
    • +
    • SDK 实时监控高画质视频流的订阅人数,并动态调整其配置: +
        +
      • 若无人订阅高画质视频流,SDK 会自动降低其码率和帧率以节省上行带宽。
      • +
      • 若有人订阅高画质视频流,SDK 会将其重置为最近一次调用 设置的 配置;若未设置,则使用以下默认值: +
          +
        • 分辨率:(Windows 和 macOS)1280 × 720;(Android 和 iOS)960 × 540。
        • +
        • 帧率:15 fps。
        • +
        • 码率:(Windows 和 macOS)1600 Kbps;(Android 和 iOS)1000 Kbps。
        • +
        +
      • +
      +
    • +
    • SDK 实时监控低画质视频流的订阅人数,并根据订阅情况动态启用或禁用该流。 +
        +
      • 若用户调用了 setDualStreamMode 并设置为永不发送低画质视频流(DISABLE_SIMULCAST_STREAM),则该策略不生效。
      • +
      • 若无人订阅低画质视频流,SDK 会自动禁用该流以节省上行带宽。
      • +
      • 若有人订阅低画质视频流,SDK 会启用该流,并重置为最近一次调用 setDualStreamMode 设置的 配置;若未设置,则使用以下默认值: +
          +
        • 分辨率:480 × 272。
        • +
        • 帧率:15 fps。
        • +
        • 码率:500 Kbps。
        • +
        +
      • +
      +
    • +
    +
  • +
  • APPLICATION_SCENARIO_1V1(2):适用于一对一直播场景。SDK 会优化策略,以满足低延迟和高画质的需求,提升视频质量、首帧渲染速度、中低端设备的延迟表现以及弱网环境下的流畅性。注意:该枚举值仅适用于主播对主播的场景。
  • +
  • APPLICATION_SCENARIO_LIVESHOW(3):适用于秀场场景。SDK 会启用多项性能优化,包括自动启用音视频帧加速渲染(无需调用 )以减少首帧延迟,以及启用 B 帧编码以提升图像质量和带宽效率,即使在弱网或低端设备上也能提供更好的视频质量和播放流畅性。
  • +
+
+
+ + scenarioType + 视频应用场景类型。详见 。 +
    +
  • APPLICATION_SCENARIO_MEETING(1):适用于会议场景,SDK 会自动启用以下策略: +
      +
    • 当低画质视频流需要较高码率时,SDK 会自动启用多种应对网络拥塞的技术,以增强低画质视频流的性能,确保订阅端的流畅接收。
    • +
    • SDK 实时监控高画质视频流的订阅人数,并根据订阅人数动态调整其配置: +
        +
      • 若无人订阅高画质视频流,SDK 会自动降低其码率和帧率以节省上行带宽。
      • +
      • 若有人订阅高画质视频流,SDK 会将其重置为最近一次调用 设置的配置;若用户未设置过配置,则使用以下默认值: +
          +
        • 分辨率:960 × 540。
        • +
        • 帧率:15 fps。
        • +
        • 码率:1000 Kbps。
        • +
        +
      • +
      +
    • +
    • SDK 实时监控低画质视频流的订阅人数,并根据订阅人数动态启用或禁用该流: +
        +
      • 若用户调用了 setDualStreamMode 并设置为永不发送低画质视频流(DISABLE_SIMULCAST_STREAM),则会议场景下低画质流的动态调整将不生效。
      • +
      • 若无人订阅低画质视频流,SDK 会自动禁用该流以节省上行带宽。
      • +
      • 若有人订阅低画质视频流,SDK 会启用该流并重置为最近一次调用 setDualStreamMode 设置的配置;若用户未设置过配置,则使用以下默认值: +
          +
        • 分辨率:480 × 272。
        • +
        • 帧率:15 fps。
        • +
        • 码率:500 Kbps。
        • +
        +
      • +
      +
    • +
    +
  • +
  • APPLICATION_SCENARIO_1V1(2):适用于一对一直播场景。为满足低延迟和高画质的需求,SDK 会优化策略,提升视频质量、首帧渲染速度、中低端设备的延迟表现,以及弱网环境下的流畅度。 +
      +
    • 注意:该枚举值仅适用于主播对主播的场景。
    • +
    +
  • +
  • APPLICATION_SCENARIO_LIVESHOW(3):适用于秀场场景。在该场景中,快速的视频渲染和高画质至关重要。SDK 会进行多项性能优化,包括: +
      +
    • 自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 )。
    • +
    • 启用 B 帧编码以提升图像质量和带宽效率。
    • +
    • 即使在网络较差或低端设备上,也能提供增强的视频质量和流畅的播放体验。
    • +
    +
  • +
+
+
+ + scenarioType + 视频应用场景的类型,详见 。 +
    +
  • AgoraApplicationMeetingScenario(1):适用于会议场景。SDK 会自动启用以下策略: +
      +
    • 若低画质视频流需要较高码率,SDK 会自动启用多种应对网络拥塞的技术,以增强低画质视频流的性能,确保订阅端的流畅接收。
    • +
    • SDK 实时监控高画质视频流的订阅人数,并根据订阅人数动态调整其配置: +
        +
      • 若无人订阅高画质视频流,SDK 会自动降低其码率和帧率以节省上行带宽。
      • +
      • 若有人订阅高画质视频流,SDK 会将其重置为最近一次调用 所设置的配置。如果你未设置过配置,则使用以下默认值: +
          +
        • iOS: +
            +
          • 分辨率:960 × 540。
          • +
          • 帧率:15 fps。
          • +
          • 码率:1000 Kbps。
          • +
          +
        • +
        • macOS: +
            +
          • 分辨率:1280 × 720。
          • +
          • 帧率:15 fps。
          • +
          • 码率:1600 Kbps。
          • +
          +
        • +
        +
      • +
      +
    • +
    • SDK 实时监控低画质视频流的订阅人数,并根据订阅人数动态启用或禁用该流。 +
        +
      • 若无人订阅低画质视频流,SDK 会自动禁用该流以节省上行带宽。
      • +
      • 若有人订阅低画质视频流,SDK 会启用该流,并将其重置为最近一次调用 所设置的配置。如果你未设置过配置,则使用以下默认值: +
          +
        • 分辨率:480 × 272。
        • +
        • 帧率:15 fps。
        • +
        • 码率:500 Kbps。
        • +
        +
      • +
      • 注意:如果你调用了 并设置为永不发送低画质视频流(AgoraDisableSimulcastStream),则会议场景下低画质流的动态调整将不生效。
      • +
      +
    • +
    +
  • +
+
    +
  • AgoraApplication1V1Scenario(2):适用于一对一直播场景。为满足该场景下低延迟和高画质的需求,SDK 会优化策略,提升视频质量、首帧渲染速度、中低端设备的延迟表现,以及弱网环境下的流畅度。
  • +
注意:该枚举值仅适用于主播对主播的场景。 +
    +
  • AgoraApplicationLiveShowScenario(3):适用于秀场场景。在该场景中,快速的视频渲染和高画质至关重要。SDK 会进行多项性能优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),以及启用 B 帧编码以提升图像质量和带宽效率。即使在网络较差或低端设备上,SDK 也能提供增强的视频质量和流畅的播放体验。
  • +
+
+
+ + scenarioType + 视频应用场景的类型,详见 。 +
    +
  • AgoraApplicationMeetingScenario(1):适用于会议场景。SDK 会自动启用以下策略: +
      +
    • 若低画质视频流需要较高码率,SDK 会自动启用多种应对网络拥塞的技术,以增强低画质视频流的性能,确保订阅端的流畅接收。
    • +
    • SDK 实时监控高画质视频流的订阅人数,并根据订阅人数动态调整其配置: +
        +
      • 若无人订阅高画质视频流,SDK 会自动降低其码率和帧率以节省上行带宽。
      • +
      • 若有人订阅高画质视频流,SDK 会将其重置为最近一次调用 所设置的配置。如果你未设置过配置,则使用以下默认值: +
          +
        • iOS: +
            +
          • 分辨率:960 × 540。
          • +
          • 帧率:15 fps。
          • +
          • 码率:1000 Kbps。
          • +
          +
        • +
        • macOS: +
            +
          • 分辨率:1280 × 720。
          • +
          • 帧率:15 fps。
          • +
          • 码率:1600 Kbps。
          • +
          +
        • +
        +
      • +
      +
    • +
    • SDK 实时监控低画质视频流的订阅人数,并根据订阅人数动态启用或禁用该流。 +
        +
      • 若无人订阅低画质视频流,SDK 会自动禁用该流以节省上行带宽。
      • +
      • 若有人订阅低画质视频流,SDK 会启用该流,并将其重置为最近一次调用 所设置的配置。如果你未设置过配置,则使用以下默认值: +
          +
        • 分辨率:480 × 272。
        • +
        • 帧率:15 fps。
        • +
        • 码率:500 Kbps。
        • +
        +
      • +
      • 注意:如果你调用了 并设置为永不发送低画质视频流(AgoraDisableSimulcastStream),则会议场景下低画质流的动态调整将不生效。
      • +
      +
    • +
    +
  • +
+
    +
  • AgoraApplication1V1Scenario(2):适用于一对一直播场景。为满足该场景下低延迟和高画质的需求,SDK 会优化策略,提升视频质量、首帧渲染速度、中低端设备的延迟表现,以及弱网环境下的流畅度。
  • +
注意:该枚举值仅适用于主播对主播的场景。 +
    +
  • AgoraApplicationLiveShowScenario(3):适用于秀场场景。在该场景中,快速的视频渲染和高画质至关重要。SDK 会进行多项性能优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),以及启用 B 帧编码以提升图像质量和带宽效率。即使在网络较差或低端设备上,SDK 也能提供增强的视频质量和流畅的播放体验。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -4:不支持视频应用场景,可能是因为使用了语音 SDK 而非视频 SDK。
    • +
    • -7: 对象尚未初始化。请在调用该方法前初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -4:不支持视频应用场景。可能原因包括使用了语音 SDK 而非视频 SDK。
    • +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -4:不支持设置视频应用场景。可能原因包括你使用了语音 SDK 而非视频 SDK。
    • +
    • -7: 对象尚未初始化。请在调用该方法前先初始化该对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无具体原因)。
    • +
    • -4:不支持设置视频应用场景。可能原因包括你使用了语音 SDK 而非视频 SDK。
    • +
    • -7: 对象尚未初始化。请在调用该方法前先初始化该对象。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierparameters.dita new file mode 100644 index 00000000000..5f3ab879cd4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierparameters.dita @@ -0,0 +1,275 @@ + + + + <ph keyref="setVoiceBeautifierParameters"/> + 设置预设的美声特效参数。设置预设美声特效的参数。设置预设美声特效的参数。设置预设美声特效的参数。 + + + + + + + + +
+

+ virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2) = 0; + public abstract int setVoiceBeautifierParameters(int preset, int param1, int param2); + - (int)setVoiceBeautifierParameters:(AgoraVoiceBeautifierPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setVoiceBeautifierParameters(_:param1:param2:)); + - (int)setVoiceBeautifierParameters:(AgoraVoiceBeautifierPreset)preset param1:(int)param1 param2:(int)param2 NS_SWIFT_NAME(setVoiceBeautifierParameters(_:param1:param2:)); +

+
+
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+
+

调用该方法为本地发送音频流的用户设置歌唱美声特效的性别特征和混响效果。设置后,频道内所有用户都能听到该效果。 +为了获得更好的人声效果,建议在调用该方法前先调用以下 API: +

    +
  • 调用 ,将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

为了获得更好的人声效果,建议在调用该方法前先调用以下 API: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

调用该方法为美声特效设置性别特征和混响效果。该方法为发送音频流的本地用户设置参数。设置完成后,频道内所有用户都能听到该效果。为了获得更好的人声效果,建议在调用本方法前调用以下 API: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+

调用该方法为美声特效设置性别特征和混响效果。该方法为发送音频流的本地用户设置参数。设置完成后,频道内所有用户都能听到该效果。为了获得更好的人声效果,建议在调用本方法前调用以下 API: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+ +
    +
  • 请勿将 setAudioProfile 中的 profile 参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)或 AUDIO_PROFILE_IOT(6),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 。如果该动态库被删除,该功能将无法正常使用。
  • +
+
+ +
    +
  • 可在加入频道前或加入频道后调用该方法。
  • +
  • 请勿将 setAudioProfile 中的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声动态库 。若该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 请勿将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 (iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,功能将无法正常启用。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用该方法。
  • +
  • 请勿将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 AgoraAudioBeautyExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,功能将无法正常启用。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + preset + 预设音效选项: +
    +
  • SINGING_BEAUTIFIER:歌唱美声特效。
  • +
+
+
+ + param1 + 歌声的性别特征选项: +
    +
  • 1:男性音色。
  • +
  • 2:女性音色。
  • +
+
+
+ + param2 + 歌声的混响效果选项: +
    +
  • 1:混响效果类似在小房间中歌唱。
  • +
  • 2:混响效果类似在大房间中歌唱。
  • +
  • 3:混响效果类似在大厅中歌唱。
  • +
+
+
+ + preset + 预设音效选项: +
    +
  • SINGING_BEAUTIFIER:美声特效。
  • +
+
+
+ + param1 + 歌声的性别特征选项: +
    +
  • 1:男性音色。
  • +
  • 2:女性音色。
  • +
+
+
+ + param2 + 歌声的混响效果选项: +
    +
  • 1:小房间混响效果。
  • +
  • 2:大房间混响效果。
  • +
  • 3:大厅混响效果。
  • +
+
+
+ + preset + 预设音效选项。详见 。 +
    +
  • SINGING_BEAUTIFIER:美声特效。
  • +
+
+
+ + param1 + 歌声的性别特征选项: +
    +
  • 1:男性音色。
  • +
  • 2:女性音色。
  • +
+
+
+ + param2 + 歌声的混响效果选项: +
    +
  • 1:小房间混响效果。
  • +
  • 2:大房间混响效果。
  • +
  • 3:大厅混响效果。
  • +
+
+
+ + preset + 预设音效选项。详见 。 +
    +
  • SINGING_BEAUTIFIER:美声特效。
  • +
+
+
+ + param1 + 歌声的性别特征选项: +
    +
  • 1:男性音色。
  • +
  • 2:女性音色。
  • +
+
+
+ + param2 + 歌声的混响效果选项: +
    +
  • 1:小房间混响效果。
  • +
  • 2:大房间混响效果。
  • +
  • 3:大厅混响效果。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierpreset.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierpreset.dita new file mode 100644 index 00000000000..2f75ee6aa24 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvoicebeautifierpreset.dita @@ -0,0 +1,195 @@ + + + + <ph keyref="setVoiceBeautifierPreset"/> + 设置预设的美声特效。设置预设的美声效果。设置预设的美声特效。设置预设的美声特效。 + + + + + + + + +
+

+ virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0; + public abstract int setVoiceBeautifierPreset(int preset); + - (int)setVoiceBeautifierPreset:(AgoraVoiceBeautifierPreset)preset NS_SWIFT_NAME(setVoiceBeautifierPreset(_:)); + - (int)setVoiceBeautifierPreset:(AgoraVoiceBeautifierPreset)preset NS_SWIFT_NAME(setVoiceBeautifierPreset(_:)); +

+
+
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+
+

调用该方法为发送音频流的本地用户设置预设的美声特效。你可以根据不同场景选择不同的美声特效。设置后,频道内所有用户都能听到该特效。

+

你可以根据不同场景设置不同的美声效果。 +为获得更好的人声效果,建议在调用该方法前调用以下 API: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

调用该方法为发送音频流的本地用户设置预设的美声特效。设置后,频道内所有用户都能听到该特效。你可以根据不同场景设置不同的美声特效。

+

调用该方法为发送音频流的本地用户设置预设的美声特效。设置后,频道内所有用户都能听到该特效。你可以根据不同场景设置不同的美声特效。

+ +
    +
  • 不要将 setAudioProfile 中的 profile 参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)或 AUDIO_PROFILE_IOT(6),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖通过 设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 setAudioProfile 中的 profile 设置为 SPEECH_STANDARD(1),否则该方法不生效。
  • +
  • 该方法在人声处理方面效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖通过该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声动态库 。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 此方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 此方法依赖于美声特效动态库 (iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 此方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 此方法依赖于美声特效动态库 AgoraAudioBeautyExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+
+ 参数 + + + preset + 预设的美声特效选项,详见 + + + preset + 预设的美声效果选项: +
    +
  • VOICE_BEAUTIFIER_OFF:关闭美声效果,使用原始声音。
  • +
  • CHAT_BEAUTIFIER_MAGNETIC:更具磁性的声音(仅限男性)。
  • +
  • CHAT_BEAUTIFIER_FRESH:更清新的声音(仅限女性)。
  • +
  • CHAT_BEAUTIFIER_VITALITY:更有活力的声音(仅限女性)。
  • +
  • SINGING_BEAUTIFIER:歌唱美声效果。 +
      +
    • 调用 设置该选项可美化男性声音,并添加类似在小房间中歌唱的混响效果。建议用于处理男性声音,否则可能出现声音失真。
    • +
    • 调用 设置该选项可美化男性或女性声音,并添加混响效果。
    • +
    +
  • +
  • TIMBRE_TRANSFORMATION_VIGOROUS:更有力的声音。
  • +
  • TIMBRE_TRANSFORMATION_DEEP:更深沉的声音。
  • +
  • TIMBRE_TRANSFORMATION_MELLOW:更柔和的声音。
  • +
  • TIMBRE_TRANSFORMATION_FALSETTO:假声。
  • +
  • TIMBRE_TRANSFORMATION_FULL:更饱满的声音。
  • +
  • TIMBRE_TRANSFORMATION_CLEAR:更清晰的声音。
  • +
  • TIMBRE_TRANSFORMATION_RESOUNDING:更响亮的声音。
  • +
  • TIMBRE_TRANSFORMATION_RINGING:更有穿透力的声音。
  • +
  • ULTRA_HIGH_QUALITY_VOICE:超高音质人声,使音频更清晰并还原更多细节。 +
      +
    • 为获得更好的音效质量,建议在调用该方法前调用 setAudioProfile,将 profile 设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5),并将 scenario 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。
    • +
    • 如果你使用的音频采集设备已经可以高度还原音频细节,建议不要启用超高音质人声,否则 SDK 可能会过度还原音频细节,导致无法听到预期的声音效果。
    • +
    +
  • +
+
+
+ + preset + 预设的美声特效选项,详见 + + + preset + 预设的美声特效选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvoiceconversionpreset.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvoiceconversionpreset.dita new file mode 100644 index 00000000000..381df133c71 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvoiceconversionpreset.dita @@ -0,0 +1,196 @@ + + + + <ph keyref="setVoiceConversionPreset"/> + 设置预设的声动语聊特效。设置 SDK 预设的变声效果。设置预设的变声效果。设置预设的变声效果。 + + + + + + + + +
+

+ virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0; + public abstract int setVoiceConversionPreset(int preset); + - (int)setVoiceConversionPreset:(AgoraVoiceConversionPreset)preset NS_SWIFT_NAME(setVoiceConversionPreset(_:)); + - (int)setVoiceConversionPreset:(AgoraVoiceConversionPreset)preset NS_SWIFT_NAME(setVoiceConversionPreset(_:)); +

+
+
+
+ +
自从
+
自 v3.3.1 版本新增。
+
+
+

调用该方法为发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同场景为用户设置不同的变声效果。 +为了获得更好的语音效果,建议在调用该方法前调用以下方法: +

    +
  • 调用 ,将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,将 profile 参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

你可以调用该方法为发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同场景为用户设置不同的变声效果。 +为了获得更好的音效效果,建议在调用该方法前调用以下 API: +

    +
  • 调用 将音频场景设置为高音质音频场景,即 AUDIO_SCENARIO_GAME_STREAMING(3)。
  • +
  • 调用 setAudioProfile,并将 profile 参数设置为 MUSIC_HIGH_QUALITY(4)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  • +
+

+

调用该方法为在频道中发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同的场景为用户设置不同的变声效果。

+

调用该方法为在频道中发布音频流的本地用户设置预设的变声效果。设置后,频道内所有用户都能听到该变声效果。你可以根据不同的场景为用户设置不同的变声效果。

+ +
    +
  • 请勿将 setAudioProfile 中的 profile 参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)或 AUDIO_PROFILE_IOT(6),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,不建议用于处理包含音乐的音频数据。
  • +
  • 调用 后,不建议再调用以下方法,否则会覆盖该方法设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖声动语聊动态库 。若该动态库被删除,则该功能无法正常启用。
  • +
+
+ +
    +
  • 不要将 setAudioProfile 中的 profile 参数设置为 SPEECH_STANDARD(1),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
  • +
  • 调用 后,声网不建议你再调用以下方法,否则会覆盖 设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 。如果该动态库被删除,该功能将无法正常启用。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
  • +
  • 调用 后,声网不建议你再调用以下方法,否则会覆盖 设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 (iOS)或 AgoraAudioBeautyExtension.framework(macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+ +
    +
  • 不要将 中的 profile 参数设置为 AgoraAudioProfileSpeechStandard(1),否则该方法不生效。
  • +
  • 该方法对人声处理效果最佳,声网不建议使用该方法处理包含音乐的音频数据。
  • +
  • 调用 后,声网不建议你再调用以下方法,否则会覆盖 设置的效果: +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
  • +
  • 该方法依赖于美声特效动态库 AgoraAudioBeautyExtension.xcframework(iOS)或 (macOS)。如果该动态库被删除,则无法正常启用该功能。
  • +
+
+
+
+ 调用时机 +

该方法可在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。为获得更好的音效,建议在调用该方法前先调用以下方法: +

    +
  • 调用 将音频场景设置为高音质场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 并将 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+

该方法可以在加入频道前或加入频道后调用。为获得更好的音效,建议在调用该方法前先调用以下方法: +

    +
  • 调用 将音频场景设置为高音质场景,即 AgoraAudioScenarioGameStreaming(3)。
  • +
  • 调用 并将 profile 参数设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  • +
+

+
+
+ 参数 + + + preset + 预设的声动语聊特效选项,详见 + + + preset + SDK 预设的变声效果选项: +
    +
  • VOICE_CONVERSION_OFF:关闭变声效果,使用原始声音。
  • +
  • VOICE_CHANGER_NEUTRAL:中性声音。为避免音频失真,建议用于处理女性音色。
  • +
  • VOICE_CHANGER_SWEET:甜美声音。为避免音频失真,建议用于处理女性音色。
  • +
  • VOICE_CHANGER_SOLID:沉稳声音。为避免音频失真,建议用于处理男性音色。
  • +
  • VOICE_CHANGER_BASS:低沉声音。为避免音频失真,建议用于处理男性音色。
  • +
+
+
+ + preset + 预设的变声效果选项,详见 + + + preset + 预设的变声效果选项,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_setvolumeofeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_setvolumeofeffect.dita new file mode 100644 index 00000000000..9120ae5ee0e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_setvolumeofeffect.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="setVolumeOfEffect"/> + 设置指定音效文件的播放音量。设置指定音效文件的播放音量。设置指定音效文件的播放音量。设置指定音效文件的播放音量。 + + + + + + + + +
+

+ virtual int setVolumeOfEffect(int soundId, int volume) = 0; + public abstract int setVolumeOfEffect(int soundId, double volume); + - (int)setVolumeOfEffect:(int)soundId + withVolume:(int)volume NS_SWIFT_NAME(setVolumeOfEffect(_:withVolume:)); + - (int)setVolumeOfEffect:(int)soundId + withVolume:(int)volume NS_SWIFT_NAME(setVolumeOfEffect(_:withVolume:)); +

+
+
+

在调用 playEffect 方法之后调用该方法。

+

调用 方法后,可调用该方法设置指定音效文件的播放音量。

+

调用 方法后,可调用该方法设置指定音效文件的播放音量。

+
+
+ 调用时机 +

在调用 之后调用该方法。

+

在调用 playEffect 方法之后调用该方法。

+

在调用 方法后调用。

+

在调用 方法后调用。

+
+
+ 参数 + + + soundId + 音效文件的唯一 ID。 + + + volume + 播放音量,取值范围为 [0, 100]。(默认)为 100,表示原始音量。 + + + soundId + 音效的 ID。每个音效文件具有唯一的 ID。 + + + volume + 播放音量,取值范围为 [0, 100]。(默认值为 100) + + + soundId + 音效的 ID。每个音效文件的唯一 ID。 + + + volume + 播放音量。取值范围为 [0, 100]。默认值为 100,表示原始音量。 + + + soundId + 音效的 ID。每个音效文件的唯一 ID。 + + + volume + 播放音量。取值范围为 [0, 100]。默认值为 100,表示原始音量。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiodeviceloopbacktest_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiodeviceloopbacktest_irtcengine.dita new file mode 100644 index 00000000000..4b6284a9dcb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiodeviceloopbacktest_irtcengine.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="startAudioDeviceLoopbackTest_IRtcEngine"/> + 开始音频设备回路测试。 + + + + + + + + +
+

+ - (int)startAudioDeviceLoopbackTest:(int)indicationInterval NS_SWIFT_NAME(startAudioDeviceLoopbackTest(_:)); +

+
+
+

该方法用于测试本地音频采集设备和播放设备是否正常工作。调用该方法后,音频采集设备会采集本地音频,音频播放设备会播放采集到的音频。

+ +
    +
  • 可以在加入频道前或加入频道后调用该方法。
  • +
  • 该方法仅在主播角色下生效。
  • +
  • 该方法仅测试本地音频设备,不涉及网络状况。
  • +
  • 测试完成后,请调用 停止音频设备回路测试。
  • +
+
+
+
+ 参数 + + + indicationInterval + SDK 触发 回调的时间间隔(毫秒)。声网建议设置大于 200 毫秒的值。该值不能小于 10 毫秒,否则你将无法收到 回调。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing.dita new file mode 100644 index 00000000000..2777a013bc8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing.dita @@ -0,0 +1,278 @@ + + + + <ph keyref="startAudioMixing"/> + 开始播放音乐文件。开始播放音乐文件。开始播放音乐文件。开始播放音乐文件。 + + + + + + + + +
+

+ virtual int startAudioMixing(const char* filePath, bool loopback, int cycle) = 0; + public abstract int startAudioMixing(String filePath, boolean loopback, int cycle); + - (int)startAudioMixing:(NSString * _Nonnull)filePath + loopback:(BOOL)loopback + cycle:(NSInteger)cycle NS_SWIFT_NAME(startAudioMixing(_:loopback:cycle:)); + - (int)startAudioMixing:(NSString * _Nonnull)filePath + loopback:(BOOL)loopback + cycle:(NSInteger)cycle NS_SWIFT_NAME(startAudioMixing(_:loopback:cycle:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos)
+
+ +
废弃
+
该方法已废弃。请改用
+
+
+

如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会返回 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

该方法支持播放以 content:// 开头的 URI 文件。支持的音频文件格式详见声网 RTC SDK 支持的音频文件格式。如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会上报 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果本地音乐文件不存在、SDK 不支持该文件格式,或 SDK 无法访问音乐文件的 URL,SDK 会返回 AgoraAudioMixingReasonCanNotOpen

+

关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果本地音乐文件不存在、SDK 不支持该文件格式,或 SDK 无法访问音乐文件的 URL,SDK 会返回 AgoraAudioMixingReasonCanNotOpen

+ +
    +
  • 如果你调用该方法播放短音效文件,可能会遇到播放失败的情况。建议使用 播放此类文件。
  • +
  • 如果你需要多次调用该方法,确保每次调用之间的时间间隔大于 500 毫秒。
  • +
  • 在 Android 上,有以下注意事项: +
      +
    • 使用该方法前,请确保 Android 设备版本为 v4.2 或更高,API 版本为 v16 或更高。
    • +
    • 如果你需要播放在线音乐文件,不建议使用重定向的 URL 地址。部分 Android 设备可能无法打开重定向的 URL 地址。
    • +
    • 如果你在模拟器上调用该方法,请确保音乐文件位于 /sdcard/ 目录下,且格式为 MP3。
    • +
    +
  • +
+
+ +
    +
  • 如果调用该方法播放短音效文件,可能会播放失败。建议使用 playEffect 播放此类文件。
  • +
  • 如果需要多次调用该方法,确保每次调用的时间间隔大于 500 毫秒。
  • +
  • 在 Android 平台上,有以下注意事项: +
      +
    • 使用该方法时,需确保 Android 设备版本为 v4.2 或更高,API 版本为 v16 或更高。
    • +
    • 如果需要播放在线音乐文件,不建议使用重定向的 URL 地址。部分 Android 设备可能无法打开重定向的 URL。
    • +
    • 如果在模拟器上调用该方法,需确保音乐文件位于 /sdcard/ 目录下,且格式为 MP3。
    • +
    +
  • +
+
+ +
    +
  • 如果你调用该方法播放短音效文件,可能会导致播放失败。声网建议使用 方法播放此类文件。
  • +
  • 如果你需要多次调用该方法,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+ +
    +
  • 如果你调用该方法播放短音效文件,可能会导致播放失败。声网建议使用 方法播放此类文件。
  • +
  • 如果你需要多次调用该方法,请确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+ +
+ 参数 + + + filePath + 文件路径。支持 URL 和本地文件的绝对路径,路径需精确到文件名及扩展名。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。 + 如果你已通过调用 将音效文件预加载到内存中,请确保该参数的值与 中的 filePath 参数一致。 + + + + loopback + 是否仅在本地客户端播放音乐文件: +
    +
  • :仅在本地播放,只有本地用户能听到音乐。
  • +
  • :将音乐发布到远端,远端和本地用户都能听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • >0:播放指定次数,例如 1 表示播放 1 次。
  • +
  • -1:无限循环播放。
  • +
+
+
+ + filePath + + 如果你已通过调用 preloadEffect 将音效预加载到内存中,确保该参数的值与 preloadEffect 中的 filePath 参数一致。文件路径。支持以下类型: +
    +
  • content:// 开头的 URI 地址。
  • +
  • /assets/ 开头的路径。
  • +
  • URL。
  • +
  • 本地文件的绝对路径,需精确到文件名及扩展名。
  • +
支持的音频格式包括 MP3、AAC、M4A、MP4、WAV 和 3GP。
+
+ + loopback + 是否仅在本地客户端播放音乐文件: +
    +
  • :仅本地播放,只有本地用户能听到音乐。
  • +
  • :发布到远端,远端用户也能听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • > 0:播放指定次数,例如 1 表示播放 1 次。
  • +
  • -1:无限循环播放。
  • +
+
+
+ + filePath + 文件路径: +
    +
  • iOS 或 macOS:音频文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + loopback + 是否只在本地客户端播放音乐文件: +
    +
  • :只在本地客户端播放音乐文件,只有本地用户可以听到音乐。
  • +
  • :将音乐文件发布到远端客户端,本地用户和远端用户都可以听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • > 0:播放的次数。例如,1 表示播放 1 次。
  • +
  • -1:无限循环播放该音频文件。
  • +
+
+
+ + filePath + 文件路径: +
    +
  • iOS 或 macOS:音频文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + loopback + 是否只在本地客户端播放音乐文件: +
    +
  • :只在本地客户端播放音乐文件,只有本地用户可以听到音乐。
  • +
  • :将音乐文件发布到远端客户端,本地用户和远端用户都可以听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • > 0:播放的次数。例如,1 表示播放 1 次。
  • +
  • -1:无限循环播放该音频文件。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 未就绪: +
        +
      • 音频模块未启用。
      • +
      • 程序未完成。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 未就绪: +
        +
      • 音频模块未启用。
      • +
      • 程序未完成。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 尚未就绪。 +
        +
      • 音频模块未启用。
      • +
      • 程序未完成。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 尚未就绪。 +
        +
      • 音频模块未启用。
      • +
      • 程序未完成。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing2.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing2.dita new file mode 100644 index 00000000000..559630cd2fb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiomixing2.dita @@ -0,0 +1,284 @@ + + + + <ph keyref="startAudioMixing2"/> + 开始播放音乐文件。开始播放音乐文件。开始播放音乐文件。开始播放音乐文件。 + + + + + + + + +
+

+ virtual int startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos) = 0; + public abstract int startAudioMixing(String filePath, boolean loopback, int cycle, int startPos); + - (int)startAudioMixing:(NSString * _Nonnull)filePath + loopback:(BOOL)loopback + cycle:(NSInteger)cycle + startPos:(NSInteger)startPos NS_SWIFT_NAME(startAudioMixing(_:loopback:cycle:startPos:)); + - (int)startAudioMixing:(NSString * _Nonnull)filePath + loopback:(BOOL)loopback + cycle:(NSInteger)cycle + startPos:(NSInteger)startPos NS_SWIFT_NAME(startAudioMixing(_:loopback:cycle:startPos:)); +

+
+
+

如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会返回 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

该方法支持播放以 content:// 开头的 URI 文件。如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会返回 AUDIO_MIXING_REASON_CAN_NOT_OPEN

+

关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会返回 AgoraAudioMixingReasonCanNotOpen

+

关于该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。如果本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL,SDK 会返回 AgoraAudioMixingReasonCanNotOpen

+ +
    +
  • 如果调用该方法播放短音效文件,可能会播放失败。声网建议使用 播放此类文件。
  • +
  • 如果需要多次调用该方法,确保两次调用之间的时间间隔大于 500 毫秒。
  • +
  • 在 Android 平台上,有以下注意事项: +
      +
    • 使用该方法时,需确保 Android 设备版本为 v4.2 或更高,API 版本为 v16 或更高。
    • +
    • 如果需要播放在线音乐文件,声网不建议使用重定向的 URL 地址。部分 Android 设备可能无法打开重定向的 URL。
    • +
    • 如果在模拟器上调用该方法,需确保音乐文件位于 /sdcard/ 目录下,且格式为 MP3。
    • +
    +
  • +
+
+ +
    +
  • 如果你调用该方法播放短音效文件,可能会播放失败。声网建议使用 playEffect 方法播放此类文件。
  • +
  • 如果你需要多次调用该方法,请确保每次调用之间的时间间隔大于 500 毫秒。
  • +
  • 在 Android 平台上,请注意以下事项: +
      +
    • 设备需为 Android v4.2 或更高版本,且 API 版本为 v16 或更高。
    • +
    • 如果播放在线音乐文件,声网不建议使用重定向的 URL 地址,部分 Android 设备可能无法打开此类地址。
    • +
    • 如果在模拟器上调用该方法,请确保音乐文件位于 /sdcard/ 目录下,且格式为 MP3。
    • +
    +
  • +
+
+ +
    +
  • 如果你调用该方法播放短音效文件,可能会遇到播放失败的情况。声网建议使用 方法播放此类文件。
  • +
  • 如果需要多次调用该方法,确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+ +
    +
  • 如果你调用该方法播放短音效文件,可能会遇到播放失败的情况。声网建议使用 方法播放此类文件。
  • +
  • 如果需要多次调用该方法,确保两次调用之间的时间间隔大于 500 毫秒。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+ +
+ 参数 + + + filePath + 文件路径: +
    +
  • Android:路径需精确到文件名和后缀名。支持 URL 地址、绝对路径或以 /assets/ 开头的路径。使用绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址,例如:content://com.android.providers.media.documents/document/audio%3A14441
  • +
  • Windows:音效文件的绝对路径或 URL 地址(包括文件名后缀),例如:
  • +
+
+
+ + loopback + 是否仅在本地客户端播放音乐文件: +
    +
  • :仅本地播放,只有本地用户能听到音乐。
  • +
  • :将音乐发布到远端,远端用户也能听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • >0:播放指定次数,例如 1 表示播放 1 次。
  • +
  • -1:无限循环播放。
  • +
+
+
+ + startPos + 音乐文件的播放起始位置(单位:毫秒)。 + + + filePath + 文件路径。路径需精确到文件名和后缀名。支持 URL 地址、绝对路径或以 /assets/ 开头的路径。使用绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址,例如:content://com.android.providers.media.documents/document/audio%3A14441 + + + loopback + 是否仅在本地播放音乐文件: +
    +
  • :仅本地播放,只有本地用户能听到音乐。
  • +
  • :将音乐发布到远端,远端用户也能听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数: +
    +
  • > 0:播放指定次数,例如 1 表示播放 1 次。
  • +
  • -1:无限循环播放。
  • +
+
+
+ + startPos + 音乐文件的播放起始位置(单位:毫秒)。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音频文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + loopback + 是否只在本地客户端播放音乐文件: +
    +
  • :只在本地客户端播放音乐文件,只有本地用户可以听到音乐。
  • +
  • :将音乐文件发布到远端客户端,本地用户和远端用户都可以听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数。 +
    +
  • > 0:播放的次数。例如,1 表示播放 1 次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+ + startPos + 音乐文件的播放起始位置(单位为毫秒)。 + + + filePath + 文件路径: +
    +
  • iOS 或 macOS:音频文件的绝对路径或 URL 地址(包括文件名后缀)。例如:
  • +
+
+
+ + loopback + 是否只在本地客户端播放音乐文件: +
    +
  • :只在本地客户端播放音乐文件,只有本地用户可以听到音乐。
  • +
  • :将音乐文件发布到远端客户端,本地用户和远端用户都可以听到音乐。
  • +
+
+
+ + cycle + 音乐文件的播放次数。 +
    +
  • > 0:播放的次数。例如,1 表示播放 1 次。
  • +
  • -1:无限循环播放音频文件。
  • +
+
+
+ + startPos + 音乐文件的播放起始位置(单位为毫秒)。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 未就绪: +
        +
      • 音频模块被禁用。
      • +
      • 程序未完成。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 未就绪: +
        +
      • 音频模块未启用。
      • +
      • 程序未完成。
      • +
      • 初始化失败,请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 尚未就绪。 +
        +
      • 音频模块未启用。
      • +
      • 程序未完整。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -3:SDK 尚未就绪。 +
        +
      • 音频模块未启用。
      • +
      • 程序未完整。
      • +
      • 初始化失败。请重新初始化
      • +
      +
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording1.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording1.dita new file mode 100644 index 00000000000..1cf0f163713 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording1.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="startAudioRecording1"/> + 开始客户端音频录制并设置录制采样率。开始客户端录音。开始客户端录音。开始客户端录音。 + + + + + + + + +
+

+ virtual int startAudioRecording(const char* filePath, AUDIO_RECORDING_QUALITY_TYPE quality) = 0; + public abstract int startAudioRecording(String filePath, int quality); + - (int)startAudioRecording:(NSString * _Nonnull)filePath + quality:(AgoraAudioRecordingQuality)quality NS_SWIFT_NAME(startAudioRecording(_:quality:)); + - (int)startAudioRecording:(NSString * _Nonnull)filePath + quality:(AgoraAudioRecordingQuality)quality NS_SWIFT_NAME(startAudioRecording(_:quality:)); +

+
+
+

调用该方法后,你可以在通话过程中录制频道中所有用户的音频,并生成包含所有声音的录音文件。录音文件仅支持以下格式: +

    +
  • .wav:文件体积大,音频保真度高。
  • +
  • .aac:文件体积小,音频保真度低。
  • +
+

+

你必须在调用 joinChannel 后调用该方法。调用 leaveChannel 时,录音会自动停止。 + +请确保指定的目录存在且可写。

+

你可以在通话过程中调用该方法进行客户端录音。该方法会录制频道中所有用户的音频,并生成包含所有用户声音的录音文件。录音文件仅支持以下格式: +

    +
  • .wav:文件体积大,音频保真度高。
  • +
  • .aac:文件体积小,音频保真度有损。
  • +
+

+

你可以在通话过程中调用该方法进行客户端录音。该方法会录制频道中所有用户的音频,并生成包含所有用户声音的录音文件。录音文件仅支持以下格式: +

    +
  • .wav:文件体积大,音频保真度高。
  • +
  • .aac:文件体积小,音频保真度有损。
  • +
+

+ +
    +
  • 确保你指定的路径存在且可写。
  • +
  • 必须在调用 joinChannel 后调用该方法。如果在录音过程中调用了 leaveChannel,录音将自动停止。
  • +
+
+ 调用该方法时,默认的录音采样率为 32 kHz,且无法更改。 + 调用该方法时,默认的录音采样率为 32 kHz,且无法修改。 + 调用该方法时,默认的录音采样率为 32 kHz,且无法修改。 +
+
+ 参数 + + + filePath + 本地保存录音文件的绝对路径,包括文件名和扩展名。例如:。 + 确保指定的路径存在且可写。 + + + + quality + 录音质量,详见 + + + filePath + 本地保存录音文件的绝对路径,包括文件名和扩展名。例如:。 + 请确保指定路径存在且可写。 + + + + quality + 录音质量: +
    +
  • 0:低质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 1.2 MB。
  • +
  • 1:中等质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 2 MB。
  • +
  • 2:高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 3.75 MB。
  • +
+
+
+ + filePath + 录音文件保存的本地绝对路径。路径必须包含文件名和扩展名,例如:。 + 请确保指定路径存在且可写。 + + + + quality + 录音质量,详见 + + + filePath + 录音文件保存的本地绝对路径。路径必须包含文件名和扩展名,例如:。 + 请确保指定路径存在且可写。 + + + + quality + 录音质量,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording2.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording2.dita new file mode 100644 index 00000000000..8ace9f98de3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording2.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="startAudioRecording2"/> + 开始客户端音频录制并设置录制采样率。 + + + + + + + + +
+

+ virtual int startAudioRecording(const char* filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality) = 0; +

+
+
+

调用该方法后,你可以在通话过程中在客户端录制频道中所有用户的音频,并生成包含所有声音的录音文件。录音文件仅支持以下格式: +

    +
  • .wav:文件体积大,音频保真度高。
  • +
  • .aac:文件体积小,音频保真度低。
  • +
+

+ +
    +
  • 请确保在该方法中指定的路径存在且可写。
  • +
  • 必须在调用 joinChannel 后调用该方法。如果在录音过程中调用 leaveChannel,录音将自动停止。
  • +
  • 为确保录音质量,当 sampleRate 设置为 44.1 kHz 或 48 kHz 时,建议将 quality 设置为 AUDIO_RECORDING_QUALITY_MEDIUMAUDIO_RECORDING_QUALITY_HIGH
  • +
+
+
+
+ 参数 + + + filePath + 本地保存录音文件的绝对路径,包括文件名和扩展名。例如:。 + 请确保指定的路径存在且可写。 + + + + sampleRate + 录音采样率(Hz)。你可以设置为以下值之一: +
    +
  • 16000
  • +
  • 32000(默认)
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + quality + 录音质量,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording3.dita b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording3.dita new file mode 100644 index 00000000000..903195bcef8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startaudiorecording3.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="startAudioRecording3"/> + 开始客户端音频录制,并设置录制参数。开始客户端录制并应用录制配置。开始客户端录制并配置录制设置。开始客户端录制并配置录制设置。 + + + + + + + + +
+

+ virtual int startAudioRecording(const AudioRecordingConfiguration& config) = 0; + public abstract int startAudioRecording(AudioRecordingConfiguration config); + - (int)startAudioRecordingWithConfig:(AgoraAudioRecordingConfiguration * _Nonnull)config NS_SWIFT_NAME(startAudioRecording(withConfig:)); + - (int)startAudioRecordingWithConfig:(AgoraAudioRecordingConfiguration * _Nonnull)config NS_SWIFT_NAME(startAudioRecording(withConfig:)); +

+
+
+

调用 startAudioRecording 方法后,你可以在通话过程中在客户端录制频道中用户的音频,并获取录音文件。录音文件支持以下格式: +

    +
  • WAV:音频保真度高,文件体积大。例如,在采样率为 32000 Hz 的情况下,10 分钟的录音约为 73 MB。
  • +
  • AAC:音频保真度较低,文件体积小。例如,在采样率为 32000 Hz 且录音质量设置为 AUDIO_RECORDING_QUALITY_MEDIUM 的情况下,10 分钟的录音约为 2 MB。
  • +
当用户离开频道时,录音会自动停止。

+

调用该方法后,你可以录制频道中用户的音频并获取录音文件。录音文件仅支持以下格式: +

    +
  • WAV:音频保真度高但文件较大。例如,在 32000 Hz 采样率下,10 分钟录音约为 73 MB。
  • +
  • AAC:音频保真度较低但文件较小。例如,在 32000 Hz 采样率和 AUDIO_RECORDING_QUALITY_MEDIUM 录音质量下,10 分钟录音约为 2 MB。
  • +
当用户离开频道时,录制会自动停止。

+

调用该方法后,你可以录制频道中用户的音频并生成录音文件。录音文件仅支持以下格式: +

    +
  • WAV:音频保真度较高但文件较大。例如,采样率为 32000 Hz 的 10 分钟录音文件约为 73 MB。
  • +
  • AAC:音频保真度较低但文件较小。例如,采样率为 32000 Hz 且录音质量为 AgoraAudioRecordingQualityMedium 的 10 分钟录音文件约为 2 MB。
  • +
当你离开频道时,录制会自动停止。该方法支持在通话过程中进行客户端录制。

+

调用该方法后,你可以录制频道中用户的音频并生成录音文件。录音文件仅支持以下格式: +

    +
  • WAV:音频保真度较高但文件较大。例如,采样率为 32000 Hz 的 10 分钟录音文件约为 73 MB。
  • +
  • AAC:音频保真度较低但文件较小。例如,采样率为 32000 Hz 且录音质量为 AgoraAudioRecordingQualityMedium 的 10 分钟录音文件约为 2 MB。
  • +
当你离开频道时,录制会自动停止。该方法支持在通话过程中进行客户端录制。

+
+
+ 调用时机 +

该方法必须在加入频道后调用。

+

你必须在加入频道后调用该方法。

+

该方法必须在加入频道后调用。

+

该方法必须在加入频道后调用。

+
+
+ 参数 + + + config + 录音配置。详见 + + + config + 录制配置。详见 + + + config + 录制配置,详见 + + + config + 录制配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startcameracapture.dita b/dita/RTC-AIDOC/API/api_irtcengine_startcameracapture.dita new file mode 100644 index 00000000000..4ba9a005f1b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startcameracapture.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="startCameraCapture"/> + 开始视频采集。开始视频采集。开始视频采集。开始视频采集。 + + + + + + + + +
+

+ virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration& config) = 0; + public abstract int startCameraCapture(Constants.VideoSourceType sourceType, CameraCapturerConfiguration config); + - (int)startCameraCapture:(AgoraVideoSourceType)sourceType config:(AgoraCameraCapturerConfiguration * _Nullable)config NS_SWIFT_NAME(startCameraCapture(_:config:)); + - (int)startCameraCapture:(AgoraVideoSourceType)sourceType config:(AgoraCameraCapturerConfiguration * _Nullable)config NS_SWIFT_NAME(startCameraCapture(_:config:)); +

+
+
+

你可以调用该方法并指定 sourceType,从一个或多个摄像头开始采集视频。

+

你可以调用该方法,并通过指定 sourceType 开始从一个或多个摄像头采集视频。

+

你可以调用此方法并指定 sourceType 来开始从一个或多个摄像头进行视频采集。

+

你可以调用此方法并指定 sourceType 来开始从一个或多个摄像头进行视频采集。

+ 在 iOS 平台上,如果你想启用多摄像头采集,需要在调用 前调用 并将 enabled 设置为 + 在 Android 设备上,如果设备有多个摄像头或支持外接摄像头,你最多可以从 4 个摄像头采集视频。 + 在 iOS 上,如果你想启用多摄像头采集,需要先调用 并将 enabled 设置为 ,然后再调用此方法。 + 在 iOS 上,如果你想启用多摄像头采集,需要先调用 enableMultiCamera:config: 并将 enabled 设置为 ,然后再调用此方法。 +
+
+ 参数 + + + sourceType + 视频源类型,详见 。 + +
    +
  • 在 iOS 设备上,如果设备有多个摄像头或支持外接摄像头,最多可同时采集 2 路视频。
  • +
  • 在 Android 设备上,如果设备有多个摄像头或支持外接摄像头,最多可同时采集 4 路视频。
  • +
  • 在桌面平台上,最多可同时采集 4 路视频。
  • +
+
+
+
+ + config + 视频采集配置,详见 。 + 在 iOS 平台上,该参数无实际作用。请使用 方法中的 config 参数设置视频采集配置。 + + + + sourceType + 视频源的类型。详见 。 + 在 Android 设备上,如果设备有多个摄像头或支持外接摄像头,你最多可以从 4 个摄像头采集视频。 + + + + config + 视频采集的配置。详见 + + + sourceType + 视频源的类型,详见 。在 iOS 上,如果设备有多个摄像头或支持外接摄像头,你最多可以从 2 个摄像头采集视频。在 macOS 上,你最多可以从 4 个摄像头采集视频。 + + + config + 视频采集的配置。在 iOS 上,此参数无实际作用。请使用 中的 config 参数来设置视频采集配置。详见 + + + sourceType + 视频源的类型,详见 。在 iOS 上,如果设备有多个摄像头或支持外接摄像头,你最多可以从 2 个摄像头采集视频。在 macOS 上,你最多可以从 4 个摄像头采集视频。 + + + config + 视频采集的配置。在 iOS 上,此参数无实际作用。请使用 enableMultiCamera:config: 中的 config 参数来设置视频采集配置。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startdirectcdnstreaming.dita b/dita/RTC-AIDOC/API/api_irtcengine_startdirectcdnstreaming.dita new file mode 100644 index 00000000000..855a88b9717 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startdirectcdnstreaming.dita @@ -0,0 +1,169 @@ + + + + <ph keyref="startDirectCdnStreaming"/> + 开始将媒体流直接推送到 CDN。开始将媒体流直接推送到 CDN。开始将媒体流直接推送到 CDN。开始将媒体流直接推送到 CDN。 + + + + + + + + +
+

+ virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler, const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0; + public abstract int startDirectCdnStreaming(IDirectCdnStreamingEventHandler eventHandler, String publishUrl, DirectCdnStreamingMediaOptions options); + - (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)delegate + publishUrl:(NSString * _Nonnull)publishUrl + mediaOptions:(AgoraDirectCdnStreamingMediaOptions * _Nonnull)options NS_SWIFT_NAME(startDirectCdnStreaming(_:publishUrl:mediaOptions:)); + - (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)delegate + publishUrl:(NSString * _Nonnull)publishUrl + mediaOptions:(AgoraDirectCdnStreamingMediaOptions * _Nonnull)options NS_SWIFT_NAME(startDirectCdnStreaming(_:publishUrl:mediaOptions:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

声网不支持将媒体流重复推送到同一个 URL。 +声网不支持同时将 publishCameraTrackpublishCustomVideoTrack 设置为 ,或将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 。 +在选择媒体设置选项()时,可参考以下示例: +如果你希望从自定义源推送主播采集的音视频流,媒体设置应如下: +

    +
  • publishCustomAudioTrack 设置为 ,并调用 方法;
  • +
  • publishCustomVideoTrack 设置为 ,并调用 方法;
  • +
  • publishCameraTrack 设置为 (默认);
  • +
  • publishMicrophoneTrack 设置为 (默认)。
  • +
自 v4.2.0 起,声网 SDK 支持纯音频直播。你可以在 中将 publishCustomAudioTrackpublishMicrophoneTrack 设置为 ,并调用 推送音频流。

+

声网不支持同时将 publishCameraTrackpublishCustomVideoTrack 设置为 ,或将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 。在选择媒体设置选项()时,你可以参考以下示例: +如果你希望从自定义源推送由主播采集的音视频流,媒体设置选项应如下设置: +

    +
  • publishCustomAudioTrack 设置为 ,并调用 方法;
  • +
  • publishCustomVideoTrack 设置为 ,并调用 pushExternalVideoFrameById 方法;
  • +
  • publishCameraTrack 设置为 (默认值);
  • +
  • publishMicrophoneTrack 设置为 (默认值)。
  • +
自 v4.2.0 起,声网 SDK 支持纯音频直播。你可以在 中将 publishCustomAudioTrackpublishMicrophoneTrack 设置为 ,并调用 推送音频流。该方法自 v4.6.0 起废弃。仅支持将一路音视频流或一路音频流推送到 CDN。

+

声网不支持将媒体流重复推送到同一个 URL。 +声网不支持同时将 publishCameraTrackpublishCustomVideoTrack 设置为 ,或将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 。 +在选择媒体设置选项()时,可以参考以下示例: +如果你希望从自定义源推送主播采集的音视频流,媒体设置选项应如下设置: +

    +
  • publishCustomAudioTrack 设置为 ,并调用 方法;
  • +
  • publishCustomVideoTrack 设置为 ,并调用 方法;
  • +
  • publishCameraTrack 设置为 (默认值);
  • +
  • publishMicrophoneTrack 设置为 (默认值)。
  • +
你也可以通过将 publishCustomAudioTrackpublishMicrophoneTrack 设置为 ,并调用 方法实现纯音频直播。

+

声网不支持将媒体流重复推送到同一个 URL。 +声网不支持同时将 publishCameraTrackpublishCustomVideoTrack 设置为 ,或将 publishMicrophoneTrackpublishCustomAudioTrack 设置为 。 +在选择媒体设置选项()时,可以参考以下示例: +如果你希望从自定义源推送主播采集的音视频流,媒体设置选项应如下设置: +

    +
  • publishCustomAudioTrack 设置为 ,并调用 方法;
  • +
  • publishCustomVideoTrack 设置为 ,并调用 方法;
  • +
  • publishCameraTrack 设置为 (默认值);
  • +
  • publishMicrophoneTrack 设置为 (默认值)。
  • +
你也可以通过将 publishCustomAudioTrackpublishMicrophoneTrack 设置为 ,并调用 方法实现纯音频直播。

+ 声网仅支持将一路音视频流或一路音频流推送到 CDN。 + 声网仅支持将一路音视频流或一路音频流推送到 CDN。 + 声网仅支持将一路音视频流或一路音频流推送到 CDN。 + 声网仅支持将一路音视频流或一路音频流推送到 CDN。 +
+
+ 参数 + + + eventHandler + 事件回调接口,详见 + + + publishUrl + CDN 推流地址。 + + + options + 主播的媒体设置选项,详见 + + + eventHandler + 事件回调接口。详见 + + + publishUrl + CDN 推流地址。 + + + options + 主播的媒体设置选项。详见 + + + delegate + 事件回调接口,详见 + + + publishUrl + CDN 直播推流地址。 + + + mediaOptions + 主播的媒体设置选项,详见 + + + delegate + 事件回调接口,详见 + + + publishUrl + CDN 直播推流地址。 + + + mediaOptions + 主播的媒体设置选项,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startechotest3.dita b/dita/RTC-AIDOC/API/api_irtcengine_startechotest3.dita new file mode 100644 index 00000000000..c9ec93a6e4e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startechotest3.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="startEchoTest3"/> + 启动音视频通话回路测试。开始音视频设备回路测试。启动音视频设备回路测试。启动音视频设备回路测试。 + + + + + + + + +
+

+ virtual int startEchoTest(const EchoTestConfiguration& config) = 0; + public abstract int startEchoTest(EchoTestConfiguration config); + - (int)startEchoTestWithConfig:(AgoraEchoTestConfiguration* _Nonnull)config NS_SWIFT_NAME(startEchoTest(withConfig:)); + - (int)startEchoTestWithConfig:(AgoraEchoTestConfiguration* _Nonnull)config NS_SWIFT_NAME(startEchoTest(withConfig:)); +

+
+
+

你可以调用该方法进行音视频通话回路测试,用于检测本地音视频设备以及上下行网络是否正常。开始测试后,你需要发出声音或面对摄像头,音频或视频将在约两秒后回放。 +

    +
  • 如果音频播放正常,说明音频设备和上下行网络正常。
  • +
  • 如果视频播放正常,说明视频设备和上下行网络正常。
  • +
+

+

你可以调用该方法执行一次音视频通话回路测试,用于检测音视频设备以及用户上下行网络是否正常工作。开始测试后,用户需要发出声音或面对摄像头,音频或视频将在约两秒后输出。

+

你可以调用该方法执行音视频通话回路测试,以测试你本地的发送和接收流是否正常。该测试会验证音视频设备以及上下行网络是否正常工作。开始测试后,你需要发出声音或面对摄像头,音频或视频将在约两秒后输出。如果音频播放正常,说明音频设备和上下行网络正常;如果视频播放正常,说明视频设备和上下行网络正常。

+

你可以调用该方法执行音视频通话回路测试,以测试你本地的发送和接收流是否正常。该测试会验证音视频设备以及上下行网络是否正常工作。开始测试后,你需要发出声音或面对摄像头,音频或视频将在约两秒后输出。如果音频播放正常,说明音频设备和上下行网络正常;如果视频播放正常,说明视频设备和上下行网络正常。

+ +
    +
  • 在频道中调用该方法时,请确保未发布任何音视频流。
  • +
  • 调用该方法后需调用 结束测试,否则你将无法进行下一次音视频通话回路测试,也无法加入频道。
  • +
  • 在直播场景中,该方法仅适用于主播角色。
  • +
+
+ +
    +
  • 在频道中调用该方法时,请确保未发布任何音视频流。
  • +
  • 调用该方法后需调用 结束测试,否则用户无法进行下一次音视频通话回路测试,也无法加入频道。
  • +
  • 在直播场景中,该方法仅适用于主播。
  • +
+
+ +
    +
  • 在频道中调用该方法时,请确保没有发布任何音视频流。
  • +
  • 调用该方法后,需调用 结束测试;否则,你无法进行下一次音视频通话回路测试,也无法加入频道。
  • +
  • 在直播场景中,该方法仅适用于主播。
  • +
+
+ +
    +
  • 在频道中调用该方法时,请确保没有发布任何音视频流。
  • +
  • 调用该方法后,需调用 结束测试;否则,你无法进行下一次音视频通话回路测试,也无法加入频道。
  • +
  • 在直播场景中,该方法仅适用于主播。
  • +
+
+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用该方法。

+
+
+ 参数 + + + config + 音视频通话回路测试的配置。详见 + + + config + 音视频通话回路测试的配置。详见 + + + config + 音视频通话回路测试的配置,详见 + + + config + 音视频通话回路测试的配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startlastmileprobetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_startlastmileprobetest.dita new file mode 100644 index 00000000000..b8bfd673cd3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startlastmileprobetest.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="startLastmileProbeTest"/> + 启动 Last-mile 网络探测测试。开始 Last-mile 网络探测测试。启动 Last mile 网络探测测试。启动 Last mile 网络探测测试。 + + + + + + + + +
+

+ virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0; + public abstract int startLastmileProbeTest(LastmileProbeConfig config); + - (int)startLastmileProbeTest:(AgoraLastmileProbeConfig *_Nullable)config NS_SWIFT_NAME(startLastmileProbeTest(_:)); + - (int)startLastmileProbeTest:(AgoraLastmileProbeConfig *_Nullable)config NS_SWIFT_NAME(startLastmileProbeTest(_:)); +

+
+
+

调用时序:在收到 回调前,不要调用其他方法,否则可能会中断这些回调。 +相关回调:成功调用该方法后,SDK 会依次触发以下两个回调: +

    +
  • :SDK 会在约两秒内根据网络状况触发该回调。该回调用于评估网络质量,更贴近用户体验。
  • +
  • :SDK 会在约 30 秒内根据网络状况触发该回调。该回调返回网络状况的实时统计数据,更加客观。
  • +
+

+

该方法在加入频道前启动 Last-mile 网络探测测试,用于获取上行和下行的网络统计信息,包括带宽、丢包率、抖动和往返时延(RTT)。

+

该方法在加入频道前启动 Last mile 网络探测测试,以获取上行和下行 Last mile 网络的统计数据,包括带宽、丢包率、抖动和往返时延(RTT)。

+

该方法在加入频道前启动 Last mile 网络探测测试,以获取上行和下行 Last mile 网络的统计数据,包括带宽、丢包率、抖动和往返时延(RTT)。

+ 调用时序:在收到 回调前,请勿调用其他方法,否则可能会中断这些回调。 +相关回调:成功调用该方法后,SDK 会依次触发以下两个回调: +
    +
  • :SDK 会在约两秒内根据网络状况触发该回调。该回调用于评估网络质量,与用户体验更相关。
  • +
  • :SDK 会在约 30 秒内根据网络状况触发该回调。该回调返回网络状况的实时统计数据,更加客观。
  • +
+
+ 在收到 回调前,不要调用其他方法,否则可能会中断这些回调。 + 在收到 回调前,不要调用其他方法,否则可能会中断这些回调。 +
+
+ 参数 + + + config + Last-mile 网络探测测试的配置。详见 + + + config + Last-mile 网络探测测试的配置。详见 + + + config + Last mile 网络探测测试的配置。详见 + + + config + Last mile 网络探测测试的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startlocalaudiomixer.dita b/dita/RTC-AIDOC/API/api_irtcengine_startlocalaudiomixer.dita new file mode 100644 index 00000000000..ed1b63aebfc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startlocalaudiomixer.dita @@ -0,0 +1,134 @@ + + + + <ph keyref="startLocalAudioMixer"/> + 开始本地音频混音。开始本地音频合流。开始本地混音。开始本地混音。 + + + + + + + + +
+

+ virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration& config) = 0; + public abstract int startLocalAudioMixer(LocalAudioMixerConfiguration config); + - (int)startLocalAudioMixer:(AgoraLocalAudioMixerConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalAudioMixer(_:)); + - (int)startLocalAudioMixer:(AgoraLocalAudioMixerConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalAudioMixer(_:)); +

+
+
+

该方法支持将多个音频流在本地合并为一个音频流,例如将本地麦克风采集的音频流、媒体播放器的音频流、声卡的音频流以及远端用户的音频流合并为一个音频流,并将该合并后的音频流发布到频道中。 +

    +
  • 如果你希望混合本地采集的音频流,可以在 中将 publishMixedAudioTrack 设置为 ,然后将混合后的音频流发布到频道中。
  • +
  • 如果你希望混合远端音频流,请确保远端音频流已在频道中发布,并且你已订阅需要混合的音频流。
  • +
+

+

该方法支持在本地将多个音频流合并为一个音频流。例如,可以将本地麦克风采集的音频流、媒体播放器、声卡以及远端用户的音频流混合为一个音频流,并将其发布到频道中。 +

    +
  • 如果你希望混合本地采集的音频流,可以在 中将 publishMixedAudioTrack 设置为 ,然后将混合后的音频流发布到频道中。
  • +
  • 如果你希望混合远端音频流,请确保远端音频流已在频道中发布,并且你已订阅了需要合流的音频流。
  • +
+

+

该方法支持在本地将多个音频流合并为一个音频流。例如,将本地麦克风采集的音频流、媒体播放器、声卡和远端用户的音频流合并为一个音频流,并将该合并后的音频流发布到频道中。 +

    +
  • 如果你希望混合本地采集的音频流,可以在 publishMixedAudioTrack 中设置为 ,然后将混合后的音频流发布到频道中。
  • +
  • 如果你希望混合远端音频流,请确保远端音频流已在频道中发布,并且你已订阅需要混合的音频流。
  • +
+

+

该方法支持在本地将多个音频流合并为一个音频流。例如,将本地麦克风采集的音频流、媒体播放器、声卡和远端用户的音频流合并为一个音频流,并将该合并后的音频流发布到频道中。 +

    +
  • 如果你希望混合本地采集的音频流,可以在 publishMixedAudioTrack 中设置为 ,然后将混合后的音频流发布到频道中。
  • +
  • 如果你希望混合远端音频流,请确保远端音频流已在频道中发布,并且你已订阅需要混合的音频流。
  • +
+

+ 为确保音频质量,建议混音的音频流数量不超过 10 路。 + 为确保音频质量,建议混音的音频流数量不超过 10 路。 + 为确保音频质量,建议混音的音频流数量不超过 10 路。 + 为确保音频质量,建议混音的音频流数量不超过 10 路。 +
+
+ 适用场景 +

你可以在以下场景中启用该功能: +

    +
  • 使用本地视频合图功能时,可同时采集并发布合图视频流所关联的音频流。
  • +
  • 在直播场景中,用户可以接收频道内的音频流,在本地混合多个音频流后,将混合后的音频流转发到其他频道。
  • +
  • 在在线课堂中,老师可以将与学生互动的音频在本地混合后转发到其他频道。
  • +
+

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+
+
+ 参数 + + + config + 本地音频混音的配置参数,详见 + + + config + 用于配置本地音频合流的参数,详见 + + + config + 用于配置本地音频混音的参数。详见 + + + config + 用于配置本地音频混音的参数。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请先初始化 对象后再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startlocalvideotranscoder.dita b/dita/RTC-AIDOC/API/api_irtcengine_startlocalvideotranscoder.dita new file mode 100644 index 00000000000..93143154424 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startlocalvideotranscoder.dita @@ -0,0 +1,171 @@ + + + + <ph keyref="startLocalVideoTranscoder"/> + 开始本地视频合图。开始本地视频合图。开始本地合图。开始本地合图。 + + + + + + + + +
+

+ virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration& config) = 0; + public abstract int startLocalVideoTranscoder(LocalTranscoderConfiguration config); + - (int)startLocalVideoTranscoder:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalVideoTranscoder(_:)); + - (int)startLocalVideoTranscoder:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalVideoTranscoder(_:)); +

+
+
+

你可以调用该方法在本地将多个视频流合并为一个视频流,例如摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等,并将混流后的视频流发布到频道中。 +以下是实现人像画中画效果的典型用例: +

    +
  1. 调用 ,并将自定义背景图设置为 BACKGROUND_NONE,实现摄像头采集视频中人像与背景的分离。
  2. +
  3. 调用 startScreenCapture 开始采集屏幕共享视频流。
  4. +
  5. 调用 ,并将采集人像的视频源设置为参与本地视频合图的视频源之一,即可在合图视频中实现人像画中画效果。
  6. +
+

+

调用该方法后,你可以在本地将多个视频流合并为一个视频流,例如摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等,然后将混合后的视频流发布到频道中。以下是实现人像画中画效果的典型用例: +

    +
  1. 调用 enableVirtualBackground,并将自定义背景图设置为 BACKGROUND_NONE,即将摄像头采集的视频中的人像与背景分离。
  2. +
  3. 调用 开始采集屏幕共享视频流。
  4. +
  5. 调用 ,并将采集人像的视频源设置为参与本地视频合图的视频源之一,即可在视频中实现人像画中画效果。
  6. +
+

+

调用该方法后,你可以在本地将多个视频流合并为一个视频流。例如,你可以将摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等视频流合并为一个视频流,并将该合图视频流发布到频道中。

+

调用该方法后,你可以在本地将多个视频流合并为一个视频流。例如,你可以将摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等视频流合并为一个视频流,并将该合图视频流发布到频道中。

+ +
    +
  • 本地视频合图对设备性能要求较高,建议在高性能设备上使用。
  • +
  • 若需混合本地采集的视频流,SDK 支持以下组合: +
      +
    • Windows 平台:最多支持 4 路摄像头采集的视频流 + 4 路屏幕共享流。
    • +
    • macOS 平台:最多支持 4 路摄像头采集的视频流 + 1 路屏幕共享流。
    • +
    • Android 和 iOS 平台:最多支持 2 路摄像头采集的视频流(需设备支持双摄或外接摄像头)+ 1 路屏幕共享流。
    • +
    +
  • +
  • 配置本地视频混流时,需确保采集人像的视频流的图层编号大于屏幕共享流的图层编号,否则人像会被屏幕共享遮挡,无法在最终合图视频中显示。
  • +
+
+ +
    +
  • 本地视频合图需要更多的 CPU 资源。声网建议在性能较高的设备上启用此功能。
  • +
  • 如果需要混合本地采集的视频流,SDK 支持以下采集组合: +
      +
    • 在 Android 平台上,支持最多 2 路摄像头采集的视频流(设备需支持双摄像头或支持外接摄像头)+ 1 路屏幕共享流。
    • +
    +
  • +
  • 配置本地视频合图时,需要确保采集人像的视频流的图层编号大于屏幕共享流的图层编号。否则,人像会被屏幕共享遮挡,无法在最终视频合图中显示。
  • +
  • 参与本地视频合图的每路视频流的最大分辨率为 4096 × 2160。如果超过该限制,视频合图将不生效。
  • +
  • 混合后的视频流的最大分辨率为 4096 × 2160。
  • +
+
+ 本地合图功能需要更多的 CPU 资源。因此,声网建议在性能较高的设备上启用该功能。 +如果需要合成本地采集的视频流,SDK 支持以下采集组合: +
    +
  • 在 iOS 上,支持最多 2 路摄像头采集的视频流(设备本身需支持双摄或支持外接摄像头)+ 1 路屏幕共享流。
  • +
  • 在 macOS 上,支持最多 4 路摄像头采集的视频流 + 1 路屏幕共享流。
  • +
配置本地合图时,需要确保采集人像的视频流的图层编号大于屏幕共享流的图层编号。否则,人像会被屏幕共享遮挡,无法在最终的合图视频流中显示。
+ 本地合图功能需要更多的 CPU 资源。因此,声网建议在性能较高的设备上启用该功能。 +如果需要合成本地采集的视频流,SDK 支持以下采集组合: +
    +
  • 在 iOS 上,支持最多 2 路摄像头采集的视频流(设备本身需支持双摄或支持外接摄像头)+ 1 路屏幕共享流。
  • +
  • 在 macOS 上,支持最多 4 路摄像头采集的视频流 + 1 路屏幕共享流。
  • +
配置本地合图时,需要确保采集人像的视频流的图层编号大于屏幕共享流的图层编号。否则,人像会被屏幕共享遮挡,无法在最终的合图视频流中显示。
+
+
+ 适用场景 +

适用于远程会议、直播、在线教育等场景,便于用户查看和管理多个视频流,并支持人像画中画等功能。

+
+
+ 调用时机 +

+

    +
  • 若需混合本地采集的视频流,需在调用 startScreenCapture 后调用本方法。
  • +
  • 若希望将合图后的视频流发布到频道中,需在调用 joinChannel 时,将 中的 publishTranscodedVideoTrack 设置为
  • +
+

+

+

    +
  • 如果需要混合本地采集的视频流,需要在调用 之后调用该方法。
  • +
  • 如果希望将混合后的视频流发布到频道中,需要在调用 joinChannel 时,将 中的 publishTranscodedVideoTrack 设置为
  • +
+

+

如果需要合成本地采集的视频流,需要在调用 startCameraCapturestartScreenCapture(iOS)/startScreenCapture(macOS)之后调用该方法。 +如果希望将合图视频流发布到频道中,需要在调用 joinChannelByTokenupdateChannelWithMediaOptions 时,将 中的 publishTranscodedVideoTrack 设置为

+

如果需要合成本地采集的视频流,需要在调用 startCameraCapturestartScreenCapture(iOS)/startScreenCapture(macOS)之后调用该方法。 +如果希望将合图视频流发布到频道中,需要在调用 joinChannelByTokenupdateChannelWithMediaOptions 时,将 中的 publishTranscodedVideoTrack 设置为

+
+ +
+ 参数 + + + config + 本地视频合图的配置,详见 。 + +
    +
  • 参与本地视频合图的每路视频流的最大分辨率为 4096 × 2160,超出该限制将导致合图失败。
  • +
  • 合图后的视频流最大分辨率为 4096 × 2160。
  • +
+
+
+
+ + config + 本地视频合图的配置,详见 + + + config + 本地合图的配置,详见 。 + +
    +
  • 每路参与本地合图的视频流的最大分辨率为 4096 × 2160。若超过该限制,合图不生效。
  • +
  • 合图后的视频流的最大分辨率为 4096 × 2160。
  • +
+
+
+
+ + config + 本地合图的配置,详见 。 + +
    +
  • 每路参与本地合图的视频流的最大分辨率为 4096 × 2160。若超过该限制,合图不生效。
  • +
  • 合图后的视频流的最大分辨率为 4096 × 2160。
  • +
+
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startmediarenderingtracing.dita b/dita/RTC-AIDOC/API/api_irtcengine_startmediarenderingtracing.dita new file mode 100644 index 00000000000..9ab910fce71 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startmediarenderingtracing.dita @@ -0,0 +1,122 @@ + + + + <ph keyref="startMediaRenderingTracing"/> + 启用视频帧渲染过程的追踪功能。启用视频帧渲染过程的追踪。启用视频帧渲染过程的追踪功能。启用视频帧渲染过程的追踪功能。 + + + + + + + + +
+

+ virtual int startMediaRenderingTracing() = 0; + public abstract int startMediaRenderingTracing(); + - (int)startMediaRenderingTracing NS_SWIFT_NAME(startMediaRenderingTracing()); + - (int)startMediaRenderingTracing NS_SWIFT_NAME(startMediaRenderingTracing()); +

+
+
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+
+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调报告相关信息。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调上报相关事件信息。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调报告相关事件信息。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调报告相关事件信息。

+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannel 加入频道时开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时间调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你再次加入频道时开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannel 加入频道开始追踪视频帧的渲染事件。
  • +
  • 本地用户离开当前频道后,SDK 会自动从再次加入频道开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 加入频道开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时机调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你加入频道的时刻开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 加入频道开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时机调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你加入频道的时刻开始追踪视频渲染事件。
  • +
+
+
+
+ 适用场景 +

你可以结合应用中的 UI 设置(如按钮、滑块)调用该方法,以提升用户体验。例如,在用户点击“加入频道”按钮时调用该方法,然后通过 回调获取视频帧渲染过程所耗费的时间,从而优化相关指标。

+
+ +
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7:在初始化 之前调用了该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7:在 初始化之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7:在初始化 之前调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7:在初始化 之前调用该方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startorupdatechannelmediarelay.dita b/dita/RTC-AIDOC/API/api_irtcengine_startorupdatechannelmediarelay.dita new file mode 100644 index 00000000000..3d144e64ddb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startorupdatechannelmediarelay.dita @@ -0,0 +1,172 @@ + + + + <ph keyref="startOrUpdateChannelMediaRelay"/> + 开始跨频道媒体流转发,或更新媒体流转发的目标频道。开始或更新跨频道媒体流转发。开始或更新跨频道媒体流转发。开始或更新跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0; + public abstract int startOrUpdateChannelMediaRelay(ChannelMediaRelayConfiguration channelMediaRelayConfiguration); + - (int)startOrUpdateChannelMediaRelay:(AgoraChannelMediaRelayConfiguration * _Nonnull)config NS_SWIFT_NAME(startOrUpdateChannelMediaRelay(_:)); + - (int)startOrUpdateChannelMediaRelay:(AgoraChannelMediaRelayConfiguration * _Nonnull)config NS_SWIFT_NAME(startOrUpdateChannelMediaRelay(_:)); +

+
+
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+

首次成功调用该方法会将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或停止转发到某个频道,可再次调用该方法更新目标频道。最多支持转发到六个目标频道。

+

首次成功调用该方法会将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法以更新目标频道。该功能最多支持将媒体流转发到六个目标频道。

+

首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法更新目标频道。该功能最多支持将媒体流转发到六个目标频道。 +调用该方法成功后,SDK 会触发 回调,报告媒体流转发的状态。 +

    +
  • 若该回调返回 AgoraChannelMediaRelayStateRunning(2)和 AgoraChannelMediaRelayErrorNone(0),表示媒体流转发已成功启动。
  • +
  • 若该回调返回 AgoraChannelMediaRelayStateFailure(3),表示媒体流转发过程中发生异常。
  • +
+

+

首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法更新目标频道。该功能最多支持将媒体流转发到六个目标频道。 +调用该方法成功后,SDK 会触发 回调,报告媒体流转发的状态。 +

    +
  • 若该回调返回 AgoraChannelMediaRelayStateRunning(2)和 AgoraChannelMediaRelayErrorNone(0),表示媒体流转发已成功启动。
  • +
  • 若该回调返回 AgoraChannelMediaRelayStateFailure(3),表示媒体流转发过程中发生异常。
  • +
+

+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时有效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)启用。
  • +
  • 该方法不支持字符串用户 User Account。
  • +
+
+ 请在加入频道后调用该方法。该方法仅在你是极速直播频道中的主播时生效。跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。该 API 不支持字符串用户 User Account。 + +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时生效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。
  • +
  • 该 API 不支持字符串用户 User Account。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时生效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。
  • +
  • 该 API 不支持字符串用户 User Account。
  • +
+
+
+ +
+ 参数 + + + configuration + 媒体流转发的配置,详见 + + + channelMediaRelayConfiguration + 媒体流转发的配置。详见 + + + config + 媒体流转发的配置。详见 + + + config + 媒体流转发的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startplaybackdevicetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_startplaybackdevicetest.dita new file mode 100644 index 00000000000..5fa6f96e41c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startplaybackdevicetest.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="startPlaybackDeviceTest"/> + 启动本地音频播放设备测试。启动本地音频播放设备测试。启动本地音频播放设备测试。 + + + + + + + + +
+

+ - (int)startPlaybackDeviceTest:(NSString * _Nonnull)audioFileName NS_SWIFT_NAME(startPlaybackDeviceTest(_:)); + public abstract int startPlaybackDeviceTest(String audioFileName); + - (int)startPlaybackDeviceTest:(NSString * _Nonnull)audioFileName NS_SWIFT_NAME(startPlaybackDeviceTest(_:)); +

+
+
+

该方法用于测试本地音频播放设备是否正常工作。调用该方法后,SDK 会播放你指定的音频文件。如果你能听到声音,说明播放设备工作正常。

+

调用该方法后,SDK 会播放你指定的音频文件。如果你能听到音频,说明播放设备工作正常。调用该方法后,SDK 每 100 毫秒触发一次 回调,报告 uid 为 1 的播放设备音量信息。该方法与 的区别在于, 仅检测本地音频播放设备是否正常,而 可同时检测音视频设备和网络状况。

+

该方法用于测试本地音频播放设备是否正常工作。调用该方法后,SDK 会播放你指定的音频文件。如果你能听到声音,说明播放设备工作正常。

+ 请在加入频道前调用该方法。测试完成后,在加入频道前调用 停止测试。 + 请在加入频道前调用该方法。测试完成后,请在加入频道前调用 停止测试。 + 请在加入频道前调用该方法。测试完成后,在加入频道前调用 停止测试。 +
+ +
+ 参数 + + + audioFileName + 音频文件的路径。数据格式为 UTF-8 编码的字符串。 +
    +
  • 支持的文件格式:wav、mp3、m4a 和 aac。
  • +
  • 支持的采样率:8000、16000、32000、44100 和 48000 Hz。
  • +
+
+
+ + audioFileName + 音频文件的路径,UTF-8 编码的字符串。支持的文件格式包括:wav、mp3、m4a 和 aac。支持的采样率包括:8000、16000、32000、44100 和 48000 Hz。 + + + audioFileName + 音频文件的路径。数据格式为 UTF-8 编码的字符串。 +
    +
  • 支持的文件格式:wav、mp3、m4a 和 aac。
  • +
  • 支持的采样率:8000、16000、32000、44100 和 48000 Hz。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startpreview.dita b/dita/RTC-AIDOC/API/api_irtcengine_startpreview.dita new file mode 100644 index 00000000000..7a7c78c95d5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startpreview.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="startPreview"/> + 启用本地视频预览。启用本地视频预览。启用本地视频预览。启用本地视频预览。 + + + + + + + + +
+

+ virtual int startPreview() = 0; + public abstract int startPreview(); + - (int)startPreview NS_SWIFT_NAME(startPreview()); + - (int)startPreview NS_SWIFT_NAME(startPreview()); +

+
+
+

你可以调用此方法启用本地视频预览。

+

你可以调用此方法启用本地视频预览。

+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍保持开启状态。你需要调用 stopPreview 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍保持开启状态。你需要调用 stopPreview 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍然保持开启状态。你需要调用 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍然保持开启状态。你需要调用 来关闭本地预览。
  • +
+
+
+
+ 调用时机 +

此方法必须在调用 之后调用。

+

必须在调用 之后调用此方法。

+

必须在调用 setupLocalVideo 之后调用该方法。

+

必须在调用 setupLocalVideo 之后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startpreview2.dita b/dita/RTC-AIDOC/API/api_irtcengine_startpreview2.dita new file mode 100644 index 00000000000..ca784c2c8fa --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startpreview2.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="startPreview2"/> + 启用本地视频预览,并指定用于预览的视频源。启用本地视频预览,并指定用于预览的视频源。启用本地视频预览并指定预览的视频源。启用本地视频预览并指定预览的视频源。 + + + + + + + + +
+

+ virtual int startPreview(VIDEO_SOURCE_TYPE sourceType) = 0; + public abstract int startPreview(Constants.VideoSourceType sourceType); + - (int)startPreview: (AgoraVideoSourceType)sourceType NS_SWIFT_NAME(startPreview(_:)); + - (int)startPreview: (AgoraVideoSourceType)sourceType NS_SWIFT_NAME(startPreview(_:)); +

+
+
+

该方法用于启动本地视频预览,并指定出现在预览画面中的视频源。

+

该方法用于启动本地视频预览,并指定出现在预览画面中的视频源。

+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍保持开启状态。你需要调用 stopPreview 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍保持开启状态。你需要调用 stopPreview 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍然保持开启状态。你需要调用 来关闭本地预览。
  • +
+
+ +
    +
  • 本地预览默认启用镜像模式。
  • +
  • 离开频道后,本地预览仍然保持开启状态。你需要调用 来关闭本地预览。
  • +
+
+
+
+ 调用时机 +

必须在调用 之后调用该方法。

+

该方法必须在调用 之后调用。

+

必须在调用 之后调用该方法。

+

必须在调用 之后调用该方法。

+
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + sourceType + 视频源类型,详见 + + + sourceType + 视频源的类型,详见 + + + sourceType + 视频源的类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startrecordingdevicetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_startrecordingdevicetest.dita new file mode 100644 index 00000000000..869aaf11a60 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startrecordingdevicetest.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="startRecordingDeviceTest"/> + 启动音频采集设备测试。启动音频采集设备测试。启动音频采集设备测试。 + + + + + + + + +
+

+ - (int)startRecordingDeviceTest:(int)indicationInterval NS_SWIFT_NAME(startRecordingDeviceTest(_:)); + public abstract int startRecordingDeviceTest(int indicationInterval); + - (int)startRecordingDeviceTest:(int)indicationInterval NS_SWIFT_NAME(startRecordingDeviceTest(_:)); +

+
+
+

该方法用于测试音频采集设备是否正常工作。调用该方法后,SDK 会按照设置的时间间隔触发 回调,报告 uid 为 0 的本地采集设备的音量信息。该方法与 方法的区别在于, 仅检测本地音频采集设备是否正常工作,而 可以检测音视频设备和网络状况。

+

调用该方法后,SDK 会按照设置的时间间隔触发 回调,报告 uid = 0 以及采集设备的音量信息。该方法与 的区别在于, 仅检测本地音频采集设备是否正常工作,而 可同时检测音视频设备和网络状况。

+

该方法用于测试音频采集设备是否正常工作。调用该方法后,SDK 会按照设置的时间间隔触发 回调,报告 uid 为 0 的本地采集设备的音量信息。该方法与 方法的区别在于, 仅检测本地音频采集设备是否正常工作,而 可以检测音视频设备和网络状况。

+ 请在加入频道前调用该方法。测试完成后,在加入频道前调用 停止测试。 + 请在加入频道前调用该方法。测试完成后,在加入频道前调用 停止测试。 + 请在加入频道前调用该方法。测试完成后,在加入频道前调用 停止测试。 +
+
+ 参数 + + + indicationInterval + 触发 回调的时间间隔(毫秒)。该值应大于 10,否则你将无法收到 回调,且 SDK 返回错误码 -2。声网建议设置为 100。 + + + indicationInterval + 触发 回调的时间间隔(毫秒)。该值应大于 10,否则将无法收到 回调,且 SDK 返回错误码 -2。建议设置为 100。 + + + indicationInterval + 触发 回调的时间间隔(毫秒)。该值应大于 10,否则你将无法收到 回调,且 SDK 返回错误码 -2。声网建议设置为 100。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请检查参数设置。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,请检查参数设置。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。请检查参数设置。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startrhythmplayer.dita b/dita/RTC-AIDOC/API/api_irtcengine_startrhythmplayer.dita new file mode 100644 index 00000000000..29772903602 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startrhythmplayer.dita @@ -0,0 +1,150 @@ + + + + <ph keyref="startRhythmPlayer"/> + 启用虚拟节拍器。启用虚拟节拍器。启用虚拟节拍器。启用虚拟节拍器。 + + + + + + + + +
+

+ virtual int startRhythmPlayer(const char* sound1, const char* sound2, const AgoraRhythmPlayerConfig& config) = 0; + public abstract int startRhythmPlayer(String sound1, String sound2, AgoraRhythmPlayerConfig config); + - (int)startRhythmPlayer:(NSString * _Nonnull)sound1 sound2:(NSString * _Nonnull)sound2 config:(AgoraRhythmPlayerConfig * _Nullable)config NS_SWIFT_NAME(startRhythmPlayer(_:sound2:config:)); + - (int)startRhythmPlayer:(NSString * _Nonnull)sound1 sound2:(NSString * _Nonnull)sound2 config:(AgoraRhythmPlayerConfig * _Nullable)config NS_SWIFT_NAME(startRhythmPlayer(_:sound2:config:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据你在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果你将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频内容。 +默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

启用虚拟节拍器后,SDK 会从头开始播放指定的音效文件,并根据你在 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果你将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频内容。 +默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

启用虚拟节拍器后,SDK 会从头开始播放你指定的音效文件,并根据 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果你将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频内容。默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+

启用虚拟节拍器后,SDK 会从头开始播放你指定的音效文件,并根据 中设置的 beatsPerMinute 控制每个文件的播放时长。例如,如果你将 beatsPerMinute 设置为 60,SDK 每秒播放一个节拍。如果文件时长超过节拍时长,SDK 只播放节拍时长内的音频内容。默认情况下,虚拟节拍器的声音会在频道中发布。如果你希望远端用户也能听到该声音,可以在 中将 publishRhythmPlayerTrack 设置为

+
+
+ 适用场景 +

在音乐教育、体育教学等场景中,教师通常需要使用节拍器帮助学生按照正确的节奏进行练习。节拍由强拍和弱拍组成,每小节的第一个节拍称为强拍,其余为弱拍。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或加入频道后调用。

+
+ +
+ 参数 + + + sound1 + 强拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。支持的音频文件格式详见 SDK 支持的格式。 + + + sound2 + 弱拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。支持的音频文件格式详见 SDK 支持的格式。 + + + config + 节拍器配置,详见 + + + sound1 + 强拍音效文件的绝对路径或 URL 地址(包含文件扩展名)。例如:。支持的音频文件格式详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + sound2 + 弱拍音效文件的绝对路径或 URL 地址(包含文件扩展名)。例如:。支持的音频文件格式详见[声网 RTC SDK 支持哪些音频文件格式](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + config + 节拍器配置。详见 + + + sound1 + 强拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + sound2 + 弱拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + config + 节拍器配置。详见 + + + sound1 + 强拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + sound2 + 弱拍音效文件的绝对路径或 URL 地址(包括文件扩展名)。例如,。该方法支持的音频文件格式,详见[声网 RTC SDK 支持哪些格式的音频文件](https://doc.shengwang.cn/faq/general-product-inquiry/audio-format)。 + + + config + 节拍器配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -22:未找到音效文件。请为 sound1sound2 设置正确的路径。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -22:未找到音效文件。请为 sound1sound2 设置正确的路径。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -22:未找到音效文件。请设置正确的 sound1sound2 路径。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -22:未找到音效文件。请设置正确的 sound1sound2 路径。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithouttranscoding.dita b/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithouttranscoding.dita new file mode 100644 index 00000000000..d55601d5f60 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithouttranscoding.dita @@ -0,0 +1,142 @@ + + + + <ph keyref="startRtmpStreamWithoutTranscoding"/> + 开始向 CDN 推送未经转码的媒体流。开始向 CDN 推送音视频流(不进行转码)。开始向 CDN 推流(不进行转码)。开始向 CDN 推流(不进行转码)。 + + + + + + + + +
+

+ virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0; + public abstract int startRtmpStreamWithoutTranscoding(String url); + - (int)startRtmpStreamWithoutTranscoding:(NSString* _Nonnull)url NS_SWIFT_NAME(startRtmpStreamWithoutTranscoding(_:)); + - (int)startRtmpStreamWithoutTranscoding:(NSString* _Nonnull)url NS_SWIFT_NAME(startRtmpStreamWithoutTranscoding(_:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推送媒体流,如需推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推送媒体流,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推流,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推流,如果需要推送到多个地址,请多次调用该方法。

+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 仅在 LIVE_BROADCASTING 模式下的主播角色可调用该方法。
  • +
  • 若推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 模式下的主播角色可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播可以调用该方法。
  • +
  • 如果推流失败后需要重试,必须先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播可以调用该方法。
  • +
  • 如果推流失败后需要重试,必须先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。 + 不支持中文等特殊字符。 + + + + url + 推流地址,格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:url 或转码配置不合法,请检查 url 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换其他地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:url 不合法。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法。请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用。请更换其他地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法。请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用。请更换其他地址。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithtranscoding.dita b/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithtranscoding.dita new file mode 100644 index 00000000000..9d2f18fd841 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startrtmpstreamwithtranscoding.dita @@ -0,0 +1,155 @@ + + + + <ph keyref="startRtmpStreamWithTranscoding"/> + 开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。 + + + + + + + + +
+

+ virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0; + public abstract int startRtmpStreamWithTranscoding(String url, LiveTranscoding transcoding); + - (int)startRtmpStreamWithTranscoding:(NSString* _Nonnull)url transcoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(startRtmpStream(withTranscoding:transcoding:)); + - (int)startRtmpStreamWithTranscoding:(NSString* _Nonnull)url transcoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(startRtmpStream(withTranscoding:transcoding:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将实时音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址。如果你需要推送到多个地址,请多次调用该方法。在同一个声网项目下,默认最多支持 200 个并发的媒体流推送任务。如果你需要更高的配额,请[联系技术支持](https://ticket.shengwang.cn/)。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将实时音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址。如果需要推送到多个地址,请多次调用该方法。在一个声网项目下,默认最多可同时进行 200 个媒体流推送任务。如需更高配额,请[联系技术支持](https://ticket.shengwang.cn/)。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。在一个声网项目下,默认最多支持 200 个并发的旁路推流任务。如需更高配额,请[联系技术支持](https://ticket.shengwang.cn/)。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。在一个声网项目下,默认最多支持 200 个并发的旁路推流任务。如需更高配额,请[联系技术支持](https://ticket.shengwang.cn/)。

+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在极速直播频道场景中的主播角色可以调用该方法。
  • +
  • 如果你想在推流失败后重试推流,请先调用 停止推流,再调用该方法重试,否则 SDK 会返回与上次推流失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 仅在极速直播频道场景中,主播角色可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播角色可以调用该方法。
  • +
  • 如果你在推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播角色可以调用该方法。
  • +
  • 如果你在推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置。详见 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置,详见 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置,详见 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 urltranscoding
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:url 或转码配置不合法,请检查 url 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换其他地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法;请检查 urltranscoding
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法;请检查 urltranscoding
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture.dita b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture.dita new file mode 100644 index 00000000000..9cd6206c375 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture.dita @@ -0,0 +1,204 @@ + + + + <ph keyref="startScreenCapture"/> + 开始屏幕采集。开始屏幕采集。开始屏幕采集。开始屏幕采集。 + + + + + + + + +
+

+ virtual int startScreenCapture(const ScreenCaptureParameters2& captureParams) = 0; + public abstract int startScreenCapture(ScreenCaptureParameters screenCaptureParameters); + - (int)startScreenCapture:(AgoraScreenCaptureParameters2* _Nullable)parameters NS_SWIFT_NAME(startScreenCapture(_:)); + - (int)startScreenCapture:(AgoraScreenCaptureParameters2* _Nullable)parameters NS_SWIFT_NAME(startScreenCapture(_:)); +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+

你可以在加入频道前或后调用该方法,具体如下: +

    +
  • 先调用该方法,再调用 joinChannel 加入频道,并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
  • 加入频道后调用该方法,再调用 并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
+

+

你可以在加入频道前或加入频道后调用该方法开始采集屏幕视频流,具体如下: +

    +
  • 先调用该方法,再调用 joinChannel 加入频道,并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
  • 加入频道后调用该方法,再调用 并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
+

+

你可以调用该方法开始采集屏幕视频流。

+

你可以调用该方法开始采集屏幕视频流。

+ +
    +
  • 该方法仅适用于 Android 和 iOS 平台。
  • +
  • 在 iOS 平台,屏幕共享仅支持 iOS 12.0 及以上版本。
  • +
  • 如果你使用自定义音频源而非 SDK 采集音频,声网建议你在应用中添加保活处理逻辑,以避免应用进入后台后屏幕共享中断。
  • +
  • 该功能对设备性能要求较高,声网建议你在 iPhone X 及以上机型上使用。
  • +
  • 该方法依赖 iOS 屏幕共享动态库 AgoraReplayKitExtension.xcframework。如果该动态库被删除,屏幕共享将无法正常启用。
  • +
  • 在 Android 平台,如果用户未授予应用屏幕采集权限,SDK 会触发 (2) 回调。
  • +
  • 在 Android 9 及以上版本,为避免应用进入后台后被系统杀死,声网建议你在 /app/Manifests/AndroidManifest.xml 文件中添加前台服务权限 android.permission.FOREGROUND_SERVICE
  • +
  • 由于性能限制,Android TV 不支持屏幕共享。
  • +
  • 由于系统限制,使用华为手机时,请勿在屏幕共享过程中调整屏幕共享流的视频编码分辨率,否则可能导致崩溃。
  • +
  • 由于系统限制,部分小米设备在屏幕共享时不支持采集系统音频。
  • +
  • 为避免屏幕共享时系统音频采集失败,声网建议你在加入频道前通过 方法将音频应用场景设置为 AUDIO_SCENARIO_GAME_STREAMING
  • +
  • 屏幕共享流的计费基于 中的 dimensions: +
      +
    • 如果你未传入该值,声网按 1280 × 720 计费。
    • +
    • 如果你传入该值,声网按该值计费。
    • +
    +
  • +
+
+ +
    +
  • 在 Android 平台,如果用户未授予应用屏幕采集权限,SDK 会触发 (错误码 2)回调。
  • +
  • 在 Android 9 及以上版本,为避免应用进入后台后被系统杀死,声网建议你在 /app/Manifests/AndroidManifest.xml 文件中添加前台服务权限 android.permission.FOREGROUND_SERVICE
  • +
  • 由于性能限制,Android TV 不支持屏幕共享。
  • +
  • 由于系统限制,使用华为手机时,请勿在屏幕共享过程中调整屏幕共享流的视频编码分辨率,否则可能会导致崩溃。
  • +
  • 由于系统限制,部分小米设备在屏幕共享时不支持采集系统音频。
  • +
  • 为避免屏幕共享时系统音频采集失败,声网建议你在加入频道前通过 方法将音频应用场景设置为 AUDIO_SCENARIO_GAME_STREAMING
  • +
  • 屏幕共享流的计费基于 中的 dimensions: +
      +
    • 如果未传入该值,声网按 1280 × 720 计费。
    • +
    • 如果传入该值,声网按传入的值计费。
    • +
    +
  • +
+
+ +
    +
  • 在 iOS 平台,屏幕共享仅支持 iOS 12.0 及以上版本。
  • +
  • 如果你使用自定义音频源而非 SDK 采集音频,声网建议你在应用中添加保活处理逻辑,以避免应用进入后台后屏幕共享中断。
  • +
  • 此功能对设备性能要求较高,声网建议在 iPhone X 及以上机型上使用。
  • +
  • 此方法依赖 iOS 屏幕共享动态库 AgoraReplayKitExtension.xcframework。如果该动态库被删除,将无法正常启用屏幕共享。
  • +
  • 为避免屏幕共享时系统音频采集失败,声网建议你在加入频道前通过 方法将音频应用场景设置为 AgoraAudioScenarioGameStreaming
  • +
  • 屏幕共享流的计费基于 中的 dimensions: +
      +
    • 如果未传入该值,声网按 1280 × 720 计费。
    • +
    • 如果传入该值,声网按传入的值计费。
    • +
    +
  • +
+
+ +
    +
  • 在 iOS 平台,屏幕共享仅支持 iOS 12.0 及以上版本。
  • +
  • 如果你使用自定义音频源而非 SDK 采集音频,声网建议你在应用中添加保活处理逻辑,以避免应用进入后台后屏幕共享中断。
  • +
  • 此功能对设备性能要求较高,声网建议在 iPhone X 及以上机型上使用。
  • +
  • 此方法依赖 iOS 屏幕共享动态库 AgoraReplayKitExtension.xcframework。如果该动态库被删除,将无法正常启用屏幕共享。
  • +
  • 为避免屏幕共享时系统音频采集失败,声网建议你在加入频道前通过 方法将音频应用场景设置为 AgoraAudioScenarioGameStreaming
  • +
  • 屏幕共享流的计费基于 AgoraScreenVideoParameters 中的 dimensions: +
      +
    • 如果未传入该值,声网按 1280 × 720 计费。
    • +
    • 如果传入该值,声网按传入的值计费。
    • +
    +
  • +
+
+
+
+ 适用场景 +

在屏幕共享场景中。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法,具体区别如下: +

    +
  • 先调用此方法,再调用 joinChannelByToken 加入频道,并将 publishScreenCaptureVideo 设置为 ,即可开始屏幕共享。
  • +
  • 加入频道后调用此方法,再调用 updateChannelWithMediaOptions 并将 publishScreenCaptureVideo 设置为 ,即可开始屏幕共享。
  • +
+

+

你可以在加入频道前或加入频道后调用此方法,具体区别如下: +

    +
  • 先调用此方法,再调用 joinChannelByToken 加入频道,并将 publishScreenCaptureVideo 设置为 ,即可开始屏幕共享。
  • +
  • 加入频道后调用此方法,再调用 updateChannelWithMediaOptions 并将 publishScreenCaptureVideo 设置为 ,即可开始屏幕共享。
  • +
+

+
+ +
+ 参数 + + + captureParams + 屏幕共享的编码参数,详见 + + + screenCaptureParameters + 屏幕共享的编码参数,详见 + + + parameters + 屏幕共享的编码参数。详见 AgoraScreenCaptureParameters2 + + + parameters + 屏幕共享的编码参数。详见 AgoraScreenCaptureParameters2 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2(iOS 平台):参数为
    • +
    • -2(Android 平台):系统版本过低。请确保 Android API 级别不低于 21。
    • +
    • -3(Android 平台):无法采集系统音频。请确保 Android API 级别不低于 29。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:系统版本过低。请确保 Android API 级别不低于 21。
    • +
    • -3:无法采集系统音频。请确保 Android API 级别不低于 29。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数为
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数为
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture2.dita b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture2.dita new file mode 100644 index 00000000000..46f4729352e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapture2.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="startScreenCapture2"/> + 从指定的视频源开始屏幕采集。开始屏幕共享。 + + + + + + + + +
+

+ virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration& config) = 0; + - (int)startScreenCapture:(AgoraVideoSourceType)sourceType config:(AgoraScreenCaptureConfiguration * _Nullable)config NS_SWIFT_NAME(startScreenCapture(_:config:)); +

+
+
+

该方法支持从指定的视频源开始屏幕采集,适用于多频道或本地合图等场景。声网 SDK 提供多种屏幕采集方法,请根据实际需求选择: +

    +
  • / / :仅支持采集单个屏幕或窗口,适用于只共享一个屏幕的场景。
  • +
  • :支持指定多个视频源采集多个屏幕共享流,适用于本地合图或多频道场景。
  • +
+

+ +
    +
  • 如果通过该方法开始屏幕采集,你需要调用 stopScreenCapture 停止屏幕采集。
  • +
  • 在 Windows 平台上,最多支持四路屏幕采集视频流。
  • +
  • 在 macOS 平台上,仅支持一路屏幕采集视频流。
  • +
  • 该方法仅适用于 macOS 和 Windows 平台。
  • +
+
+
+
+ 适用场景 +

适用于屏幕共享场景,支持多频道使用。

+
+
+ 调用时机 +

你可以在加入频道前或后调用该方法,具体如下: +

    +
  • 先调用该方法,再调用 joinChannel 加入频道,并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
  • 加入频道后调用该方法,再调用 并将 publishScreenCaptureVideo 设置为 ,以开始屏幕共享。
  • +
+

+
+
+ 参数 + + + sourceType + 视频源的类型,详见 。 + 在 macOS 平台上,该参数只能设置为 VIDEO_SOURCE_SCREEN(2)。 + + + + config + 屏幕采集的配置,详见 + + + sourceType + 屏幕来源类型,详见 + + + config + 屏幕共享的配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebydisplayid.dita b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebydisplayid.dita new file mode 100644 index 00000000000..e9732fc8162 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebydisplayid.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="startScreenCaptureByDisplayId"/> + 通过指定屏幕 ID 采集屏幕。通过指定屏幕 ID 采集屏幕。 + + + + + + + + +
+

+ virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0; + - (int)startScreenCaptureByDisplayId:(UInt32)displayId + regionRect:(CGRect)regionRect + captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byDisplayId:regionRect:captureParams:)); +

+
+
+

采集整个屏幕或部分屏幕区域的视频流。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 适用场景 +

在屏幕共享场景中,你需要调用此方法开始采集屏幕视频流。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法,具体区别如下: +

    +
  • 在加入频道前调用该方法,然后调用 joinChannel 加入频道,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
  • 在加入频道后调用该方法,然后调用 并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
+

+

你可以在加入频道前或加入频道后调用此方法,具体区别如下: +

    +
  • 在加入频道前调用此方法,然后调用 joinChannelByToken 加入频道,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
  • 在加入频道后调用此方法,然后调用 并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
+

+
+
+ 参数 + + + displayId + 要共享的屏幕的屏幕 ID。 + 在 Windows 平台,如果需要同时共享两个屏幕(主屏幕和副屏幕),可以在调用该方法时将 displayId 设置为 -1 + + + + regionRect + (可选)设置相对于屏幕的区域位置。传入 表示共享整个屏幕。详见 + + + captureParams + 屏幕共享配置。默认视频尺寸为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。屏幕共享视频流的视频属性只需通过该参数设置,与 无关。详见 + + + displayId + 要共享的屏幕的屏幕 ID。 + + + regionRect + (可选)相对于窗口的区域位置。如果未设置该参数,SDK 共享整个窗口。该参数包含以下字段: +
    +
  • x:距窗口左上角的水平偏移。
  • +
  • y:距窗口左上角的垂直偏移。
  • +
  • width:区域的宽度。
  • +
  • height:区域的高度。
  • +
如果指定的区域超出窗口范围,SDK 仅共享窗口内的区域;如果设置 widthheight 为 0,SDK 共享整个窗口。
+
+ + captureParams + 屏幕共享配置。默认视频分辨率为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。屏幕共享视频流的视频属性仅需通过该参数设置,与 无关。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请调用 stopScreenCapture 停止当前共享后重新开始。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 停止当前共享,然后重新开始屏幕共享。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebyscreenrect.dita b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebyscreenrect.dita new file mode 100644 index 00000000000..9fe9af44f5f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebyscreenrect.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="startScreenCaptureByScreenRect"/> + 通过指定屏幕区域采集整个屏幕或部分屏幕。 + + + + + + + + +
+

+ virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) __deprecated = 0; +

+
+
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用
+
+
+

你可以通过该方法共享整个屏幕或部分屏幕,需要指定要共享的屏幕区域。你可以在加入频道前或加入频道后调用该方法: +

    +
  • 加入频道前调用该方法,然后调用 joinChannel 加入频道,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
  • 加入频道后调用该方法,然后调用 ,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
+

+ 该方法仅适用于 Windows 平台。 +
+
+ 参数 + + + screenRect + 屏幕相对于虚拟屏幕的位置。详见 + + + regionRect + (可选)区域相对于屏幕的位置。详见 。如果未设置该参数,SDK 会共享整个屏幕。如果指定的区域超出屏幕范围,SDK 仅共享屏幕内的部分;如果设置的宽或高为 0,SDK 会共享整个屏幕。 + + + captureParams + 屏幕共享的编码参数。默认视频分辨率为 1920 × 1080(即 2,073,600 像素)。声网会根据该参数的值计算费用。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请调用 stopScreenCapture 停止当前共享后重新开始。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebywindowid.dita b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebywindowid.dita new file mode 100644 index 00000000000..811ebcf5543 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_startscreencapturebywindowid.dita @@ -0,0 +1,269 @@ + + + + <ph keyref="startScreenCaptureByWindowId"/> + 通过指定窗口 ID 采集整个或部分窗口。通过指定窗口 ID 采集整个或部分窗口的屏幕内容。 + + + + + + + + +
+

+ virtual int startScreenCaptureByWindowId(int64_t windowId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0; + - (int)startScreenCaptureByWindowId:(UInt32)windowId + regionRect:(CGRect)regionRect + captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byWindowId:regionRect:captureParams:)); +

+
+
+

该方法支持通过指定窗口 ID 采集整个或部分窗口,支持 UWP(通用 Windows 平台)应用的窗口共享。 + +声网使用最新 SDK 对主流 UWP 应用进行了测试,详情如下: + + + 系统版本 + 软件名称 + 兼容版本 + 是否支持 + + + Windows 10 + Chrome + 76.0.3809.100 + + + + + Office Word + 18.1903.1152.0 + + + + + Office Excel + 18.1903.1152.0 + + + + + Office PPT + 18.1903.1152.0 + + + + + WPS Word + 11.1.0.9145 + + + + + WPS Excel + 11.1.0.9145 + + + + + WPS PPT + 11.1.0.9145 + + + + + 系统自带的 Media Player + 所有版本 + + + + Windows 8 + Chrome + 所有版本 + + + + + Office Word + 所有版本 + + + + + Office Excel + 所有版本 + + + + + Office PPT + 所有版本 + + + + + WPS Word + 11.1.0.9098 + + + + + WPS Excel + 11.1.0.9098 + + + + + WPS PPT + 11.1.0.9098 + + + + + 系统自带的 Media Player + 所有版本 + + + + Windows 7 + Chrome + 73.0.3683.103 + + + + + Office Word + 所有版本 + + + + + Office Excel + 所有版本 + + + + + Office PPT + 所有版本 + + + + + WPS Word + 11.1.0.9098 + + + + + WPS Excel + 11.1.0.9098 + + + + + WPS PPT + 11.1.0.9098 + + + + + 系统自带的 Media Player + 所有版本 + + + +

+

你需要指定要采集的窗口的 ID,可以采集整个窗口或窗口的部分区域。

+ 依赖于 WGC(Windows 图形采集)或 GDI(图形设备接口)进行窗口共享。在 Windows 10 2004 之前的系统中,WGC 无法禁用鼠标采集。因此,在系统版本低于 Windows 10 2004 的设备上调用 captureMouseCursor(false) 可能无效。详见 。 +该方法仅适用于 macOS 和 Windows 平台。 + 该方法仅适用于 macOS 和 Windows 平台。 +
+
+ 适用场景 +

在屏幕共享场景中,你需要调用该方法开始采集屏幕视频流。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法,具体如下: +

    +
  • 在加入频道前调用该方法,然后调用 joinChannel 加入频道,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 以开始屏幕共享。
  • +
  • 在加入频道后调用该方法,然后调用 并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 以开始屏幕共享。
  • +
+

+

你可以在加入频道前或加入频道后调用该方法,具体如下: +

    +
  • 在加入频道前调用该方法,然后调用 joinChannelByToken 加入频道,并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
  • 在加入频道后调用该方法,然后调用 并将 publishScreenTrackpublishSecondaryScreenTrack 设置为 ,以开始屏幕共享。
  • +
+

+
+
+ 参数 + + + windowId + 要共享的窗口的 ID。 + + + regionRect + (可选)设置共享区域相对于屏幕的位置。 +
    +
  • 如果未设置该参数,SDK 共享整个屏幕。
  • +
  • 如果指定区域超出窗口范围,SDK 仅共享窗口内的区域。
  • +
  • 如果设置的宽或高为 0,SDK 共享整个窗口。
  • +
详见
+
+ + captureParams + 屏幕共享配置。默认视频分辨率为 1920 × 1080,即 2,073,600 像素。声网使用该参数的值计算费用。详见 + + + windowId + 要共享的窗口的 ID。 + + + regionRect + (可选)相对于窗口的区域位置。如果未设置该参数,SDK 会共享整个窗口。该参数包含以下字段: +
    +
  • x:距窗口左上角的水平偏移。
  • +
  • y:距窗口左上角的垂直偏移。
  • +
  • width:区域的宽度。
  • +
  • height:区域的高度。
  • +
如果指定的区域超出窗口范围,SDK 只共享窗口内的区域;如果设置 width 或 height 为 0,SDK 会共享整个窗口。
+
+ + captureParams + 屏幕共享配置。默认视频分辨率为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请调用 stopScreenCapture 停止当前共享后重新开始。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_statechanged.dita b/dita/RTC-AIDOC/API/api_irtcengine_statechanged.dita new file mode 100644 index 00000000000..92c7b0e3eb1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_statechanged.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="stateChanged"/> + 报告设备状态的变化回调。 + + + + + + + + +
+

+ - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine device:(NSString * _Nonnull)deviceId type:(AgoraMediaDeviceType)deviceType stateChanged:(NSInteger)state NS_SWIFT_NAME(rtcEngine(_:device:type:stateChanged:)); +

+
+
+ 该回调仅适用于 macOS 平台。 +
+
+ 调用时机 +

该回调在设备状态发生变化时被触发。

+
+
+ 参数 + + + engine + 你使用的 实例。详见 + + + deviceId + 设备的 ID。 + + + deviceType + 设备类型,详见 + + + state + 设备的状态: +
    +
  • 0:已添加。
  • +
  • 8:已移除。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopalleffects.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopalleffects.dita new file mode 100644 index 00000000000..42bf2e18e5c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopalleffects.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="stopAllEffects"/> + 停止播放所有音效。停止播放所有音效。停止播放所有音效。停止播放所有音效。 + + + + + + + + +
+

+ virtual int stopAllEffects() = 0; + public abstract int stopAllEffects(); + - (int)stopAllEffects NS_SWIFT_NAME(stopAllEffects()); + - (int)stopAllEffects NS_SWIFT_NAME(stopAllEffects()); +

+
+
+

调用该方法可以停止所有音效的播放。如果只需暂停播放,请调用

+

如果你只需要暂停播放,请调用 方法。

+

当你不再需要播放音效时,可以调用此方法停止播放所有音效。如果你只需要暂停播放,请调用 方法。

+

当你不再需要播放音效时,可以调用此方法停止播放所有音效。如果你只需要暂停播放,请调用 方法。

+
+
+ 调用时机 +

请在调用 之后调用此方法。

+

在调用 playEffect 方法之后调用。

+

请在调用 playEffect 方法之后调用此方法。

+

请在调用 playEffect 方法之后调用此方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopaudiodeviceloopbacktest_irtcengine.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiodeviceloopbacktest_irtcengine.dita new file mode 100644 index 00000000000..3d2d027c6db --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiodeviceloopbacktest_irtcengine.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="stopAudioDeviceLoopbackTest_IRtcEngine"/> + 停止音频设备回路测试。 + + + + + + + + +
+

+ - (int)stopAudioDeviceLoopbackTest NS_SWIFT_NAME(stopAudioDeviceLoopbackTest()); +

+
+
+ +
    +
  • 你可以在加入频道前或后调用此方法。
  • +
  • 此方法仅在主播角色下生效。
  • +
  • 调用 方法开始回路测试后,请确保调用此方法停止测试。
  • +
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopaudiomixing.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiomixing.dita new file mode 100644 index 00000000000..bc90acaf784 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiomixing.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="stopAudioMixing"/> + 停止播放音乐文件。停止播放音乐文件。停止播放音乐文件。停止播放音乐文件。 + + + + + + + + +
+

+ virtual int stopAudioMixing() = 0; + public abstract int stopAudioMixing(); + - (int)stopAudioMixing NS_SWIFT_NAME(stopAudioMixing()); + - (int)stopAudioMixing NS_SWIFT_NAME(stopAudioMixing()); +

+
+
+

调用 startAudioMixing 播放音乐文件后,可以调用该方法停止播放。如果只需要暂停播放,请调用

+

调用 startAudioMixing 播放音乐文件后,可以调用该方法停止播放。如果只需要暂停播放,请调用

+

调用 startAudioMixing 播放音乐文件后,可以调用该方法停止播放。如果只需要暂停播放,请调用

+

调用 startAudioMixing 播放音乐文件后,可以调用该方法停止播放。如果只需要暂停播放,请调用

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用此方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopaudiorecording.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiorecording.dita new file mode 100644 index 00000000000..00a732b6110 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopaudiorecording.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="stopAudioRecording"/> + 停止客户端音频录制。停止客户端录制音频。停止客户端录制音频。停止客户端录制音频。 + + + + + + + + +
+

+ virtual int stopAudioRecording() = 0; + public abstract int stopAudioRecording(); + - (int)stopAudioRecording NS_SWIFT_NAME(stopAudioRecording()); + - (int)stopAudioRecording NS_SWIFT_NAME(stopAudioRecording()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopcameracapture.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopcameracapture.dita new file mode 100644 index 00000000000..ad1d08a2dcb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopcameracapture.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="stopCameraCapture"/> + 停止视频采集。停止摄像头采集。停止视频采集。停止视频采集。 + + + + + + + + +
+

+ virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType) = 0; + public abstract int stopCameraCapture(Constants.VideoSourceType sourceType); + - (int)stopCameraCapture:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopCameraCapture(_:)); + - (int)stopCameraCapture:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopCameraCapture(_:)); +

+
+
+

调用 开始通过一个或多个摄像头采集视频后,你可以调用此方法并设置 sourceType 参数以停止指定摄像头的视频采集。

+

你可以调用 并设置 sourceType 参数,停止指定摄像头的视频采集。

+

调用 方法通过一个或多个摄像头开始视频采集后,你可以调用该方法并设置 sourceType 参数以停止指定摄像头的视频采集。 +

    +
  • 如果你正在使用本地视频合流功能,调用该方法可能会导致本地视频合流中断。
  • +
  • 在 iOS 上,如果你想禁用多摄像头采集,需要在调用该方法后调用 enableMultiCamera: 并将 enabled 设置为
  • +
+

+

调用 方法通过一个或多个摄像头开始视频采集后,你可以调用该方法并设置 sourceType 参数以停止指定摄像头的视频采集。 +

    +
  • 如果你正在使用本地视频合流功能,调用该方法可能会导致本地视频合流中断。
  • +
  • 在 iOS 上,如果你想禁用多摄像头采集,需要在调用该方法后调用 enableMultiCamera: 并将 enabled 设置为
  • +
+

+ 如果你正在使用本地视频混流功能,调用此方法可能会导致本地视频混流中断。 +在 iOS 平台上,如果你想禁用多摄像头采集,需要在调用此方法后调用 并将 enabled 设置为 + 如果你正在使用本地合图功能,调用此方法可能会导致本地合图中断。 +
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + sourceType + 视频源的类型。详见 + + + sourceType + 视频源的类型,详见 + + + sourceType + 视频源的类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopchannelmediarelay.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopchannelmediarelay.dita new file mode 100644 index 00000000000..d833a809af9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopchannelmediarelay.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="stopChannelMediaRelay"/> + 停止跨频道媒体流转发。停止跨频道媒体流转发。停止跨频道媒体流转发。停止跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int stopChannelMediaRelay() = 0; + public abstract int stopChannelMediaRelay(); + - (int)stopChannelMediaRelay NS_SWIFT_NAME(stopChannelMediaRelay()); + - (int)stopChannelMediaRelay NS_SWIFT_NAME(stopChannelMediaRelay()); +

+
+
+

调用该方法停止跨频道媒体流转发。一旦转发停止,主播会退出所有目标频道。

+

调用该方法后,主播会退出所有目标频道。

+

调用该方法停止跨频道媒体流转发。调用成功后,主播会退出所有目标频道。SDK 会触发 回调。如果该回调返回 AgoraChannelMediaRelayStateIdle(0)和 AgoraChannelMediaRelayErrorNone(0),表示主播成功停止转发。

+

调用该方法停止跨频道媒体流转发。调用成功后,主播会退出所有目标频道。SDK 会触发 回调。如果该回调返回 AgoraChannelMediaRelayStateIdle(0)和 AgoraChannelMediaRelayErrorNone(0),表示主播成功停止转发。

+ 如果方法调用失败,SDK 会触发 回调,并返回 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)状态码。你也可以调用 leaveChannel 方法离开频道,跨频道媒体流转发将自动停止。 + 如果方法调用失败,SDK 会通过 回调报告 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)错误码。你也可以调用 leaveChannel 方法离开频道,媒体流转发会自动停止。 + 如果方法调用失败,SDK 会通过 回调返回 AgoraChannelMediaRelayErrorServerNoResponse(2)或 AgoraChannelMediaRelayErrorServerConnectionLost(8)错误码。你可以调用 leaveChannel 方法离开频道,跨频道媒体流转发会自动停止。 + 如果方法调用失败,SDK 会通过 回调返回 AgoraChannelMediaRelayErrorServerNoResponse(2)或 AgoraChannelMediaRelayErrorServerConnectionLost(8)错误码。你可以调用 leaveChannel 方法离开频道,跨频道媒体流转发会自动停止。 +
+ +
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopdirectcdnstreaming.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopdirectcdnstreaming.dita new file mode 100644 index 00000000000..cea9c0ce434 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopdirectcdnstreaming.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="stopDirectCdnStreaming"/> + 停止向 CDN 推流。停止将媒体流直接推送到 CDN。停止将媒体流直接推送到 CDN。停止将媒体流直接推送到 CDN。 + + + + + + + + +
+

+ virtual int stopDirectCdnStreaming() = 0; + public abstract int stopDirectCdnStreaming() + - (int)stopDirectCdnStreaming NS_SWIFT_NAME(stopDirectCdnStreaming()); + - (int)stopDirectCdnStreaming NS_SWIFT_NAME(stopDirectCdnStreaming()); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopechotest.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopechotest.dita new file mode 100644 index 00000000000..19edede76dc --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopechotest.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="stopEchoTest"/> + 停止音频通话测试。停止音频通话测试。停止音频通话测试。停止音频通话测试。 + + + + + + + + +
+

+ virtual int stopEchoTest() = 0; + public abstract int stopEchoTest(); + - (int)stopEchoTest NS_SWIFT_NAME(stopEchoTest()); + - (int)stopEchoTest NS_SWIFT_NAME(stopEchoTest()); +

+
+
+

调用 后,必须调用该方法结束测试,否则无法进行下一次音视频通话回路测试,也无法加入频道。

+

调用 后,必须调用该方法结束测试,否则你无法进行下一次音视频通话回路测试,也无法加入频道。

+

调用 后,必须调用此方法来结束测试。否则无法进行下一次音视频通话循环测试,也无法加入频道。

+

调用 后,必须调用此方法来结束测试。否则无法进行下一次音视频通话循环测试,也无法加入频道。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5(ERR_REFUSED):停止回声测试失败,可能未在运行中。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:停止回声测试失败,可能未在运行回声测试。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:停止回声测试失败,可能未在运行回声测试。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:停止回声测试失败,可能未在运行回声测试。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopeffect.dita new file mode 100644 index 00000000000..21a6a18f5c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopeffect.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="stopEffect"/> + 停止播放指定音效。停止播放指定音效。停止播放指定的音效。停止播放指定的音效。 + + + + + + + + +
+

+ virtual int stopEffect(int soundId) = 0; + public abstract int stopEffect(int soundId); + - (int)stopEffect:(int)soundId NS_SWIFT_NAME(stopEffect(_:)); + - (int)stopEffect:(int)soundId NS_SWIFT_NAME(stopEffect(_:)); +

+
+
+

调用该方法可停止播放指定的音效。如果只需暂停播放,请调用 方法。

+

如果只需要暂停播放,请调用 方法。

+

当你不再需要播放某个音效时,可以调用该方法停止播放。如果你只需要暂停播放,请调用 方法。

+

当你不再需要播放某个音效时,可以调用该方法停止播放。如果你只需要暂停播放,请调用 方法。

+
+
+ 调用时机 +

请在调用 方法之后调用此方法。

+

在调用 playEffect 之后调用。

+

在调用 方法之后调用。

+

在调用 方法之后调用。

+
+
+ 参数 + + + soundId + 音效的 ID,每个音效具有唯一的 ID。 + + + soundId + 音效的 ID。每个音效都有唯一的 ID。 + + + soundId + 音效的 ID。每个音效都有唯一的 ID。 + + + soundId + 音效的 ID。每个音效都有唯一的 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoplastmileprobetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoplastmileprobetest.dita new file mode 100644 index 00000000000..3cf5f98b603 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoplastmileprobetest.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="stopLastmileProbeTest"/> + 停止 Last-mile 网络探测测试。停止 Last-mile 网络探测测试。停止 Last-mile 网络探测测试。停止 Last-mile 网络探测测试。 + + + + + + + + +
+

+ virtual int stopLastmileProbeTest() = 0; + public abstract int stopLastmileProbeTest(); + - (int)stopLastmileProbeTest NS_SWIFT_NAME(stopLastmileProbeTest()); + - (int)stopLastmileProbeTest NS_SWIFT_NAME(stopLastmileProbeTest()); +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoplocalaudiomixer.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoplocalaudiomixer.dita new file mode 100644 index 00000000000..a64098790ad --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoplocalaudiomixer.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="stopLocalAudioMixer"/> + 停止本地混音。停止本地音频合流。停止本地混音。停止本地混音。 + + + + + + + + +
+

+ virtual int stopLocalAudioMixer() = 0; + public abstract int stopLocalAudioMixer(); + - (int)stopLocalAudioMixer NS_SWIFT_NAME(stopLocalAudioMixer()); + - (int)stopLocalAudioMixer NS_SWIFT_NAME(stopLocalAudioMixer()); +

+
+
+

调用 后,如需停止本地混音,可调用该方法。

+

调用 后,如需停止音频合流,可以调用该方法。

+

调用 startLocalAudioMixer 后,如果你需要停止本地混音,可以调用该方法。

+

调用 startLocalAudioMixer 后,如果你需要停止本地混音,可以调用该方法。

+
+
+ 调用时机 +

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 startLocalAudioMixer 之后调用该方法。

+

请在调用 startLocalAudioMixer 之后调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用该方法前先初始化 对象。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoplocalvideotranscoder.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoplocalvideotranscoder.dita new file mode 100644 index 00000000000..c9d6167ab4c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoplocalvideotranscoder.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="stopLocalVideoTranscoder"/> + 停止本地合图。停止本地合图。停止本地合图。停止本地合图。 + + + + + + + + +
+

+ virtual int stopLocalVideoTranscoder() = 0; + public abstract int stopLocalVideoTranscoder(); + - (int)stopLocalVideoTranscoder NS_SWIFT_NAME(stopLocalVideoTranscoder()); + - (int)stopLocalVideoTranscoder NS_SWIFT_NAME(stopLocalVideoTranscoder()); +

+
+
+

调用 后,如果你希望停止本地合图,可以调用该方法。

+

调用 后,如需停止本地合图,可调用该方法。

+

调用 方法后,如果你想停止本地合图,可以调用该方法。

+

调用 方法后,如果你想停止本地合图,可以调用该方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopplaybackdevicetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopplaybackdevicetest.dita new file mode 100644 index 00000000000..c7083429990 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopplaybackdevicetest.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="stopPlaybackDeviceTest"/> + 停止音频播放设备测试。停止音频播放设备测试。停止音频播放设备测试。 + + + + + + + + +
+

+ - (int)stopPlaybackDeviceTest NS_SWIFT_NAME(stopPlaybackDeviceTest()); + public abstract int stopPlaybackDeviceTest(); + - (int)stopPlaybackDeviceTest NS_SWIFT_NAME(stopPlaybackDeviceTest()); +

+
+
+

调用 方法开始测试后,必须调用此方法停止测试。

+

你需要在调用 后调用该方法以停止测试。

+

调用 方法开始测试后,必须调用此方法停止测试。

+ 请在加入频道前调用此方法。 + 请在加入频道前调用该方法。 + 请在加入频道前调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoppreview.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoppreview.dita new file mode 100644 index 00000000000..be65159427a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoppreview.dita @@ -0,0 +1,59 @@ + + + + <ph keyref="stopPreview"/> + 停止本地视频预览。停止本地视频预览。停止你本地的视频预览和视频。停止你本地的视频预览和视频。 + + + + + + + + +
+

+ virtual int stopPreview() = 0; + public abstract int stopPreview(); + - (int)stopPreview NS_SWIFT_NAME(stopPreview()); + - (int)stopPreview NS_SWIFT_NAME(stopPreview()); +

+
+
+

调用 startPreview 开启预览后,如果你需要停止本地视频预览,可以调用该方法。

+

在调用 startPreview 开启预览后,如果需要停止本地视频预览,可以调用此方法。

+
+
+ 调用时机 +

在加入频道前或离开频道后调用此方法。

+

在加入频道前或离开频道后调用此方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoppreview2.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoppreview2.dita new file mode 100644 index 00000000000..49694ddba57 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoppreview2.dita @@ -0,0 +1,82 @@ + + + + <ph keyref="stopPreview2"/> + 停止本地视频预览。停止本地视频预览。停止本地视频预览。停止本地视频预览。 + + + + + + + + +
+

+ virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType) = 0; + public abstract int stopPreview(Constants.VideoSourceType sourceType); + - (int)stopPreview: (AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopPreview(_:)); + - (int)stopPreview: (AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopPreview(_:)); +

+
+
+

调用 startPreview 后,如果你需要停止预览,可以调用该方法。

+

调用 startPreview 后,如需停止本地视频预览,可以调用 stopPreview

+
+
+ 调用时机 +

在加入频道前或离开频道后调用该方法。

+

在加入频道前或离开频道后调用此方法。

+

在加入频道前或离开频道后调用该方法。

+

在加入频道前或离开频道后调用该方法。

+
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + sourceType + 视频源的类型,详见 + + + sourceType + 视频源的类型。详见 + + + sourceType + 视频源的类型。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoprecordingdevicetest.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoprecordingdevicetest.dita new file mode 100644 index 00000000000..6ff93dc526b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoprecordingdevicetest.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="stopRecordingDeviceTest"/> + 停止音频采集设备测试。停止音频采集设备测试。停止音频采集设备测试。 + + + + + + + + +
+

+ - (int)stopRecordingDeviceTest NS_SWIFT_NAME(stopRecordingDeviceTest()); + public abstract int stopRecordingDeviceTest(); + - (int)stopRecordingDeviceTest NS_SWIFT_NAME(stopRecordingDeviceTest()); +

+
+
+

该方法用于停止音频采集设备测试。你必须在调用 startRecordingDeviceTest 方法后调用此方法以停止测试。

+

你必须在调用 后调用该方法以停止音频采集设备测试。

+

该方法用于停止音频采集设备测试。你必须在调用 startRecordingDeviceTest 方法后调用此方法以停止测试。

+ 请在加入频道前调用此方法。 + 请在加入频道前调用该方法。 + 请在加入频道前调用此方法。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoprhythmplayer.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoprhythmplayer.dita new file mode 100644 index 00000000000..2941c30b47f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoprhythmplayer.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="stopRhythmPlayer"/> + 禁用虚拟节拍器。禁用虚拟节拍器。禁用虚拟节拍器。禁用虚拟节拍器。 + + + + + + + + +
+

+ virtual int stopRhythmPlayer() = 0; + public abstract int stopRhythmPlayer(); + - (int)stopRhythmPlayer NS_SWIFT_NAME(stopRhythmPlayer()); + - (int)stopRhythmPlayer NS_SWIFT_NAME(stopRhythmPlayer()); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

调用 后,可以调用该方法禁用虚拟节拍器。

+

你可以调用该方法来禁用虚拟节拍器。

+

调用 startRhythmPlayer 方法后,你可以调用该方法来禁用虚拟节拍器。

+

调用 startRhythmPlayer 方法后,你可以调用该方法来禁用虚拟节拍器。

+ 该方法仅适用于 Android 和 iOS 平台。 +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stoprtmpstream.dita b/dita/RTC-AIDOC/API/api_irtcengine_stoprtmpstream.dita new file mode 100644 index 00000000000..859f997720d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stoprtmpstream.dita @@ -0,0 +1,89 @@ + + + + <ph keyref="stopRtmpStream"/> + 停止向指定 CDN 地址推送媒体流。停止向指定 CDN 地址推送媒体流。停止向 CDN 推送媒体流。停止向 CDN 推送媒体流。 + + + + + + + + +
+

+ virtual int stopRtmpStream(const char* url) = 0; + public abstract int stopRtmpStream(String url); + - (int)stopRtmpStream:(NSString* _Nonnull)url NS_SWIFT_NAME(stopRtmpStream(_:)); + - (int)stopRtmpStream:(NSString* _Nonnull)url NS_SWIFT_NAME(stopRtmpStream(_:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定 CDN 地址的直播推流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址推送媒体流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址推送直播流。该方法每次只能停止向一个 CDN 地址推送媒体流。如果需要停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址推送直播流。该方法每次只能停止向一个 CDN 地址推送媒体流。如果需要停止多个地址的推流,请多次调用该方法。

+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。 + 不支持中文等特殊字符。 + + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS。字符串长度不能超过 1024 字节。不支持中文等特殊字符。 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS。字符串长度不能超过 1024 字节。不支持中文等特殊字符。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture.dita new file mode 100644 index 00000000000..1304f55eff5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture.dita @@ -0,0 +1,76 @@ + + + + <ph keyref="stopScreenCapture"/> + 停止屏幕采集。停止屏幕采集。停止屏幕采集。停止屏幕采集。 + + + + + + + + +
+

+ virtual int stopScreenCapture() = 0; + public abstract int stopScreenCapture(); + - (int)stopScreenCapture NS_SWIFT_NAME(stopScreenCapture()); + - (int)stopScreenCapture NS_SWIFT_NAME(stopScreenCapture()); +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+

如果你通过调用 startScreenCapture 开始屏幕采集,则需要调用该方法停止屏幕采集。

+

如果你通过调用 开始了屏幕采集,则需要调用 停止屏幕采集。

+
+
+ 适用场景 +

适用于以下场景: +

    +
  • iOS:如果你通过调用 startScreenCapture: 开始屏幕采集,则需要调用此方法停止屏幕采集。
  • +
  • macOS:如果你通过调用 startScreenCaptureByWindowId:regionRect:captureParams:startScreenCaptureByDisplayId:regionRect:captureParams: 开始屏幕采集,则需要调用此方法停止屏幕采集。
  • +
+

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture2.dita b/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture2.dita new file mode 100644 index 00000000000..835563f92ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_stopscreencapture2.dita @@ -0,0 +1,59 @@ + + + + <ph keyref="stopScreenCapture2"/> + 停止来自指定视频源的视频采集。停止来自指定视频源的屏幕采集。 + + + + + + + + +
+

+ virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType) = 0; + - (int)stopScreenCapture:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopScreenCapture(_:)); +

+
+
+

如果你通过调用 startScreenCapture 开始了一个或多个屏幕的采集,则需要调用该方法停止屏幕采集,并通过 sourceType 参数指定要停止采集的屏幕。

+

调用 开始从一个或多个屏幕采集屏幕后,需调用此方法停止屏幕采集。你需要通过 sourceType 参数指定要停止的屏幕。

+ 该方法仅适用于 macOS 和 Windows 平台。 +
+
+ 调用时机 +

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+
+
+ 参数 + + + sourceType + 视频源的类型,详见 + + + sourceType + 视频源的类型,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_switchcamera.dita b/dita/RTC-AIDOC/API/api_irtcengine_switchcamera.dita new file mode 100644 index 00000000000..64fe7bd1298 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_switchcamera.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="switchCamera"/> + 切换前后摄像头。切换前后摄像头。切换前置和后置摄像头。 + + + + + + + + +
+

+ virtual int switchCamera() = 0; + - (int)switchCamera NS_SWIFT_NAME(switchCamera()); + public abstract int switchCamera(); +

+
+
+

你可以调用此方法在应用运行过程中根据实际可用的摄像头动态切换前后摄像头,无需重启视频流或重新配置视频源。

+

你可以调用此方法,根据应用运行时实际可用的摄像头动态切换前后摄像头,无需重新启动视频流或重新配置视频源。

+

你可以调用该方法在应用运行过程中根据实际可用的摄像头动态切换前置或后置摄像头,无需重启视频流或重新配置视频源。该方法与 switchCamera(带参数版本)都可用于切换摄像头。不同之处在于,switchCamera(String cameraId) 通过指定摄像头 ID 切换到特定摄像头,而本方法则切换摄像头的方向(前置或后置)。

+ +
    +
  • 此方法仅切换由第一个摄像头采集的视频流的摄像头,即调用 时视频源设置为 VIDEO_SOURCE_CAMERA(0)的视频流。
  • +
  • 此方法仅适用于 Android 和 iOS 平台。
  • +
+
+ 此方法仅切换由第一个摄像头采集的视频流的摄像头,即调用 时视频源设置为 AgoraVideoSourceTypeCamera(0)的视频流。 + 该方法仅用于切换由第一个摄像头采集的视频流的摄像头,即调用 时视频源设置为 VIDEO_SOURCE_CAMERA_PRIMARY(0)的视频流。 +
+
+ 调用时机 +

必须在摄像头成功启用后调用,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+

必须在摄像头成功启用后调用,即 SDK 触发 回调并返回本地视频状态为 AgoraVideoLocalStateCapturing(1)之后。

+

必须在摄像头成功启用后调用,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_switchcamera2.dita b/dita/RTC-AIDOC/API/api_irtcengine_switchcamera2.dita new file mode 100644 index 00000000000..c0a9d1c6b17 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_switchcamera2.dita @@ -0,0 +1,46 @@ + + + + <ph keyref="switchCamera2"/> + 通过摄像头 ID 切换摄像头。 + + + + + + + + +
+

+ public abstract int switchCamera(String cameraId); +

+
+
+

你可以调用该方法在应用运行过程中根据实际可用的摄像头动态切换摄像头,无需重启视频流或重新配置视频源。该方法与 switchCamera 功能类似,区别在于:switchCamera 切换的是摄像头方向(前置或后置),而该方法通过指定摄像头 ID 切换到特定摄像头。

+ 该方法仅用于切换由第一个摄像头采集的视频流,即调用 时视频源设置为 VIDEO_SOURCE_CAMERA_PRIMARY(0)的视频流。 +
+
+ 调用时机 +

必须在摄像头成功启用后调用,即 SDK 触发 回调并返回本地视频状态为 LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)之后。

+
+
+ 参数 + + + cameraId + 摄像头 ID。你可以通过 Android 原生系统 API 获取摄像头 ID,例如 Camera.openCameraManager.getCameraIdList + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot.dita b/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot.dita new file mode 100644 index 00000000000..e800272eee9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot.dita @@ -0,0 +1,152 @@ + + + + <ph keyref="takeSnapshot"/> + 截取视频流快照。截取指定用户的视频流快照并保存为 JPG 图像。截取视频流快照并保存为 JPG 图像。截取视频流快照并保存为 JPG 图像。 + + + + + + + + +
+

+ virtual int takeSnapshot(uid_t uid, const char* filePath) = 0; + public abstract int takeSnapshot(int uid, String filePath); + - (NSInteger)takeSnapshot:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshot(_:filePath:)); + - (NSInteger)takeSnapshot:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshot(_:filePath:)); +

+
+
+

该方法用于从指定用户的视频流中截取一帧图像,生成 JPG 图片,并保存到指定路径。

+

该方法从指定用户的视频流中截取快照,并将生成的 JPG 图像保存到指定路径。

+

该方法从指定用户的视频流中截取快照,并将生成的 JPG 图像保存到指定路径。

+ +
    +
  • 该方法为异步调用,调用返回时 SDK 尚未完成截图操作。
  • +
  • 用于本地视频截图时,该方法会对 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。
  • +
+
+ 该方法为异步方法,调用返回时 SDK 尚未完成快照操作。当用于本地视频快照时,该方法会对 中指定的视频流进行快照。如果用户的视频已进行预处理,例如添加水印或美颜,生成的快照将包含预处理效果。 + +
    +
  • 该方法为异步方法,在方法调用返回时,SDK 尚未完成快照操作。
  • +
  • 当用于本地视频快照时,该方法会对 中指定的视频流进行快照。
  • +
  • 如果用户的视频已被预处理,例如添加水印或美颜,生成的快照将包含预处理效果。
  • +
+
+ +
    +
  • 该方法为异步方法,在方法调用返回时,SDK 尚未完成快照操作。
  • +
  • 当用于本地视频快照时,该方法会对 中指定的视频流进行快照。
  • +
  • 如果用户的视频已被预处理,例如添加水印或美颜,生成的快照将包含预处理效果。
  • +
+
+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+ +
+ 参数 + + + uid + 用户 ID。若要截取本地用户的视频,请将 uid 设置为 0。 + + + filePath + + 请确保指定路径存在且可写。截图的本地路径(包含文件扩展名)。例如: +
    +
  • Windows:
  • +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS: ~/Library/Logs/example.jpg
  • +
  • Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg
  • +
+
+
+ + uid + 用户 ID。如果要截取本地用户的视频快照,请将 uid 设置为 0。 + + + filePath + + 请确保指定的路径存在且可写。快照的本地路径(包含文件扩展名)。例如: +
    +
  • Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg
  • +
+
+
+ + uid + 用户 ID。如果你要截取本地用户的视频快照,请将 uid 设置为 0。 + + + filePath + + 请确保指定的路径存在且可写。快照的本地路径(包含文件扩展名)。例如: +
    +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS: ~/Library/Logs/example.jpg
  • +
+
+
+ + uid + 用户 ID。如果你要截取本地用户的视频快照,请将 uid 设置为 0。 + + + filePath + + 请确保指定的路径存在且可写。快照的本地路径(包含文件扩展名)。例如: +
    +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS:
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot2.dita b/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot2.dita new file mode 100644 index 00000000000..0ae99dacde7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_takesnapshot2.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="takeSnapshot2"/> + 截取指定观察点的视频截图。在指定的观察点截取视频截图。截取指定用户视频的截图并保存为 JPG 文件。截取指定用户视频的截图并保存为 JPG 文件。 + + + + + + + + +
+

+ virtual int takeSnapshot(uid_t uid, const media::SnapshotConfig& config) = 0; + public abstract int takeSnapshot(int uid, SnapshotConfig config); + - (NSInteger)takeSnapshotWithConfig:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotWithConfig(_:config:)); + - (NSInteger)takeSnapshotWithConfig:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotWithConfig(_:config:)); +

+
+
+

该方法截取指定用户的视频流的快照,生成 JPG 图像,并将其保存到指定路径。

+

该方法截取指定用户的视频流的快照,生成 JPG 图像,并将其保存到指定路径。

+ +
    +
  • 该方法为异步方法,调用返回时 SDK 尚未完成截图操作。
  • +
  • 用于本地视频截图时,会对 中指定的视频流进行截图。
  • +
+
+ +
    +
  • 该方法为异步调用,调用返回时 SDK 尚未完成截图操作。
  • +
  • 当用于本地视频截图时,该方法会对 中指定的视频流进行截图。
  • +
+
+ +
    +
  • 该方法为异步方法,在方法调用返回时 SDK 尚未完成截图操作。
  • +
  • 用于本地视频截图时,该方法会对 中指定的视频流进行截图。
  • +
+
+ +
    +
  • 该方法为异步方法,在方法调用返回时 SDK 尚未完成截图操作。
  • +
  • 用于本地视频截图时,该方法会对 中指定的视频流进行截图。
  • +
+
+
+
+ 调用时机 +

在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+

请在加入频道后调用该方法。

+
+ +
+ 参数 + + + uid + 用户 ID。若要截取本地用户的视频,请将 uid 设置为 0。 + + + config + 截图配置,详见 + + + uid + 用户 ID。如果要截取本地用户的视频,请将 uid 设置为 0。 + + + config + 截图的配置信息,详见 + + + uid + 用户 ID。如果你想截取本地用户的视频,请将 uid 设置为 0。 + + + config + 截图的配置,详见 + + + uid + 用户 ID。如果你想截取本地用户的视频,请将 uid 设置为 0。 + + + config + 截图的配置,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_unloadalleffects.dita b/dita/RTC-AIDOC/API/api_irtcengine_unloadalleffects.dita new file mode 100644 index 00000000000..e213bc3b7ec --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_unloadalleffects.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="unloadAllEffects"/> + 释放内存中的所有预加载音效。 + + + + + + + + +
+

+ virtual int unloadAllEffects() = 0; +

+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_unloadeffect.dita b/dita/RTC-AIDOC/API/api_irtcengine_unloadeffect.dita new file mode 100644 index 00000000000..d74ffd93b70 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_unloadeffect.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="unloadEffect"/> + 释放指定的预加载音效文件。释放指定的预加载音效文件。释放指定的预加载音效文件。释放指定的预加载音效文件。 + + + + + + + + +
+

+ virtual int unloadEffect(int soundId) = 0; + public abstract int unloadEffect(int soundId); + - (int)unloadEffect:(int)soundId NS_SWIFT_NAME(unloadEffect(_:)); + - (int)unloadEffect:(int)soundId NS_SWIFT_NAME(unloadEffect(_:)); +

+
+
+

调用 将音效文件加载到内存后,如需释放该音效文件,可调用该方法。

+

调用 preloadEffect 将音效文件加载到内存后,如需释放该音效文件,可调用

+

调用 方法将音效文件加载到内存后,如需释放该音效文件,可调用 方法。

+

调用 方法将音效文件加载到内存后,如需释放该音效文件,可调用 方法。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或加入频道后调用此方法。

+

你可以在加入频道前或后调用此方法。

+

你可以在加入频道前或后调用此方法。

+
+
+ 参数 + + + soundId + 音效的 ID。 + + + soundId + 音效的 ID。每个音效都有唯一的 ID。 + + + soundId + 音效的 ID。每个音效均有唯一的 ID。 + + + soundId + 音效的 ID。每个音效均有唯一的 ID。 + + +
+
+ 返回值 +

+

    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_unregisteraudiospectrumobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_unregisteraudiospectrumobserver.dita new file mode 100644 index 00000000000..af09a56e967 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_unregisteraudiospectrumobserver.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="unregisterAudioSpectrumObserver"/> + 取消注册音频频谱观察器。取消注册音频频谱观察器。取消注册音频频谱观察者。取消注册音频频谱观察者。 + + + + + + + + +
+

+ virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0; + public abstract int unRegisterAudioSpectrumObserver(IAudioSpectrumObserver observer); + - (int)unregisterAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable)delegate NS_SWIFT_NAME(unregisterAudioSpectrumDelegate(_:)); + - (int)unregisterAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable)delegate NS_SWIFT_NAME(unregisterAudioSpectrumDelegate(_:)); +

+
+
+

调用 后,如果你想关闭音频频谱监测,可以调用此方法。

+

调用 后,如果你希望关闭音频频谱监测,可以调用此方法。

+

如果你已调用 方法注册了音频频谱观察者,想要关闭音频频谱监测时,可以调用该方法。

+

如果你已调用 方法注册了音频频谱观察者,想要关闭音频频谱监测时,可以调用该方法。

+ 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 + 你可以在加入频道前或加入频道后调用此方法。 +
+
+ 参数 + + + observer + 音频频谱观察器。详见 + + + observer + 音频频谱观察器,详见 + + + delegate + 音频频谱观察者。详见 + + + delegate + 音频频谱观察者。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_unregistermediametadataobserver.dita b/dita/RTC-AIDOC/API/api_irtcengine_unregistermediametadataobserver.dita new file mode 100644 index 00000000000..5ec534f5b2c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_unregistermediametadataobserver.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="unregisterMediaMetadataObserver"/> + 取消注册指定的元数据观察器。取消注册指定的元数据观察者。 + + + + + + + + +
+

+ virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0; + public abstract int unregisterMediaMetadataObserver(IMetadataObserver observer, int type); +

+
+
+
+ 参数 + + + observer + 元数据观察器。详见 + + + type + 元数据类型。SDK 当前仅支持 VIDEO_METADATA + + + observer + 元数据观察者。详见 + + + type + 元数据类型。当前 SDK 仅支持以下类型: +
    +
  • VIDEO_METADATA:视频元数据。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatechannelmediaoptions.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatechannelmediaoptions.dita new file mode 100644 index 00000000000..ced1b5c38c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatechannelmediaoptions.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="updateChannelMediaOptions"/> + 在加入频道后更新频道的媒体选项。在加入频道后更新频道媒体选项。加入频道后更新频道媒体选项。加入频道后更新频道媒体选项。 + + + + + + + + +
+

+ virtual int updateChannelMediaOptions(const ChannelMediaOptions& options) = 0; + public abstract int updateChannelMediaOptions(ChannelMediaOptions options); + - (int)updateChannelWithMediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions NS_SWIFT_NAME(updateChannel(with:)); + - (int)updateChannelWithMediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions NS_SWIFT_NAME(updateChannel(with:)); +

+
+
+

你可以在加入频道后调用该方法更新频道媒体选项。

+

你可以在加入频道后调用该方法更新频道媒体选项。

+
+
+ 参数 + + + options + 频道媒体选项。详见 + + + options + 频道媒体选项。详见 + + + mediaOptions + 频道媒体选项。详见 + + + mediaOptions + 频道媒体选项。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2: 中某个成员的值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误,可能是用户尚未加入频道。建议你通过 回调判断用户是否在频道中。如果你收到 CONNECTION_STATE_DISCONNECTED(1)或 CONNECTION_STATE_FAILED(5)状态,说明用户不在频道中。你需要先调用 joinChannel 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2: 中某个成员的值无效,例如 Token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。可能的原因是用户不在频道中。声网建议你使用 回调判断用户是否在频道中。如果你收到 CONNECTION_STATE_DISCONNECTED(1)或 CONNECTION_STATE_FAILED(5)状态,说明用户不在频道中。你需要先调用 joinChannel 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2: 中某个成员的值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。可能的原因是你尚未加入频道。声网建议你通过 回调判断是否已加入频道。如果你收到 AgoraConnectionStateDisconnected(1)或 AgoraConnectionStateFailed(5)状态,说明你未加入频道。你需要先调用 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2: 中某个成员的值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。可能的原因是你尚未加入频道。声网建议你通过 回调判断是否已加入频道。如果你收到 AgoraConnectionStateDisconnected(1)或 AgoraConnectionStateFailed(5)状态,说明你未加入频道。你需要先调用 加入频道,再调用该方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatelocalaudiomixerconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatelocalaudiomixerconfiguration.dita new file mode 100644 index 00000000000..7e287afa14e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatelocalaudiomixerconfiguration.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="updateLocalAudioMixerConfiguration"/> + 更新本地混音配置。更新本地音频合流配置。更新本地混音配置。更新本地混音配置。 + + + + + + + + +
+

+ virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration& config) = 0; + public abstract int updateLocalAudioMixerConfiguration(LocalAudioMixerConfiguration config); + - (int)updateLocalAudioMixerConfiguration:(AgoraLocalAudioMixerConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalAudioMixerConfiguration(_:)); + - (int)updateLocalAudioMixerConfiguration:(AgoraLocalAudioMixerConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalAudioMixerConfiguration(_:)); +

+
+
+

调用 后,如需更新本地混音配置,可调用该方法。

+

调用 startLocalAudioMixer 后,如果你想更新本地混音配置,可以调用此方法。

+

调用 startLocalAudioMixer 后,如果你想更新本地混音配置,可以调用此方法。

+ 为确保音频质量,建议混音的音频流数量不超过 10。 + 为确保音频质量,建议合流的音频流数量不超过 10。 + 为确保音频质量,建议混音的音频流数量不超过 10。 + 为确保音频质量,建议混音的音频流数量不超过 10。 +
+
+ 调用时机 +

请在调用 之后调用此方法。

+

请在调用 之后调用此方法。

+

在调用 startLocalAudioMixer 之后调用此方法。

+

在调用 startLocalAudioMixer 之后调用此方法。

+
+
+ 参数 + + + config + 本地混音配置。详见 + + + config + 用于设置本地音频合流的配置。详见 + + + config + 用于本地混音的配置。详见 + + + config + 用于本地混音的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用此方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。请在调用此方法前先初始化 对象。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatelocaltranscoderconfiguration.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatelocaltranscoderconfiguration.dita new file mode 100644 index 00000000000..78ab73d54d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatelocaltranscoderconfiguration.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="updateLocalTranscoderConfiguration"/> + 更新本地合图配置。更新本地合图配置。更新本地合图配置。更新本地合图配置。 + + + + + + + + +
+

+ virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration& config) = 0; + public abstract int updateLocalTranscoderConfiguration(LocalTranscoderConfiguration config); + - (int)updateLocalTranscoderConfiguration:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalTranscoderConfiguration(_:)); + - (int)updateLocalTranscoderConfiguration:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalTranscoderConfiguration(_:)); +

+
+
+

调用 后,如果你需要更新本地合图配置,可以调用该方法。

+

调用 后,如果你需要更新本地合图配置,可以调用该方法。

+

调用 后,如果你想更新本地合图配置,调用该方法。

+

调用 后,如果你想更新本地合图配置,调用该方法。

+ 如果你需要更新用于本地合图的视频源类型,例如添加第二个摄像头或屏幕进行视频采集,需要在调用 startScreenCapture 后调用该方法。 + 如果你想更新用于本地合图的视频源类型,例如添加第二个摄像头或屏幕进行视频采集,需要在调用 后调用该方法。 + 如果你想更新用于本地合图的视频源类型,例如添加第二个摄像头或屏幕进行视频采集,你需要在调用 (iOS)/ startScreenCapture:config:(macOS)之后调用该方法。 + 如果你想更新用于本地合图的视频源类型,例如添加第二个摄像头或屏幕进行视频采集,你需要在调用 (iOS)/ (macOS)之后调用该方法。 +
+
+ 参数 + + + config + 本地合图配置。详见 + + + config + 本地合图配置。详见 + + + config + 本地合图的配置。详见 + + + config + 本地合图的配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatepreloadchanneltoken.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatepreloadchanneltoken.dita new file mode 100644 index 00000000000..d28ba21d98d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatepreloadchanneltoken.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="updatePreloadChannelToken"/> + 更新预加载频道使用的通配 Token。更新用于预加载频道的通配 Token。更新预加载频道的通配 Token。更新预加载频道的通配 Token。 + + + + + + + + +
+

+ virtual int updatePreloadChannelToken(const char* token) = 0; + public abstract int updatePreloadChannelToken(String token); + - (int)updatePreloadChannelToken:(NSString * _Nonnull)token NS_SWIFT_NAME(updatePreloadChannelToken(_:)); + - (int)updatePreloadChannelToken:(NSString * _Nonnull)token NS_SWIFT_NAME(updatePreloadChannelToken(_:)); +

+
+
+

你需要自行维护通配 Token 的生命周期。当该 Token 过期时,需要生成新的通配 Token,并调用该方法传入新 Token。

+

你需要自行维护通配 Token 的生命周期。当该 Token 过期时,需要生成新的通配 Token,并调用该方法传入新的 Token。

+

你需要自行维护通配 Token 的生命周期。当该 Token 过期时,你需要生成一个新的通配 Token,并调用此方法传入新的 Token。

+

你需要自行维护通配 Token 的生命周期。当该 Token 过期时,你需要生成一个新的通配 Token,并调用此方法传入新的 Token。

+
+
+ 适用场景 +

适用于涉及多个频道的场景,例如在不同频道之间切换时,使用通配 Token 可以避免用户每次加入新频道时都申请新的 Token,从而节省切换频道的时间,并减轻你的 Token 服务器的压力。

+
+
+ 参数 + + + token + 新的通配 Token。 + + + token + 新的 Token。 + + + token + 新的 Token。 + + + token + 新的 Token。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如传入的 Token 无效。请传入有效参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。请先初始化 对象后再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如 Token 无效。你需要传入有效参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如 Token 无效。你需要传入有效的参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效,例如 Token 无效。你需要传入有效的参数并重新加入频道。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatertmptranscoding.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatertmptranscoding.dita new file mode 100644 index 00000000000..cecc8194779 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatertmptranscoding.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="updateRtmpTranscoding"/> + 更新旁路推流的转码配置。更新旁路推流的转码配置。更新旁路推流的转码配置。更新旁路推流的转码配置。 + + + + + + + + +
+

+ virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0; + public abstract int updateRtmpTranscoding(LiveTranscoding transcoding); + - (int)updateRtmpTranscoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(updateRtmpTranscoding(_:)); + - (int)updateRtmpTranscoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(updateRtmpTranscoding(_:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 回调。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以在开启带转码的旁路推流后,根据场景动态更新转码配置。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以在开启带转码的旁路推流后,根据场景动态更新转码配置。

+
+
+ 参数 + + + transcoding + 旁路推流的转码配置。详见 + + + transcoding + 旁路推流的转码配置。详见 + + + transcoding + 旁路推流的转码配置。详见 + + + transcoding + 旁路推流的转码配置。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatescreencapture.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencapture.dita new file mode 100644 index 00000000000..b41ac8dfc09 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencapture.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="updateScreenCapture"/> + 更新屏幕采集参数。更新屏幕共享配置。 + + + + + + + + +
+

+ virtual int updateScreenCapture(const ScreenCaptureParameters2& captureParams) = 0; + - (int)updateScreenCapture:(AgoraScreenCaptureParameters2* _Nullable)parameters NS_SWIFT_NAME(updateScreenCapture(_:)); +

+
+
+

如果在开启屏幕共享时未采集系统音频,之后希望更新参数并发布系统音频,可参考以下步骤: +

    +
  1. 调用该方法,并将 captureAudio 设置为
  2. +
  3. 调用 ,并将 publishScreenCaptureAudio 设置为 ,以发布通过屏幕采集的音频。
  4. +
+

+ +
    +
  • 该方法仅适用于 Android 和 iOS 平台。
  • +
  • 在 iOS 平台上,屏幕共享仅支持 iOS 12.0 及以上版本。
  • +
+
+ 该方法仅适用于 iOS 11 及以上版本。 +
+
+ 参数 + + + captureParams + 屏幕共享的编码参数。详见 + + + parameters + 屏幕共享的配置参数。详见 AgoraScreenCaptureParameters2 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureparameters.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureparameters.dita new file mode 100644 index 00000000000..81ba9d41450 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureparameters.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="updateScreenCaptureParameters"/> + 更新屏幕采集参数。更新屏幕采集参数。更新屏幕采集参数。 + + + + + + + + +
+

+ virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0; + public abstract int updateScreenCaptureParameters(ScreenCaptureParameters screenCaptureParameters); + - (int)updateScreenCaptureParameters:(AgoraScreenCaptureParameters * _Nonnull)captureParams NS_SWIFT_NAME(updateScreenCaptureParameters(_:)); +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+ 该方法仅适用于 Windows 和 macOS 平台。请在开始屏幕共享或窗口共享后调用该方法。 + 请在开始屏幕共享或窗口共享后调用此方法。 + 请在开始屏幕共享或窗口共享后调用此方法。 +
+
+ 参数 + + + captureParams + 屏幕共享的编码参数。屏幕共享流的视频属性仅需通过该参数设置,与 无关。详见 + + + screenCaptureParameters + 屏幕共享的编码参数,详见 。 + 屏幕共享视频流的视频属性仅需通过此参数设置,与 无关。 + + + + captureParams + 屏幕共享的编码参数。屏幕共享流的视频属性只需通过该参数设置,与 无关。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion1.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion1.dita new file mode 100644 index 00000000000..d85dd14af6c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion1.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="updateScreenCaptureRegion1"/> + 更新屏幕共享区域。 + + + + + + + + +
+

+ virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0; +

+
+
+
+ 调用时机 +

请在开始屏幕共享或窗口共享后调用此方法。

+
+
+ 参数 + + + regionRect + 屏幕共享区域相对于屏幕或窗口的位置。 +
    +
  • 如果不设置该参数,SDK 会共享整个屏幕或窗口。
  • +
  • 如果设置的区域超出屏幕或窗口范围,SDK 仅共享其中的有效区域。
  • +
  • 如果设置的宽度或高度为 0,SDK 会共享整个屏幕或窗口。
  • +
详见
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。
    • +
    • -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始共享屏幕。
    • +
    +
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion2.dita b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion2.dita new file mode 100644 index 00000000000..f814bc5856b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengine_updatescreencaptureregion2.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="updateScreenCaptureRegion2"/> + 更新屏幕采集区域。 + + + + + + + + +
+

+ - (int)updateScreenCaptureRegion:(CGRect)rect NS_SWIFT_NAME(updateScreenCaptureRegion(_:)); +

+
+
+

你可以通过该方法更新屏幕或窗口的采集区域。

+
+
+ 参数 + + + rect + 相对于屏幕或窗口的区域位置。 +
    +
  • 如果不设置该参数,SDK 会共享整个屏幕。
  • +
  • 如果指定的区域超出屏幕或窗口范围,SDK 仅共享其中的区域。
  • +
  • 如果设置的宽度或高度为 0,SDK 会共享整个屏幕或窗口。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineeventhandler_rtcenginereleasecallback.dita b/dita/RTC-AIDOC/API/api_irtcengineeventhandler_rtcenginereleasecallback.dita new file mode 100644 index 00000000000..0ed8a38824e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineeventhandler_rtcenginereleasecallback.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="RtcEngineReleaseCallback"/> + 被释放时触发的回调。 + + + + + + + + +
+

+ using RtcEngineReleaseCallback = void(*)(); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 调用时机 +

当调用 方法以异步释放 对象时,会触发该回调。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex.dita new file mode 100644 index 00000000000..25c031f7aba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex.dita @@ -0,0 +1,195 @@ + + + + <ph keyref="addVideoWatermarkEx"/> + 向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。 + + + + + + + + +
+

+ virtual int addVideoWatermarkEx(const char* watermarkUrl, const WatermarkOptions& options, const RtcConnection& connection) = 0; + public abstract int addVideoWatermarkEx(String watermarkUrl, WatermarkOptions options, RtcConnection connection) + - (int)addVideoWatermarkEx:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:options:connection:)) __deprecated_msg("use addVideoWatermark:config connection instead."); + - (int)addVideoWatermarkEx:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:options:connection:)) __deprecated_msg("use addVideoWatermark:config connection instead."); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃,请改用 addVideoWatermarkEx(const WatermarkConfig& config, const RtcConnection& connection)
+
+ +
废弃
+
自 v4.6.0 版本废弃,请改用 方法。
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 addVideoWatermark:config connection
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 addVideoWatermark:config connection
+
+
+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加后,频道中的所有观众(包括 CDN 观众)和采集设备都可以看到并采集该图像。声网 SDK 每个直播视频流仅支持添加一张水印图像,新添加的图像会替换之前的图像。 +水印图像的位置依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏或自适应横屏,水印将按横屏方向显示。
  • +
  • 如果方向模式为固定竖屏或自适应竖屏,水印将按竖屏方向显示。
  • +
  • 设置水印位置时,区域必须小于 中设置的视频尺寸,否则水印图像会被裁剪。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 +水印图像的坐标依赖于 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏模式或自适应横屏模式,则水印使用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏模式或自适应竖屏模式,则水印使用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 方法中设置的尺寸,否则水印图像会被裁剪。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 +水印图像的坐标依赖于 setVideoEncoderConfigurationEx 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏或自适应横屏模式,水印图像将采用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将采用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 setVideoEncoderConfigurationEx 方法中设置的尺寸,否则水印图像将被裁剪。
  • +
+

+

该方法在直播中向本地视频添加 PNG 格式的水印图像。添加水印图像后,频道中的所有观众(包括 CDN 观众)以及采集设备都可以看到并采集该图像。声网 SDK 仅支持在一个直播视频流中添加一张水印图像,新添加的水印图像会替换之前的图像。 +水印图像的坐标依赖于 setVideoEncoderConfigurationEx 方法中的设置: +

    +
  • 如果编码视频的方向模式()为固定横屏或自适应横屏模式,水印图像将采用横屏方向。
  • +
  • 如果编码视频的方向模式为固定竖屏或自适应竖屏模式,水印图像将采用竖屏方向。
  • +
  • 设置水印位置时,区域必须小于 setVideoEncoderConfigurationEx 方法中设置的尺寸,否则水印图像将被裁剪。
  • +
+

+ +
    +
  • 请确保在调用该方法前已调用
  • +
  • 该方法仅支持 PNG 格式的水印图像。支持的 PNG 像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像尺寸与该方法设置不一致,图像将被裁剪或缩放以适配设置。
  • +
  • 如果已调用 startPreview 启用本地视频预览,可通过 visibleInPreview 成员设置水印是否在预览中可见。
  • +
  • 如果启用了本地视频的镜像模式,水印也会被镜像。为避免水印被镜像,声网建议不要同时使用镜像和水印功能。你也可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保在调用该方法前已调用 方法。
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你已通过调用 startPreview 方法启用了本地视频预览,可以使用 visibleInPreview 成员设置水印在预览中是否可见。
  • +
  • 如果你为本地视频启用了镜像模式,则本地视频中的水印也会被镜像。为避免水印被镜像,声网建议不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保你在调用该方法前已调用
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你已通过调用 方法启用本地视频预览,可使用 visibleInPreview 成员设置水印是否在预览中可见。
  • +
  • 如果你已为本地视频启用镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+ +
    +
  • 请确保你在调用该方法前已调用
  • +
  • 该方法仅支持添加 PNG 文件格式的水印图像。支持的 PNG 图像像素格式包括 RGBA、RGB、Palette、Gray 和 Alpha_gray。
  • +
  • 如果 PNG 图像的尺寸与该方法中的设置不一致,图像将被裁剪或缩放以符合设置。
  • +
  • 如果你已通过调用 方法启用本地视频预览,可使用 visibleInPreview 成员设置水印是否在预览中可见。
  • +
  • 如果你已为本地视频启用镜像模式,本地视频中的水印也会被镜像。为避免水印被镜像,声网建议你不要同时使用本地视频的镜像和水印功能。你可以在应用层实现水印功能。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + watermarkUrl + 要添加的水印图像的本地文件路径,支持本地绝对路径或相对路径。 + + + options + 水印图像的相关设置,详见 + + + connection + 连接信息,详见 + + + watermarkUrl + 要添加的水印图像的本地文件路径。支持使用本地绝对路径或相对路径。 + + + options + 水印图像的相关设置。详见 + + + connection + 连接信息。详见 + + + url + 要添加的水印图像的本地文件路径。该方法支持从本地绝对路径或相对路径添加水印图像。 + + + options + 水印图像的选项。详见 + + + connection + 连接信息。详见 + + + url + 要添加的水印图像的本地文件路径。该方法支持从本地绝对路径或相对路径添加水印图像。 + + + options + 水印图像的选项。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex1.dita b/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex1.dita new file mode 100644 index 00000000000..52b6dc9f2fd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_addvideowatermarkex1.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="addVideoWatermarkEx1"/> + 向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。向本地视频添加水印图像。 + + + + + + + + +
+

+ virtual int addVideoWatermarkEx(const WatermarkConfig& config, const RtcConnection& connection) = 0; + public abstract int addVideoWatermarkEx(WatermarkConfig config, RtcConnection connection); + - (int)addVideoWatermarkEx:(WatermarkConfig* _Nonnull)configs connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:connection:)); + - (int)addVideoWatermarkEx:(WatermarkConfig* _Nonnull)configs connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:connection:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + config + 水印配置,详见 + + + connection + 对象,详见 + + + config + 水印配置。详见 + + + connection + 对象。详见 + + + configs + 水印配置。详见 + + + connection + 对象。详见 + + + configs + 水印配置。详见 + + + connection + 对象。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_adjustuserplaybacksignalvolumeex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_adjustuserplaybacksignalvolumeex.dita new file mode 100644 index 00000000000..02177fe2354 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_adjustuserplaybacksignalvolumeex.dita @@ -0,0 +1,148 @@ + + + + <ph keyref="adjustUserPlaybackSignalVolumeEx"/> + 调整指定远端用户的播放信号音量。调整指定远端用户的播放音量。调节指定远端用户的播放信号音量。调节指定远端用户的播放信号音量。 + + + + + + + + +
+

+ virtual int adjustUserPlaybackSignalVolumeEx(uid_t uid, int volume, const RtcConnection& connection) = 0; + public abstract int adjustUserPlaybackSignalVolumeEx(int uid, int volume, RtcConnection connection); + - (int)adjustUserPlaybackSignalVolumeEx:(NSUInteger)uid + volume:(NSInteger)volume + connection:(AgoraRtcConnection* _Nonnull)connection; + - (int)adjustUserPlaybackSignalVolumeEx:(NSUInteger)uid + volume:(NSInteger)volume + connection:(AgoraRtcConnection* _Nonnull)connection; +

+
+
+

你可以调用该方法调整指定远端用户的播放音量。若需调整多个远端用户的播放音量,请分别多次调用该方法,每次针对一个远端用户。

+

你可以调用此方法调整指定远端用户的播放音量。若需调整多个远端用户的播放音量,请分别多次调用此方法,每次针对一个远端用户。

+

你可以调用此方法调节指定远端用户的播放音量。若需调节多个远端用户的播放音量,请分别多次调用此方法,每次针对一个远端用户。

+

你可以调用此方法调节指定远端用户的播放音量。若需调节多个远端用户的播放音量,请分别多次调用此方法,每次针对一个远端用户。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在调用 后调用该方法。

+

请在调用 后调用此方法。

+

请在调用 之后调用此方法。

+

请在调用 之后调用此方法。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0, 400]: +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0, 400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + connection + 连接信息,详见 + + + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + volume + 用户的音量,取值范围为 [0,400]。 +
    +
  • 0:静音。
  • +
  • 100:(默认)原始音量。
  • +
  • 400:原始音量的四倍(将音频信号放大四倍)。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_clearvideowatermarkex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_clearvideowatermarkex.dita new file mode 100644 index 00000000000..20d89ac7d42 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_clearvideowatermarkex.dita @@ -0,0 +1,76 @@ + + + + <ph keyref="clearVideoWatermarkEx"/> + 移除视频流中的水印图像。从视频流中移除水印图像。从视频流中移除水印图像。从视频流中移除水印图像。 + + + + + + + + +
+

+ virtual int clearVideoWatermarkEx(const RtcConnection& connection) = 0; + public abstract int clearVideoWatermarkEx(RtcConnection connection); + - (int)clearVideoWatermarkEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(clearVideoWatermarkEx(_:)); + - (int)clearVideoWatermarkEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(clearVideoWatermarkEx(_:)); +

+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex1.dita b/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex1.dita new file mode 100644 index 00000000000..97f11c51f8d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex1.dita @@ -0,0 +1,197 @@ + + + + <ph keyref="createDataStreamEx1"/> + 创建一个数据流。创建数据流以提升数据传输的可靠性和顺序性。创建一个数据流。创建一个数据流。 + + + + + + + + +
+

+ virtual int createDataStreamEx(int* streamId, bool reliable, bool ordered, const RtcConnection& connection) = 0; + public abstract int createDataStreamEx(boolean reliable, boolean ordered, RtcConnection connection); + - (int)createDataStreamEx:(NSInteger * _Nonnull)streamId + reliable:(BOOL)reliable + ordered:(BOOL)ordered + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(createDataStreamEx(_:reliable:ordered:connection:)); + - (int)createDataStreamEx:(NSInteger * _Nonnull)streamId + reliable:(BOOL)reliable + ordered:(BOOL)ordered + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(createDataStreamEx(_:reliable:ordered:connection:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

你可以调用此方法创建一个数据流,以提升数据传输的可靠性和顺序性。

+

你可以调用此方法创建一个数据流,以提升数据传输的可靠性和顺序性。

+ 每个用户在 的生命周期内最多可创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。 + 每个用户在 的生命周期内最多可创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。 + 每个用户在 的生命周期中最多可创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。 + 每个用户在 的生命周期中最多可创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

在调用 后调用该方法。

+

请在调用 后调用此方法。

+

请在调用 joinChannelExByToken 之后调用此方法。

+

请在调用 joinChannelExByToken 之后调用此方法。

+
+ +
+ 参数 + + + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 是否保证接收端在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方的数据。如果未收到,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据流,延迟或丢失不会返回错误信息。
  • +
注意:请确保 reliableordered 同时为 或同时为
+
+ + ordered + 是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + connection + 连接信息。详见 + + + reliable + + 请确保 reliableordered 同时设置为 或同时设置为 是否保证接收端在五秒内接收到数据流: +
    +
  • :接收端会在五秒内接收到发送端的数据。如果接收端在五秒内未收到数据,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内接收到数据流,延迟或丢失数据不会返回错误信息。
  • +
+
+
+ + ordered + 是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + connection + 连接信息。详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 设置是否保证接收端在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方发送的数据。如果五秒内未收到,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据流,延迟或丢失不会返回错误信息。
  • +
注意:请确保 reliableordered 同时设置为 或同时设置为
+
+ + ordered + 设置接收端是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + connection + 连接信息。详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + reliable + 设置是否保证接收端在五秒内收到数据流: +
    +
  • :接收端会在五秒内收到发送方发送的数据。如果五秒内未收到,SDK 会触发 回调并返回错误码。
  • +
  • :不保证接收端在五秒内收到数据流,延迟或丢失不会返回错误信息。
  • +
注意:请确保 reliableordered 同时设置为 或同时设置为
+
+ + ordered + 设置接收端是否按发送顺序接收数据流: +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :接收端不按发送顺序接收数据。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回创建的数据流 ID。
  • +
  • 方法调用失败,返回小于 0 的值。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex2.dita new file mode 100644 index 00000000000..3552fbff6cf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_createdatastreamex2.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="createDataStreamEx2"/> + 创建一个数据流。创建一个数据流。创建一个数据流。创建一个数据流。 + + + + + + + + +
+

+ virtual int createDataStreamEx(int* streamId, const DataStreamConfig& config, const RtcConnection& connection) = 0; + public abstract int createDataStreamEx(DataStreamConfig config, RtcConnection connection); + - (int)createDataStreamEx:(NSInteger * _Nonnull)streamId + config:(AgoraDataStreamConfig * _Nonnull)config + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(createDataStreamEx(_:config:connection:)); + - (int)createDataStreamEx:(NSInteger * _Nonnull)streamId + config:(AgoraDataStreamConfig * _Nonnull)config + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(createDataStreamEx(_:config:connection:)); +

+
+
+

相比,不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据。建议在调用 后调用此方法。

+

相比,该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据。

+

该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据。

+

该方法不保证数据传输的可靠性。如果数据包在发送后五秒内未被接收,SDK 会直接丢弃该数据。

+ 每个用户在 的生命周期中最多可以创建五个数据流。离开频道时,数据流会被销毁,如需再次使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可创建五个数据流。离开频道时数据流会被销毁,如需继续使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 每个用户在 的生命周期内最多可以创建五个数据流。离开频道时数据流会被销毁,如需使用需重新创建。如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

在调用 后调用。

+

请在调用 后调用该方法。

+

请在调用 joinChannelExByToken 方法后调用该方法。

+

请在调用 joinChannelExByToken 方法后调用该方法。

+
+
+ 参数 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置。详见 + + + connection + 连接信息。详见 + + + config + 数据流的配置,详见 + + + connection + 连接信息,详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置。详见 + + + connection + 连接信息。详见 + + + streamId + 输出参数,创建的数据流 ID。 + + + config + 数据流的配置。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_enableaudiovolumeindicationex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_enableaudiovolumeindicationex.dita new file mode 100644 index 00000000000..65ba4998da9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_enableaudiovolumeindicationex.dita @@ -0,0 +1,189 @@ + + + + <ph keyref="enableAudioVolumeIndicationEx"/> + 启用用户音量提示的上报功能。启用用户音量提示的上报功能。启用用户音量提示的上报功能。启用用户音量提示的上报功能。 + + + + + + + + +
+

+ virtual int enableAudioVolumeIndicationEx(int interval, int smooth, bool reportVad, const RtcConnection& connection) = 0; + public abstract int enableAudioVolumeIndicationEx(int interval, int smooth, boolean reportVad, RtcConnection connection); + - (int)enableAudioVolumeIndicationEx:(NSInteger)interval + smooth:(NSInteger)smooth + reportVad:(BOOL)reportVad + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableAudioVolumeIndicationEx(_:smooth:reportVad:connection:)); + - (int)enableAudioVolumeIndicationEx:(NSInteger)interval + smooth:(NSInteger)smooth + reportVad:(BOOL)reportVad + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableAudioVolumeIndicationEx(_:smooth:reportVad:connection:)); +

+
+
+

该方法用于启用 SDK 定期向应用上报本地发送音频流的用户和音量瞬时值最高的最多三位远端用户的音量信息。

+

该方法使 SDK 能够定期向应用上报本地发送音频流的用户和音量瞬时值最高的最多三位远端用户的音量信息。

+

该方法用于启用 SDK 定期向发送音频流的本地用户和音量瞬时值最高的最多三位远端用户的应用程序上报音量信息。

+

该方法用于启用 SDK 定期向发送音频流的本地用户和音量瞬时值最高的最多三位远端用户的应用程序上报音量信息。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在调用 后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+
+ +
+ 参数 + + + interval + 设置两次音量提示之间的时间间隔(毫秒): +
    +
  • ≤ 0:关闭音量提示。
  • +
  • > 0:两次音量提示之间的时间间隔(毫秒)。该值需大于 10,否则无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数,取值范围为 0 到 10,推荐值为 3。值越大,提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(Voice Activity Detection): +
    +
  • :启用语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭语音活动检测。关闭后, 回调中的 vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到语音活动。
  • +
+
+
+ + connection + 连接信息。详见 + + + interval + 设置两次音量提示之间的时间间隔(单位为毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔。该值需大于 10,否则无法收到 回调。建议设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示的灵敏度平滑系数,取值范围为 [0, 10],推荐值为 3。数值越大,提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(VAD): +
    +
  • :启用语音活动检测, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭语音活动检测,vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到语音活动。
  • +
+
+
+ + connection + 连接信息,详见 + + + interval + 设置两次音量提示之间的时间间隔(毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔(单位为毫秒)。确保该参数值大于 10,否则你将无法收到 回调。声网建议将该值设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示灵敏度的平滑系数,取值范围为 [0, 10],推荐值为 3。值越大,提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(Voice Activity Detection): +
    +
  • :启用本地用户的语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭本地用户的语音活动检测。关闭后, 回调中的 vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到本地用户的语音活动。
  • +
+
+
+ + connection + 连接信息。详见 + + + interval + 设置两次音量提示之间的时间间隔(毫秒): +
    +
  • ≤ 0:关闭音量提示功能。
  • +
  • > 0:两次音量提示之间的时间间隔(单位为毫秒)。确保该参数值大于 10,否则你将无法收到 回调。声网建议将该值设置为大于 100。
  • +
+
+
+ + smooth + 设置音量提示灵敏度的平滑系数,取值范围为 [0, 10],推荐值为 3。值越大,提示越灵敏。 + + + reportVad + 是否启用本地用户的语音活动检测(Voice Activity Detection): +
    +
  • :启用本地用户的语音活动检测。启用后, 回调中的 vad 参数会报告本地用户的语音活动状态。
  • +
  • :(默认)关闭本地用户的语音活动检测。关闭后, 回调中的 vad 参数不会报告本地用户的语音活动状态,除非引擎自动检测到本地用户的语音活动。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_enablecontentinspectex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_enablecontentinspectex.dita new file mode 100644 index 00000000000..8e7147f75c8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_enablecontentinspectex.dita @@ -0,0 +1,144 @@ + + + + <ph keyref="enableContentInspectEx"/> + 启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。启用或关闭本地截图上传功能。 + + + + + + + + +
+

+ virtual int enableContentInspectEx(bool enabled, const media::ContentInspectConfig &config, const RtcConnection& connection) = 0; + public abstract int enableContentInspectEx(boolean enabled, ContentInspectConfig config, RtcConnection connection); + - (int)enableContentInspectEx:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(enableContentInspectEx(_:config:connection:)); + - (int)enableContentInspectEx:(BOOL)enabled config:(AgoraContentInspectConfig* _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(enableContentInspectEx(_:config:connection:)); +

+
+
+

该方法可对多个视频流进行截图并上传。启用该功能后,SDK 会根据你在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图上传完成后,声网服务器会通过 HTTPS 请求将回调通知发送至你的应用服务器,并将所有截图上传至第三方云存储服务。

+

启用该功能后,SDK 会根据你在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。截图上传后,声网服务器会通过 HTTPS 请求将回调通知发送到你的应用服务器,并将所有截图上传至第三方云存储服务。

+

该方法可对多个视频流进行截图并上传。启用该功能后,SDK 会根据你在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。完成截图上传后,声网服务器会通过 HTTPS 请求向你的应用服务器发送回调通知,并将所有截图上传至第三方云存储服务。

+

该方法可对多个视频流进行截图并上传。启用该功能后,SDK 会根据你在 中设置的模块类型和频率,对本地用户发送的视频进行截图并上传。完成截图上传后,声网服务器会通过 HTTPS 请求向你的应用服务器发送回调通知,并将所有截图上传至第三方云存储服务。

+ 调用该方法前,请确保你已在声网控制台启用了本地截图上传功能。 + 在调用该方法前,请确保你已[联系技术支持](https://ticket.shengwang.cn/)开通本地截图上传服务。 + 调用该方法前,请确保你已[联系技术支持](https://ticket.shengwang.cn/)开通本地截图上传服务。 + 调用该方法前,请确保你已[联系技术支持](https://ticket.shengwang.cn/)开通本地截图上传服务。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

该方法可在加入频道前或加入频道后调用。

+

该方法可在加入频道前或后调用。

+

该方法可在加入频道前或加入频道后调用。

+

该方法可在加入频道前或加入频道后调用。

+
+
+ 参数 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图和上传的配置。详见 + + + connection + 连接信息。详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图上传的配置参数,详见 + + + connection + 连接信息,详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图和上传的配置。详见 + + + connection + 连接信息。详见 + + + enabled + 是否启用本地截图上传功能: +
    +
  • :启用本地截图上传功能。
  • +
  • :关闭本地截图上传功能。
  • +
+
+
+ + config + 截图和上传的配置。详见 + + + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_enabledualstreammodeex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_enabledualstreammodeex.dita new file mode 100644 index 00000000000..21a12248138 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_enabledualstreammodeex.dita @@ -0,0 +1,183 @@ + + + + <ph keyref="enableDualStreamModeEx"/> + 在发送端启用或关闭不同质量层级的视频流。在发送端启用或关闭双流模式。在发送端启用或关闭不同质量层级的视频流。在发送端启用或关闭不同质量层级的视频流。 + + + + + + + + +
+

+ virtual int enableDualStreamModeEx(bool enabled, const SimulcastStreamConfig& streamConfig, const RtcConnection& connection) = 0; + public abstract int enableDualStreamModeEx(boolean enabled, SimulcastStreamConfig streamConfig, RtcConnection connection); + - (int)enableDualStreamModeEx:(BOOL)enabled + streamConfig:(AgoraSimulcastStreamConfig*)streamConfig + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableDualStreamModeEx(_:streamConfig:connection:)) __deprecated_msg("use setDualStreamModeEx: instead."); + - (int)enableDualStreamModeEx:(BOOL)enabled + streamConfig:(AgoraSimulcastStreamConfig*)streamConfig + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableDualStreamModeEx(_:streamConfig:connection:)) __deprecated_msg("use setDualStreamModeEx: instead."); +

+
+
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用
+
+ +
废弃
+
自 v4.2.0 版本废弃。请使用 代替。
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamModeEx
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用 setDualStreamModeEx
+
+
+

不同质量层级的视频流由一对视频大流和视频小流组成: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用该功能后,你可以调用 方法,在订阅端选择接收高质量或低质量的视频流。

+

你可以调用此方法在发送端启用或关闭双流模式。双流由一对视频大流和视频小流组成: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用双流模式后,你可以调用 setRemoteVideoStreamType 方法,在订阅端选择接收视频大流或视频小流。

+

你可以调用此方法在发布端启用或关闭不同质量层级的视频流。不同质量层级的视频流由一对视频大流和视频小流组成: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用不同质量层级的视频流后,你可以调用 setRemoteVideoStream 方法,在订阅端选择接收高质量或低质量的视频流。

+

你可以调用此方法在发布端启用或关闭不同质量层级的视频流。不同质量层级的视频流由一对视频大流和视频小流组成: +

    +
  • 视频大流:高码率,高分辨率。
  • +
  • 视频小流:低码率,低分辨率。
  • +
启用不同质量层级的视频流后,你可以调用 setRemoteVideoStream 方法,在订阅端选择接收高质量或低质量的视频流。

+ 该方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。 + 该方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。 + 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。 + 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + enabled + 是否启用不同质量层级的视频流: +
    +
  • :启用不同质量层级的视频流。
  • +
  • :(默认)关闭不同质量层级的视频流。
  • +
+
+
+ + streamConfig + 视频小流的配置。详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置 streamConfig 无效。 + + + + connection + 连接信息。详见 + + + enabled + 是否启用双流模式: +
    +
  • :启用双流模式。
  • +
  • :(默认)关闭双流模式。
  • +
+
+
+ + streamConfig + 视频小流的配置,详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置 streamConfig 不生效。 + + + + connection + 连接信息,详见 + + + enabled + 是否启用不同质量层级的视频流: +
    +
  • :启用不同质量层级的视频流。
  • +
  • (默认):关闭不同质量层级的视频流。
  • +
+
+
+ + streamConfig + 视频小流的配置,详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置 streamConfig 无效。 + + + + connection + 连接信息,详见 + + + enabled + 是否启用不同质量层级的视频流: +
    +
  • :启用不同质量层级的视频流。
  • +
  • (默认):关闭不同质量层级的视频流。
  • +
+
+
+ + streamConfig + 视频小流的配置,详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置 streamConfig 无效。 + + + + connection + 连接信息,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_enableencryptionex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_enableencryptionex.dita new file mode 100644 index 00000000000..89195743984 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_enableencryptionex.dita @@ -0,0 +1,164 @@ + + + + <ph keyref="enableEncryptionEx"/> + 启用或关闭内置加密功能。启用或关闭内置加密功能。启用或关闭内置加密。启用或关闭内置加密。 + + + + + + + + +
+

+ virtual int enableEncryptionEx(const RtcConnection& connection, bool enabled, const EncryptionConfig& config) = 0; + public abstract int enableEncryptionEx(boolean enabled, EncryptionConfig config, RtcConnection connection); + - (int)enableEncryptionEx:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig *_Nonnull)config connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableEncryptionEx(_:encryptionConfig:connection:)); + - (int)enableEncryptionEx:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig *_Nonnull)config connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableEncryptionEx(_:encryptionConfig:connection:)); +

+
+
+

用户离开频道后,SDK 会自动关闭内置加密。若需启用内置加密,请在用户重新加入频道前调用该方法。

+

用户离开频道后,SDK 会自动关闭内置加密。你需要在用户重新加入频道前调用该方法。

+

你离开频道后,SDK 会自动关闭内置加密。若需启用内置加密,请在重新加入频道前调用该方法。

+

你离开频道后,SDK 会自动关闭内置加密。若需启用内置加密,请在重新加入频道前调用该方法。

+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+ +
    +
  • 同一频道内的所有用户在调用该方法时必须设置相同的加密配置。
  • +
  • 启用内置加密后,无法使用旁路推流功能。
  • +
+
+
+
+ 适用场景 +

适用于多频道场景,或对安全性要求较高的场景。

+
+
+ 调用时机 +

请在加入频道前调用该方法。

+

请在加入频道前调用该方法。

+

该方法需要在加入频道前调用。

+

该方法需要在加入频道前调用。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + + + connection + 连接信息。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + + + connection + 连接信息。详见 + + + enabled + 是否启用内置加密: +
    +
  • :启用内置加密。
  • +
  • :(默认)关闭内置加密。
  • +
+
+
+ + config + 内置加密配置。详见 + + + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_enableloopbackrecordingex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_enableloopbackrecordingex.dita new file mode 100644 index 00000000000..09f860c8fa6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_enableloopbackrecordingex.dita @@ -0,0 +1,98 @@ + + + + <ph keyref="enableLoopbackRecordingEx"/> + 启用声卡采集功能,将声卡输出混入发送的音频流中。启用回环音频采集。 + + + + + + + + +
+

+ virtual int enableLoopbackRecordingEx(const RtcConnection& connection, bool enabled, const char* deviceName = NULL) = 0; + - (int)enableLoopbackRecordingEx:(BOOL)enabled + deviceName:(NSString* _Nullable)deviceName + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(enableLoopbackRecordingEx(_:deviceName:connection:)); +

+
+
+

启用该功能后,声卡的输出会被混入发送到远端的音频流中。

+

启用该方法后,声卡的输出会被混入发送到远端的音频流中。

+ +
    +
  • 该方法仅适用于 macOS 和 Windows 平台。
  • +
  • macOS 不支持默认声卡的声卡采集功能。如需使用该功能,请使用虚拟声卡,并将其名称传入 deviceName 参数。推荐使用 AgoraALD 作为虚拟声卡。
  • +
  • 该方法仅支持使用一个声卡进行音频采集。
  • +
+
+ 该方法仅支持使用一个声卡进行音频采集。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接信息,详见 + + + enabled + 是否启用声卡采集功能: +
    +
  • :启用声卡采集。
  • +
  • :(默认)禁用声卡采集。
  • +
+
+
+ + deviceName + +
    +
  • macOS:虚拟声卡的设备名称。默认值为 ,表示使用 AgoraALD 进行声卡采集。
  • +
  • Windows:声卡的设备名称。默认值为 ,表示使用当前设备的声卡进行采集。
  • +
+
+
+ + enabled + 是否启用回环音频采集: +
    +
  • :启用回环音频采集。
  • +
  • :(默认)关闭回环音频采集。
  • +
+
+
+ + deviceName + 虚拟声卡的设备名称。默认值为 ,表示使用 AgoraALD 进行回环音频采集。 + + + connection + 连接信息,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_getcallidex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_getcallidex.dita new file mode 100644 index 00000000000..9a304ca18aa --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_getcallidex.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="getCallIdEx"/> + 获取与连接 ID 对应的通话 ID。获取与连接 ID 对应的通话 ID。获取与连接 ID 对应的通话 ID。获取与连接 ID 对应的通话 ID。 + + + + + + + + +
+

+ virtual int getCallIdEx(agora::util::AString& callId, const RtcConnection& connection) = 0; + public abstract String getCallIdEx(RtcConnection connection); + - (NSString * _Nullable)getCallIdEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(getCallIdEx(_:)); + - (NSString * _Nullable)getCallIdEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(getCallIdEx(_:)); +

+
+
+

当用户在客户端加入频道时,SDK 会生成一个用于标识该通话的 callId。你可以调用该方法获取 callId,并在调用如 等方法时传入该值。

+

你可以调用该方法获取 callId,并在调用 等方法时传入该 ID。

+

当你在客户端加入频道时,SDK 会生成一个用于标识该通话的 callId。你可以调用该方法获取 callId,并在调用如 等方法时传入该 callId

+

当你在客户端加入频道时,SDK 会生成一个用于标识该通话的 callId。你可以调用该方法获取 callId,并在调用如 等方法时传入该 callId

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在加入频道后调用该方法。

+

请在加入频道后调用此方法。

+

在加入频道后调用此方法。

+

在加入频道后调用此方法。

+
+
+ 参数 + + + callId + 输出参数,当前通话的 callId + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功时,返回通话 ID。 +方法调用失败,返回空字符串。

+

+

    +
  • 方法调用成功时,返回用于标识客户端通话的 callId 字符串。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+

+

    +
  • 方法调用成功时,返回用于标识客户端通话的 callId 字符串。
  • +
  • 方法调用失败时,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_getconnectionstateex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_getconnectionstateex.dita new file mode 100644 index 00000000000..3501fb407da --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_getconnectionstateex.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="getConnectionStateEx"/> + 获取 SDK 当前的连接状态。获取 SDK 当前的连接状态。获取 SDK 当前的连接状态。获取 SDK 当前的连接状态。 + + + + + + + + +
+

+ virtual CONNECTION_STATE_TYPE getConnectionStateEx(const RtcConnection& connection) = 0; + public abstract int getConnectionStateEx(RtcConnection connection); + - (AgoraConnectionState)getConnectionStateEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(getConnectionStateEx(_:)); + - (AgoraConnectionState)getConnectionStateEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(getConnectionStateEx(_:)); +

+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

该方法可以在加入频道前或加入频道后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+

该方法可以在加入频道前或后调用。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

当前的连接状态。详见

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

当前的连接状态。详见

+

当前的连接状态。详见

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuidex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuidex.dita new file mode 100644 index 00000000000..29c2b495ae0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuidex.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="getUserInfoByUidEx"/> + 通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。通过传入用户 ID 获取用户信息。 + + + + + + + + +
+

+ virtual int getUserInfoByUidEx(uid_t uid, rtc::UserInfo* userInfo, const RtcConnection& connection) = 0; + public abstract int getUserInfoByUidEx(int uid, UserInfo userInfo, RtcConnection connection); + - (AgoraUserInfo* _Nullable)getUserInfoByUidEx:(NSUInteger)uid + connection:(AgoraRtcConnection * _Nonnull)connection + withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUidEx:connection:withError:)); + - (AgoraUserInfo* _Nullable)getUserInfoByUidEx:(NSUInteger)uid + connection:(AgoraRtcConnection * _Nonnull)connection + withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUidEx:connection:withError:)); +

+
+
+

该方法通过传入用户 ID 获取用户信息。功能与 相同。

+

当远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表中,同时在本地客户端触发 回调。收到该回调后,你可以调用 并传入用户 ID,从 对象中获取指定用户的用户 User Account。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入 uid,从 对象中获取指定用户的用户 User Account。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。收到该回调后,你可以调用 方法并传入 uid,从 对象中获取指定用户的用户 User Account。

+
+
+ 适用场景 +

适用于多频道场景。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + userInfo + 输入和输出参数,用于标识用户的 对象。调用该方法时传入的 对象,在方法调用成功后返回包含用户 User Account 和用户 ID 的 对象。详见 + + + connection + 对象。详见 + + + uid + 用户 ID。 + + + userInfo + 用于标识用户信息的对象。详见 + + + connection + 连接信息。详见 + + + uid + 用户 ID。 + + + connection + 连接信息。详见 + + + error + 错误码。详见 + + + uid + 用户 ID。 + + + connection + 连接信息。详见 + + + error + 错误码。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 方法调用成功,返回 对象。
  • +
  • 方法调用失败,返回 null
  • +
+

+

方法调用成功,返回 对象。详见 。 +方法调用失败,返回

+

方法调用成功,返回 对象。详见 。 +方法调用失败,返回

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuseraccountex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuseraccountex.dita new file mode 100644 index 00000000000..0c8e83840f6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_getuserinfobyuseraccountex.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="getUserInfoByUserAccountEx"/> + 通过用户 User Account 获取用户信息。通过用户 User Account 获取用户信息。通过传入用户 User Account 获取用户信息。通过传入用户 User Account 获取用户信息。 + + + + + + + + +
+

+ virtual int getUserInfoByUserAccountEx(const char* userAccount, rtc::UserInfo* userInfo, const RtcConnection& connection) = 0; + public abstract int getUserInfoByUserAccountEx(String userAccount, UserInfo userInfo, RtcConnection connection); + - (AgoraUserInfo* _Nullable)getUserInfoByUserAccountEx:(NSString* _Nonnull)userAccount + connection:(AgoraRtcConnection * _Nonnull)connection + withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUserAccountEx:connection:withError:)); + - (AgoraUserInfo* _Nullable)getUserInfoByUserAccountEx:(NSString* _Nonnull)userAccount + connection:(AgoraRtcConnection * _Nonnull)connection + withError:(AgoraErrorCode* _Nullable)error NS_SWIFT_NAME(getUserInfo(byUserAccountEx:connection:withError:)); +

+
+
+

该方法通过传入用户 User Account 获取用户信息,功能与 相同。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表中,同时在本地客户端触发 回调。收到该回调后,你可以调用 并传入用户 User Account,从 对象中获取指定用户的用户信息。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。收到该回调后,你可以调用该方法并传入用户 User Account,从 对象中获取指定用户的信息。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发 回调。收到该回调后,你可以调用该方法并传入用户 User Account,从 对象中获取指定用户的信息。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + userAccount + 用户 User Account。请确保设置该参数。 + + + userInfo + 输入和输出参数,用于标识用户的 对象。调用该方法后,该对象将包含用户 User Account 和用户 ID。详见 + + + connection + 对象。详见 + + + userAccount + 用户 User Account。 + + + userInfo + 输入和输出参数,用于标识用户信息。详见 + + + connection + 连接信息。详见 + + + userAccount + 用户 User Account。 + + + connection + 连接信息。详见 + + + error + 错误码。详见 + + + userAccount + 用户 User Account。 + + + connection + 连接信息。详见 + + + error + 错误码。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

方法调用成功,返回指定用户的 对象。

+

方法调用成功,返回指定用户的 对象。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelex.dita new file mode 100644 index 00000000000..16218281305 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelex.dita @@ -0,0 +1,266 @@ + + + + <ph keyref="joinChannelEx"/> + 加入一个频道。加入一个频道。使用 token 加入频道并设置媒体选项。使用 token 加入频道并设置媒体选项。 + + + + + + + + +
+

+ virtual int joinChannelEx(const char* token, const RtcConnection& connection, const ChannelMediaOptions& options, IRtcEngineEventHandler* eventHandler) = 0; + public abstract int joinChannelEx(String token, RtcConnection connection, ChannelMediaOptions options, IRtcEngineEventHandler eventHandler); + - (int)joinChannelExByToken:(NSString* _Nullable)token + connection:(AgoraRtcConnection * _Nonnull)connection + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate + mediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannelEx(byToken:connection:delegate:mediaOptions:joinSuccess:)); + - (int)joinChannelExByToken:(NSString* _Nullable)token + connection:(AgoraRtcConnection * _Nonnull)connection + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate + mediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannelEx(byToken:connection:delegate:mediaOptions:joinSuccess:)); +

+
+
+

你可以多次调用该方法加入多个频道。 +在多摄像头采集场景中,调用该方法后需要调用 startPreview 方法,并将 sourceType 设置为 VIDEO_SOURCE_CAMERA_SECONDARY,以确保第二路摄像头正常采集。

+

你可以多次调用此方法加入多个频道。 + +在多摄像头采集场景中,调用此方法后需要调用 startPreview 方法,并将 sourceType 设置为 VIDEO_SOURCE_CAMERA_SECONDARY,以确保第二路摄像头正常采集。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦用户加入频道,默认会订阅频道中其他所有用户的音视频流,从而产生用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 mediaOptions 参数或调用发布与订阅相关的方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦用户加入频道,默认会订阅频道中其他所有用户的音视频流,从而产生用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 mediaOptions 参数或调用发布与订阅相关的方法。

+ 如果你已经在一个频道中,不能使用相同的用户 ID 重新加入该频道。 +在加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会导致使用该 Token 加入频道失败。 + 如果你已经在一个频道中,不能使用相同的用户 ID 重新加入该频道。 +在加入频道前,确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能会导致加入频道失败。 + +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 token 的 App ID 与 方法中传入的 App ID 一致,否则可能会导致使用该 token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 UID 加入频道,则其他用户也应使用 UID。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 token 的 App ID 与 方法中传入的 App ID 一致,否则可能会导致使用该 token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 UID 加入频道,则其他用户也应使用 UID。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在调用 方法后调用该方法。

+

在调用 方法之后调用。

+

在调用 之后调用该方法。

+

在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 用于鉴权的 Token,由你的服务器生成。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入不同频道或在频道间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。详见 Secure authentication with tokens
  • +
+
+
+
+ + connection + 连接信息,详见 + + + options + 频道媒体选项,详见 + + + eventHandler + 回调类,详见 。你可以通过该参数传入的 eventHandler 对象获取多个频道的回调事件。 + + + token + 用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入不同频道或在频道之间切换,声网建议使用通配符 Token,这样你每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + connection + 连接信息。详见 + + + options + 频道媒体选项。详见 + + + eventHandler + 回调类。详见 。你可以通过该参数传入的 eventHandler 对象获取多个频道的回调事件。 + + + token + 你在服务器上生成的用于鉴权的 token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道之间切换,声网建议使用通配符 token,这样你无需每次加入频道时都申请新的 token。
  • +
+
+
+
+ + connection + 连接信息。参见 + + + delegate + AgoraRtcEngine 的回调类。参见 。你可以通过该参数传入的 对象获取多个频道的回调事件。 + + + mediaOptions + 频道媒体选项。参见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 你在服务器上生成的用于鉴权的 token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道之间切换,声网建议使用通配符 token,这样你无需每次加入频道时都申请新的 token。
  • +
+
+
+
+ + connection + 连接信息。参见 + + + delegate + AgoraRtcEngine 的回调类。参见 。你可以通过该参数传入的 对象获取多个频道的回调事件。 + + + mediaOptions + 频道媒体选项。参见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3: 对象初始化失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用该方法加入频道。你需要先调用 再调用该方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用该方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名以重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 以重新加入频道。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中的成员值无效。你需要传入有效参数并重新加入频道。
    • +
    • -3:初始化 对象失败。你需要重新初始化 对象。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用此方法。
    • +
    • -8: 对象的内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用此方法加入频道。你需要先调用 再调用此方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议你通过 回调判断用户是否在频道中。只有在收到 CONNECTION_STATE_DISCONNECTED(1)状态时才调用此方法加入频道。
    • +
    • -102:频道名无效。你需要在 channelId 中传入有效的频道名以重新加入频道。
    • +
    • -121:用户 ID 无效。你需要在 uid 中传入有效的用户 ID 以重新加入频道。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。请重新初始化该对象。
  • +
  • -7: 对象尚未初始化。请在调用该方法前初始化该对象。
  • +
  • -8: 对象的内部状态错误。常见原因是在调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。请先调用
  • +
  • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议通过 回调判断用户是否在频道中。仅当收到 AgoraConnectionStateDisconnected(1)状态时再调用该方法。
  • +
  • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
  • +
  • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数并重新加入频道。
  • +
  • -3:初始化 对象失败。请重新初始化该对象。
  • +
  • -7: 对象尚未初始化。请在调用该方法前初始化该对象。
  • +
  • -8: 对象的内部状态错误。常见原因是在调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。请先调用
  • +
  • -17:加入频道请求被拒绝。常见原因是用户已在频道中。声网建议通过 回调判断用户是否在频道中。仅当收到 AgoraConnectionStateDisconnected(1)状态时再调用该方法。
  • +
  • -102:频道名无效。请在 channelId 中传入有效的频道名重新加入频道。
  • +
  • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 重新加入频道。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelwithuseraccountex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelwithuseraccountex.dita new file mode 100644 index 00000000000..b103dade4cd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_joinchannelwithuseraccountex.dita @@ -0,0 +1,277 @@ + + + + <ph keyref="joinChannelWithUserAccountEx"/> + 使用用户 User Account 和 Token 加入频道,并设置媒体选项。使用用户 User Account 和 Token 加入频道,并设置媒体选项。使用用户 User Account 和 Token 加入频道,并设置媒体选项。 + + + + + + + + +
+

+ - (int)joinChannelExByToken:(NSString* _Nullable)token + channelId:(NSString* _Nonnull)channelId + userAccount:(NSString* _Nonnull)userAccount + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate + mediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannelEx(byToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:)); + public abstract int joinChannelWithUserAccountEx(String token, String channelId, String userAccount, ChannelMediaOptions options, IRtcEngineEventHandler eventHandler); + - (int)joinChannelExByToken:(NSString* _Nullable)token + channelId:(NSString* _Nonnull)channelId + userAccount:(NSString* _Nonnull)userAccount + delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate + mediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + joinSuccess:(void(^ _Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock NS_SWIFT_NAME(joinChannelEx(byToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:)); +

+
+
+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦你加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 mediaOptions 参数或调用发布与订阅相关的方法。

+

在调用此方法之前,如果你尚未调用 注册用户 User Account,SDK 会在你调用此方法加入频道时自动创建用户 User Account。提前调用 可以缩短加入频道所需的时间。 + +一旦用户加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 options 参数或调用管理发布与订阅的相关方法。

+

在调用该方法之前,如果你尚未调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,当你调用该方法加入频道时,SDK 会自动为你创建一个用户 User Account。先调用 registerLocalUserAccountWithAppID:userAccount: 注册用户 User Account,再调用该方法加入频道,可以缩短进入频道所需的时间。 +一旦你加入频道,默认会订阅频道中所有其他用户的音视频流,从而产生使用量和计费。如果你希望停止订阅其他用户的媒体流,可以设置 mediaOptions 参数或调用发布与订阅相关的方法。

+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与 方法中传入的 App ID 一致,否则可能会导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 uid 加入频道,则其他用户也应使用 uid。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与调用 方法时传入的 App ID 相同,否则可能导致加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 uid 加入频道,则其他用户也应使用 uid;如果使用用户 User Account 加入频道,则其他用户也应使用用户 User Account。若使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+ +
    +
  • 该方法仅支持用户同时加入一个频道。
  • +
  • 不同 App ID 的用户无法互通。
  • +
  • 加入频道前,请确保用于生成 Token 的 App ID 与 方法中传入的 App ID 一致,否则可能会导致使用该 Token 加入频道失败。
  • +
  • 为确保通信顺畅,请使用相同的参数类型标识用户。例如,如果某用户使用 uid 加入频道,则其他用户也应使用 uid。用户 User Account 同理。如果用户使用声网 Web SDK 加入频道,请确保用户 ID 的参数类型一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

在调用 之后调用该方法。

+

在调用 之后调用此方法。

+

在调用 之后调用该方法。

+
+ +
+ 参数 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + delegate + AgoraRtcEngine 的回调类。参见 。你可以通过该参数传入的 对象获取多个频道的回调事件。 + + + mediaOptions + 频道媒体选项。参见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,你将在 24 小时后自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样你无需每次加入频道时都申请新的 Token。
  • +
+
+
+
+ + channelId + 频道名。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + userAccount + 用户 User Account。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节,不能为空。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + options + 频道媒体选项。详见 + + + eventHandler + 的回调类。详见 。你可以通过该参数传入的 eventHandler 对象获取多个频道的回调事件。 + + + token + 在你的服务器上生成的用于鉴权的 Token。 + +
    +
  • (推荐)如果你的项目启用了安全模式(使用 App ID 和 Token 进行鉴权),该参数为必填。
  • +
  • 如果你只启用了测试模式(使用 App ID 进行鉴权),该参数为可选。成功加入频道后,24 小时后会自动退出频道。
  • +
  • 如果你需要同时加入多个频道或在频道间切换,声网建议使用通配符 Token,这样每次加入频道时无需重新申请 Token。
  • +
+
+
+
+ + channelId + 频道名。该参数表示你进行实时音视频互动的频道。在相同 App ID 的前提下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度必须小于 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + userAccount + 用户 User Account。该参数用于标识频道中的用户以进行实时音视频互动。你需要自行设置和管理用户 User Account,并确保同一频道中的每个用户 User Account 唯一。该参数的最大长度为 255 字节。支持的字符如下(共 89 个): +
    +
  • 26 个小写英文字母:a 到 z。
  • +
  • 26 个大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 空格
  • +
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","。
  • +
+
+
+ + delegate + AgoraRtcEngine 的回调类。参见 。你可以通过该参数传入的 对象获取多个频道的回调事件。 + + + mediaOptions + 频道媒体选项。参见 + + + joinSuccessBlock + 用户加入频道成功时触发。joinSuccessBlock 的优先级高于 。当两者同时实现时, 不生效。声网建议将 joinSuccessBlock 设置为 ,以使用 + +
+
+
+ 返回值 +

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数后重新加入频道。
  • +
  • -3:初始化 对象失败。请重新初始化该对象。
  • +
  • -7: 对象尚未初始化。请先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。请先调用 再调用该方法。
  • +
  • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议通过 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
  • +
  • -102:频道名无效。请在 channelId 中传入有效的频道名后重新加入频道。
  • +
  • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 后重新加入频道。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:参数无效。例如 Token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数后重新加入频道。
    • +
    • -3: 对象初始化失败。请重新初始化 对象。
    • +
    • -7: 对象尚未初始化。请先初始化后再调用此方法。
    • +
    • -8: 对象内部状态错误。典型原因是在调用 开始通话回路测试后,未调用 停止测试就调用此方法。请先调用 再调用此方法。
    • +
    • -17:加入频道请求被拒绝。典型原因是用户已在频道中。建议通过 回调确认用户是否已在频道中,除非收到 CONNECTION_STATE_DISCONNECTED(1)状态,否则不要调用此方法。
    • +
    • -102:频道名无效。请在 channelId 中传入有效的频道名后重新加入频道。
    • +
    • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 后重新加入频道。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -2:参数无效。例如,Token 无效,uid 参数未设置为整数,或 中某成员的值无效。请传入有效参数后重新加入频道。
  • +
  • -3:初始化 对象失败。请重新初始化该对象。
  • +
  • -7: 对象尚未初始化。请先初始化该对象再调用该方法。
  • +
  • -8: 对象的内部状态错误。典型原因是调用 开始回声测试后,未调用 停止测试就调用该方法加入频道。请先调用 再调用该方法。
  • +
  • -17:加入频道请求被拒绝。典型原因是用户已在频道中。声网建议通过 回调判断用户是否在频道中。只有在收到 AgoraConnectionStateDisconnected(1)状态时才调用该方法加入频道。
  • +
  • -102:频道名无效。请在 channelId 中传入有效的频道名后重新加入频道。
  • +
  • -121:用户 ID 无效。请在 uid 中传入有效的用户 ID 后重新加入频道。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex.dita new file mode 100644 index 00000000000..612fb9ae94b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex.dita @@ -0,0 +1,150 @@ + + + + <ph keyref="leaveChannelEx"/> + 离开频道。离开频道。离开频道并释放与会话相关的所有资源。离开频道并释放与会话相关的所有资源。 + + + + + + + + +
+

+ virtual int leaveChannelEx(const RtcConnection& connection) = 0; + public abstract int leaveChannelEx(RtcConnection connection); + - (int)leaveChannelEx:(AgoraRtcConnection * _Nonnull)connection + leaveChannelBlock:(void(^ _Nullable)(AgoraChannelStats* _Nonnull stat))leaveChannelBlock NS_SWIFT_NAME(leaveChannelEx(_:leaveChannelBlock:)); + - (int)leaveChannelEx:(AgoraRtcConnection * _Nonnull)connection + leaveChannelBlock:(void(^ _Nullable)(AgoraChannelStats* _Nonnull stat))leaveChannelBlock NS_SWIFT_NAME(leaveChannelEx(_:leaveChannelBlock:)); +

+
+
+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 加入频道后,必须调用此方法或 leaveChannelEx 结束通话,否则无法开始下一次通话。 +

    +
  • 如果在调用该方法后立即调用 ,SDK 不会触发 回调。
  • +
  • 此方法为异步调用,方法返回时并不代表用户已完全离开频道。
  • +
  • 如果调用 leaveChannel,你将离开通过 joinChannel 加入的所有频道。
  • +
+

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 加入频道后,必须调用此方法或 leaveChannelEx 结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 joinChannelExByToken 加入频道后,必须调用该方法或 结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 joinChannelExByToken 加入频道后,必须调用该方法或 结束通话,否则无法开始下一次通话。

+ +
    +
  • 如果在调用该方法后立即调用 ,SDK 不会触发 回调。
  • +
  • 该方法为异步调用,方法返回时并不代表用户已离开频道。
  • +
  • 如果调用 ,你将离开通过 加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 此方法为异步调用。当该方法返回时,并不代表你已离开频道。
  • +
  • 如果调用 ,你将离开通过 joinChannelByTokenjoinChannelByTokenjoinChannelExByToken 加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 此方法为异步调用。当该方法返回时,并不代表你已离开频道。
  • +
  • 如果调用 ,你将离开通过 joinChannelByTokenjoinChannelByTokenjoinChannelExByToken 加入的所有频道。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

该方法需要在调用 之后调用。

+

在调用 之后调用该方法。

+

在调用 joinChannelExByToken 之后调用该方法。

+

在调用 joinChannelExByToken 之后调用该方法。

+
+ +
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息,详见 + + + connection + 连接信息。详见 + + + leaveChannelBlock + 离开频道回调。在 中提供通话统计信息。 + + + connection + 连接信息。详见 + + + leaveChannelBlock + 离开频道回调。在 中提供通话统计信息。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex2.dita new file mode 100644 index 00000000000..b1cd6a6141a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_leavechannelex2.dita @@ -0,0 +1,171 @@ + + + + <ph keyref="leaveChannelEx2"/> + 设置频道选项并离开频道。设置频道参数并离开频道。设置频道选项并离开频道。设置频道选项并离开频道。 + + + + + + + + +
+

+ virtual int leaveChannelEx(const RtcConnection& connection, const LeaveChannelOptions& options) = 0; + public abstract int leaveChannelEx(RtcConnection connection, LeaveChannelOptions options); + - (int)leaveChannelEx:(AgoraRtcConnection * _Nonnull)connection + options:(AgoraLeaveChannelOptions * _Nonnull)options + leaveChannelBlock:(void(^ _Nullable)(AgoraChannelStats* _Nonnull stat))leaveChannelBlock; + - (int)leaveChannelEx:(AgoraRtcConnection * _Nonnull)connection + options:(AgoraLeaveChannelOptions * _Nonnull)options + leaveChannelBlock:(void(^ _Nullable)(AgoraChannelStats* _Nonnull stat))leaveChannelBlock; +

+
+
+
+ +
自从
+
自 v4.1.0 版本新增。
+
+ +
自从
+
自 v4.1.0 版本新增。
+
+ +
自从
+
自 v4.1.0 版本新增。
+
+ +
自从
+
自 v4.1.0 版本新增。
+
+
+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 加入频道后,必须调用该方法或 leaveChannelEx 结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,并释放与会话相关的所有资源。调用 加入频道后,必须调用此方法或 leaveChannelEx(RtcConnection connection) 结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 joinChannelExByToken 加入频道后,必须调用该方法或 结束通话,否则无法开始下一次通话。

+

调用该方法后,SDK 会终止音视频互动,离开当前频道,并释放与会话相关的所有资源。调用 joinChannelExByToken 加入频道后,必须调用该方法或 结束通话,否则无法开始下一次通话。

+ +
    +
  • 如果在调用该方法后立即调用 ,SDK 不会触发 回调。
  • +
  • 该方法为异步调用,方法返回时并不代表用户已离开频道。
  • +
  • 如果调用 ,你将离开通过 加入的所有频道。
  • +
+
+ +
    +
  • 如果在调用该方法后立即调用 destroy(),SDK 不会触发 回调。
  • +
  • 此方法为异步调用。当该方法返回时,并不代表你已离开频道。
  • +
  • 如果调用 leaveChannel()leaveChannel(LeaveChannelOptions options),将会离开通过 加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 此方法为异步调用。当该方法返回时,并不代表你已离开频道。
  • +
  • 如果调用 ,你将离开通过 joinChannelByTokenjoinChannelByTokenjoinChannelExByToken 加入的所有频道。
  • +
+
+ 如果在调用该方法后立即调用 ,SDK 不会触发 回调。 +
    +
  • 此方法为异步调用。当该方法返回时,并不代表你已离开频道。
  • +
  • 如果调用 ,你将离开通过 joinChannelByTokenjoinChannelByTokenjoinChannelExByToken 加入的所有频道。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

该方法需要在调用 后调用。

+

在调用 之后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+
+ +
+ 参数 + + + connection + 连接信息。详见 + + + options + 离开频道的选项。详见 。 + 该参数仅支持设置 中的 stopMicrophoneRecording 成员,设置其他成员无效。 + + + + connection + 连接信息,详见 + + + options + 离开频道的选项。 + 该参数仅支持 中的 stopMicrophoneRecording 成员,设置其他成员无效。 + + + + connection + 连接信息。详见 + + + options + 离开频道的选项。仅支持设置 中的 stopMicrophoneRecording 成员,设置其他成员无效。详见 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。详见 + + + connection + 连接信息。详见 + + + options + 离开频道的选项。仅支持设置 中的 stopMicrophoneRecording 成员,设置其他成员无效。详见 + + + leaveChannelBlock + 该回调表示你离开频道,并在 中提供通话统计信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_muteallremoteaudiostreamsex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_muteallremoteaudiostreamsex.dita new file mode 100644 index 00000000000..48908e5f2e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_muteallremoteaudiostreamsex.dita @@ -0,0 +1,140 @@ + + + + <ph keyref="muteAllRemoteAudioStreamsEx"/> + 停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。停止或恢复订阅所有远端用户的音频流。 + + + + + + + + +
+

+ virtual int muteAllRemoteAudioStreamsEx(bool mute, const RtcConnection& connection) = 0; + public abstract int muteAllRemoteAudioStreamsEx(boolean muted, RtcConnection connection); + - (int)muteAllRemoteAudioStreamsEx:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteAllRemoteAudioStreamsEx(_:connection:)); + - (int)muteAllRemoteAudioStreamsEx:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteAllRemoteAudioStreamsEx(_:connection:)); +

+
+
+

调用该方法后,本地用户会停止或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户。

+ 请在加入频道后调用该方法。如果你希望在加入频道前不订阅远端用户的音频流,可以在调用 joinChannel 时将 中的 autoSubscribeAudio 设置为 + +
    +
  • 请在加入频道后调用该方法。
  • +
  • 如果你希望在加入频道前不订阅远端用户的音频流,可以在调用 joinChannelByToken 时将 中的 autoSubscribeAudio 设置为
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 如果你希望在加入频道前不订阅远端用户的音频流,可以在调用 joinChannelByToken 时将 中的 autoSubscribeAudio 设置为
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

+

    +
  • 请在加入频道后调用该方法。
  • +
  • 如果你希望在加入频道前不订阅远端用户的音频流,可以在调用 joinChannel 时将 中的 autoSubscribeAudio 设置为
  • +
+

+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + muted + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止订阅所有远端用户的音频流: +
    +
  • :停止订阅所有远端用户的音频流。
  • +
  • :(默认)订阅所有远端用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_muteallremotevideostreamsex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_muteallremotevideostreamsex.dita new file mode 100644 index 00000000000..eef65bbd558 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_muteallremotevideostreamsex.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="muteAllRemoteVideoStreamsEx"/> + 停止或恢复订阅所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。停止或恢复订阅所有远端用户的视频流。 + + + + + + + + +
+

+ virtual int muteAllRemoteVideoStreamsEx(bool mute, const RtcConnection& connection) = 0; + public abstract int muteAllRemoteVideoStreamsEx(boolean muted, RtcConnection connection); + - (int)muteAllRemoteVideoStreamsEx:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteAllRemoteVideoStreamsEx(_:connection:)); + - (int)muteAllRemoteVideoStreamsEx:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteAllRemoteVideoStreamsEx(_:connection:)); +

+
+
+

调用该方法后,本地用户将停止或恢复订阅所有远端用户的视频流,包括之后加入频道的用户。

+

调用该方法后,你将停止或恢复订阅所有远端用户的视频流,包括之后加入频道的用户。

+

调用该方法后,会停止或恢复订阅所有远端用户的视频流,包括之后加入频道的所有远端用户。

+

调用该方法后,会停止或恢复订阅所有远端用户的视频流,包括之后加入频道的所有远端用户。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + mute + 是否停止订阅所有远端用户的视频流。 +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + muted + 是否停止订阅所有远端用户的视频流: +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :默认订阅所有远端用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止订阅所有远端用户的视频流。 +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止订阅所有远端用户的视频流。 +
    +
  • :停止订阅所有远端用户的视频流。
  • +
  • :(默认)订阅所有远端用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalaudiostreamex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalaudiostreamex.dita new file mode 100644 index 00000000000..11a5fe08138 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalaudiostreamex.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="muteLocalAudioStreamEx"/> + 停止或恢复发布本地音频流。停止或恢复发布本地音频流。停止或恢复发布本地音频流。停止或恢复发布本地音频流。 + + + + + + + + +
+

+ virtual int muteLocalAudioStreamEx(bool mute, const RtcConnection& connection) = 0; + public abstract int muteLocalAudioStreamEx(boolean muted, RtcConnection connection); + - (int)muteLocalAudioStreamEx:(BOOL)mute connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteLocalAudioStreamEx(_:connection:)); + - (int)muteLocalAudioStreamEx:(BOOL)mute connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteLocalAudioStreamEx(_:connection:)); +

+
+
+

成功调用该方法后,远端客户端会收到 回调。

+

成功调用该方法后,远端会触发 回调。

+

成功调用该方法后,远端会触发 回调。

+ 该方法不会影响正在进行的音频录制,因为不会禁用音频采集设备。 + 该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 + 该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 + 该方法不会影响任何正在进行的音频录制,因为它不会禁用音频采集设备。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + muted + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止发布本地音频流: +
    +
  • :停止发布本地音频流。
  • +
  • :(默认)恢复发布本地音频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalvideostreamex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalvideostreamex.dita new file mode 100644 index 00000000000..d826f792484 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_mutelocalvideostreamex.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="muteLocalVideoStreamEx"/> + 停止或恢复发布本地视频流。停止或恢复发布本地视频流。停止或恢复发布本地视频流。停止或恢复发布本地视频流。 + + + + + + + + +
+

+ virtual int muteLocalVideoStreamEx(bool mute, const RtcConnection& connection) = 0; + public abstract int muteLocalVideoStreamEx(boolean muted, RtcConnection connection); + - (int)muteLocalVideoStreamEx:(BOOL)mute connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteLocalVideoStreamEx(_:connection:)); + - (int)muteLocalVideoStreamEx:(BOOL)mute connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteLocalVideoStreamEx(_:connection:)); +

+
+
+

该方法不会影响正在进行的视频录制,因为不会关闭摄像头。

+

成功调用该方法后,远端客户端会触发 回调。

+ 该方法不会影响正在进行的视频录制,因为它不会关闭摄像头。 + 该方法不会影响任何正在进行的视频录制,因为它不会关闭摄像头。 + 该方法不会影响任何正在进行的视频录制,因为它不会关闭摄像头。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + muted + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + mute + 是否停止发布本地视频流。 +
    +
  • :停止发布本地视频流。
  • +
  • :(默认)发布本地视频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_muteremoteaudiostreamex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_muteremoteaudiostreamex.dita new file mode 100644 index 00000000000..89fd565647c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_muteremoteaudiostreamex.dita @@ -0,0 +1,137 @@ + + + + <ph keyref="muteRemoteAudioStreamEx"/> + 停止或恢复接收指定用户的音频流。停止或恢复接收指定用户的音频流。停止或恢复接收指定用户的音频流。停止或恢复接收指定用户的音频流。 + + + + + + + + +
+

+ virtual int muteRemoteAudioStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0; + public abstract int muteRemoteAudioStreamEx(int uid, boolean muted, RtcConnection connection); + - (int)muteRemoteAudioStreamEx:(NSUInteger)uid + mute:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteRemoteAudioStreamEx(_:mute:connection:)); + - (int)muteRemoteAudioStreamEx:(NSUInteger)uid + mute:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteRemoteAudioStreamEx(_:mute:connection:)); +

+
+
+

你可以在加入频道前或加入频道后调用该方法。如果用户离开频道,该方法的设置将失效。

+

你可以在加入频道前或加入频道后调用该方法。如果用户离开频道,方法的设置将失效。

+

你可以在加入频道前或加入频道后调用该方法。如果用户离开频道,该方法中的设置将失效。

+

你可以在加入频道前或加入频道后调用该方法。如果用户离开频道,该方法中的设置将失效。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 指定用户的 ID。 + + + mute + 是否停止接收指定用户的音频流: +
    +
  • :停止接收指定用户的音频流。
  • +
  • :(默认)恢复接收指定用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 指定用户的 ID。 + + + muted + 是否停止接收指定用户的音频流: +
    +
  • :停止接收指定用户的音频流。
  • +
  • :(默认)恢复接收指定用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 指定用户的 ID。 + + + mute + 是否停止接收指定用户的音频流: +
    +
  • :停止接收指定用户的音频流。
  • +
  • :(默认)恢复接收指定用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 指定用户的 ID。 + + + mute + 是否停止接收指定用户的音频流: +
    +
  • :停止接收指定用户的音频流。
  • +
  • :(默认)恢复接收指定用户的音频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_muteremotevideostreamex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_muteremotevideostreamex.dita new file mode 100644 index 00000000000..98c447a5b4c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_muteremotevideostreamex.dita @@ -0,0 +1,140 @@ + + + + <ph keyref="muteRemoteVideoStreamEx"/> + 停止或恢复接收指定远端用户的视频流。停止或恢复接收指定用户的视频流。停止或恢复接收指定用户的视频流。停止或恢复接收指定用户的视频流。 + + + + + + + + +
+

+ virtual int muteRemoteVideoStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0; + public abstract int muteRemoteVideoStreamEx(int uid, boolean muted, RtcConnection connection); + - (int)muteRemoteVideoStreamEx:(NSUInteger)uid + mute:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteRemoteVideoStreamEx(_:mute:connection:)); + - (int)muteRemoteVideoStreamEx:(NSUInteger)uid + mute:(BOOL)mute + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(muteRemoteVideoStreamEx(_:mute:connection:)); +

+
+
+

你可以在加入频道前或加入频道后调用该方法。如果该用户离开频道,设置将失效。

+

你可以在加入频道前或加入频道后调用该方法。如果远端用户离开频道,该方法中的设置将失效。

+

你可以在加入频道前或加入频道后调用该方法。如果远端用户离开频道,该方法中的设置将失效。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

你可以在加入频道前或加入频道后调用该方法,用于停止或恢复接收指定远端用户的视频流。如果该用户离开频道,该设置将失效。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + mute + 是否停止接收指定用户的视频流: +
    +
  • :停止接收该用户的视频流。
  • +
  • :(默认)恢复接收该用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户 ID。 + + + muted + 是否停止接收指定用户的视频流: +
    +
  • :停止接收指定用户的视频流。
  • +
  • :(默认)恢复接收指定用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + mute + 是否停止接收指定用户的视频流: +
    +
  • :停止接收指定用户的视频流。
  • +
  • :(默认)恢复接收指定用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + mute + 是否停止接收指定用户的视频流: +
    +
  • :停止接收指定用户的视频流。
  • +
  • :(默认)恢复接收指定用户的视频流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_pauseallchannelmediarelayex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_pauseallchannelmediarelayex.dita new file mode 100644 index 00000000000..8155bb58a2a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_pauseallchannelmediarelayex.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="pauseAllChannelMediaRelayEx"/> + 暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。暂停向所有目标频道的跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int pauseAllChannelMediaRelayEx(const RtcConnection& connection) = 0; + public abstract int pauseAllChannelMediaRelayEx(RtcConnection connection); + - (int)pauseAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(pauseAllChannelMediaRelayEx(_:)); + - (int)pauseAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(pauseAllChannelMediaRelayEx(_:)); +

+
+
+
+ +
废弃
+
自 v4.2.0 版本废弃,请改用
+
+
+

你可以在开始跨频道媒体流转发后调用该方法,暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

你可以调用该方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

你可以调用该方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+

你可以调用该方法暂停向所有目标频道转发媒体流。如需恢复转发,请调用 方法。

+ 请在调用 方法后调用该方法。 + 请在调用 方法后调用此方法。 + 请在调用 startOrUpdateChannelMediaRelayEx 方法之后调用该方法。 + 请在调用 startOrUpdateChannelMediaRelayEx 方法之后调用该方法。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex.dita new file mode 100644 index 00000000000..31d9645e00b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex.dita @@ -0,0 +1,335 @@ + + + + <ph keyref="playEffectEx"/> + 在频道中播放指定音效。在频道中播放指定音效。在频道中播放指定的音效。在频道中播放指定的音效。 + + + + + + + + +
+

+ virtual int playEffectEx(const RtcConnection& connection, int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0; + public abstract int playEffectEx(RtcConnection connection, int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish, int startPos); + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish + startPos:(int)startPos NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:publish:startPos:)); + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish + startPos:(int)startPos NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:publish:startPos:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

你可以调用该方法在频道内向所有用户播放指定音效。每次调用该方法只能播放一个音效。若需同时播放多个音效,请使用不同的 soundIdfilePath 多次调用该方法。你还可以设置是否在频道中发布该音效。

+

你可以调用该方法将指定音效播放给频道内的所有用户。每次调用该方法只能播放一个音效。若需同时播放多个音效,请使用不同的 soundIdfilePath 多次调用该方法。你还可以设置是否在频道中发布该音效。

+

该方法用于设置是否在频道中发布音效。若需同时播放多个音效文件,只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可调用此方法将指定音效播放给频道内所有用户。每次调用该方法只能播放一个音效。若需同时播放多个音效,请多次调用该方法。

+

该方法用于设置是否在频道中发布音效。若需同时播放多个音效文件,只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可调用此方法将指定音效播放给频道内所有用户。每次调用该方法只能播放一个音效。若需同时播放多个音效,请多次调用该方法。

+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 该方法中的音效 ID 和文件路径必须与 方法中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 该方法中的音效 ID 和文件路径必须与 preloadEffect 中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 方法中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 方法中的保持一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 对象,详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环,直到调用
  • +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。数值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧传来。
  • +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100(原始音量)。数值越小,音量越低。 + + + publish + 是否在频道中发布该音效: +
    +
  • :在频道中发布该音效。
  • +
  • :(默认)不在频道中发布该音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环,直到调用
  • +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧传来。
  • +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0.0 到 100.0,默认值为 100.0(原始音量)。值越小,音量越低。 + + + publish + 是否在频道中发布该音效: +
    +
  • :在频道中发布音效。
  • +
  • :不在频道中发布音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + connection + 连接对象,详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 方法将音效预加载到内存中,请确保该参数值与 方法中的值一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从你正前方传来。
  • +
  • 1.0:音效从你右侧传来。
  • +
  • -1.0:音效从你左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + publish + 是否在频道中发布音效: +
    +
  • :在频道中发布音效,远端用户可以听到。
  • +
  • :不在频道中发布音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + + connection + 连接对象,详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 方法将音效预加载到内存中,请确保该参数值与 方法中的值一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从你正前方传来。
  • +
  • 1.0:音效从你右侧传来。
  • +
  • -1.0:音效从你左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + publish + 是否在频道中发布音效: +
    +
  • :在频道中发布音效,远端用户可以听到。
  • +
  • :不在频道中发布音效。
  • +
+
+
+ + startPos + 音效文件的播放起始位置(单位为毫秒)。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex2.dita new file mode 100644 index 00000000000..68643b4ecf0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex2.dita @@ -0,0 +1,250 @@ + + + + <ph keyref="playEffectEx2"/> + 在频道中播放指定的音效。在频道中播放指定音效。在频道中播放指定的音效。 + + + + + + + + +
+

+ - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:publish:)); + public abstract int playEffectEx(RtcConnection connection, int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish); + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + publish:(BOOL)publish NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:publish:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

该方法用于设置是否在频道中发布音效。若需同时播放多个音效文件,只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可调用此方法将指定音效播放给频道内所有用户。每次调用该方法只能播放一个音效。若需同时播放多个音效,请多次调用该方法。

+

调用 preloadEffect 预加载音效后,你可以调用 playEffectEx 将指定音效播放给频道内所有用户。每次调用该方法只能播放一个音效,若需同时播放多个音效,请使用不同的 soundIdfilePath 多次调用该方法。

+

该方法用于设置是否在频道中发布音效。若需同时播放多个音效文件,只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可调用此方法将指定音效播放给频道内所有用户。每次调用该方法只能播放一个音效。若需同时播放多个音效,请多次调用该方法。

+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 本方法中的音效 ID 和文件路径必须与 中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 本方法中的音效 ID 和文件路径必须与 preloadEffect 中保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 本方法中的音效 ID 和文件路径必须与 中的保持一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 将音效预加载到内存中,请确保该参数值与 中的值一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
  • -1.0:音效从用户左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + publish + 是否在频道中发布音效: +
    +
  • :在频道中发布音效,远端用户可以听到。
  • +
  • :不在频道中发布音效。
  • +
+
+
+ + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • -1:无限循环,直到调用
  • +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。数值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:音效从用户左侧传来。
  • +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0.0 到 100.0,默认值为 100(原始音量)。数值越小,音量越低。 + + + publish + 是否在频道中发布音效: +
    +
  • :在频道中发布音效。
  • +
  • :不在频道中发布音效。
  • +
+
+
+ + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 将音效预加载到内存中,请确保该参数值与 中的值一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
  • -1.0:音效从用户左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + publish + 是否在频道中发布音效: +
    +
  • :在频道中发布音效,远端用户可以听到。
  • +
  • :不在频道中发布音效。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex3.dita b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex3.dita new file mode 100644 index 00000000000..7f7ec4c0600 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex3.dita @@ -0,0 +1,173 @@ + + + + <ph keyref="playEffectEx3"/> + 在频道中播放指定的音效。在频道中播放指定的音效。 + + + + + + + + +
+

+ - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + startPos:(int)startPos NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:startPos:)); + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain + startPos:(int)startPos NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:startPos:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

该方法用于设置是否在频道中发布音效。要同时播放多个音效文件,你只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可以调用此方法将指定音效播放给频道中的所有用户。每次调用该方法只能播放一个音效。要同时播放多个音效,请多次调用该方法。

+

该方法用于设置是否在频道中发布音效。要同时播放多个音效文件,你只需使用不同的 soundIdfilePath 多次调用该方法。在调用 预加载音效后,可以调用此方法将指定音效播放给频道中的所有用户。每次调用该方法只能播放一个音效。要同时播放多个音效,请多次调用该方法。

+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 中的保持一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 将音效预加载到内存中,请确保该参数值与 中的值一致。 + + + filePath + 本地音效文件的绝对路径(包括文件扩展名)或在线音效文件的 URL,例如 。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 设置音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
  • -1.0:音效从用户左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + startPos + 音效文件的播放起始位置,单位为毫秒。 + + + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。如果通过 将音效预加载到内存中,请确保该参数值与 中的值一致。 + + + filePath + 本地音效文件的绝对路径(包括文件扩展名)或在线音效文件的 URL,例如 。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 设置音效的循环播放次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从用户正前方传来。
  • +
  • 1.0:音效从用户右侧传来。
  • +
  • -1.0:音效从用户左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + startPos + 音效文件的播放起始位置,单位为毫秒。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex4.dita b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex4.dita new file mode 100644 index 00000000000..f77fb3db8e9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_playeffectex4.dita @@ -0,0 +1,163 @@ + + + + <ph keyref="playEffectEx4"/> + 在频道中播放指定的音效。在频道中播放指定的音效。 + + + + + + + + +
+

+ - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:)); + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + loopCount:(NSInteger)loopCount + pitch:(double)pitch + pan:(double)pan + gain:(NSInteger)gain NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

你可以通过该方法设置是否在频道中发布音效。调用 预加载音效后,再调用此方法即可将指定音效播放给频道中的所有用户。每次调用该方法只能播放一个音效,如需同时播放多个音效,请使用不同的 soundIdfilePath 多次调用该方法。

+

你可以通过该方法设置是否在频道中发布音效。调用 预加载音效后,再调用此方法即可将指定音效播放给频道中的所有用户。每次调用该方法只能播放一个音效,如需同时播放多个音效,请使用不同的 soundIdfilePath 多次调用该方法。

+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 方法中的保持一致。
  • +
+
+ +
    +
  • 声网建议不要同时播放超过三个音效。
  • +
  • 此方法中的音效 ID 和文件路径必须与 方法中的保持一致。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。若通过 预加载音效,请确保该参数值与预加载时一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 设置音效的循环次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从你正前方传来。
  • +
  • 1.0:音效从你右侧传来。
  • +
  • -1.0:音效从你左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + + + connection + 连接对象。详见 + + + soundId + 音效的 ID。每个音效文件的唯一标识。若通过 预加载音效,请确保该参数值与预加载时一致。 + + + filePath + 本地音效文件的绝对路径(包含文件扩展名)或在线音效文件的 URL,例如 /var/mobile/Containers/Data/audio.mp4。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + loopCount + 设置音效的循环次数: +
    +
  • 0:播放一次。
  • +
  • 1:播放两次。
  • +
  • -1:无限循环,直到调用
  • +
+
+
+ + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
    +
  • 0.0:音效从你正前方传来。
  • +
  • 1.0:音效从你右侧传来。
  • +
  • -1.0:音效从你左侧传来。
  • +
+
+
+ + gain + 音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex.dita new file mode 100644 index 00000000000..50707668311 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex.dita @@ -0,0 +1,177 @@ + + + + <ph keyref="preloadEffectEx"/> + 预加载指定音效文件到频道。预加载指定音效文件到频道中。预加载指定的音效文件到频道中。预加载指定的音效文件到频道中。 + + + + + + + + +
+

+ virtual int preloadEffectEx(const RtcConnection& connection, int soundId, const char* filePath, int startPos = 0) = 0; + public abstract int preloadEffectEx(RtcConnection connection, int soundId, String filePath, int startPos); + - (int)preloadEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + startPos:(int)startPos NS_SWIFT_NAME(preloadEffectEx(_:soundId:filePath:startPos:)); + - (int)preloadEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath + startPos:(int)startPos NS_SWIFT_NAME(preloadEffectEx(_:soundId:filePath:startPos:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

每次调用该方法只能将一个音效文件预加载到内存中。如果你需要预加载多个音效文件,请多次调用该方法。预加载完成后,你可以调用 播放指定音效,或调用 播放所有已预加载的音效。

+

每次调用该方法只能将一个音效文件预加载到内存中。如果需要预加载多个音效文件,请多次调用该方法。你可以调用 playEffect 播放预加载的音效,或调用 播放所有预加载的音效。

+

每次调用该方法时,只能将一个音效文件预加载到内存中。如果需要预加载多个音效文件,请多次调用该方法。预加载完成后,可以调用 playEffect 播放预加载的音效,或调用 playAllEffects 播放所有预加载的音效。

+

每次调用该方法时,只能将一个音效文件预加载到内存中。如果需要预加载多个音效文件,请多次调用该方法。预加载完成后,可以调用 playEffect 播放预加载的音效,或调用 playAllEffects 播放所有预加载的音效。

+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + startPos + 音效文件的播放起始位置(毫秒)。 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + startPos + 音效文件的播放起始位置(单位为毫秒)。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex2.dita new file mode 100644 index 00000000000..4a2f45b911b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_preloadeffectex2.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="preloadEffectEx2"/> + 预加载指定的音效文件到频道中。预加载指定音效文件到频道中。预加载指定的音效文件到频道中。 + + + + + + + + +
+

+ - (int)preloadEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(preloadEffectEx(_:soundId:filePath:)); + public abstract int preloadEffectEx(RtcConnection connection, int soundId, String filePath); + - (int)preloadEffectEx:(AgoraRtcConnection* _Nonnull)connection + soundId:(int)soundId + filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(preloadEffectEx(_:soundId:filePath:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

每次调用该方法只能将一个音效文件预加载到内存中。如果你需要预加载多个音效文件,请多次调用该方法。预加载完成后,你可以调用 playEffect 播放预加载的音效,或调用 playAllEffects 播放所有预加载的音效。

+

每次调用该方法时只能将一个音效文件预加载到内存中。如果需要预加载多个音效文件,请多次调用该方法。预加载完成后,你可以调用 playEffect 播放预加载的音效,或调用 播放所有预加载的音效。

+

每次调用该方法只能将一个音效文件预加载到内存中。如果你需要预加载多个音效文件,请多次调用该方法。预加载完成后,你可以调用 playEffect 播放预加载的音效,或调用 playAllEffects 播放所有预加载的音效。

+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+ +
    +
  • 为确保使用体验流畅,音效文件的大小不应超过限制。
  • +
  • 声网建议你在加入频道前调用该方法。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接对象。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + connection + 连接信息。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + connection + 连接对象。详见 + + + soundId + 音效 ID。 + + + filePath + 本地文件的绝对路径或在线文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_removevideowatermarkex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_removevideowatermarkex.dita new file mode 100644 index 00000000000..5af2f4d9364 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_removevideowatermarkex.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="removeVideoWatermarkEx"/> + 从本地或远端视频流中移除指定的水印图像。从本地或远端视频流中移除指定的水印图像。从本地或远端视频流中移除指定的水印图像。从本地或远端视频流中移除指定的水印图像。 + + + + + + + + +
+

+ virtual int removeVideoWatermarkEx(const char* id, const RtcConnection& connection) = 0; + public abstract int removeVideoWatermarkEx(String id, RtcConnection connection); + - (int)removeVideoWatermarkEx:(NSString* _Nonnull)id connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(removeVideoWatermarkEx(_:connection:)); + - (int)removeVideoWatermarkEx:(NSString* _Nonnull)id connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(removeVideoWatermarkEx(_:connection:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + id + 水印 ID。 + + + connection + 连接信息。详见 + + + id + 要移除的水印图像的 ID。 + + + connection + 连接信息。详见 + + + id + 要移除的水印的标识符。 + + + connection + 连接信息。详见 + + + id + 要移除的水印的标识符。 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_resumeallchannelmediarelayex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_resumeallchannelmediarelayex.dita new file mode 100644 index 00000000000..03cb6f789f6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_resumeallchannelmediarelayex.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="resumeAllChannelMediaRelayEx"/> + 恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。恢复向所有目标频道的跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int resumeAllChannelMediaRelayEx(const RtcConnection& connection) = 0; + public abstract int resumeAllChannelMediaRelayEx(RtcConnection connection); + - (int)resumeAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(resumeAllChannelMediaRelayEx(_:)); + - (int)resumeAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(resumeAllChannelMediaRelayEx(_:)); +

+
+
+

调用 后,可以调用此方法恢复媒体流的转发。

+

调用 方法后,可以调用该方法恢复向所有目标频道转发媒体流。

+

调用 方法后,可以调用该方法恢复向所有目标频道转发媒体流。

+ 请在调用 方法后调用该方法。 + 请在调用 方法后再调用此方法。 + 请在调用 方法后再调用此方法。 + 请在调用 方法后再调用此方法。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有处于暂停状态的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_sendcustomreportmessageex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_sendcustomreportmessageex.dita new file mode 100644 index 00000000000..f6c2c659321 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_sendcustomreportmessageex.dita @@ -0,0 +1,171 @@ + + + + <ph keyref="sendCustomReportMessageEx"/> + 支持上报和分析自定义消息。支持上报和分析自定义消息。支持上报和分析自定义消息。支持上报和分析自定义消息。 + + + + + + + + +
+

+ virtual int sendCustomReportMessageEx(const char* id, const char* category, const char* event, const char* label, int value, const RtcConnection& connection) = 0; + public abstract int sendCustomReportMessageEx(String id, String category, String event, String label, int value, RtcConnection connection); + - (int)sendCustomReportMessageEx:(NSString * _Nullable)messageId + category:(NSString * _Nullable)category + event:(NSString * _Nullable)event + label:(NSString * _Nullable)label + value:(NSInteger)value + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(sendCustomReportMessageEx(_:category:event:label:value:connection:)); + - (int)sendCustomReportMessageEx:(NSString * _Nullable)messageId + category:(NSString * _Nullable)category + event:(NSString * _Nullable)event + label:(NSString * _Nullable)label + value:(NSInteger)value + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(sendCustomReportMessageEx(_:category:event:label:value:connection:)); +

+
+
+

该功能目前处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请联系销售并与我们讨论自定义消息的格式。

+

该功能目前处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/)并与我们讨论自定义消息的格式。

+

该方法支持上报和分析自定义消息。目前该功能处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/),并与我们讨论自定义消息的格式。

+

该方法支持上报和分析自定义消息。目前该功能处于测试阶段,提供免费试用。在测试版本中,最多支持在 6 秒内上报 10 条消息,每条消息不超过 256 字节,每个字符串不超过 100 字节。如需试用该功能,请[联系技术支持](https://ticket.shengwang.cn/),并与我们讨论自定义消息的格式。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + id + 自定义消息的唯一标识。 + + + category + 自定义消息的分类。 + + + event + 自定义消息的事件名称。 + + + label + 自定义消息的标签。 + + + value + 自定义消息的数值。 + + + connection + 对象。详见 + + + id + 自定义消息的 ID。 + + + category + 自定义消息的类别。 + + + event + 自定义消息的事件名称。 + + + label + 自定义消息的标签。 + + + value + 自定义消息的数值。 + + + connection + 连接信息,适用于多频道场景。详见 + + + messageId + 自定义消息的 ID。 + + + category + 自定义消息的分类。 + + + event + 自定义消息的事件名称。 + + + label + 自定义消息的标签。 + + + value + 自定义消息的数值。 + + + connection + 连接的频道信息。详见 + + + messageId + 自定义消息的 ID。 + + + category + 自定义消息的分类。 + + + event + 自定义消息的事件名称。 + + + label + 自定义消息的标签。 + + + value + 自定义消息的数值。 + + + connection + 连接的频道信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_sendstreammessageex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_sendstreammessageex.dita new file mode 100644 index 00000000000..3e118e485e3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_sendstreammessageex.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="sendStreamMessageEx"/> + 发送数据流消息。发送数据流消息。 + + + + + + + + +
+

+ virtual int sendStreamMessageEx(int streamId, const char* data, size_t length, const RtcConnection& connection) = 0; + public abstract int sendStreamMessageEx(int streamId, byte[] message, RtcConnection connection); +

+
+
+

调用 createDataStreamEx 创建数据通道后,可以调用该方法向频道内的所有用户发送数据流消息。SDK 对该方法有限制: +

    +
  • 每个客户端在频道中最多可同时拥有 5 个数据通道,所有数据通道共享的总包比特率上限为 30 KB/s;
  • +
  • 每个数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
  • +
+

+

调用 createDataStreamEx 后,可以使用该方法向频道内的所有用户发送数据流消息。SDK 对该方法有限制: +

    +
  • 每个频道内的客户端实例最多可同时拥有 5 个数据通道,所有数据通道共享的总包比特率上限为 30 KB/s。
  • +
  • 每个数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
  • +
+

+ +
    +
  • 如果你需要一个更全面的解决方案来实现低延迟、高并发和可扩展的实时消息传递和状态同步,建议使用实时消息。
  • +
  • 请在调用 后再调用该方法。
  • +
  • 请确保在调用该方法前已通过 createDataStreamEx 创建数据通道。
  • +
+
+ +
    +
  • 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用声网的实时消息。
  • +
  • 请在调用 后再调用该方法。
  • +
  • 请确保在调用该方法前已通过 createDataStreamEx 创建数据通道。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + streamId + 数据流 ID,通过调用 createDataStreamEx 获取。 + + + data + 要发送的消息内容。 + + + length + 数据长度。 + + + connection + 连接信息。详见 + + + streamId + 数据流 ID。你可以通过调用 createDataStreamEx 获取该 ID。 + + + message + 要发送的消息内容。 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setdualstreammodeex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setdualstreammodeex.dita new file mode 100644 index 00000000000..d8cb2a18961 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setdualstreammodeex.dita @@ -0,0 +1,172 @@ + + + + <ph keyref="setDualStreamModeEx"/> + 设置发送端的多质量层级视频流模式。设置发送端的视频流模式,用于控制是否发送视频小流。设置发送端的不同质量层级的视频流模式。设置发送端的不同质量层级的视频流模式。 + + + + + + + + +
+

+ virtual int setDualStreamModeEx(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig, const RtcConnection& connection) = 0; + public abstract int setDualStreamModeEx(Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig, RtcConnection connection); + - (int)setDualStreamModeEx:(AgoraSimulcastStreamMode)mode + streamConfig:(AgoraSimulcastStreamConfig*)streamConfig + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(setDualStreamModeEx(_:streamConfig:connection:)); + - (int)setDualStreamModeEx:(AgoraSimulcastStreamMode)mode + streamConfig:(AgoraSimulcastStreamConfig*)streamConfig + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(setDualStreamModeEx(_:streamConfig:connection:)); +

+
+
+

SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 + +如果你希望修改此行为,可以调用此方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。 + +如果你希望在修改后恢复默认行为,可以再次调用此方法并将 mode 设置为 AUTO_SIMULCAST_STREAM

+

SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM)。角色为主播的接收端可以通过调用 setRemoteVideoStreamTypeEx 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。
  • +
  • 如果你希望恢复默认行为,可以再次调用该方法并将 mode 设置为 AUTO_SIMULCAST_STREAM
  • +
+

+

SDK 默认在发送端开启视频小流的自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 方法发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。
  • +
  • 如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream
  • +
+

+

SDK 默认在发送端开启视频小流的自适应模式(AgoraAutoSimulcastStream),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 方法发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 +

    +
  • 如果你希望修改此行为,可以调用本方法并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流)或 AgoraEnableSimulcastStream(始终发送视频小流)。
  • +
  • 如果你希望在修改后恢复默认行为,可以再次调用本方法并将 mode 设置为 AgoraAutoSimulcastStream
  • +
+

+ 该方法与 的区别如下: +
    +
  • 当调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamModeEx(false)
  • +
  • 当调用该方法并将 mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamModeEx(true)
  • +
  • 两个方法均可在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 该方法与 的区别如下: +
    +
  • mode 设置为 DISABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamModeEx(false)
  • +
  • mode 设置为 ENABLE_SIMULCAST_STREAM 时,效果等同于调用 enableDualStreamModeEx(true)
  • +
  • 两个方法均可在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 该方法与 的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 (NO)。
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 (YES)。
  • +
  • 两个方法都可以在加入频道前后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+ 该方法与 的区别如下: +
    +
  • 当调用本方法并将 mode 设置为 AgoraDisableSimulcastStream 时,效果等同于调用 (NO)。
  • +
  • 当调用本方法并将 mode 设置为 AgoraEnableSimulcastStream 时,效果等同于调用 (YES)。
  • +
  • 两个方法都可以在加入频道前后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置。详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,设置该参数无效。 + + + + connection + 连接信息。详见 + + + mode + 视频流发送模式。详见 + + + streamConfig + 视频小流的配置。详见 。 + mode 设置为 DISABLE_SIMULCAST_STREAM 时,该参数不生效。 + + + + connection + 连接信息。详见 + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置。详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置该参数不生效。 + + + + connection + 连接信息。详见 + + + mode + 视频流的发送模式,详见 + + + streamConfig + 视频小流的配置。详见 。 + mode 设置为 AgoraDisableSimulcastStream 时,设置该参数不生效。 + + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setremoterendermodeex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setremoterendermodeex.dita new file mode 100644 index 00000000000..8994d45de84 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setremoterendermodeex.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="setRemoteRenderModeEx"/> + 设置指定远端用户的视频显示模式。设置指定远端用户的视频显示模式。设置指定远端用户的视频显示模式。设置指定远端用户的视频显示模式。 + + + + + + + + +
+

+ virtual int setRemoteRenderModeEx(uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode, const RtcConnection& connection) = 0; + public abstract int setRemoteRenderModeEx(int uid, int renderMode, int mirrorMode, RtcConnection connection); + - (int)setRemoteRenderModeEx:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteRenderModeEx(_:mode:mirror:connection:)); + - (int)setRemoteRenderModeEx:(NSUInteger)uid + mode:(AgoraVideoRenderMode)mode + mirror:(AgoraVideoMirrorMode)mirror + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteRenderModeEx(_:mode:mirror:connection:)); +

+
+
+

调用 初始化远端用户的视频视图后,可以调用该方法更新其渲染模式和镜像模式。该方法仅影响本地用户看到的视频视图。

+

请在调用 方法初始化远端视图后再调用此方法。通话过程中,你可以多次调用此方法以更新远端用户视频视图的显示模式。

+

你可以调用该方法更新远端用户的视频渲染模式和镜像模式。该方法仅影响你本地看到的远端用户视频视图。

+

你可以调用该方法更新远端用户的视频渲染模式和镜像模式。该方法仅影响你本地看到的远端用户视频视图。

+ +
    +
  • 请在调用 初始化远端视图后调用此方法。
  • +
  • 通话过程中,可以多次调用此方法更新远端用户视频视图的显示模式。
  • +
+
+ +
    +
  • 请在调用 方法初始化远端视图后调用该方法。
  • +
  • 通话过程中,你可以根据需要多次调用该方法更新远端用户视频视图的显示模式。
  • +
+
+ +
    +
  • 请在调用 方法初始化远端视图后调用该方法。
  • +
  • 通话过程中,你可以根据需要多次调用该方法更新远端用户视频视图的显示模式。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + renderMode + 视频显示模式,详见 + + + mirrorMode + 镜像模式,详见 + + + connection + 连接信息,详见 + + + uid + 远端用户 ID。 + + + renderMode + 远端用户的视频显示模式: +
    +
  • RENDER_MODE_HIDDEN (1):隐藏模式。按比例缩放视频,直到填满视图边界(可能被裁剪)。视频的一部分内容可能被截断。
  • +
  • RENDER_MODE_FIT (2):适应模式。按比例缩放视频,直到某一维度适配视图边界。由于宽高比不一致而未填满的区域将以黑色填充。
  • +
  • RENDER_MODE_ADAPTIVE (3):自适应模式(已废弃,不推荐使用)。
  • +
+
+
+ + mirrorMode + 远端用户视图的镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):SDK 自动决定是否启用镜像模式。使用前置摄像头时默认启用镜像模式;使用后置摄像头时默认关闭镜像模式。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):启用本地视图的镜像模式。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭本地视图的镜像模式。
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + mode + 远端用户的视频显示模式,详见 + + + mirror + 远端用户视图的镜像模式,详见 + + + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + mode + 远端用户的视频显示模式,详见 + + + mirror + 远端用户视图的镜像模式,详见 + + + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex.dita new file mode 100644 index 00000000000..fa19494f303 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="setRemoteVideoStreamTypeEx"/> + 设置要订阅的视频流类型。设置要订阅的视频流类型。设置你要订阅的视频流类型。设置你要订阅的视频流类型。 + + + + + + + + +
+

+ virtual int setRemoteVideoStreamTypeEx(uid_t uid, VIDEO_STREAM_TYPE streamType, const RtcConnection& connection) = 0; + public abstract int setRemoteVideoStreamTypeEx(int uid, Constants.VideoStreamType streamType, RtcConnection connection); + - (int)setRemoteVideoStreamEx:(NSUInteger)uid + type:(AgoraVideoStreamType)streamType + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteVideoStreamEx(_:type:connection:)); + - (int)setRemoteVideoStreamEx:(NSUInteger)uid + type:(AgoraVideoStreamType)streamType + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteVideoStreamEx(_:type:connection:)); +

+
+
+

根据发送端的默认行为以及调用 时的具体设置,接收端调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。此时,仅角色为 Host 的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户均可调用该方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则 Host 和 Audience 角色的接收端均可调用该方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则无论你是主播还是观众,都可以调用此方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流相同。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+

根据发送端的默认行为以及调用 时的具体设置,你调用此方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AgoraAutoSimulcastStream),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。
  • +
  • 如果发送端调用 并将 mode 设置为 AgoraEnableSimulcastStream(始终发送视频小流),则无论你是主播还是观众,都可以调用此方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流相同。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ 如果发送端已调用 并将 mode 设置为 DISABLE_SIMULCAST_STREAM,则调用此方法无效。你应在发送端重新调用 并调整设置。 + 如果发送端已调用 并将 mode 设置为 DISABLE_SIMULCAST_STREAM,则调用该方法无效。你需要在发送端再次调用 并调整设置。 + 如果发送端已调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。你需要在发送端再次调用 并调整设置。 + 如果发送端已调用 并将 mode 设置为 AgoraDisableSimulcastStream(从不发送视频小流),则调用此方法无效。你需要在发送端再次调用 并调整设置。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 用户 ID。 + + + streamType + 视频流类型,详见 + + + connection + 连接信息。详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型,详见 + + + connection + 连接信息,详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型,详见 + + + connection + 连接信息。详见 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型,详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex2.dita new file mode 100644 index 00000000000..82a4859a75d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideostreamtypeex2.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="setRemoteVideoStreamTypeEx2"/> + 设置要订阅的视频流类型。 + + + + + + + + +
+

+ public abstract int setRemoteVideoStreamTypeEx(int uid, int streamType, RtcConnection connection); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

根据发送端的默认行为以及调用 时的具体设置,接收端调用该方法的场景如下: +

    +
  • SDK 默认在发送端启用视频小流自适应模式(AUTO_SIMULCAST_STREAM),即仅发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为视频小流订阅模式。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。
  • +
  • 如果发送端调用 setDualStreamMode 并将 mode 设置为 ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为视频小流订阅模式。
  • +
SDK 会根据视频窗口的大小动态调整对应视频流的尺寸,以节省带宽和计算资源。视频小流的默认宽高比与视频大流一致。系统会根据当前视频大流的宽高比,自动分配视频小流的分辨率、帧率和码率。

+ 如果发送端已调用 并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。你应在发送端重新调用 并调整设置。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + streamType + 视频流类型: +
    +
  • 0:视频大流。
  • +
  • 1:视频小流。
  • +
+
+
+ + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideosubscriptionoptionsex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideosubscriptionoptionsex.dita new file mode 100644 index 00000000000..ba29270ca87 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevideosubscriptionoptionsex.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="setRemoteVideoSubscriptionOptionsEx"/> + 设置是否订阅远端用户的视频流。设置订阅远端视频流的选项。设置订阅远端视频流的选项。设置订阅远端视频流的选项。 + + + + + + + + +
+

+ virtual int setRemoteVideoSubscriptionOptionsEx(uid_t uid, const VideoSubscriptionOptions& options, const RtcConnection& connection) = 0; + public abstract int setRemoteVideoSubscriptionOptionsEx(int uid, VideoSubscriptionOptions options, RtcConnection rtcConnection); + - (int)setRemoteVideoSubscriptionOptionsEx:(NSUInteger)uid + options:(AgoraVideoSubscriptionOptions* _Nonnull)options + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(setRemoteVideoSubscriptionOptionsEx(_:options:connection:)); + - (int)setRemoteVideoSubscriptionOptionsEx:(NSUInteger)uid + options:(AgoraVideoSubscriptionOptions* _Nonnull)options + connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(setRemoteVideoSubscriptionOptionsEx(_:options:connection:)); +

+
+
+

当远端用户开启双流模式时,可以调用该方法设置是否订阅该远端用户的视频流及其具体选项。

+

该方法适用于多频道场景。当远端用户开启双流模式时,你可以调用该方法设置订阅该远端用户发送的视频流的选项。

+

当远端用户开启双流模式时,你可以调用该方法选择订阅该远端用户发送的视频流的选项。

+

当远端用户开启双流模式时,你可以调用该方法选择订阅该远端用户发送的视频流的选项。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + options + 视频订阅选项。详见 + + + connection + 连接信息。详见 + + + uid + 远端用户 ID。 + + + options + 视频订阅选项,详见 + + + rtcConnection + 连接信息,详见 + + + uid + 远端用户 ID。 + + + options + 视频订阅选项,详见 + + + connection + 连接信息,详见 + + + uid + 远端用户 ID。 + + + options + 视频订阅选项,详见 + + + connection + 连接信息,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setremotevoicepositionex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevoicepositionex.dita new file mode 100644 index 00000000000..6b6631c2369 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setremotevoicepositionex.dita @@ -0,0 +1,183 @@ + + + + <ph keyref="setRemoteVoicePositionEx"/> + 设置远端用户语音的二维位置和音量。设置远端用户语音的二维位置和音量。设置远端用户语音的二维位置和音量。设置远端用户语音的二维位置和音量。 + + + + + + + + +
+

+ virtual int setRemoteVoicePositionEx(uid_t uid, double pan, double gain, const RtcConnection& connection) = 0; + public abstract int setRemoteVoicePositionEx(int uid, double pan, double gain, RtcConnection connection); + - (int)setRemoteVoicePositionEx:(NSUInteger)uid + pan:(double)pan + gain:(double)gain + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteVoicePositionEx(_:pan:gain:connection:)); + - (int)setRemoteVoicePositionEx:(NSUInteger)uid + pan:(double)pan + gain:(double)gain + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setRemoteVoicePositionEx(_:pan:gain:connection:)); +

+
+
+

声网通过左右声道的声音差异,让你能够实时感知远端用户的位置,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

该方法用于设置远端用户的语音位置和音量。调用该方法后,左右声道的声音差异可以让你实时感知远端用户的位置,从而营造空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

你可以使用该方法设置远端用户的语音位置和音量。调用该方法设置远端用户的语音位置后,左右声道的声音差异可以帮助你实时感知远端用户的位置,增强空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+

你可以使用该方法设置远端用户的语音位置和音量。调用该方法设置远端用户的语音位置后,左右声道的声音差异可以帮助你实时感知远端用户的位置,增强空间感。该方法适用于大型多人在线游戏,例如大逃杀类游戏。

+ +
    +
  • 为获得最佳语音定位效果,声网建议使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 为获得最佳语音定位效果,声网建议使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 为获得最佳语音定位效果,声网建议你使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+ +
    +
  • 为获得最佳语音定位效果,声网建议你使用有线耳机。
  • +
  • 请在加入频道后调用该方法。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + pan + 远端用户的语音位置,取值范围为 -1.0 到 1.0: +
    +
  • -1.0:远端语音来自左侧。
  • +
  • 0.0:(默认)远端语音来自正前方。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量,取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。数值越小,音量越低。 + + + connection + 连接信息。详见 + + + uid + 远端用户 ID。 + + + pan + 远端用户的语音位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:远端语音来自左侧;
  • +
  • 0.0:(默认)远端语音来自正前方;
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量。取值范围为 0.0 到 100.0,默认值为 100.0(默认)。数值越小,音量越低。 + + + connection + 连接信息。详见 + + + uid + 远端用户的用户 ID。 + + + pan + 远端用户的语音位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:远端语音来自左侧。
  • +
  • 0.0(默认):远端语音来自正前方。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量。取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。值越小,音量越低。 + + + connection + 连接信息,详见 + + + uid + 远端用户的用户 ID。 + + + pan + 远端用户的语音位置。取值范围为 -1.0 到 1.0: +
    +
  • -1.0:远端语音来自左侧。
  • +
  • 0.0(默认):远端语音来自正前方。
  • +
  • 1.0:远端语音来自右侧。
  • +
+
+
+ + gain + 远端用户的音量。取值范围为 0.0 到 100.0。默认值为 100.0(远端用户的原始音量)。值越小,音量越低。 + + + connection + 连接信息,详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioallowlistex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioallowlistex.dita new file mode 100644 index 00000000000..41c4c9ce03a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioallowlistex.dita @@ -0,0 +1,131 @@ + + + + <ph keyref="setSubscribeAudioAllowlistEx"/> + 设置音频流订阅白名单。设置音频流订阅的白名单。设置音频流订阅的白名单。设置音频流订阅的白名单。 + + + + + + + + +
+

+ virtual int setSubscribeAudioAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0; + public abstract int setSubscribeAudioAllowlistEx(int[] uidList, RtcConnection connection); + - (int)setSubscribeAudioAllowlistEx:(NSArray <NSNumber *> *_Nonnull)allowlist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeAudioAllowlistEx(_:connection:)); + - (int)setSubscribeAudioAllowlistEx:(NSArray <NSNumber *> *_Nonnull)allowlist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeAudioAllowlistEx(_:connection:)); +

+
+
+

你可以调用此方法来指定你想要订阅的用户的音频流。

+

你可以调用此方法来指定你想要订阅的用户的音频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 该白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则以黑名单为准。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 muteRemoteAudioStreammuteAllRemoteAudioStreams 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,只有黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 muteRemoteAudioStreammuteAllRemoteAudioStreams 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,只有黑名单生效。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uidList + 你希望订阅的用户 ID 列表。如果你想订阅某个用户的音频流,请将该用户的 ID 添加到该列表中。如果你想将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表;也就是说,你只需在新的用户 ID 列表中添加你希望订阅的用户的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + connection + 连接信息。详见 + + + uidList + 你想要订阅的用户 ID 列表。如果你希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表;也就是说,你只需在新的用户 ID 列表中添加你希望订阅的用户的用户 ID。 + + + connection + 连接信息,详见 + + + allowlist + 你想要订阅的用户的用户 ID 列表。如果你想指定某个用户的音频流进行订阅,请将该用户的 ID 添加到此列表中。如果你想将某个用户从白名单中移除,你需要调用 setSubscribeAudioAllowlist 方法来更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加你想要订阅的用户的 uid + + + connection + 连接信息。详见 + + + allowlist + 你想要订阅的用户的用户 ID 列表。如果你想指定某个用户的音频流进行订阅,请将该用户的 ID 添加到此列表中。如果你想将某个用户从白名单中移除,你需要调用 setSubscribeAudioAllowlist 方法来更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加你想要订阅的用户的 uid + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioblocklistex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioblocklistex.dita new file mode 100644 index 00000000000..3c73cf2af4d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribeaudioblocklistex.dita @@ -0,0 +1,139 @@ + + + + <ph keyref="setSubscribeAudioBlocklistEx"/> + 设置不订阅的音频流用户黑名单。设置音频流订阅的黑名单。设置音频流订阅的黑名单。设置音频流订阅的黑名单。 + + + + + + + + +
+

+ virtual int setSubscribeAudioBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0; + public abstract int setSubscribeAudioBlocklistEx(int[] uidList, RtcConnection connection); + - (int)setSubscribeAudioBlocklistEx:(NSArray <NSNumber *> *_Nonnull)blocklist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeAudioBlocklistEx(_:connection:)); + - (int)setSubscribeAudioBlocklistEx:(NSArray <NSNumber *> *_Nonnull)blocklist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeAudioBlocklistEx(_:connection:)); +

+
+
+

你可以调用该方法指定不希望订阅的用户的音频流。

+

你可以调用此方法来指定不希望订阅的用户的音频流。

+

你可以调用此方法来指定不希望订阅的用户的音频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单设置不受 autoSubscribeAudio 的影响。
  • +
  • 一旦设置了订阅黑名单,即使离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单设置不受 中的 autoSubscribeAudio 的影响。
  • +
  • 一旦设置了订阅黑名单,即使离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 中的 autoSubscribeAudio 设置影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单不受 中的 autoSubscribeAudio 设置影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uidList + 不希望订阅其音频流的用户 ID 列表。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + connection + 连接信息。详见 + + + uidList + 不希望订阅其音频流的用户 ID 列表。 + +
    +
  • 如果你希望不订阅某个用户的音频流,请将该用户的 ID 添加到该列表中。
  • +
  • 如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表;即你只需在新的用户 ID 列表中添加不希望订阅的用户 ID。
  • +
+
+
+
+ + connection + 连接信息,详见 + + + blocklist + 不希望订阅其音频流的用户 ID 列表。如果你希望指定不订阅某个用户的音频流,请将该用户的 ID 添加到此列表中。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + connection + 连接信息。详见 + + + blocklist + 不希望订阅其音频流的用户 ID 列表。如果你希望指定不订阅某个用户的音频流,请将该用户的 ID 添加到此列表中。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoallowlistex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoallowlistex.dita new file mode 100644 index 00000000000..5592d17e367 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoallowlistex.dita @@ -0,0 +1,137 @@ + + + + <ph keyref="setSubscribeVideoAllowlistEx"/> + 设置视频流订阅的白名单。设置视频流订阅的白名单。设置视频流订阅的白名单。设置视频流订阅的白名单。 + + + + + + + + +
+

+ virtual int setSubscribeVideoAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0; + public abstract int setSubscribeVideoAllowlistEx(int[] uidList, RtcConnection connection); + - (int)setSubscribeVideoAllowlistEx:(NSArray <NSNumber *> *_Nonnull)allowlist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeVideoAllowlistEx(_:connection:)); + - (int)setSubscribeVideoAllowlistEx:(NSArray <NSNumber *> *_Nonnull)allowlist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeVideoAllowlistEx(_:connection:)); +

+
+
+

你可以调用该方法指定希望订阅的用户的视频流。

+

你可以调用该方法来指定希望订阅的用户的视频流。

+

你可以调用该方法来指定希望订阅的用户的视频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 该白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeVideo 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使离开当前频道并重新加入频道,白名单依然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开并重新加入当前频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则只有黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 白名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅白名单,即使你离开并重新加入当前频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则只有黑名单生效。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uidList + 你希望订阅的视频流所属用户的用户 ID 列表。如果你希望订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表。这意味着你只需在新的用户 ID 列表中添加你希望订阅的用户的 uid + + + uidNumber + 用户 ID 列表中的用户数量。 + + + connection + 连接信息。详见 + + + uidList + 希望订阅的视频流所属用户的用户 ID 列表。 +
    +
  • 如果你希望订阅某个用户的视频流,请将该用户的用户 ID 添加到该列表中。
  • +
  • 如果你希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加希望订阅的用户的用户 ID。
  • +
+
+
+ + connection + 连接信息。详见 + + + allowlist + 你希望订阅其视频流的用户 ID 列表。如果希望订阅某个用户的视频流,请将该用户的 ID 添加到该列表中。如果希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表,即只需在新的用户 ID 列表中添加希望订阅的用户的 uid + + + connection + 连接信息。详见 + + + allowlist + 你希望订阅其视频流的用户 ID 列表。如果希望订阅某个用户的视频流,请将该用户的 ID 添加到该列表中。如果希望将某个用户从白名单中移除,需要调用 方法更新用户 ID 列表,即只需在新的用户 ID 列表中添加希望订阅的用户的 uid + + + connection + 连接信息。详见 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoblocklistex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoblocklistex.dita new file mode 100644 index 00000000000..350afdea9c4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setsubscribevideoblocklistex.dita @@ -0,0 +1,131 @@ + + + + <ph keyref="setSubscribeVideoBlocklistEx"/> + 设置不订阅的视频流用户名单。设置视频流订阅的黑名单。设置视频流订阅的阻止名单。设置视频流订阅的阻止名单。 + + + + + + + + +
+

+ virtual int setSubscribeVideoBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0; + public abstract int setSubscribeVideoBlocklistEx(int[] uidList, RtcConnection connection); + - (int)setSubscribeVideoBlocklistEx:(NSArray <NSNumber *> *_Nonnull)blocklist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeVideoBlocklistEx(_:connection:)); + - (int)setSubscribeVideoBlocklistEx:(NSArray <NSNumber *> *_Nonnull)blocklist connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setSubscribeVideoBlocklistEx(_:connection:)); +

+
+
+

你可以调用此方法来指定不希望订阅的用户的视频流。

+

你可以调用此方法来指定不希望订阅的用户的视频流。

+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 该阻止名单不受 中的 autoSubscribeAudio 设置的影响。
  • +
  • 一旦设置了订阅的阻止名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被加入允许名单和阻止名单,仅阻止名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 黑名单设置不受 中的 autoSubscribeVideo 的影响。
  • +
  • 一旦设置了订阅黑名单,即使你离开当前频道并重新加入,该设置仍然有效。
  • +
  • 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 阻止名单不受 中的 autoSubscribeAudio 设置影响。
  • +
  • 一旦设置了订阅的阻止名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到允许名单和阻止名单中,则仅阻止名单生效。
  • +
+
+ +
    +
  • 你可以在加入频道前或加入频道后调用此方法。
  • +
  • 阻止名单不受 中的 autoSubscribeAudio 设置影响。
  • +
  • 一旦设置了订阅的阻止名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
  • +
  • 如果某个用户同时被添加到允许名单和阻止名单中,则仅阻止名单生效。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + uidList + 不希望订阅其视频流的用户 ID 列表。若要将某个用户从阻止名单中移除,需要调用 方法更新用户 ID 列表,即在新的列表中仅包含你仍希望阻止的视频流用户的用户 ID。 + + + uidNumber + 用户 ID 列表中的用户数量。 + + + connection + 连接信息。详见 + + + uidList + 不希望订阅其视频流的远端用户 ID 列表。如果你希望取消订阅某个用户的视频流,请将该用户的用户 ID 添加到该列表中。如果你希望将某个用户从黑名单中移除,需要调用 方法更新用户 ID 列表,即仅在新的列表中添加你不希望订阅的用户的用户 ID。 + + + connection + 连接信息。详见 + + + blocklist + 不希望订阅其视频流的用户 ID 列表。如果你希望指定不订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从阻止名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + connection + 连接信息。详见 + + + blocklist + 不希望订阅其视频流的用户 ID 列表。如果你希望指定不订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从阻止名单中移除,需要调用 方法更新用户 ID 列表;这意味着你只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setupremotevideoex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setupremotevideoex.dita new file mode 100644 index 00000000000..909548d02ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setupremotevideoex.dita @@ -0,0 +1,118 @@ + + + + <ph keyref="setupRemoteVideoEx"/> + 初始化远端用户的视频视图。初始化远端用户的视频视图。初始化远端用户的视频视图。初始化远端用户的视频视图。 + + + + + + + + +
+

+ virtual int setupRemoteVideoEx(const VideoCanvas& canvas, const RtcConnection& connection) = 0; + public abstract int setupRemoteVideoEx(VideoCanvas remote, RtcConnection connection); + - (int)setupRemoteVideoEx:(AgoraRtcVideoCanvas* _Nonnull)remote + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setupRemoteVideoEx(_:connection:)); + - (int)setupRemoteVideoEx:(AgoraRtcVideoCanvas* _Nonnull)remote + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setupRemoteVideoEx(_:connection:)); +

+
+
+

该方法在本地设备上初始化远端视频流的视图,仅影响你本地看到的画面。调用该方法可以将远端视频流绑定到指定视图,并设置该视图的渲染模式和镜像模式。 + +你需要在远端用户加入频道前,通过 设置远端用户的用户 ID。如果你尚未获取远端用户 ID,可以在收到 回调后再设置。 + +如果启用了视频录制功能,录制服务会以虚拟客户端身份加入频道,其他客户端也会因此收到 回调。不要将该虚拟客户端绑定到视图,因为它不会发送任何视频流。 + +若要解除远端用户与视图的绑定,可将 view 参数设置为 。当远端用户离开频道后,SDK 会自动解除绑定。

+

你可以调用该方法将远端视频流绑定到视频视图,并设置视频视图的渲染模式和镜像模式。该方法仅影响本地用户看到的视频视图。 +应用需在远端用户加入频道前,通过 指定远端用户 ID。 +如果应用尚未获取远端用户 ID,可在收到 回调后设置。 +如果启用了视频录制功能,视频录制服务会以虚拟客户端身份加入频道,其他客户端也会因此收到 回调。请勿将虚拟客户端绑定到应用视图,因为其不会发送任何视频流。 +如需解除远端用户与视图的绑定,可将 view 参数设为 null。 +远端用户离开频道后,SDK 会自动解除其绑定。

+

该方法在本地设备上初始化远端视频流的视频视图,仅影响你所看到的远端视频画面。你可以调用该方法将远端视频流绑定到指定的视频视图,并设置渲染模式和镜像模式。 + +你需要在远端用户加入频道前,通过 设置远端用户的 UID。如果你尚未获取远端用户的 UID,可在收到 didJoinedOfUid 回调后再设置。 + +如果启用了视频录制功能,录制服务会以虚拟客户端身份加入频道,其他客户端也会因此收到 onUserJoined 回调。请勿将该虚拟客户端绑定到应用视图,因为它不会发送任何视频流。 + +如需解绑远端用户与视图的绑定关系,请将 view 参数设为 。一旦远端用户离开频道,SDK 会自动解绑该用户。

+

该方法在本地设备上初始化远端视频流的视频视图,仅影响你所看到的远端视频画面。你可以调用该方法将远端视频流绑定到指定的视频视图,并设置渲染模式和镜像模式。 + +你需要在远端用户加入频道前,通过 设置远端用户的 UID。如果你尚未获取远端用户的 UID,可在收到 didJoinedOfUid 回调后再设置。 + +如果启用了视频录制功能,录制服务会以虚拟客户端身份加入频道,其他客户端也会因此收到 onUserJoined 回调。请勿将该虚拟客户端绑定到应用视图,因为它不会发送任何视频流。 + +如需解绑远端用户与视图的绑定关系,请将 view 参数设为 。一旦远端用户离开频道,SDK 会自动解绑该用户。

+ 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 方法。 + 若需在通话过程中更新远端视频视图的渲染或镜像模式,请使用 方法。 + 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 setRemoteRenderModeEx 方法。 + 若需在通话过程中更新远端视频视图的渲染模式或镜像模式,请使用 setRemoteRenderModeEx 方法。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + canvas + 远端视频视图的设置。详见 + + + connection + 连接信息。详见 + + + remote + 远端视频视图的设置。详见 + + + connection + 连接信息。详见 + + + remote + 远端视频视图的设置。详见 + + + connection + 连接信息。详见 + + + remote + 远端视频视图的设置。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。

+

0:方法调用成功。 +< 0:方法调用失败。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_setvideoencoderconfigurationex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_setvideoencoderconfigurationex.dita new file mode 100644 index 00000000000..9efae53f5d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_setvideoencoderconfigurationex.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="setVideoEncoderConfigurationEx"/> + 设置本地视频的编码器配置。设置本地视频的编码器配置。设置视频编码器配置。设置视频编码器配置。 + + + + + + + + +
+

+ virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration& config, const RtcConnection& connection) = 0; + public abstract int setVideoEncoderConfigurationEx(VideoEncoderConfiguration config, RtcConnection connection); + - (int)setVideoEncoderConfigurationEx:(AgoraVideoEncoderConfiguration* _Nonnull)config + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setVideoEncoderConfigurationEx(_:connection:)); + - (int)setVideoEncoderConfigurationEx:(AgoraVideoEncoderConfiguration* _Nonnull)config + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(setVideoEncoderConfigurationEx(_:connection:)); +

+
+
+

每个配置文件对应一组视频参数,包括分辨率、帧率和码率。config 参数表示在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中较低的参数,直到找到可用的配置。

+

用于设置本地视频的编码器配置。每个配置文件对应一组视频参数,包括分辨率、帧率和码率。

+

设置本地视频的编码器配置。每个配置文件对应一组视频参数,包括分辨率、帧率和码率。

+

设置本地视频的编码器配置。每个配置文件对应一组视频参数,包括分辨率、帧率和码率。

+ config 参数表示在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中更低的参数,直到找到可用的配置。 + config 参数表示在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中较低的参数,直到找到可用的配置。 + config 参数表示在理想网络条件下的最大值。如果由于网络条件不稳定,视频引擎无法使用指定的 config 渲染视频,则会依次尝试列表中较低的参数,直到找到可用的配置。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 调用时机 +

请在调用 之后调用该方法。

+

在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+
+
+ 参数 + + + config + 视频编码配置。详见 + + + connection + 连接信息。详见 + + + config + 视频编码配置。详见 + + + connection + 连接信息。详见 + + + config + 视频配置参数。详见 + + + connection + 连接信息。详见 + + + config + 视频配置参数。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_startmediarenderingtracingex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_startmediarenderingtracingex.dita new file mode 100644 index 00000000000..c7865ac0fd7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_startmediarenderingtracingex.dita @@ -0,0 +1,127 @@ + + + + <ph keyref="startMediaRenderingTracingEx"/> + 启用视频帧渲染过程的追踪。启用视频帧渲染过程的追踪。启用视频帧渲染过程的追踪。启用视频帧渲染过程的追踪。 + + + + + + + + +
+

+ virtual int startMediaRenderingTracingEx(const RtcConnection& connection) = 0; + public abstract int startMediaRenderingTracingEx(RtcConnection connection); + - (int)startMediaRenderingTracingEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startMediaRenderingTracingEx(_:)); + - (int)startMediaRenderingTracingEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startMediaRenderingTracingEx(_:)); +

+
+
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+ +
自从
+
自 v4.1.1 版本新增。
+
+
+

调用该方法后,SDK 会从调用时刻开始追踪频道中视频帧的渲染状态,并通过 回调报告相关信息。你可以结合应用中的 UI 控件(如按钮、滑块)调用该方法,以优化用户体验,例如在用户点击“加入频道”按钮时调用该方法,并通过 回调获取视频帧渲染过程所耗时间,从而优化相关指标。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调上报相关事件信息。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调报告相关信息。

+

从成功调用该方法开始,SDK 会追踪频道中视频帧的渲染状态,并通过 回调报告相关信息。

+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannel 加入频道时开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时间调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你加入频道的时刻开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannel 加入频道开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时间调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从再次加入频道开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannelByToken 加入频道时开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时机调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你加入频道的时刻开始追踪视频渲染事件。
  • +
+
+ +
    +
  • 如果你未调用该方法,SDK 会从调用 joinChannelByToken 加入频道时开始追踪视频帧的渲染事件。你可以根据实际应用场景在合适的时机调用该方法,以设置追踪视频渲染事件的起始位置。
  • +
  • 本地用户离开当前频道后,SDK 会自动从你加入频道的时刻开始追踪视频渲染事件。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_startorupdatechannelmediarelayex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_startorupdatechannelmediarelayex.dita new file mode 100644 index 00000000000..d176772df59 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_startorupdatechannelmediarelayex.dita @@ -0,0 +1,189 @@ + + + + <ph keyref="startOrUpdateChannelMediaRelayEx"/> + 开始或更新跨频道媒体流转发。开始或更新跨频道媒体流转发。开始或更新跨频道媒体流转发。开始或更新跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int startOrUpdateChannelMediaRelayEx(const ChannelMediaRelayConfiguration& configuration, const RtcConnection& connection) = 0; + public abstract int startOrUpdateChannelMediaRelayEx(ChannelMediaRelayConfiguration channelMediaRelayConfiguration, RtcConnection connection); + - (int)startOrUpdateChannelMediaRelayEx:(AgoraChannelMediaRelayConfiguration * _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startOrUpdateChannelMediaRelayEx(_:connection:)); + - (int)startOrUpdateChannelMediaRelayEx:(AgoraChannelMediaRelayConfiguration * _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startOrUpdateChannelMediaRelayEx(_:connection:)); +

+
+
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+

首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法以更新目标频道。该功能最多支持将媒体流转发到六个目标频道。调用该方法成功后,SDK 会触发 回调,报告媒体流转发的状态: +

    +
  • 当回调返回 RELAY_STATE_RUNNING(2)和 RELAY_OK(0)时,表示媒体流已开始从源频道转发到目标频道。
  • +
  • 当回调返回 RELAY_STATE_FAILURE(3)时,表示媒体流转发过程中出现异常。
  • +
+

+

首次成功调用该方法会将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法以更新目标频道。该功能最多支持将媒体流转发到六个目标频道。

+

首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法更新目标频道。该功能最多支持将媒体流转发到六个目标频道。

+

首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法更新目标频道。该功能最多支持将媒体流转发到六个目标频道。

+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时生效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)启用。
  • +
  • 该方法不支持字符串用户 User Account。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时有效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。
  • +
  • 该 API 不支持字符串用户 User Account。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时生效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。
  • +
  • 该 API 不支持字符串用户 User Account。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 该方法仅在你是极速直播频道中的主播时生效。
  • +
  • 跨频道媒体流转发功能需[联系技术支持](https://ticket.shengwang.cn/)开启。
  • +
  • 该 API 不支持字符串用户 User Account。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + configuration + 媒体流转发的配置。详见 + + + connection + 连接信息。详见 + + + channelMediaRelayConfiguration + 媒体流转发的配置。详见 + + + connection + 连接信息。详见 + + + config + 媒体流转发的配置。详见 + + + connection + 连接信息。详见 + + + config + 媒体流转发的配置。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -1:发生通用错误(无明确原因)。
    • +
    • -2:参数无效。
    • +
    • -8:内部状态错误,可能是因为用户不是主播。
    • +
    +
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -1:发生通用错误(无明确原因)。
  • +
  • -2:参数无效。
  • +
  • -8:内部状态错误,可能是因为用户不是主播。
  • +
+

+

0:方法调用成功。 +< 0:方法调用失败。 +

    +
  • -1:发生通用错误(无明确原因)。
  • +
  • -2:参数无效。
  • +
  • -8:内部状态错误,可能是因为用户不是主播。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithouttranscodingex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithouttranscodingex.dita new file mode 100644 index 00000000000..72358a724c5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithouttranscodingex.dita @@ -0,0 +1,162 @@ + + + + <ph keyref="startRtmpStreamWithoutTranscodingEx"/> + 开始向 CDN 推送未经转码的媒体流。开始向 CDN 推送未经转码的媒体流。开始向 CDN 推送未经转码的媒体流。开始向 CDN 推送未经转码的媒体流。 + + + + + + + + +
+

+ virtual int startRtmpStreamWithoutTranscodingEx(const char* url, const RtcConnection& connection) = 0; + public abstract int startRtmpStreamWithoutTranscodingEx(String url, RtcConnection connection); + - (int)startRtmpStreamWithoutTranscodingEx:(NSString* _Nonnull)url + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithoutTranscodingEx(_:connection:)); + - (int)startRtmpStreamWithoutTranscodingEx:(NSString* _Nonnull)url + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithoutTranscodingEx(_:connection:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法一次只能向一个 CDN 地址推送媒体流。如需推送到多个地址,请多次调用该方法。调用该方法后,SDK 会在本地客户端触发 回调报告推流状态。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法一次只能向一个 CDN 地址推送媒体流,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。

+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 仅在 LIVE_BROADCASTING 频道场景中的主播角色可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在频道场景为 LIVE_BROADCASTING 且角色为主播的用户才能调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 请在加入频道后调用该方法。
  • +
  • 只有在 LIVE_BROADCASTING 频道场景中的主播可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
  • +
+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换其他地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithtranscodingex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithtranscodingex.dita new file mode 100644 index 00000000000..9907f85ced2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_startrtmpstreamwithtranscodingex.dita @@ -0,0 +1,174 @@ + + + + <ph keyref="startRtmpStreamWithTranscodingEx"/> + 开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。开始旁路推流并设置转码配置。 + + + + + + + + +
+

+ virtual int startRtmpStreamWithTranscodingEx(const char* url, const LiveTranscoding& transcoding, const RtcConnection& connection) = 0; + public abstract int startRtmpStreamWithTranscodingEx(String url, LiveTranscoding transcoding, RtcConnection connection); + - (int)startRtmpStreamWithTranscodingEx:(NSString* _Nonnull)url + transcoding:(AgoraLiveTranscoding* _Nullable)transcoding + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithTranscodingEx(_:transcoding:connection:)); + - (int)startRtmpStreamWithTranscodingEx:(NSString* _Nonnull)url + transcoding:(AgoraLiveTranscoding* _Nullable)transcoding + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithTranscodingEx(_:transcoding:connection:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将实时音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音视频直播流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。

+ +
    +
  • 使用该方法前,请确保已启用旁路推流服务。
  • +
  • 请在加入频道后调用该方法。
  • +
  • 仅在直播场景下的主播角色可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。
  • +
+
+ +
    +
  • 使用该方法前,请确保已启用旁路推流服务。
  • +
  • 请在加入频道后调用该方法。
  • +
  • 仅在直播场景(LIVE_BROADCASTING)中的主播可以调用该方法。
  • +
  • 如果推流失败后需要重试,请先调用 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。
  • +
+
+ 在使用该方法前,请确保已启用旁路推流服务。 +请在加入频道后调用该方法。 +仅在直播场景下的主播角色可调用该方法。 +如果推流失败后需要重试,请先调用 stopRtmpStreamEx 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。 + 在使用该方法前,请确保已启用旁路推流服务。 +请在加入频道后调用该方法。 +仅在直播场景下的主播角色可调用该方法。 +如果推流失败后需要重试,请先调用 stopRtmpStreamEx 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置无效,请检查 url 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换其他地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 urltranscoding 参数。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2:URL 或转码配置不合法,请检查 URL 和转码配置。
    • +
    • -7:调用该方法前未初始化 SDK。
    • +
    • -19:旁路推流地址已被使用,请更换地址。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_stopchannelmediarelayex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_stopchannelmediarelayex.dita new file mode 100644 index 00000000000..1899504f11c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_stopchannelmediarelayex.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="stopChannelMediaRelayEx"/> + 停止跨频道媒体流转发。停止跨频道媒体流转发。停止跨频道媒体流转发。停止跨频道媒体流转发。 + + + + + + + + +
+

+ virtual int stopChannelMediaRelayEx(const RtcConnection& connection) = 0; + public abstract int stopChannelMediaRelayEx(RtcConnection connection); + - (int)stopChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopChannelMediaRelayEx(_:)); + - (int)stopChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopChannelMediaRelayEx(_:)); +

+
+
+

调用该方法可停止跨频道媒体流转发。一旦转发停止,主播会退出所有目标频道。

+

调用该方法停止跨频道媒体流转发。一旦转发停止,主播会退出所有目标频道。

+

调用该方法停止跨频道媒体流转发。调用成功后,主播会退出所有目标频道,SDK 会触发 回调。如果该回调返回 AgoraChannelMediaRelayStateIdle(0)和 AgoraChannelMediaRelayErrorNone(0),表示主播已成功停止转发。

+

调用该方法停止跨频道媒体流转发。调用成功后,主播会退出所有目标频道,SDK 会触发 回调。如果该回调返回 AgoraChannelMediaRelayStateIdle(0)和 AgoraChannelMediaRelayErrorNone(0),表示主播已成功停止转发。

+ 如果方法调用失败,SDK 会触发 回调,并返回 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)状态码。你也可以调用 leaveChannel 方法离开频道,跨频道媒体流转发会自动停止。 + 如果方法调用失败,SDK 会通过 回调报告 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)错误码。你可以调用 leaveChannel 方法离开频道,媒体流转发会自动停止。 + 如果方法调用失败,SDK 会通过 回调报告 AgoraChannelMediaRelayErrorServerNoResponse(2)或 AgoraChannelMediaRelayErrorServerConnectionLost(8)错误码。你可以调用 方法离开频道,媒体流转发会自动停止。 + 如果方法调用失败,SDK 会通过 回调报告 AgoraChannelMediaRelayErrorServerNoResponse(2)或 AgoraChannelMediaRelayErrorServerConnectionLost(8)错误码。你可以调用 方法离开频道,媒体流转发会自动停止。 +
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_stoprtmpstreamex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_stoprtmpstreamex.dita new file mode 100644 index 00000000000..043396502b2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_stoprtmpstreamex.dita @@ -0,0 +1,110 @@ + + + + <ph keyref="stopRtmpStreamEx"/> + 停止向指定 CDN 地址推送媒体流。停止向指定 CDN 地址推送媒体流。停止向指定 CDN 地址推送媒体流。停止向指定 CDN 地址推送媒体流。 + + + + + + + + +
+

+ virtual int stopRtmpStreamEx(const char* url, const RtcConnection& connection) = 0; + public abstract int stopRtmpStreamEx(String url, RtcConnection connection); + - (int)stopRtmpStreamEx:(NSString* _Nonnull)url + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopRtmpStreamEx(_:connection:)); + - (int)stopRtmpStreamEx:(NSString* _Nonnull)url + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopRtmpStreamEx(_:connection:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址推送媒体流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定 CDN 地址的直播推流。该方法每次只能停止向一个 CDN 地址推流,如果需要停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址进行直播推流。该方法每次只能停止向一个 CDN 地址推送媒体流,如果需要停止多个地址的推流,请多次调用该方法。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以调用该方法停止向指定的 CDN 地址进行直播推流。该方法每次只能停止向一个 CDN 地址推送媒体流,如果需要停止多个地址的推流,请多次调用该方法。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+ +
+ 参数 + + + url + 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节,不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + + url + 旁路推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文等特殊字符。 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex.dita new file mode 100644 index 00000000000..9248611d44c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex.dita @@ -0,0 +1,150 @@ + + + + <ph keyref="takeSnapshotEx"/> + 使用连接 ID 对指定用户的视频流进行截图。使用连接 ID 对视频流进行截图。使用连接 ID 对视频流进行截图。使用连接 ID 对视频流进行截图。 + + + + + + + + +
+

+ virtual int takeSnapshotEx(const RtcConnection& connection, uid_t uid, const char* filePath) = 0; + public abstract int takeSnapshotEx(RtcConnection connection, int uid, String filePath); + - (NSInteger)takeSnapshotEx:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshotEx(_:uid:filePath:)); + - (NSInteger)takeSnapshotEx:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(takeSnapshotEx(_:uid:filePath:)); +

+
+
+

该方法为异步调用,调用该方法时 SDK 尚未完成截图操作。用于本地视频截图时,会对 中指定的视频流进行截图。如果用户的视频已被预处理(如添加水印或美颜),截图结果中会包含这些预处理效果。

+

该方法对指定用户的视频流进行截图,生成 JPG 图像并保存到指定路径。该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。

+

该方法对指定用户的视频流进行截图,生成 JPG 图像并保存到指定路径。该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。

+ takeSnapshotEx 为异步调用,调用该方法时 SDK 尚未完成截图操作。用于本地视频截图时,会对 中指定的视频流进行截图。如果用户的视频已进行预处理(如添加水印或美颜),截图结果中会包含这些预处理效果。 + 该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。 + 该方法为异步调用,方法返回时 SDK 尚未完成截图操作。当用于本地视频截图时,该方法会对 中指定的视频流进行截图。如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。 +
+
+ 适用场景 +

适用于多频道场景。

+
+
+ 调用时机 +

请在调用 后调用该方法。

+

请在调用 后调用该方法。

+

请在调用 之后调用该方法。

+

请在调用 之后调用该方法。

+
+ +
+ 参数 + + + connection + 连接信息,详见 + + + uid + 用户 ID。若要对本地用户的视频进行截图,请将 uid 设置为 0。 + + + filePath + + 请确保指定的路径存在且可写。截图的本地路径(包含文件扩展名)。例如: +
    +
  • Windows:
  • +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS: ~/Library/Logs/example.jpg
  • +
  • Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 用户 ID。如果要对本地用户的视频进行截图,请将 uid 设置为 0。 + + + filePath + + 请确保指定的路径存在且可写。截图的本地路径(包含文件扩展名)。例如: +
    +
  • Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg
  • +
+
+
+ + connection + 连接信息。详见 + + + uid + 用户 ID。如果要对本地用户的视频进行截图,请将 uid 设置为 0。 + + + filePath + 截图的本地路径(包含文件扩展名)。例如: +
    +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS: ~/Library/Logs/example.jpg
  • +
请确保指定路径存在且可写。
+
+ + connection + 连接信息。详见 + + + uid + 用户 ID。如果要对本地用户的视频进行截图,请将 uid 设置为 0。 + + + filePath + 截图的本地路径(包含文件扩展名)。例如: +
    +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS:
  • +
请确保指定路径存在且可写。
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex2.dita b/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex2.dita new file mode 100644 index 00000000000..dc2c7cd8e8c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_takesnapshotex2.dita @@ -0,0 +1,151 @@ + + + + <ph keyref="takeSnapshotEx2"/> + 通过连接 ID 获取指定用户的视频截图。通过连接 ID 获取指定用户的视频截图。获取指定用户视频流的截图。获取指定用户视频流的截图。 + + + + + + + + +
+

+ virtual int takeSnapshotEx(const RtcConnection& connection, uid_t uid, const media::SnapshotConfig& config) = 0; + public abstract int takeSnapshotEx(RtcConnection connection, int uid, SnapshotConfig config); + - (NSInteger)takeSnapshotExWithConfig:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotExWithConfig(_:uid:config:)); + - (NSInteger)takeSnapshotExWithConfig:(AgoraRtcConnection * _Nonnull)connection uid:(NSInteger)uid config:(AgoraSnapshotConfig* _Nonnull)config NS_SWIFT_NAME(takeSnapshotExWithConfig(_:uid:config:)); +

+
+
+

该方法从指定用户的视频流中截取一帧图像,生成 JPG 图片,并保存到指定路径。截图结果中会包含视频预处理效果,例如水印或美颜。

+

该方法从指定用户的视频流中截取一帧图像,生成 JPG 图片,并保存到指定路径。 + +该方法为异步调用,调用返回时 SDK 尚未完成截图。 + +用于本地视频截图时,该方法会对 中指定的视频流进行截图。 + +如果用户的视频已进行预处理(如添加水印或美颜),截图结果将包含预处理效果。

+

该方法从指定用户的视频流中截取一帧图像,生成 JPG 图片,并保存到指定路径。 + +该方法为异步调用,调用返回时 SDK 尚未完成截图。 + +用于本地视频截图时,该方法会对 中指定的视频流进行截图。 + +如果用户的视频已进行预处理(如添加水印或美颜),截图结果将包含预处理效果。

+ +
    +
  • 该方法为异步调用,调用返回时 SDK 尚未完成截图操作。
  • +
  • 用于本地视频截图时,将对 中指定的视频流进行截图。
  • +
+
+ +
    +
  • 该方法为异步调用,调用该方法后 SDK 并不会立即完成截图。
  • +
  • 用于本地视频截图时,该方法会对 中指定的视频流进行截图。
  • +
  • 如果用户的视频已进行预处理,例如添加水印或美颜,截图结果中会包含这些预处理效果。
  • +
+
+
+
+ 适用场景 +

适用于多频道场景。

+
+
+ 调用时机 +

请在调用 后调用该方法。

+

请在调用 后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+

请在调用 joinChannelExByToken 之后调用该方法。

+
+ +
+ 参数 + + + connection + 连接信息。详见 + + + uid + 用户 ID。 + 若要截取本地用户的视频,请将 uid 设置为 0。 + + + + config + 截图配置。详见 + + + connection + 连接信息,详见 + + + uid + 用户 ID。如果要截取本地用户的视频,请将 uid 设置为 0。 + + + config + 截图的配置信息,详见 + + + connection + 连接信息。详见 + + + uid + 用户 ID。如果要截取本地用户的视频,设置 uid 为 0。 + + + config + 截图的配置信息。详见 + + + connection + 连接信息。详见 + + + uid + 用户 ID。如果要截取本地用户的视频,设置 uid 为 0。 + + + config + 截图的配置信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:调用成功。
  • +
  • < 0:调用失败。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_updatechannelmediaoptionsex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_updatechannelmediaoptionsex.dita new file mode 100644 index 00000000000..32f0bf898e4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_updatechannelmediaoptionsex.dita @@ -0,0 +1,118 @@ + + + + <ph keyref="updateChannelMediaOptionsEx"/> + 在加入频道后更新频道媒体选项。加入频道后更新频道媒体选项。加入频道后更新频道媒体选项。加入频道后更新频道媒体选项。 + + + + + + + + +
+

+ virtual int updateChannelMediaOptionsEx(const ChannelMediaOptions& options, const RtcConnection& connection) = 0; + public abstract int updateChannelMediaOptionsEx(ChannelMediaOptions options, RtcConnection connection); + - (int)updateChannelExWithMediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateChannelEx(with:connection:)); + - (int)updateChannelExWithMediaOptions:(AgoraRtcChannelMediaOptions* _Nonnull)mediaOptions + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateChannelEx(with:connection:)); +

+
+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + options + 频道媒体选项。详见 + + + connection + 连接信息。详见 + + + options + 频道媒体选项。详见 + + + connection + 连接信息。详见 + + + mediaOptions + 频道媒体选项。详见 + + + connection + 连接信息。详见 + + + mediaOptions + 频道媒体选项。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。 +
      +
    • -2: 中的成员值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误,可能的原因是用户未加入频道。声网建议你通过 回调判断用户是否在频道中。如果你收到 CONNECTION_STATE_DISCONNECTED(1)或 CONNECTION_STATE_FAILED(5)状态,说明用户不在频道中。你需要先调用 joinChannel 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。 +
      +
    • -2: 中的成员值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误,可能的原因是用户不在频道中。声网建议你使用 回调判断用户是否在频道中。如果你收到 CONNECTION_STATE_DISCONNECTED(1)或 CONNECTION_STATE_FAILED(5)状态,说明用户不在频道中。你需要先调用 joinChannel 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。 +
      +
    • -2: 中的成员值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误,可能的原因是你尚未加入频道。声网建议你通过 回调判断是否已加入频道。如果你收到 AgoraConnectionStateDisconnected(1)或 AgoraConnectionStateFailed(5)状态,说明你尚未加入频道。你需要先调用 加入频道,再调用该方法。
    • +
    +
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。 +
      +
    • -2: 中的成员值无效,例如 token 或用户 ID 无效。你需要填写有效的参数。
    • +
    • -7: 对象尚未初始化。你需要先初始化 对象再调用该方法。
    • +
    • -8: 对象的内部状态错误,可能的原因是你尚未加入频道。声网建议你通过 回调判断是否已加入频道。如果你收到 AgoraConnectionStateDisconnected(1)或 AgoraConnectionStateFailed(5)状态,说明你尚未加入频道。你需要先调用 加入频道,再调用该方法。
    • +
    +
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_irtcengineex_updatertmptranscodingex.dita b/dita/RTC-AIDOC/API/api_irtcengineex_updatertmptranscodingex.dita new file mode 100644 index 00000000000..44aeb030e7e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_irtcengineex_updatertmptranscodingex.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="updateRtmpTranscodingEx"/> + 更新旁路推流的转码配置。更新旁路推流的转码配置。更新旁路推流的转码配置。更新旁路推流的转码配置。 + + + + + + + + +
+

+ virtual int updateRtmpTranscodingEx(const LiveTranscoding& transcoding, const RtcConnection& connection) = 0; + public abstract int updateRtmpTranscodingEx(LiveTranscoding transcoding, RtcConnection connection); + - (int)updateRtmpTranscodingEx:(AgoraLiveTranscoding* _Nullable)transcoding + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateRtmpTranscodingEx(_:connection:)); + - (int)updateRtmpTranscodingEx:(AgoraLiveTranscoding* _Nullable)transcoding + connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateRtmpTranscodingEx(_:connection:)); +

+
+
+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 回调。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +开始使用转码功能将媒体流推送到 CDN 后,你可以根据场景动态更新转码配置。更新配置后,SDK 会触发 回调。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以在开启带转码的 CDN 推流后,根据场景动态更新转码配置。

+

声网推荐你使用更加完善的服务端推流功能,详见[实现服务端旁路推流](https://doc.shengwang.cn/doc/media-push/restful/landing-page)。 +你可以在开启带转码的 CDN 推流后,根据场景动态更新转码配置。

+
+
+ 适用场景 +

该方法适用于多频道场景。

+
+
+ 参数 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + + transcoding + 旁路推流的转码配置。详见 + + + connection + 连接信息。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getcount_iscreencapturesourcelist.dita b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getcount_iscreencapturesourcelist.dita new file mode 100644 index 00000000000..ca9ef20ef56 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getcount_iscreencapturesourcelist.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="getCount_IScreenCaptureSourceList"/> + 获取可共享窗口和屏幕的数量。 + + + + + + + + +
+

+ virtual unsigned int getCount() = 0; +

+
+
+ 方法仅适用于 macOS 和 Windows 平台。 +
+
+ 返回值 +

方法调用成功,返回可共享窗口和屏幕的数量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getsourceinfo_iscreencapturesourcelist.dita b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getsourceinfo_iscreencapturesourcelist.dita new file mode 100644 index 00000000000..0ee63a56047 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_getsourceinfo_iscreencapturesourcelist.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="getSourceInfo_IScreenCaptureSourceList"/> + 获取指定可共享窗口或屏幕的信息。 + + + + + + + + +
+

+ virtual ScreenCaptureSourceInfo getSourceInfo(unsigned int index) = 0; +

+
+
+

在获取 后,传入指定窗口或屏幕的索引值,从 中获取该窗口或屏幕的信息。

+ 该方法仅适用于 macOS 和 Windows 平台。 +
+
+ 参数 + + + index + 指定可共享窗口或屏幕的索引。取值范围为 [0, () )。 + + +
+
+ 返回值 +

方法调用成功,返回 对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_release_iscreencapturesourcelist.dita b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_release_iscreencapturesourcelist.dita new file mode 100644 index 00000000000..2020dc7afa4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_iscreencapturesourcelist_release_iscreencapturesourcelist.dita @@ -0,0 +1,24 @@ + + + + <ph keyref="release_IScreenCaptureSourceList"/> + 释放 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+

获取可共享窗口和屏幕列表后,为避免内存泄漏,请调用该方法释放 ,而不是直接删除该对象。

+ 该方法仅适用于 macOS 和 Windows 平台。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicecollection_getcount_ivideodevicecollection.dita b/dita/RTC-AIDOC/API/api_ivideodevicecollection_getcount_ivideodevicecollection.dita new file mode 100644 index 00000000000..132d9cb36b1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicecollection_getcount_ivideodevicecollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getCount_IVideoDeviceCollection"/> + 获取系统中已索引的视频采集设备总数。 + + + + + + + + +
+

+ virtual int getCount() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回系统中已索引的视频采集设备总数。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicecollection_getdevice_ivideodevicecollection.dita b/dita/RTC-AIDOC/API/api_ivideodevicecollection_getdevice_ivideodevicecollection.dita new file mode 100644 index 00000000000..960088f0a5e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicecollection_getdevice_ivideodevicecollection.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="getDevice_IVideoDeviceCollection"/> + 获取指定索引的视频设备的信息。 + + + + + + + + +
+

+ virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH], char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+
+ 参数 + + + index + 视频设备的索引值。该值必须小于 返回的值。 + + + deviceNameUTF8 + 输出参数,表示设备名称。最大长度为 MAX_DEVICE_ID_LENGTH + + + deviceIdUTF8 + 输出参数,表示视频设备的设备 ID。最大长度为 MAX_DEVICE_ID_LENGTH + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicecollection_release_ivideodevicecollection.dita b/dita/RTC-AIDOC/API/api_ivideodevicecollection_release_ivideodevicecollection.dita new file mode 100644 index 00000000000..855dabdac4e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicecollection_release_ivideodevicecollection.dita @@ -0,0 +1,21 @@ + + + + <ph keyref="release_IVideoDeviceCollection"/> + 释放 对象占用的所有资源。 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicecollection_setdevice.dita b/dita/RTC-AIDOC/API/api_ivideodevicecollection_setdevice.dita new file mode 100644 index 00000000000..04a4716fca1 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicecollection_setdevice.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="setDevice"/> + 指定设备 ID 对应的设备。 + + + + + + + + +
+

+ virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+
+ 参数 + + + deviceIdUTF8 + 设备 ID。插拔音频设备不会改变该值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_enumeratevideodevices.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_enumeratevideodevices.dita new file mode 100644 index 00000000000..86d665bbf99 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_enumeratevideodevices.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="enumerateVideoDevices"/> + 枚举系统中的视频设备。 + + + + + + + + +
+

+ virtual IVideoDeviceCollection* enumerateVideoDevices() = 0; +

+
+
+

该方法返回一个 对象,包含系统中所有可用的视频设备。你可以通过该对象枚举视频设备。使用完该对象后,必须调用 方法释放资源。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_getcapability.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_getcapability.dita new file mode 100644 index 00000000000..b42a9c7d0ac --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_getcapability.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="getCapability"/> + 获取指定视频格式下的视频采集设备的帧信息。 + + + + + + + + +
+

+ virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0; +

+
+
+

调用 获取视频采集设备支持的视频格式数量后,可调用该方法获取指定索引对应的视频帧信息。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceIdUTF8 + 视频采集设备的 ID。 + + + deviceCapabilityNumber + 视频格式的索引号。若 的返回值为 i,则该参数的取值范围为 [0, i)。 + + + capability + 输出参数,表示指定视频格式的详细信息,包括宽度(px)、高度(px)和帧率(fps)。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_getdevice_ivideodevicemanager.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_getdevice_ivideodevicemanager.dita new file mode 100644 index 00000000000..19a2f7fb683 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_getdevice_ivideodevicemanager.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="getDevice_IVideoDeviceManager"/> + 获取当前的视频采集设备。 + + + + + + + + +
+

+ virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceIdUTF8 + 输出参数,当前视频采集设备的设备 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_numberofcapabilities.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_numberofcapabilities.dita new file mode 100644 index 00000000000..50956045f2e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_numberofcapabilities.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="numberOfCapabilities"/> + 获取指定视频采集设备支持的视频格式数量。 + + + + + + + + +
+

+ virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0; +

+
+
+

你可以调用该方法获取指定视频采集设备支持的视频格式数量,然后调用 获取对应的视频帧信息。视频采集设备可能支持多种视频格式,每种格式包含不同的视频帧宽度、高度和帧率组合。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceIdUTF8 + 视频采集设备的 ID。 + + +
+
+ 返回值 +

+

    +
  • > 0:方法调用成功,返回该设备支持的视频格式数量。例如,如果指定摄像头支持 10 种不同的视频格式,返回值为 10。
  • +
  • ≤ 0:方法调用失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_release_ivideodevicemanager.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_release_ivideodevicemanager.dita new file mode 100644 index 00000000000..b420c06242d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_release_ivideodevicemanager.dita @@ -0,0 +1,23 @@ + + + + <ph keyref="release_IVideoDeviceManager"/> + 释放 对象占用的所有资源。 + + + + + + + + +
+

+ virtual void release() = 0; +

+
+
+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideodevicemanager_setdevice_ivideodevicemanager.dita b/dita/RTC-AIDOC/API/api_ivideodevicemanager_setdevice_ivideodevicemanager.dita new file mode 100644 index 00000000000..fe49be3045f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideodevicemanager_setdevice_ivideodevicemanager.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="setDevice_IVideoDeviceManager"/> + 指定视频采集设备的设备 ID。 + + + + + + + + +
+

+ virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0; +

+
+
+
+ 参数 + + + deviceIdUTF8 + 设备 ID。你可以通过调用 获取该值。最大长度为 MAX_DEVICE_ID_LENGTH + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_addorupdatevideoeffect.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_addorupdatevideoeffect.dita new file mode 100644 index 00000000000..5f45ffd3c23 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_addorupdatevideoeffect.dita @@ -0,0 +1,159 @@ + + + + <ph keyref="addOrUpdateVideoEffect"/> + 添加或更新指定视频特效节点和模板的特效。为指定的视频特效节点 ID 和模板添加或更新视频特效。添加或更新指定节点 ID 和模板的视频特效。添加或更新指定节点 ID 和模板的视频特效。 + + + + + + + + +
+

+ virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char* templateName) = 0; + int addOrUpdateVideoEffect(int nodeId, String templateName); + - (int)addOrUpdateVideoEffectWithNodeId:(NSUInteger)nodeId + templateName:(NSString *)templateName +NS_SWIFT_NAME(addOrUpdateVideoEffect(nodeId:templateName:)); + - (int)addOrUpdateVideoEffectWithNodeId:(NSUInteger)nodeId + templateName:(NSString *)templateName +NS_SWIFT_NAME(addOrUpdateVideoEffect(nodeId:templateName:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+ 优先级规则: +
    +
  • VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 节点优先于 VIDEO_EFFECT_NODE_ID::FILTER 参数。
  • +
  • 若要应用 VIDEO_EFFECT_NODE_ID::FILTER 参数,必须先移除 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 节点:
  • +
+ removeVideoEffect(VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP); +addOrUpdateVideoEffect(VIDEO_EFFECT_NODE_ID::FILTER, "template name"); +
+ 优先级规则: +
    +
  • 风格妆特效节点优先于 FILTER 参数。
  • +
  • 若要应用 FILTER 参数,必须先移除风格妆特效节点:
  • +
+ removeVideoEffect(`STYLE_MAKEUP`); +addOrUpdateVideoEffect(`FILTER`, "template name"); +
+ 优先级规则: +
    +
  • 视频特效节点 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 的优先级高于 VIDEO_EFFECT_NODE_ID::FILTER
  • +
  • 若要应用 VIDEO_EFFECT_NODE_ID::FILTER,必须先移除 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
  • +
+ removeVideoEffect(VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP); +addOrUpdateVideoEffect(VIDEO_EFFECT_NODE_ID::FILTER, "template name"); +
+ 优先级规则: +
    +
  • 视频特效节点 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 的优先级高于 VIDEO_EFFECT_NODE_ID::FILTER
  • +
  • 若要应用 VIDEO_EFFECT_NODE_ID::FILTER,必须先移除 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
  • +
+ removeVideoEffect(VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP); +addOrUpdateVideoEffect(VIDEO_EFFECT_NODE_ID::FILTER, "template name"); +
+
+
+ 参数 + + + nodeId + 视频特效节点的唯一标识符或标识符组合。详见 。 +示例: +
    +
  • 单一特效:VIDEO_EFFECT_NODE_ID::BEAUTY
  • +
  • 组合特效:VIDEO_EFFECT_NODE_ID::BEAUTY | VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
  • +
+
+
+ + templateName + 特效模板名称。如果设置为 或空字符串,SDK 会从资源包中加载默认配置。 + + + nodeId + 视频特效节点的唯一标识符或标识符组合。详见 + + + templateName + 特效模板名称。如果设置为 null 或空字符串,SDK 会从资源包中加载默认参数配置。 + + + nodeId + 视频特效节点的唯一标识符或标识符组合。例如: +
    +
  • 单个特效:VIDEO_EFFECT_NODE_ID::BEAUTY
  • +
  • 组合特效:VIDEO_EFFECT_NODE_ID::BEAUTY | VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
  • +
+
+
+ + templateName + 特效模板名称。如果设置为 或空字符串,SDK 会自动从资源包中加载默认参数配置。 + + + nodeId + 视频特效节点的唯一标识符或标识符组合。例如: +
    +
  • 单个特效:VIDEO_EFFECT_NODE_ID::BEAUTY
  • +
  • 组合特效:VIDEO_EFFECT_NODE_ID::BEAUTY | VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
  • +
+
+
+ + templateName + 特效模板名称。如果设置为 或空字符串,SDK 会自动从资源包中加载默认参数配置。 + +
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectboolparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectboolparam.dita new file mode 100644 index 00000000000..34e50d3c2b3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectboolparam.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="getVideoEffectBoolParam"/> + 获取视频特效中的布尔参数。获取视频特效中的布尔类型参数。获取视频特效中的布尔参数。获取视频特效中的布尔参数。 + + + + + + + + +
+

+ virtual bool getVideoEffectBoolParam(const char* option, const char* key) = 0; + boolean getVideoEffectBoolParam(String option, String key); + - (BOOL)getVideoEffectBoolParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectBoolParam(option:key:)); + - (BOOL)getVideoEffectBoolParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectBoolParam(option:key:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + option + 参数所属的选项类别。 + + + key + 参数的键名。 + + + option + 参数类别的标识符。 + + + key + 参数的键名。 + + + option + 参数类别的标识符。 + + + key + 参数的键值。 + + + option + 参数类别的标识符。 + + + key + 参数的键值。 + + +
+
+ 返回值 +

+

    +
  • :参数已启用。
  • +
  • :参数未启用或不存在。
  • +
+

+

+

    +
  • :参数已启用。
  • +
  • :参数未启用或不存在。
  • +
+

+

+

    +
  • :参数已启用。
  • +
  • :参数未启用或不存在。
  • +
+

+

+

    +
  • :参数已启用。
  • +
  • :参数未启用或不存在。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita new file mode 100644 index 00000000000..07a3642ddb9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita @@ -0,0 +1,113 @@ + + + + <ph keyref="getVideoEffectFloatParam"/> + 获取视频特效中指定 float 类型参数的值。获取视频特效中指定参数的 float 类型值。获取视频特效中的 float 类型参数。获取视频特效中的 float 类型参数。 + + + + + + + + +
+

+ virtual float getVideoEffectFloatParam(const char* option, const char* key) = 0; + float getVideoEffectFloatParam(String option, String key); + - (float)getVideoEffectFloatParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectFloatParam(option:key:)); + - (float)getVideoEffectFloatParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectFloatParam(option:key:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

用于获取视频特效中指定 optionkey 对应的 float 类型参数值。

+

用于获取视频特效中指定 optionkey 对应的 float 类型参数值。

+
+
+ 参数 + + + option + 参数所属选项的类别。 + + + key + 参数的键名。 + + + option + 参数类别的标识符。 + + + key + 参数的键名。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + +
+
+ 返回值 +

+

    +
  • 如果参数存在,返回对应的 float 值。
  • +
  • 如果参数不存在或发生错误,返回 0.0f。
  • +
+

+

+

    +
  • 方法调用成功,返回当前的 float 值。
  • +
  • 方法调用失败,返回 0.0f。
  • +
+

+

+

    +
  • 如果参数存在,返回对应的 float 值。
  • +
  • 如果参数不存在或发生错误,返回 0.0f。
  • +
+

+

+

    +
  • 如果参数存在,返回对应的 float 值。
  • +
  • 如果参数不存在或发生错误,返回 0.0f。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectintparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectintparam.dita new file mode 100644 index 00000000000..e3c5a3a3573 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_getvideoeffectintparam.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="getVideoEffectIntParam"/> + 获取视频特效中的整数类型参数。获取视频特效中的整数类型参数。获取视频特效中的整数类型参数。获取视频特效中的整数类型参数。 + + + + + + + + +
+

+ virtual int getVideoEffectIntParam(const char* option, const char* key) = 0; + int getVideoEffectIntParam(String option, String key); + - (int)getVideoEffectIntParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectIntParam(option:key:)); + - (int)getVideoEffectIntParamWithOption:(NSString *)option + key:(NSString *)key +NS_SWIFT_NAME(getVideoEffectIntParam(option:key:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + option + 参数类别的标识符。 + + + key + 参数的键名。 + + + option + 参数类别的标识符。 + + + key + 参数的键值。 + + + option + 参数类别的标识符。 + + + key + 参数的键值。 + + +
+
+ 返回值 +

+

    +
  • 如果参数存在,返回对应的整数值。
  • +
  • 如果参数不存在或发生错误,返回 0。
  • +
+

+

+

    +
  • 方法调用成功,返回当前参数值。
  • +
  • 方法调用失败,返回 0。
  • +
+

+

+

    +
  • 方法调用成功时,返回对应参数的整数值。
  • +
  • 方法调用失败或参数不存在时,返回 0。
  • +
+

+

+

    +
  • 方法调用成功时,返回对应参数的整数值。
  • +
  • 方法调用失败或参数不存在时,返回 0。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_performvideoeffectaction.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_performvideoeffectaction.dita new file mode 100644 index 00000000000..4b802636702 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_performvideoeffectaction.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="performVideoEffectAction"/> + 对指定的视频特效节点执行操作。对指定的视频特效节点执行操作。对指定的视频特效节点执行操作。对指定的视频特效节点执行操作。 + + + + + + + + +
+

+ virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId) = 0; + int performVideoEffectAction(int nodeId, VIDEO_EFFECT_ACTION actionId); + - (int)performVideoEffectActionWithNodeId:(NSUInteger)nodeId + actionId:(AgoraVideoEffectAction)actionId +NS_SWIFT_NAME(performVideoEffectAction(nodeId:actionId:)); + - (int)performVideoEffectActionWithNodeId:(NSUInteger)nodeId + actionId:(AgoraVideoEffectAction)actionId +NS_SWIFT_NAME(performVideoEffectAction(nodeId:actionId:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + nodeId + 视频特效节点的唯一标识符。 + + + actionId + 要执行的操作,详见 + + + nodeId + 视频特效节点的唯一标识符。 + + + actionId + 要在视频特效节点上执行的操作,详见 + + + nodeId + 视频特效节点的唯一标识符。 + + + actionId + 要执行的操作,详见 + + + nodeId + 视频特效节点的唯一标识符。 + + + actionId + 要执行的操作,详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_removevideoeffect.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_removevideoeffect.dita new file mode 100644 index 00000000000..a4ee8f7045f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_removevideoeffect.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="removeVideoEffect"/> + 移除指定节点 ID 的视频特效。移除指定节点 ID 的视频特效节点。移除指定节点 ID 的视频特效。移除指定节点 ID 的视频特效。 + + + + + + + + +
+

+ virtual int removeVideoEffect(uint32_t nodeId) = 0; + int removeVideoEffect(int nodeId); + - (int)removeVideoEffectWithNodeId:(NSUInteger)nodeId +NS_SWIFT_NAME(removeVideoEffect(nodeId:)); + - (int)removeVideoEffectWithNodeId:(NSUInteger)nodeId +NS_SWIFT_NAME(removeVideoEffect(nodeId:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + nodeId + 要移除的视频特效节点的唯一标识符,详见 + + + nodeId + 要移除的视频特效节点的唯一标识符。 + + + nodeId + 要移除的视频特效节点的唯一标识符。详见 + + + nodeId + 要移除的视频特效节点的唯一标识符。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectboolparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectboolparam.dita new file mode 100644 index 00000000000..2e8d11c39b9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectboolparam.dita @@ -0,0 +1,149 @@ + + + + <ph keyref="setVideoEffectBoolParam"/> + 设置视频特效的布尔参数。设置视频特效的布尔参数。设置视频特效的布尔参数。设置视频特效的布尔参数。 + + + + + + + + +
+

+ virtual int setVideoEffectBoolParam(const char* option, const char* key, bool param) = 0; + int setVideoEffectBoolParam(String option, String key, boolean value); + - (int)setVideoEffectBoolParamWithOption:(NSString *)option + key:(NSString *)key + boolValue:(BOOL)boolValue +NS_SWIFT_NAME(setVideoEffectBoolParam(option:key:boolValue:)); + - (int)setVideoEffectBoolParamWithOption:(NSString *)option + key:(NSString *)key + boolValue:(BOOL)boolValue +NS_SWIFT_NAME(setVideoEffectBoolParam(option:key:boolValue:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + param + 要设置的布尔值: +
    +
  • :启用该选项。
  • +
  • :禁用该选项。
  • +
+
+
+ + option + 参数类别的标识符。 + + + key + 参数的键名。 + + + value + 要设置的布尔值: +
    +
  • :设置为启用。
  • +
  • :设置为禁用。
  • +
+
+
+ + option + 参数选项的类别。 + + + key + 参数的键名。 + + + boolValue + 要设置的布尔值。 +
    +
  • :设置为启用。
  • +
  • :设置为禁用。
  • +
+
+
+ + option + 参数选项的类别。 + + + key + 参数的键名。 + + + boolValue + 要设置的布尔值。 +
    +
  • :设置为启用。
  • +
  • :设置为禁用。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita new file mode 100644 index 00000000000..968f708c912 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="setVideoEffectFloatParam"/> + 设置视频特效的浮点参数。设置视频特效的浮点参数。设置视频特效的浮点参数。设置视频特效的浮点参数。 + + + + + + + + +
+

+ virtual int setVideoEffectFloatParam(const char* option, const char* key, float param) = 0; + int setVideoEffectFloatParam(String option, String key, float value); + - (int)setVideoEffectFloatParamWithOption:(NSString *)option + key:(NSString *)key + floatValue:(float)floatValue +NS_SWIFT_NAME(setVideoEffectFloatParam(option:key:floatValue:)); + - (int)setVideoEffectFloatParamWithOption:(NSString *)option + key:(NSString *)key + floatValue:(float)floatValue +NS_SWIFT_NAME(setVideoEffectFloatParam(option:key:floatValue:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + param + 要设置的浮点值。 + + + option + 参数类别标识符。 + + + key + 参数键名。 + + + value + 要设置的浮点型参数值。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + floatValue + 要设置的浮点值。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + floatValue + 要设置的浮点值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectintparam.dita b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectintparam.dita new file mode 100644 index 00000000000..6cfa482f4ba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoeffectobject_setvideoeffectintparam.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="setVideoEffectIntParam"/> + :设置视频特效的整数参数。设置视频特效的整数参数。设置视频特效的整数参数。设置视频特效的整数参数。 + + + + + + + + +
+

+ virtual int setVideoEffectIntParam(const char* option, const char* key, int param) = 0; + int setVideoEffectIntParam(String option, String key, int value); + - (int)setVideoEffectIntParamWithOption:(NSString *)option + key:(NSString *)key + intValue:(int)intValue +NS_SWIFT_NAME(setVideoEffectIntParam(option:key:intValue:)); + - (int)setVideoEffectIntParamWithOption:(NSString *)option + key:(NSString *)key + intValue:(int)intValue +NS_SWIFT_NAME(setVideoEffectIntParam(option:key:intValue:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 参数 + + + option + 参数所属选项的类别。 + + + key + 参数的键名。 + + + param + 要设置的整数参数值。 + + + option + 参数类别的标识符。 + + + key + 参数的键名。 + + + value + 要设置的整数值。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + intValue + 要设置的整数值。 + + + option + 参数选项的类别。 + + + key + 参数的键名。 + + + intValue + 要设置的整数值。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoframeobserver_getmirrorapplied.dita b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getmirrorapplied.dita new file mode 100644 index 00000000000..dc089ee1776 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getmirrorapplied.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="getMirrorApplied"/> + 每次 SDK 接收到视频帧时触发的回调,用于设置是否镜像采集的视频。每次 SDK 接收到视频帧时触发的回调,用于设置是否对采集的视频进行镜像。设置是否镜像采集的视频。设置是否镜像采集的视频。 + + + + + + + + +
+

+ virtual bool getMirrorApplied() { return false; } + @CalledByNative boolean getMirrorApplied(); + - (BOOL)getMirrorApplied NS_SWIFT_NAME(getMirrorApplied()); + - (BOOL)getMirrorApplied NS_SWIFT_NAME(getMirrorApplied()); +

+
+
+

如果你希望获取的视频数据是原始视频的镜像图像,需要在调用 时注册该回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要通过该回调的返回值设置是否对视频帧进行镜像处理。

+

如果你希望获取的视频数据是原始视频的镜像图像,需要在调用 时注册该回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要在该回调的返回值中设置是否对视频帧进行镜像。

+

如果你希望获取的视频数据是原始视频的镜像图像,在调用 时需要注册该回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要在该回调的返回值中设置是否对视频帧进行镜像处理。 +

    +
  • 在 iOS 平台,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer
  • +
  • 在 macOS 平台,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
  • 此方法和 方法都支持设置镜像效果。声网建议你仅使用其中一种方式进行设置,同时使用两种方式会导致镜像效果叠加,镜像设置失效。
  • +
+

+

如果你希望获取的视频数据是原始视频的镜像图像,在调用 时需要注册该回调。成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要在该回调的返回值中设置是否对视频帧进行镜像处理。 +

    +
  • 在 iOS 平台,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer
  • +
  • 在 macOS 平台,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
  • 此方法和 方法都支持设置镜像效果。声网建议你仅使用其中一种方式进行设置,同时使用两种方式会导致镜像效果叠加,镜像设置失效。
  • +
+

+ +
    +
  • 在 Windows 平台,该回调支持的视频数据格式包括:I420、RGBA 和 TextureBuffer。
  • +
  • 在 Android 平台,该回调支持的视频数据格式包括:I420、RGBA 和 Texture。
  • +
  • 在 iOS 平台,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer。
  • +
  • 在 macOS 平台,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
  • 该方法与 方法均支持设置镜像效果。建议你仅使用其中一种方法。若同时使用两种方法,可能导致镜像效果叠加,从而使设置失效。
  • +
+
+ +
    +
  • 在 Android 平台,该回调支持的视频数据格式包括:I420、RGBA 和 Texture。
  • +
  • 该方法与 都支持设置镜像效果。建议你仅使用其中一种方式进行设置,同时使用两种方式会导致镜像效果叠加,从而使设置失效。
  • +
+
+
+
+ 调用时机 +

每次 SDK 接收到视频帧时触发。

+

该回调在 SDK 每次接收到视频帧时被触发。

+

每次 SDK 接收到视频帧时触发。

+

每次 SDK 接收到视频帧时触发。

+
+
+ 返回值 +

+

    +
  • :镜像采集的视频。
  • +
  • :(默认)不镜像采集的视频。
  • +
+

+

是否对采集的视频进行镜像: +

    +
  • :对采集的视频进行镜像。
  • +
  • :(默认)不对采集的视频进行镜像。
  • +
+

+

是否镜像采集的视频: +

    +
  • :镜像采集的视频。
  • +
  • :(默认)不镜像采集的视频。
  • +
+

+

是否镜像采集的视频: +

    +
  • :镜像采集的视频。
  • +
  • :(默认)不镜像采集的视频。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoframeobserver_getobservedframeposition.dita b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getobservedframeposition.dita new file mode 100644 index 00000000000..8c772e9729a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getobservedframeposition.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="getObservedFramePosition"/> + 设置视频观察器的帧位置。设置视频观察器的帧位置。设置视频观察器的帧位置。设置视频观察器的帧位置。 + + + + + + + + +
+

+ virtual uint32_t getObservedFramePosition() + @CalledByNative int getObservedFramePosition(); + - (AgoraVideoFramePosition)getObservedFramePosition NS_SWIFT_NAME(getObservedFramePosition()); + - (AgoraVideoFramePosition)getObservedFramePosition NS_SWIFT_NAME(getObservedFramePosition()); +

+
+
+

在成功注册视频数据观察器后,SDK 会通过该回调判断是否在特定的视频帧处理位置触发 回调,从而让你观察本地采集的视频数据、远端接收的视频数据以及编码前的视频数据。你可以根据实际场景,通过修改返回值设置一个或多个需要观察的位置: +

    +
  • POSITION_POST_CAPTURER (1 << 0):视频采集后的位置,对应 回调。
  • +
  • POSITION_PRE_RENDERER (1 << 1):远端视频数据在渲染前的位置,对应 回调。
  • +
  • POSITION_PRE_ENCODER (1 << 2):编码前的位置,对应 回调。
  • +
+

+

在成功注册视频数据观察器后,SDK 会通过该回调判断是否在特定的视频帧处理位置触发 回调。你可以根据业务场景,通过修改返回值设置一个或多个需要观察的位置: +

    +
  • VIDEO_MODULE_POSITION_POST_CAPTURER (1 << 0):视频采集后的位置,对应 回调。
  • +
  • VIDEO_MODULE_POSITION_PRE_RENDERER (1 << 1):远端视频渲染前的位置,对应 回调。
  • +
  • VIDEO_MODULE_POSITION_PRE_ENCODER (1 << 2):编码前的位置,对应 回调。
  • +
+

+

在你成功注册视频数据观察器后,SDK 会通过该回调判断是否在特定的视频帧处理位置触发 onCaptureVideoFrameonRenderVideoFrameonPreEncodeVideoFrame 回调,从而让你观察本地采集的视频数据、远端发送的视频数据以及编码前的视频数据。你可以根据实际场景,通过修改返回值设置一个或多个需要观察的位置: +

    +
  • AgoraVideoModulePositionPostCapture (1 << 0):视频采集后的位置,对应 onCaptureVideoFrame 回调。
  • +
  • AgoraVideoModulePositionPreRenderer (1 << 1):接收的远端视频数据在渲染前的位置,对应 onRenderVideoFrame 回调。
  • +
  • AgoraVideoModulePositionPreEncoder (1 << 2):编码前的视频数据位置,对应 onPreEncodeVideoFrame 回调。
  • +
+

+

在你成功注册视频数据观察器后,SDK 会通过该回调判断是否在特定的视频帧处理位置触发 onCaptureVideoFrameonRenderVideoFrameonPreEncodeVideoFrame 回调,从而让你观察本地采集的视频数据、远端发送的视频数据以及编码前的视频数据。你可以根据实际场景,通过修改返回值设置一个或多个需要观察的位置: +

    +
  • AgoraVideoModulePositionPostCapture (1 << 0):视频采集后的位置,对应 onCaptureVideoFrame 回调。
  • +
  • AgoraVideoModulePositionPreRenderer (1 << 1):接收的远端视频数据在渲染前的位置,对应 onRenderVideoFrame 回调。
  • +
  • AgoraVideoModulePositionPreEncoder (1 << 2):编码前的视频数据位置,对应 onPreEncodeVideoFrame 回调。
  • +
+

+ +
    +
  • 使用 |(按位或运算符)设置多个观察位置。
  • +
  • 默认观察位置为 POSITION_POST_CAPTURER (1 << 0) 和 POSITION_PRE_RENDERER (1 << 1)。
  • +
  • 为节省系统资源,建议减少观察的位置数量。
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 且观察位置为 POSITION_PRE_ENCODER | POSITION_POST_CAPTURER 时, 不生效。你需要修改视频处理模式或观察位置。
  • +
+
+ +
    +
  • 使用 |(按位或运算符)以观察多个帧位置。
  • +
  • 默认情况下,该回调观察 AgoraVideoModulePositionPostCapture (1 << 0) 和 AgoraVideoModulePositionPreRenderer (1 << 1)。
  • +
  • 为节省系统资源,你可以减少需要观察的帧位置数量。
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 且观察位置设置为 AgoraVideoModulePositionPreEncoder | AgoraVideoModulePositionPostCapture 时, 不生效。你需要修改视频处理模式或观察器的位置。
  • +
+
+ +
    +
  • 使用 |(按位或运算符)以观察多个帧位置。
  • +
  • 默认情况下,该回调观察 AgoraVideoModulePositionPostCapture (1 << 0) 和 AgoraVideoModulePositionPreRenderer (1 << 1)。
  • +
  • 为节省系统资源,你可以减少需要观察的帧位置数量。
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 且观察位置设置为 AgoraVideoModulePositionPreEncoder | AgoraVideoModulePositionPostCapture 时, 不生效。你需要修改视频处理模式或观察器的位置。
  • +
+
+
+
+ 返回值 +

方法调用成功,返回用于控制视频观察器帧位置的位掩码。详见

+

方法调用成功,返回用于控制视频观察器帧位置的位掩码: +

    +
  • VIDEO_MODULE_POSITION_POST_CAPTURER (1 << 0):视频采集后的位置。
  • +
  • VIDEO_MODULE_POSITION_PRE_RENDERER (1 << 1):远端视频渲染前的位置。
  • +
  • VIDEO_MODULE_POSITION_PRE_ENCODER (1 << 2):编码前的位置。
  • +
+

+

用于控制你希望观察的视频帧位置的位掩码。详见

+

用于控制你希望观察的视频帧位置的位掩码。详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoframeobserver_getrotationapplied.dita b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getrotationapplied.dita new file mode 100644 index 00000000000..921829cafba --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getrotationapplied.dita @@ -0,0 +1,82 @@ + + + + <ph keyref="getRotationApplied"/> + 是否旋转采集视频的回调。 回调在每次 SDK 接收到视频帧时触发,用于设置是否旋转采集的视频。每次 SDK 接收到视频帧时触发,并提示你是否旋转采集的视频。每次 SDK 接收到视频帧时触发,并提示你是否旋转采集的视频。 + + + + + + + + +
+

+ virtual bool getRotationApplied() { return false; } + @CalledByNative boolean getRotationApplied(); + - (BOOL)getRotationApplied NS_SWIFT_NAME(getRotationApplied()); + - (BOOL)getRotationApplied NS_SWIFT_NAME(getRotationApplied()); +

+
+
+

如果你希望根据 类中的 rotation 成员旋转采集的视频,请确保在调用 时注册该回调。在成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要通过该回调的返回值设置是否旋转视频帧。

+

如果你希望根据 VideoFrame 中的 rotation 成员旋转采集的视频,需要在调用 时注册该回调。注册成功后,SDK 每次接收到视频帧时会触发该回调。你需要通过该回调的返回值设置是否旋转视频帧。

+

如果采集设备上的视频已根据 中的 rotation 进行了旋转,则你无需调用该方法设置视频旋转。

+

如果采集设备上的视频已根据 中的 rotation 进行了旋转,则你无需调用该方法设置视频旋转。

+ +
    +
  • 在 Android 平台,该回调支持的视频数据格式包括:I420、RGBA 和 Texture。
  • +
  • 在 Windows 平台,该回调支持的视频数据格式包括:I420、RGBA 和 TextureBuffer。
  • +
  • 在 iOS 平台,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer。
  • +
  • 在 macOS 平台,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
+
+ 在 Android 平台上,该回调支持的视频数据格式包括:I420、RGBA 和 Texture。 + +
    +
  • 在 iOS 上,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer
  • +
  • 在 macOS 上,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
+
+ +
    +
  • 在 iOS 上,该回调支持的视频数据格式包括:I420、RGBA 和 CVPixelBuffer
  • +
  • 在 macOS 上,该回调支持的视频数据格式包括:I420 和 RGBA。
  • +
+
+
+
+ 调用时机 +

每次 SDK 接收到视频帧时触发。

+

该回调在 SDK 每次接收到视频帧时被触发。

+
+
+ 返回值 +

+

    +
  • :旋转采集的视频。
  • +
  • :(默认)不旋转采集的视频。
  • +
+

+

+

    +
  • :旋转采集的视频。
  • +
  • :(默认)不旋转采集的视频。
  • +
+

+

+

    +
  • :旋转采集的视频。
  • +
  • :(默认)不旋转采集的视频。
  • +
+

+

+

    +
  • :旋转采集的视频。
  • +
  • :(默认)不旋转采集的视频。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoformatpreference.dita b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoformatpreference.dita new file mode 100644 index 00000000000..f2f91e42bca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoformatpreference.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="getVideoFormatPreference"/> + 设置 SDK 输出的原始视频数据格式。设置 SDK 输出的原始视频数据格式。设置 SDK 输出的原始视频数据格式。设置 SDK 输出的原始视频数据格式。 + + + + + + + + +
+

+ virtual base::VIDEO_PIXEL_FORMAT getVideoFormatPreference() { return base::VIDEO_PIXEL_DEFAULT; } + @CalledByNative int getVideoFormatPreference(); + - (AgoraVideoFormat)getVideoFormatPreference NS_SWIFT_NAME(getVideoFormatPreference()); + - (AgoraVideoFormat)getVideoFormatPreference NS_SWIFT_NAME(getVideoFormatPreference()); +

+
+
+

调用 方法注册回调后,每次接收到视频帧时,SDK 会触发该回调。你需要在该回调的返回值中设置偏好的视频数据格式。

+

调用 方法注册回调后,SDK 每次接收到视频帧时会触发该回调。你需要在该回调的返回值中设置期望的视频数据格式。

+

调用 方法注册回调后,SDK 每次接收到视频帧时会触发该回调。你需要在该回调的返回值中设置所需的视频数据格式。

+

调用 方法注册回调后,SDK 每次接收到视频帧时会触发该回调。你需要在该回调的返回值中设置所需的视频数据格式。

+ 原始视频的默认像素格式(VIDEO_PIXEL_DEFAULT)如下: +
    +
  • 在 Windows 平台,默认的视频帧类型为 YUV420
  • +
  • 在 Android 平台,默认的视频帧类型可能为 I420BufferTextureBufferTextureBuffer 类型的纹理格式可能为 OES 或 RGB。如果你调用 返回的视频帧类型为 VIDEO_PIXEL_DEFAULT,则在处理视频数据时需要适配 I420BufferTextureBuffer。视频帧类型固定为 I420Buffer 的情况包括但不限于: +
      +
    • 特定设备,例如:LG G5 SE(H848)、Google Pixel 4a、Samsung Galaxy A7 或小米 Max。
    • +
    • 集成了图像增强扩展并启用了视频降噪或弱光增强功能。
    • +
    +
  • +
  • 在 iOS 和 macOS 平台,默认的视频帧类型可能为 I420CVPixelBufferRef
  • +
+
+ VIDEO_PIXEL_DEFAULT 表示原始视频的默认像素格式类型,具体如下: +
    +
  • 在 Android 平台上,默认的视频帧类型可能为 I420BufferTextureBufferTextureBuffer 类型的纹理格式可能为 OES 或 RGB。如果 返回的视频帧类型为 VIDEO_PIXEL_DEFAULT,则在处理视频数据时需要适配 I420BufferTextureBuffer
  • +
视频帧类型固定为 I420Buffer 的情况包括但不限于: +
    +
  • 特定设备,例如:LG G5 SE(H848)、Google Pixel 4a、Samsung Galaxy A7 或小米 Max。
  • +
  • 已集成图像增强扩展并启用了视频降噪或弱光增强功能。
  • +
+
+ 原始视频的默认像素格式类型(AgoraVideoFormatDefault)如下: +
    +
  • 默认的视频帧类型可能为 I420CVPixelBufferRef
  • +
+
+ 原始视频的默认像素格式类型(AgoraVideoFormatDefault)如下: +
    +
  • 默认的视频帧类型可能为 I420CVPixelBufferRef
  • +
+
+
+
+ 返回值 +

设置 SDK 输出的原始数据格式,详见

+

方法调用成功,返回 SDK 输出的原始数据格式: +

    +
  • VIDEO_PIXEL_DEFAULT(0):原始视频格式,需适配 I420BufferTextureBuffer
  • +
  • VIDEO_PIXEL_I420(1):I420 格式。
  • +
  • VIDEO_PIXEL_RGBA(4):RGBA 格式。
  • +
  • VIDEO_PIXEL_I422(16):I422 格式。
  • +
+

+

方法调用成功时,返回原始视频数据的格式,详见

+

方法调用成功时,返回原始视频数据的格式,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoframeprocessmode.dita b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoframeprocessmode.dita new file mode 100644 index 00000000000..ccfb72dd960 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_ivideoframeobserver_getvideoframeprocessmode.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="getVideoFrameProcessMode"/> + 回调。每次 SDK 接收到视频帧时触发,用于设置视频帧的处理模式。 回调。每次 SDK 接收到视频帧时触发,并提示你设置视频帧的处理模式。 回调。每次 SDK 接收到视频帧时触发,并提示你设置视频帧的处理模式。 回调。每次 SDK 接收到视频帧时触发,并提示你设置视频帧的处理模式。 + + + + + + + + +
+

+ virtual VIDEO_FRAME_PROCESS_MODE getVideoFrameProcessMode() { return PROCESS_MODE_READ_ONLY; } + @CalledByNative int getVideoFrameProcessMode(); + - (AgoraVideoFrameProcessMode)getVideoFrameProcessMode NS_SWIFT_NAME(getVideoFrameProcessMode()); + - (AgoraVideoFrameProcessMode)getVideoFrameProcessMode NS_SWIFT_NAME(getVideoFrameProcessMode()); +

+
+
+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要通过该回调的返回值设置你偏好的处理模式。

+

在成功注册视频帧观察器后,SDK 每次接收到视频帧时会触发 回调。你需要在该回调的返回值中设置偏好的处理模式。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要在该回调的返回值中设置你偏好的处理模式。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。你需要在该回调的返回值中设置你偏好的处理模式。

+
+
+ 调用时机 +

每次 SDK 接收到视频帧时触发。

+

每次 SDK 接收到视频帧时触发。

+

每次 SDK 接收到视频帧时触发。

+
+
+ 返回值 +

方法调用成功时,返回一个 枚举值,表示你设置的视频帧处理模式。详见

+

视频帧的处理模式: +

    +
  • PROCESS_MODE_READ_ONLY(0):(默认)只读取视频帧。
  • +
  • PROCESS_MODE_READ_WRITE(1):读取并写入视频帧。
  • +
+

+

方法调用成功时,返回你设置的视频帧处理模式,详见

+

方法调用成功时,返回你设置的视频帧处理模式,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_addbackgroundimage.dita b/dita/RTC-AIDOC/API/api_livetranscoding_addbackgroundimage.dita new file mode 100644 index 00000000000..c6cf5380a35 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_addbackgroundimage.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="addBackgroundImage"/> + 将背景图像添加到 backgroundImageList + + + + + + + + +
+

+ public void addBackgroundImage(AgoraImage backgroundImage) +

+
+
+

如果 backgroundImageList 为空,则初始化该列表,并将背景图像添加到该列表中。

+
+
+ 参数 + + + backgroundImage + 要添加的背景图像。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_adduser.dita b/dita/RTC-AIDOC/API/api_livetranscoding_adduser.dita new file mode 100644 index 00000000000..c8e318faaa5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_adduser.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="addUser"/> + 向 CDN 推流中添加一个展示视频的用户。向 CDN 推流中添加一个显示视频的用户。向 CDN 推流中添加一个展示视频的用户。 + + + + + + + + +
+

+ - (int)addUser:(AgoraLiveTranscodingUser* _Nonnull)user NS_SWIFT_NAME(add(_:)); + public int addUser(TranscodingUser user) + - (int)addUser:(AgoraLiveTranscodingUser* _Nonnull)user NS_SWIFT_NAME(add(_:)); +

+
+
+
+ 参数 + + + user + 转码用户。详见 + + + user + 要添加的转码用户。详见 + + + user + 转码用户。详见 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_addwatermark.dita b/dita/RTC-AIDOC/API/api_livetranscoding_addwatermark.dita new file mode 100644 index 00000000000..ba799a3f314 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_addwatermark.dita @@ -0,0 +1,30 @@ + + + + <ph keyref="addWatermark"/> + 将水印添加到列表中。 + + + + + + + + +
+

+ public void addWatermark(AgoraImage watermark) +

+
+
+
+ 参数 + + + watermark + 你想要添加的水印。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_defaulttranscoding.dita b/dita/RTC-AIDOC/API/api_livetranscoding_defaulttranscoding.dita new file mode 100644 index 00000000000..ff75740540a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_defaulttranscoding.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="defaultTranscoding"/> + 创建一个默认的云端转码对象。创建一个默认的云端转码对象。 + + + + + + + + +
+

+ + (AgoraLiveTranscoding* _Nonnull)defaultTranscoding NS_SWIFT_NAME(default()); + + (AgoraLiveTranscoding* _Nonnull)defaultTranscoding NS_SWIFT_NAME(default()); +

+
+
+
+ 返回值 +

方法调用成功,返回默认的 对象,详见

+

方法调用成功,返回默认的 对象,详见

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getadvancedfeatures.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getadvancedfeatures.dita new file mode 100644 index 00000000000..260a929e8c7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getadvancedfeatures.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="getAdvancedFeatures"/> + 检查是否启用了带云端转码的 RTMP 或 RTMPS 推流的高级功能。检查是否启用了带转码的 RTMP 或 RTMPS 推流的高级功能。检查是否启用了带云端转码的 RTMP 或 RTMPS 推流的高级功能。 + + + + + + + + +
+

+ - (NSArray<AgoraLiveStreamAdvancedFeature*>* _Nullable)getAdvancedFeatures NS_SWIFT_NAME(getAdvancedFeatures()); + public Map<String, Boolean> getAdvancedFeatures() + - (NSArray<AgoraLiveStreamAdvancedFeature*>* _Nullable)getAdvancedFeatures NS_SWIFT_NAME(getAdvancedFeatures()); +

+
+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回包含每个高级功能名称及其启用状态的 对象数组,详见
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回每个高级功能的名称及其启用状态的 Map
  • +
  • 方法调用失败,返回空的 Map
  • +
+

+

+

    +
  • 方法调用成功,返回包含每个高级功能名称及其启用状态的 对象数组,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundcolor.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundcolor.dita new file mode 100644 index 00000000000..3439c2804e9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundcolor.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getBackgroundColor"/> + 获取背景颜色的十六进制 RGB 值。 + + + + + + + + +
+

+ public int getBackgroundColor() +

+
+
+
+ 返回值 +

方法调用成功,返回背景颜色的十六进制 RGB 值。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundimagelist.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundimagelist.dita new file mode 100644 index 00000000000..4fabf9cfb27 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getbackgroundimagelist.dita @@ -0,0 +1,26 @@ + + + + <ph keyref="getBackgroundImageList"/> + 获取 backgroundImageList 的对象属性。 + + + + + + + + +
+

+ public ArrayList<AgoraImage> getBackgroundImageList() +

+
+
+
+ 返回值 +

方法调用成功,返回 对象列表。 +方法调用失败,返回空列表。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getblue.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getblue.dita new file mode 100644 index 00000000000..80483db735f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getblue.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getBlue"/> + 获取背景颜色的蓝色分量。 + + + + + + + + +
+

+ public int getBlue() +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 返回值 +

方法调用成功,返回背景颜色的蓝色分量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getgreen.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getgreen.dita new file mode 100644 index 00000000000..c99b0e6513d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getgreen.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getGreen"/> + 获取背景颜色的绿色分量。 + + + + + + + + +
+

+ public int getGreen() +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 返回值 +

方法调用成功,返回背景颜色的绿色分量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getred.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getred.dita new file mode 100644 index 00000000000..e6ebab58cb5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getred.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getRed"/> + 获取背景颜色的红色分量。 + + + + + + + + +
+

+ public int getRed() +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 返回值 +

方法调用成功,返回背景颜色的红色分量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getusercount.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getusercount.dita new file mode 100644 index 00000000000..9f35390b6a2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getusercount.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getUserCount"/> + 获取在 CDN 推流中进行转码的用户数量。 + + + + + + + + +
+

+ public int getUserCount() +

+
+
+
+ 返回值 +

方法调用成功,返回在 CDN 推流中进行转码的用户数量。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getusers.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getusers.dita new file mode 100644 index 00000000000..776ae81c6a8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getusers.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getUsers"/> + 获取 CDN 推流中的用户列表。 + + + + + + + + +
+

+ public final ArrayList<TranscodingUser> getUsers() +

+
+
+

返回的用户列表为只读,不应修改。

+
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 对象列表。
  • +
  • 方法调用失败,返回空列表。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_getwatermarklist.dita b/dita/RTC-AIDOC/API/api_livetranscoding_getwatermarklist.dita new file mode 100644 index 00000000000..1c113fbdb12 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_getwatermarklist.dita @@ -0,0 +1,26 @@ + + + + <ph keyref="getWatermarkList"/> + 获取 watermarkList 的对象属性。 + + + + + + + + +
+

+ public ArrayList<AgoraImage> getWatermarkList() +

+
+
+
+ 返回值 +

方法调用成功,返回 对象列表。 +方法调用失败,返回空列表。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_removebackgroundimage.dita b/dita/RTC-AIDOC/API/api_livetranscoding_removebackgroundimage.dita new file mode 100644 index 00000000000..82f6d0f4d62 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_removebackgroundimage.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="removeBackgroundImage"/> + 从背景图像列表中移除指定的背景图像。 + + + + + + + + +
+

+ public boolean removeBackgroundImage(AgoraImage backgroundImage) +

+
+
+
+ 参数 + + + backgroundImage + 要移除的背景图像。详见 + + +
+
+ 返回值 +

+

    +
  • :移除成功。
  • +
  • :移除失败。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_removeuser.dita b/dita/RTC-AIDOC/API/api_livetranscoding_removeuser.dita new file mode 100644 index 00000000000..bf3b86b217c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_removeuser.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="removeUser"/> + 从 CDN 推流中移除用户。从 CDN 推流中移除指定用户。从 CDN 推流中移除用户。 + + + + + + + + +
+

+ - (int)removeUser:(NSUInteger)uid NS_SWIFT_NAME(removeUser(_:)); + public int removeUser(int uid) + - (int)removeUser:(NSUInteger)uid NS_SWIFT_NAME(removeUser(_:)); +

+
+
+
+ 参数 + + + uid + 要从 CDN 推流中移除的用户 ID。 + + + uid + 要从 CDN 推流中移除的用户 ID。 + + + uid + 要从 CDN 推流中移除的用户 ID。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/ios/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)了解详情和解决建议。
  • +
+

+

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/macos/error-code)了解详情和解决建议。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_removewatermark.dita b/dita/RTC-AIDOC/API/api_livetranscoding_removewatermark.dita new file mode 100644 index 00000000000..2b1c75d32e7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_removewatermark.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="removeWatermark"/> + 从列表中移除水印对象。 + + + + + + + + +
+

+ public boolean removeWatermark(AgoraImage watermark) +

+
+
+
+ 参数 + + + watermark + 要移除的水印对象。详见 + + +
+
+ 返回值 +

+

    +
  • :移除成功。
  • +
  • :移除失败。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setadvancedfeatures.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setadvancedfeatures.dita new file mode 100644 index 00000000000..621f10a739c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setadvancedfeatures.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="setAdvancedFeatures"/> + 启用或禁用带转码的 RTMP 或 RTMPS 推流的高级功能。启用或禁用带转码的 RTMP 或 RTMPS 推流的高级功能。启用或禁用带转码的 RTMP 或 RTMPS 推流的高级功能。 + + + + + + + + +
+

+ - (void)setAdvancedFeatures:(NSString* _Nonnull)featureName opened:(BOOL)opened NS_SWIFT_NAME(setAdvancedFeatures(_:opened:)); + public void setAdvancedFeatures(String featureName, Boolean opened) + - (void)setAdvancedFeatures:(NSString* _Nonnull)featureName opened:(BOOL)opened NS_SWIFT_NAME(setAdvancedFeatures(_:opened:)); +

+
+
+

通过该方法可以启用或禁用带转码的 RTMP 或 RTMPS 推流的高级功能。

+

通过该方法可以启用或禁用带转码的 RTMP 或 RTMPS 推流的高级功能。

+
+
+ 参数 + + + featureName + 高级功能名称,包括以下选项: +
    +
  • LBHQ:低码率高画质的视频高级功能。
  • +
  • VEO:优化视频编码器的高级功能。
  • +
+
+
+ + opened + 是否启用该高级功能: +
    +
  • :启用该高级功能。
  • +
  • :(默认)禁用该高级功能。
  • +
+
+
+ + featureName + 高级功能名称,例如 LBHQVEO + + + opened + 是否启用该高级功能: +
    +
  • :启用该高级功能。
  • +
  • :(默认)禁用该高级功能。
  • +
+
+
+ + featureName + 高级功能名称,包括以下选项: +
    +
  • LBHQ:低码率高画质的视频高级功能。
  • +
  • VEO:优化视频编码器的高级功能。
  • +
+
+
+ + opened + 是否启用该高级功能: +
    +
  • :启用该高级功能。
  • +
  • :(默认)禁用该高级功能。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor.dita new file mode 100644 index 00000000000..055fc99805f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="setBackgroundColor"/> + 设置 CDN 推流画面的背景颜色。 + + + + + + + + +
+

+ public void setBackgroundColor(int color) +

+
+
+

颜色格式为 RGB 十六进制值。

+
+
+ 参数 + + + color + 要设置的背景颜色,使用 RGB 十六进制值,仅填写数值,不包含 #。例如:0xFFB6C1 表示浅粉色。默认值为 0x000000(黑色)。(默认) + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor2.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor2.dita new file mode 100644 index 00000000000..311602fb546 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setbackgroundcolor2.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="setBackgroundColor2"/> + 设置 RGB 格式的背景颜色。 + + + + + + + + +
+

+ public void setBackgroundColor(int red, int green, int blue) +

+
+
+
+ 参数 + + + red + 红色分量。 + + + green + 绿色分量。 + + + blue + 蓝色分量。 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setblue.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setblue.dita new file mode 100644 index 00000000000..b53e23e66c5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setblue.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="setBlue"/> + 设置背景颜色的蓝色分量。 + + + + + + + + +
+

+ public void setBlue(int blue) +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 参数 + + + blue + 蓝色分量的值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setgreen.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setgreen.dita new file mode 100644 index 00000000000..051d1cbd454 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setgreen.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="setGreen"/> + 设置背景颜色的绿色分量。 + + + + + + + + +
+

+ public void setGreen(int green) +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 参数 + + + green + 绿色分量的值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setred.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setred.dita new file mode 100644 index 00000000000..fa8c9b410b5 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setred.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="setRed"/> + 设置背景颜色中红色分量的值。 + + + + + + + + +
+

+ public void setRed(int red) +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+
+
+
+ 参数 + + + red + 红色分量的值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setusers.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setusers.dita new file mode 100644 index 00000000000..3fc48a336c6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setusers.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="setUsers"/> + 批量设置 CDN 推流中的用户。 + + + + + + + + +
+

+ public void setUsers(ArrayList<TranscodingUser> users) +

+
+
+

该方法用于用新的用户数据替换旧的数据,设置所有参与 CDN 推流的用户。

+
+
+ 参数 + + + users + 所有参与 CDN 推流的用户。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_livetranscoding_setusers2.dita b/dita/RTC-AIDOC/API/api_livetranscoding_setusers2.dita new file mode 100644 index 00000000000..d761f075c24 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_livetranscoding_setusers2.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="setUsers2"/> + 批量设置参与 CDN 推流的用户。 + + + + + + + + +
+

+ public void setUsers(Map<Integer, TranscodingUser> users) +

+
+
+

该方法用于批量设置所有参与 CDN 推流的用户,并用新的用户数据替换旧的数据。

+
+
+ 参数 + + + users + 所有参与 CDN 推流的用户。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musicchartcollection_get.dita b/dita/RTC-AIDOC/API/api_musicchartcollection_get.dita new file mode 100644 index 00000000000..836c7257171 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musicchartcollection_get.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="get"/> + 获取指定音乐榜单的详细信息。 + + + + + + + + +
+

+ virtual MusicChartInfo* get(int index) = 0; +

+
+
+
+ 参数 + + + index + 数组中的索引。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 实例,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musicchartcollection_getcount_musicchartcollection.dita b/dita/RTC-AIDOC/API/api_musicchartcollection_getcount_musicchartcollection.dita new file mode 100644 index 00000000000..8bf9045aba8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musicchartcollection_getcount_musicchartcollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getCount_MusicChartCollection"/> + 获取当前请求中的音乐排行榜数量。 + + + + + + + + +
+

+ virtual int getCount() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回当前请求中的音乐排行榜数量。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musiccollection_getcount_musiccollection.dita b/dita/RTC-AIDOC/API/api_musiccollection_getcount_musiccollection.dita new file mode 100644 index 00000000000..4084c008831 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musiccollection_getcount_musiccollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getCount_MusicCollection"/> + 获取当前请求中的音乐项数量。 + + + + + + + + +
+

+ virtual int getCount() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回当前请求中的音乐项数量。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musiccollection_getmusic_musiccollection.dita b/dita/RTC-AIDOC/API/api_musiccollection_getmusic_musiccollection.dita new file mode 100644 index 00000000000..d8745a442bd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musiccollection_getmusic_musiccollection.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="getMusic_MusicCollection"/> + 获取当前页面中指定音乐资源的详细信息。 + + + + + + + + +
+

+ virtual Music* getMusic(int32_t index) = 0; +

+
+
+
+ 参数 + + + index + 数组中的索引。 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 实例,详见
  • +
  • 方法调用失败,返回
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musiccollection_getpage_musiccollection.dita b/dita/RTC-AIDOC/API/api_musiccollection_getpage_musiccollection.dita new file mode 100644 index 00000000000..4659a048c8c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musiccollection_getpage_musiccollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getPage_MusicCollection"/> + 获取音乐资源列表当前的页码。 + + + + + + + + +
+

+ virtual int getPage() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回当前页码。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musiccollection_getpagesize_musiccollection.dita b/dita/RTC-AIDOC/API/api_musiccollection_getpagesize_musiccollection.dita new file mode 100644 index 00000000000..c6ce8179928 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musiccollection_getpagesize_musiccollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getPageSize_MusicCollection"/> + 获取 SDK 实际返回的音乐资源数量。 + + + + + + + + +
+

+ virtual int getPageSize() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回 SDK 实际返回的音乐资源数量。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_musiccollection_gettotal_musiccollection.dita b/dita/RTC-AIDOC/API/api_musiccollection_gettotal_musiccollection.dita new file mode 100644 index 00000000000..54c247d9e24 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_musiccollection_gettotal_musiccollection.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="getTotal_MusicCollection"/> + 获取音乐资源列表中的总数。 + + + + + + + + +
+

+ virtual int getTotal() = 0; +

+
+
+
+ 返回值 +

方法调用成功,返回音乐资源的总数。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_getconfigs_player.dita b/dita/RTC-AIDOC/API/api_player_getconfigs_player.dita new file mode 100644 index 00000000000..76f04af9a2f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_getconfigs_player.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="GetConfigs_Player"/> + 获取当前播放器配置。获取当前媒体播放器的配置选项。获取当前媒体播放器配置选项。获取当前媒体播放器配置选项。 + + + + + + + + +
+

+ bool GetConfigs(PlayerConfig* config, Error *err = nullptr) + public void getConfigs(PlayerConfig config) throws RteException + - (BOOL)getConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; + - (BOOL)getConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 后调用该方法。

+

该方法必须在调用 之后使用。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+
+ 参数 + + + config + 输出参数,播放器配置对象。详见 + + + err + 输出参数,状态或错误信息。详见 + + + config + 媒体播放器配置对象,详见 + + + config + 媒体播放器配置选项,详见 + + + error + 状态或错误信息,详见 + + + config + 媒体播放器配置选项,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_getinfo.dita b/dita/RTC-AIDOC/API/api_player_getinfo.dita new file mode 100644 index 00000000000..44893cbeef7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_getinfo.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="GetInfo"/> + 获取播放器和媒体流的信息。检索与播放器和媒体流相关的信息。获取播放器播放和媒体流相关的信息。获取播放器播放和媒体流相关的信息。 + + + + + + + + +
+

+ bool GetInfo(PlayerInfo *info, Error *err = nullptr) + public void getInfo(PlayerInfo info) throws RteException + - (BOOL)getInfo:(AgoraRtePlayerInfo * _Nonnull)info error:(AgoraRteError * _Nullable)error; + - (BOOL)getInfo:(AgoraRtePlayerInfo * _Nonnull)info error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以使用该方法获取播放器和媒体流的详细信息,例如音频采样率、视频帧大小等。

+

你可以使用该方法获取播放器和媒体流相关的信息,例如音频采样率和视频帧尺寸。

+

你可以使用该方法获取播放器和媒体流相关的信息,例如音频采样率和视频帧尺寸。

+ 你必须在调用 之后调用此方法。 + 你必须在调用 之后调用此方法。 +
+
+ 调用时机 +

在调用 之后调用此方法。

+

该方法必须在调用 之后使用。

+
+
+ 参数 + + + info + 输出参数,表示播放器和媒体流的信息。详见 + + + err + 输出参数,状态或错误信息。详见 + + + info + 与播放器和媒体流相关的信息,详见 + + + info + 播放器和媒体流相关的信息。详见 + + + error + 状态或错误信息。详见 + + + info + 播放器和媒体流相关的信息。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :成功获取信息。
  • +
  • :获取信息失败。
  • +
+

+

+

    +
  • :成功获取信息。
  • +
  • :获取信息失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_getposition.dita b/dita/RTC-AIDOC/API/api_player_getposition.dita new file mode 100644 index 00000000000..6a5e86cb16d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_getposition.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="GetPosition"/> + 获取当前播放位置。获取当前的播放位置。获取当前播放位置。获取当前播放位置。 + + + + + + + + +
+

+ uint64_t GetPosition(Error *err = nullptr) + public long getPosition() throws RteException + - (uint64_t)getPosition:(AgoraRteError * _Nullable)error; + - (uint64_t)getPosition:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

该方法用于获取当前播放的时间位置,单位为毫秒。

+

该方法用于获取当前播放的时间位置,单位为毫秒。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 。 +
    +
  • kRteOk:调用成功。
  • +
  • kRteErrorInvalidOperation: +
      +
    • 对应的内部 对象已被销毁或无效。
    • +
    • 打开的 URL 是 RTE URL,不支持调用
    • +
    +
  • +
+
+
+ + error + 输出参数,用于指示错误信息。可能的返回值包括: +
    +
  • AgoraRteOk:调用成功。
  • +
  • AgoraRteErrorInvalidOperation: +
      +
    • 对应的内部 对象已被销毁或无效。
    • +
    • 打开的 URL 是 RTE URL,不支持调用 。详见
    • +
    +
  • +
+
+
+ + error + 输出参数,用于指示错误信息。可能的返回值包括: +
    +
  • AgoraRteOk:调用成功。
  • +
  • AgoraRteErrorInvalidOperation: +
      +
    • 对应的内部 对象已被销毁或无效。
    • +
    • 打开的 URL 是 RTE URL,不支持调用 。详见
    • +
    +
  • +
+
+
+
+
+
+ 返回值 +

方法调用成功,返回当前播放位置,单位为毫秒。

+

方法调用成功,返回当前的播放位置,单位为毫秒。

+

方法调用成功时,返回当前播放位置,单位为毫秒。

+

方法调用成功时,返回当前播放位置,单位为毫秒。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_getstats.dita b/dita/RTC-AIDOC/API/api_player_getstats.dita new file mode 100644 index 00000000000..b479f7ff8a6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_getstats.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="GetStats"/> + 获取播放器当前播放的媒体资源的统计信息。获取播放器当前播放媒体资源的统计信息。获取播放器当前播放媒体资源的统计信息。获取播放器当前播放媒体资源的统计信息。 + + + + + + + + +
+

+ void GetStats(std::function<void(rte::PlayerStats *stats, rte::Error *err)> cb) + public void getStats(PlayerGetStatsCallback callback) + - (void)getStats:(void (^_Nonnull)(AgoraRtePlayerStats* _Nonnull stats, AgoraRteError* _Nullable err))cb; + - (void)getStats:(void (^_Nonnull)(AgoraRtePlayerStats* _Nonnull stats, AgoraRteError* _Nullable err))cb; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

该方法通过回调异步返回播放器的统计信息,包括解码情况、渲染帧率、音视频码率等。

+

该方法通过回调异步返回播放器的统计信息。

+

该方法用于获取播放器的统计信息,并通过回调函数异步返回结果。统计信息包括解码和渲染帧率、音视频码率等。

+

该方法用于获取播放器的统计信息,并通过回调函数异步返回结果。统计信息包括解码和渲染帧率、音视频码率等。

+ 你必须在调用 方法之后再调用此方法。 + 你必须在调用 方法之后再调用此方法。 +
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+
+
+ 参数 + + + cb + 异步通知获取播放器媒体资源统计信息结果的回调。你可以通过该回调的参数获取以下信息: +
    +
  • stats:播放器当前播放媒体资源的统计数据,详见
  • +
  • err:状态或错误信息,详见
  • +
+
+
+ + callback + 用于异步接收统计信息和错误信息的回调接口。详见 + + + cb + 一个异步回调函数,用于通知你播放器媒体资源统计信息的获取结果以及任何错误信息。该函数包含以下参数: +
    +
  • stats:播放器当前播放媒体资源的统计信息,详见
  • +
  • err:错误信息,详见
  • +
+
+
+ + cb + 一个异步回调函数,用于通知你播放器媒体资源统计信息的获取结果以及任何错误信息。该函数包含以下参数: +
    +
  • stats:播放器当前播放媒体资源的统计信息,详见
  • +
  • err:错误信息,详见
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_muteaudio.dita b/dita/RTC-AIDOC/API/api_player_muteaudio.dita new file mode 100644 index 00000000000..6131d3152ca --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_muteaudio.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="MuteAudio"/> + 接收或停止接收音频流。开始或停止接收音频流。开始或停止接收音频流。开始或停止接收音频流。 + + + + + + + + +
+

+ bool MuteAudio(bool mute, Error *err = nullptr) + public void muteAudio(boolean mute) throws RteException + - (BOOL)muteAudio:(BOOL)mute error:(AgoraRteError * _Nullable)error; + - (BOOL)muteAudio:(BOOL)mute error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法需要在调用 方法之后调用。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+ +
+ 参数 + + + mute + 是否接收音频流: +
    +
  • :不接收音频流。
  • +
  • :接收音频流。
  • +
+
+
+ + err + 输出参数,状态或错误信息,详见 + + + mute + 是否接收音频流: +
    +
  • :不接收音频流。
  • +
  • :接收音频流。
  • +
+
+
+ + mute + 是否接收音频流: +
    +
  • :不接收音频流。
  • +
  • :接收音频流。
  • +
+
+
+ + error + 输出参数,状态或错误信息,详见 + + + mute + 是否接收音频流: +
    +
  • :不接收音频流。
  • +
  • :接收音频流。
  • +
+
+
+ + error + 输出参数,状态或错误信息,详见 + +
+
+
+ 返回值 +

表示操作成功, 表示操作失败。

+

+

    +
  • :操作成功。
  • +
  • :操作失败。
  • +
+

+

+

    +
  • :操作成功。
  • +
  • :操作失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_mutevideo.dita b/dita/RTC-AIDOC/API/api_player_mutevideo.dita new file mode 100644 index 00000000000..f3ed9dbc15b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_mutevideo.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="MuteVideo"/> + 接收或停止接收视频流。开始或停止接收远端视频流。开始或停止接收远端视频流。开始或停止接收远端视频流。 + + + + + + + + +
+

+ bool MuteVideo(bool mute, Error *err = nullptr) + public void muteVideo(boolean mute) throws RteException + - (BOOL)muteVideo:(BOOL)mute error:(AgoraRteError * _Nullable)error; + - (BOOL)muteVideo:(BOOL)mute error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

你必须在调用 之后调用该方法。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+ +
+ 参数 + + + mute + 是否接收视频流: +
    +
  • :不接收视频流。
  • +
  • :接收视频流。
  • +
+
+
+ + err + 输出参数,状态或错误信息,详见 + + + mute + 是否接收远端视频流: +
    +
  • :不接收远端视频流。
  • +
  • :接收远端视频流。
  • +
+
+
+ + mute + 是否接收远端视频流: +
    +
  • :不接收远端视频流。
  • +
  • :接收远端视频流。
  • +
+
+
+ + error + 状态或错误信息,详见 + + + mute + 是否接收远端视频流: +
    +
  • :不接收远端视频流。
  • +
  • :接收远端视频流。
  • +
+
+
+ + error + 状态或错误信息,详见 + +
+
+
+ 返回值 +

表示操作成功, 表示操作失败。

+

+

    +
  • :操作成功。
  • +
  • :操作失败。
  • +
+

+

+

    +
  • :操作成功。
  • +
  • :操作失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_openwithurl.dita b/dita/RTC-AIDOC/API/api_player_openwithurl.dita new file mode 100644 index 00000000000..3b454f1ad75 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_openwithurl.dita @@ -0,0 +1,120 @@ + + + + <ph keyref="OpenWithUrl"/> + 打开一个 URL 资源。打开一个 URL 资源。打开一个 URL 资源。打开一个 URL 资源。 + + + + + + + + +
+

+ void OpenWithUrl(const char* url, uint64_t start_time, std::function<void(rte::Error* err)> cb) + public void openWithUrl(String url, long startTime, AsyncCallback callback) + - (void)openWithUrl:(NSString * _Nonnull)url startTime:(uint64_t)startTime cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb; + - (void)openWithUrl:(NSString * _Nonnull)url startTime:(uint64_t)startTime cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

该方法支持通过 URL 打开实时流媒体资源。如果你希望加快 URL 的打开速度,可以在调用该方法前调用 预加载资源。如果资源打开失败,你将收到 回调,状态为 kRtePlayerStateFailed。此时,你需要先调用 ,然后再次调用 重新打开 URL 资源。如果你已关闭自动播放功能,可以在资源打开后调用 开始播放。

+

该方法支持通过 URL 打开实时流媒体资源。如果你希望加快打开速度,可以在调用该方法前使用 预加载资源。 +如果资源打开失败,你会收到 回调,播放器状态为 FAILED。此时需要先调用 ,然后再次调用 重新打开资源。 +如果你关闭了自动播放功能,可以在资源打开后调用 开始播放。

+

该方法支持通过 URL 打开实时流媒体资源。若希望加快打开 URL 资源的速度,可以在调用该方法前先调用 预加载资源。

+

该方法支持通过 URL 打开实时流媒体资源。若希望加快打开 URL 资源的速度,可以在调用该方法前先调用 预加载资源。

+ 该方法目前仅支持以 rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。 + 该方法目前仅支持以 rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。 + 该方法目前仅支持打开以 rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。 + 该方法目前仅支持打开以 rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。 +
+
+ 调用时机 +

该方法必须在 初始化后调用。

+

该方法必须在 之后调用。

+

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+
+ +
+ 参数 + + + url + 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以 rte:// 开头的 URL。 + + + start_time + 开始播放的位置,单位为毫秒。 + + + cb + 异步通知 URL 资源打开结果的回调。你可以通过该回调的 err 参数获取操作结果或错误码信息,详见 + + + url + 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以 rte:// 为前缀的 URL。 + + + startTime + 播放的起始位置,单位为毫秒。 + + + callback + 异步通知打开 URL 资源结果的回调。你可以通过该回调的 方法获取错误信息。 + + + url + 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以 rte:// 为前缀的 URL。关于 RTE URL 各字段的详细信息,详见 观众端 URL 拉流 + + + startTime + 起始播放位置,单位为毫秒。 + + + cb + 异步通知打开 URL 资源结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 + + + url + 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以 rte:// 为前缀的 URL。关于 RTE URL 各字段的详细信息,详见 观众端 URL 拉流 + + + startTime + 起始播放位置,单位为毫秒。 + + + cb + 异步通知打开 URL 资源结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_pause_player.dita b/dita/RTC-AIDOC/API/api_player_pause_player.dita new file mode 100644 index 00000000000..41354577ddb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_pause_player.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="Pause_Player"/> + 暂停播放。暂停播放。暂停播放。暂停播放。 + + + + + + + + +
+

+ bool Pause(Error *err = nullptr) + public void pause() throws RteException + - (BOOL)pause:(AgoraRteError * _Nullable)error; + - (BOOL)pause:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

调用 播放 URL 资源后,可以调用此方法暂停播放。如果需要停止播放,请调用 方法。

+

调用 播放 URL 资源后,如需暂停播放,可以调用该方法。如需停止播放,请调用

+

调用 播放 URL 资源后,如果你希望暂停播放,可以调用该方法。如果你希望停止播放,请调用 。你必须在调用 之后调用该方法。

+

调用 播放 URL 资源后,如果你希望暂停播放,可以调用该方法。如果你希望停止播放,请调用 。你必须在调用 之后调用该方法。

+
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+

你必须在调用 之后调用该方法。

+

你必须在调用 之后调用该方法。

+
+ +
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :暂停播放成功。
  • +
  • :暂停播放失败。
  • +
+

+

+

    +
  • :暂停播放成功。
  • +
  • :暂停播放失败。
  • +
+

+

+

    +
  • :暂停播放成功。
  • +
  • :暂停播放失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_play_player.dita b/dita/RTC-AIDOC/API/api_player_play_player.dita new file mode 100644 index 00000000000..ec81b26fe8b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_play_player.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="Play_Player"/> + 播放一个 URL 资源。播放一个 URL 资源。播放一个以 rte:// 开头的 URL 资源。播放一个以 rte:// 开头的 URL 资源。 + + + + + + + + +
+

+ bool Play(Error *err = nullptr) + public void play() throws RteException + - (BOOL)play:(AgoraRteError * _Nullable)error; + - (BOOL)play:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

如果你已关闭自动播放,在使用 成功打开一个在线媒体流后,可以调用该方法开始播放。

+

如果你已关闭自动播放,在使用 成功打开直播流后,可以调用此方法开始播放。

+

如果你已关闭自动播放,在使用 成功打开直播流后,可以调用此方法开始播放。

+ 该方法当前仅支持以 rte:// 开头的 URL。 + 该方法当前仅支持以 rte:// 为前缀的 URL。 +
+
+ 调用时机 +

在收到 回调报告状态为 kRtePlayerStateOpenCompleted 后调用此方法。

+

仅在收到状态为 OPEN_COMPLETED 回调后调用该方法。

+

仅在收到 回调并报告状态为 AgoraRtePlayerStateOpenCompleted 后调用此方法。

+

仅在收到 回调并报告状态为 AgoraRtePlayerStateOpenCompleted 后调用此方法。

+
+ +
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 连接状态或错误信息,详见 + + + error + 连接状态或错误信息,详见 + + +
+
+ 返回值 +

播放是否成功: +

    +
  • :播放成功。
  • +
  • :播放失败。
  • +
+

+

+

    +
  • :播放成功。
  • +
  • :播放失败。
  • +
+

+

+

    +
  • :播放成功。
  • +
  • :播放失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_player_player.dita b/dita/RTC-AIDOC/API/api_player_player_player.dita new file mode 100644 index 00000000000..ed48a90bd2d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_player_player.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="Player_Player"/> + 构造一个 播放器对象。构造一个 播放器对象。构造一个播放器对象。构造一个播放器对象。 + + + + + + + + +
+

+ explicit Player(Rte *self, PlayerInitialConfig *config = nullptr) + public Player(Rte rte, PlayerInitialConfig initialConfig) + - (instancetype _Nonnull)initWithRte:(AgoraRte * _Nonnull)rte initialConfig:(AgoraRtePlayerInitialConfig * _Nullable)config; + - (instancetype _Nonnull)initWithRte:(AgoraRte * _Nonnull)rte initialConfig:(AgoraRtePlayerInitialConfig * _Nullable)config; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+
+ 参数 + + + self + 对象。详见 + + + config + 播放器的初始配置。你可以传入 + + + rte + 一个 对象。详见 + + + initialConfig + 播放器对象的初始化设置。你可以传入 null + + + rte + 一个 对象,详见 + + + config + 播放器对象的初始化设置。你可以传入 + + + rte + 一个 对象,详见 + + + config + 播放器对象的初始化设置。你可以传入 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_preloadwithurl.dita b/dita/RTC-AIDOC/API/api_player_preloadwithurl.dita new file mode 100644 index 00000000000..c92e5b285f2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_preloadwithurl.dita @@ -0,0 +1,114 @@ + + + + <ph keyref="PreloadWithUrl"/> + 预加载 URL 资源。预加载 URL 资源。预加载 URL 资源。预加载 URL 资源。 + + + + + + + + +
+

+ static bool PreloadWithUrl(const char* url, Error *err = nullptr) + public static void preloadWithUrl(String url) throws RteException + + (BOOL)preloadWithUrl:(NSString * _Nonnull)url error:(AgoraRteError * _Nullable)error; + + (BOOL)preloadWithUrl:(NSString * _Nonnull)url error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

预加载成功后,通过 打开该 URL 资源的速度可以提升,从而减少等待时间,提升视听体验。

+

成功预加载资源可以加快使用 打开 URL 资源的速度,从而减少等待时间。

+

你可以在调用 之前调用该方法,成功预加载 URL 资源后,可以更快地通过 打开该资源,从而减少等待时间,提升视听体验的流畅度。

+

你可以在调用 之前调用该方法,成功预加载 URL 资源后,可以更快地通过 打开该资源,从而减少等待时间,提升视听体验的流畅度。

+ 该方法目前仅支持以 rte:// 开头的 URL。最多可预加载 20 个 URL,若超过限制,最早预加载的 URL 会被新预加载的 URL 替换。 + 该方法目前仅适用于以 rte:// 为前缀的 URL。最多可预加载 20 个 URL,若超过限制,新预加载的 URL 会替换最早的 URL。 + 该方法当前仅对以 rte:// 为前缀的 URL 生效。最多可预加载 20 个 URL,若超过限制,最新预加载的 URL 会替换最早的 URL。 + 该方法当前仅对以 rte:// 为前缀的 URL 生效。最多可预加载 20 个 URL,若超过限制,最新预加载的 URL 会替换最早的 URL。 +
+
+ 适用场景 +

在打开媒体资源前预加载,可以减少用户等待时间,提供更流畅的视听体验。

+
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

必须在调用 之前调用该方法。

+
+
+ 参数 + + + url + rte:// 开头的 URL。 + + + err + 输出参数,状态或错误信息,详见 + + + url + rte:// 为前缀的 URL。各字段的详细信息参见观众端的“输入在线媒体流”。 + + + url + rte:// 为前缀的 URL。 + + + error + 状态或错误信息,详见 + + + url + rte:// 为前缀的 URL。 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

是否预加载成功: +

    +
  • :预加载成功。
  • +
  • :预加载失败。
  • +
+

+

+

    +
  • :预加载成功。
  • +
  • :预加载失败。
  • +
+

+

+

    +
  • :预加载成功。
  • +
  • :预加载失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_registerobserver_player.dita b/dita/RTC-AIDOC/API/api_player_registerobserver_player.dita new file mode 100644 index 00000000000..3c7116f072a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_registerobserver_player.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="RegisterObserver_Player"/> + 注册一个 播放器观察者对象。注册一个观察者,用于管理 的内部资源。注册一个播放器观察者对象。注册一个播放器观察者对象。 + + + + + + + + +
+

+ bool RegisterObserver(PlayerObserver *observer, Error *err = nullptr) + public void registerObserver(PlayerObserver observer) throws RteException + - (BOOL)registerObserver:(AgoraRtePlayerObserver *_Nonnull)observer error:(AgoraRteError * _Nullable)error; + - (BOOL)registerObserver:(AgoraRtePlayerObserver *_Nonnull)observer error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

在调用该方法前,你需要实现一个继承自 的接口类。

+

在调用此方法之前,你需要实现一个继承自 的接口类。你必须在调用 之后再调用此方法。

+

在调用此方法之前,你需要实现一个继承自 的接口类。你必须在调用 之后再调用此方法。

+
+
+ 调用时机 +

该方法必须在调用 之后执行。

+

你必须在调用 之前调用此方法。

+
+
+ 参数 + + + observer + 接口对象的实例。详见 + + + err + 输出参数,状态或错误信息。详见 + + + observer + 详见 + + + observer + 接口对象实例,详见 + + + error + 状态或错误信息,详见 + + + observer + 接口对象实例,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

是否注册成功: +

    +
  • :注册成功。
  • +
  • :注册失败。
  • +
+

+

+

    +
  • :注册成功。
  • +
  • :注册失败。
  • +
+

+

+

    +
  • :注册成功。
  • +
  • :注册失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_seek.dita b/dita/RTC-AIDOC/API/api_player_seek.dita new file mode 100644 index 00000000000..7203cd39e4e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_seek.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="Seek"/> + 跳转到新的播放位置。跳转到指定的播放位置。跳转到指定的播放位置。跳转到指定的播放位置。 + + + + + + + + +
+

+ bool Seek(uint64_t new_time, Error *err = nullptr) + public void seek(long newTime) throws RteException + - (BOOL)seek:(uint64_t)newTime error:(AgoraRteError * _Nullable)error; + - (BOOL)seek:(uint64_t)newTime error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 参数 + + + new_time + 要跳转到的新播放位置。 + + + err + 输出参数,状态或错误信息,详见 。 +
    +
  • kRteOk:成功。
  • +
  • kRteErrorInvalidOperation: +
      +
    • 对应的内部 对象已被销毁或无效。
    • +
    • 打开的 URL 是 RTE URL,不支持跳转。
    • +
    +
  • +
+
+
+ + newTime + 要跳转到的播放位置,单位为毫秒。 + + + newTime + 要跳转到的播放位置。 + + + error + 输出参数,用于在跳转操作失败时返回错误信息。详见 + + + newTime + 要跳转到的播放位置。 + + + error + 输出参数,用于在跳转操作失败时返回错误信息。详见 + +
+
+
+ 返回值 +

+

    +
  • :成功跳转到播放位置。
  • +
  • :跳转失败。
  • +
+

+

+

    +
  • :跳转成功。
  • +
  • :跳转失败。
  • +
+

+

+

    +
  • :跳转成功。
  • +
  • :跳转失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_setcanvas.dita b/dita/RTC-AIDOC/API/api_player_setcanvas.dita new file mode 100644 index 00000000000..9a8e0af0e0e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_setcanvas.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="SetCanvas"/> + 设置用于显示视频的视图窗口。设置用于显示视频的视图窗口。设置用于显示视频的视图窗口。设置用于显示视频的视图窗口。 + + + + + + + + +
+

+ bool SetCanvas(Canvas *canvas, Error *err = nullptr) + public void setCanvas(Canvas canvas) throws RteException + - (BOOL)setCanvas:(AgoraRteCanvas *_Nonnull)canvas error:(AgoraRteError * _Nullable)error; + - (BOOL)setCanvas:(AgoraRteCanvas *_Nonnull)canvas error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

该方法用于指定一个 `Canvas`` 对象用于显示视频。一旦视频流成功播放,视频将显示在该 上。

+

该方法用于设置用于显示视频的 对象。

+

该方法用于设置用于显示视频的视图窗口。在视频流成功开始播放后,视频将渲染在指定的 canvas 上。

+

该方法用于设置用于显示视频的视图窗口。在视频流成功开始播放后,视频将渲染在指定的 canvas 上。

+ 你必须在调用 之后调用此方法。 + 你必须在调用 之后调用此方法。 +
+
+ 调用时机 +

该方法必须在调用 之后执行。

+

该方法必须在调用 之后调用。

+
+
+ 参数 + + + canvas + 对象,用于渲染视频帧,详见 + + + err + 输出参数,状态或错误信息,详见 + + + canvas + 用于渲染视频帧的对象,详见 + + + canvas + 用于渲染视频帧的视图窗口。详见 + + + error + 状态或错误信息。详见 + + + canvas + 用于渲染视频帧的视图窗口。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

+

    +
  • :设置成功。
  • +
  • :设置失败。你可以通过 err 参数返回的错误码查看详细信息。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。你可以通过 error 参数返回的错误码获取详细信息。
  • +
+

+

+

    +
  • :设置成功。
  • +
  • :设置失败。你可以通过 error 参数返回的错误码获取详细信息。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_setconfigs_player.dita b/dita/RTC-AIDOC/API/api_player_setconfigs_player.dita new file mode 100644 index 00000000000..57ee2f8c7a2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_setconfigs_player.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="SetConfigs_Player"/> + 配置播放器。设置播放器配置。配置播放器参数。配置播放器参数。 + + + + + + + + +
+

+ bool SetConfigs(PlayerConfig* config, Error *err = nullptr) + public void setConfigs(PlayerConfig config) throws RteException + - (BOOL)setConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; + - (BOOL)setConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以调用该方法配置播放器,例如启用自动播放、订阅不同分辨率和码率的视频流等。

+

你可以调用此方法配置播放器,例如启用自动播放、订阅不同分辨率和码率的视频流。

+

你可以调用此方法配置播放器,例如启用自动播放、订阅不同分辨率和码率的视频流。

+ 必须在调用 之后调用此方法。 + 必须在调用 之后调用此方法。 +
+
+ 调用时机 +

该方法必须在调用 之后执行。

+

此方法必须在调用 之后调用。

+
+
+ 参数 + + + config + 播放器配置对象,详见 + + + err + 输出参数,状态或错误信息,详见 + + + config + 播放器配置对象,详见 + + + config + 播放器配置对象。详见 + + + error + 状态或错误信息。详见 + + + config + 播放器配置对象。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

配置是否成功: +

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_stop_player.dita b/dita/RTC-AIDOC/API/api_player_stop_player.dita new file mode 100644 index 00000000000..0833a11ba65 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_stop_player.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="Stop_Player"/> + 停止媒体播放。停止播放媒体资源。停止播放。停止播放。 + + + + + + + + +
+

+ bool Stop(Error *err = nullptr) + public void stop() throws RteException + - (BOOL)stop:(AgoraRteError * _Nullable)error; + - (BOOL)stop:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

成功调用 后,可以调用该方法停止播放。如果希望暂停播放,请调用 方法。如果使用 打开 URL 流失败,则需要先调用该方法,再重新调用 以重新打开 URL。

+

如果使用 打开 URL 流失败,你需要先调用该方法,然后再调用 重新打开 URL。

+
+
+ 调用时机 +

此方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+
+ +
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 。可能返回以下 : +
    +
  • AgoraRteOk:成功。
  • +
  • AgoraRteErrorInvalidOperation:对应的内部 对象已被销毁或无效。
  • +
+
+
+ + error + 状态或错误信息,详见 。可能返回以下 : +
    +
  • AgoraRteOk:成功。
  • +
  • AgoraRteErrorInvalidOperation:对应的内部 对象已被销毁或无效。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • :成功停止播放。
  • +
  • :停止播放失败。
  • +
+

+

+

    +
  • :停止成功。
  • +
  • :停止失败。你可以通过 error 参数查看具体错误信息。
  • +
+

+

+

    +
  • :停止成功。
  • +
  • :停止失败。你可以通过 error 参数查看具体错误信息。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_switchwithurl.dita b/dita/RTC-AIDOC/API/api_player_switchwithurl.dita new file mode 100644 index 00000000000..8ea1d31994b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_switchwithurl.dita @@ -0,0 +1,134 @@ + + + + <ph keyref="SwitchWithUrl"/> + 在播放过程中切换到新的 URL。在播放过程中切换到新的 URL。在播放过程中切换到新的 URL。在播放过程中切换到新的 URL。 + + + + + + + + +
+

+ void SwitchWithUrl(const char* url, bool sync_pts, std::function<void(rte::Error* err)> cb) + public void switchWithUrl(String url, boolean syncPts, AsyncCallback callback) + - (void)switchWithUrl:(NSString * _Nonnull)url syncPts:(BOOL)syncPts cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb; + - (void)switchWithUrl:(NSString * _Nonnull)url syncPts:(BOOL)syncPts cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

当 SDK 返回播放器状态为 OPEN_COMPLETED 时,必须调用该方法。

+ 该方法仅在播放器已打开非 RTE URL 时有效。请在 SDK 报告播放器状态为 kRtePlayerStateOpenCompleted 时调用该方法。 + 该方法仅在播放器打开非 RTE URL 时有效。 + 该方法仅在使用非 RTE URL 打开播放器时有效。你必须在 SDK 返回播放器状态为 AgoraRtePlayerStateOpenCompleted 后调用此方法。 + 该方法仅在使用非 RTE URL 打开播放器时有效。你必须在 SDK 返回播放器状态为 AgoraRtePlayerStateOpenCompleted 后调用此方法。 +
+
+ 参数 + + + url + 要切换到的新 URL。 + + + sync_pts + 是否同步播放位置: +
    +
  • :同步播放位置。
  • +
  • :(默认)不同步播放位置。
  • +
+
+
+ + cb + 异步通知切换操作结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 。 +err 的可能取值包括: +
    +
  • kRteOk:切换成功。
  • +
  • kRteErrorDefault:切换失败。
  • +
  • kRteErrorInvalidArgument:提供的 URL 为空或格式无效。
  • +
  • kRteErrorInvalidOperation: +
      +
    • 对应的内部 对象已被销毁或无效。
    • +
    • 当前打开的 URL 是 RTE URL,不支持切换。
    • +
    +
  • +
+
+
+ + url + 要切换的 URL 资源。 + + + syncPts + +
    +
  • :同步播放位置。
  • +
  • :(默认)不同步播放位置。
  • +
+
+
+ + callback + 异步通知切换操作结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 + + + url + 要切换到的目标 URL。 + + + syncPts + 是否在切换后同步播放位置(单位为毫秒): +
    +
  • :同步播放位置。
  • +
  • :(默认)不同步播放位置。
  • +
+
+
+ + cb + 异步通知切换操作结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 + + + url + 要切换到的目标 URL。 + + + syncPts + 是否在切换后同步播放位置(单位为毫秒): +
    +
  • :同步播放位置。
  • +
  • :(默认)不同步播放位置。
  • +
+
+
+ + cb + 异步通知切换操作结果的回调。你可以通过该回调的 err 参数得知操作的结果或错误码信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_player_unregisterobserver_player.dita b/dita/RTC-AIDOC/API/api_player_unregisterobserver_player.dita new file mode 100644 index 00000000000..14dd3186f95 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_player_unregisterobserver_player.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="UnregisterObserver_Player"/> + 取消注册播放器事件观察者对象。取消注册 observer 对象,停止接收 RTE 回调事件。取消注册媒体播放器事件观察者对象。取消注册媒体播放器事件观察者对象。 + + + + + + + + +
+

+ bool UnregisterObserver(PlayerObserver *observer, Error *err = nullptr) + public void unregisterObserver(PlayerObserver observer) throws RteException + - (BOOL)unregisterObserver:(AgoraRtePlayerObserver * _Nullable)observer error:(AgoraRteError * _Nullable)error; + - (BOOL)unregisterObserver:(AgoraRtePlayerObserver * _Nullable)observer error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

调用 注册播放器事件观察者后,如需取消注册,可调用该方法。

+

调用 注册媒体播放器事件观察者对象后,如需取消注册该观察者对象,可以调用此方法。

+

调用 注册媒体播放器事件观察者对象后,如需取消注册该观察者对象,可以调用此方法。

+ 该方法必须在调用 之后调用。 + 该方法必须在调用 之后调用。 +
+
+ 调用时机 +

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+

该方法必须在调用 之后调用。

+
+
+ 参数 + + + observer + 播放器事件观察者对象实例,详见 + + + err + 输出参数,状态或错误信息,详见 + + + observer + 详见 + + + observer + 媒体播放器事件观察者对象。详见 + + + error + 状态或错误信息。详见 + + + observer + 媒体播放器事件观察者对象。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

+

    +
  • :取消注册成功。
  • +
  • :取消注册失败。
  • +
+

+

+

    +
  • :取消注册成功。
  • +
  • :取消注册失败。
  • +
+

+

+

    +
  • :取消注册成功。
  • +
  • :取消注册失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getabrfallbacklayer.dita b/dita/RTC-AIDOC/API/api_playerconfig_getabrfallbacklayer.dita new file mode 100644 index 00000000000..a21a79d2c3b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getabrfallbacklayer.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="GetAbrFallbackLayer"/> + 获取已配置的视频流回退选项。获取已配置的视频流回退选项。获取已配置的视频流分层回退选项。获取已配置的视频流分层回退选项。 + + + + + + + + +
+

+ AbrFallbackLayer GetAbrFallbackLayer(Error *err = nullptr) + public Constants.AbrFallbackLayer getAbrFallbackLayer() throws RteException + - (AgoraRteAbrFallbackLayer)abrFallbackLayer:(AgoraRteError * _Nullable)error; + - (AgoraRteAbrFallbackLayer)abrFallbackLayer:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 GetConfigs 之后调用该方法。

+

你必须在调用 getConfigs 之后调用此方法。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

方法调用成功时,返回已配置的视频流回退选项,详见

+

方法调用成功,返回已配置的视频流回退选项。详见

+

已配置的视频流分层回退选项,详见

+

已配置的视频流分层回退选项,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getabrsubscriptionlayer.dita b/dita/RTC-AIDOC/API/api_playerconfig_getabrsubscriptionlayer.dita new file mode 100644 index 00000000000..b3e0d179df4 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getabrsubscriptionlayer.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="GetAbrSubscriptionLayer"/> + 获取当前设置的已订阅视频流的质量层级。获取已订阅视频流的质量层级。获取订阅端视频流的质量层级。获取订阅端视频流的质量层级。 + + + + + + + + +
+

+ AbrSubscriptionLayer GetAbrSubscriptionLayer(Error *err = nullptr) + public Constants.AbrSubscriptionLayer getAbrSubscriptionLayer() throws RteException + - (AgoraRteAbrSubscriptionLayer)abrSubscriptionLayer:(AgoraRteError * _Nullable)error; + - (AgoraRteAbrSubscriptionLayer)abrSubscriptionLayer:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 GetConfigs 之后调用该方法。

+

你需要在调用 getConfigs 方法之后调用此方法。

+

你必须在调用 之后调用此方法。

+

你必须在调用 之后调用此方法。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回当前设置的视频质量层级,详见

+

方法调用成功,返回当前设置的视频质量层级。详见

+

当前设置的视频质量层级,详见

+

当前设置的视频质量层级,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getautoplay.dita b/dita/RTC-AIDOC/API/api_playerconfig_getautoplay.dita new file mode 100644 index 00000000000..2c16edbcf45 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getautoplay.dita @@ -0,0 +1,98 @@ + + + + <ph keyref="GetAutoPlay"/> + 获取播放器的自动播放设置。获取媒体播放器的自动播放设置。获取媒体播放器的自动播放设置。获取媒体播放器的自动播放设置。 + + + + + + + + +
+

+ bool GetAutoPlay(Error *err = nullptr) + public boolean getAutoPlay() throws RteException + - (BOOL)autoPlay:(AgoraRteError * _Nullable)error; + - (BOOL)autoPlay:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以调用此方法获取媒体播放器当前的自动播放设置。

+

你可以调用此方法获取媒体播放器当前的自动播放设置。

+ 必须在调用 方法之后调用。 + 必须在调用 方法之后调用。 +
+
+ 调用时机 +

在调用 GetConfigs 之后调用此方法。

+

此方法必须在调用 getConfigs 之后调用。

+

必须在调用 方法之后调用。

+

必须在调用 方法之后调用。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

是否成功获取自动播放设置: +

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

是否成功获取自动播放设置: +

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

是否成功获取自动播放设置: +

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getloopcount.dita b/dita/RTC-AIDOC/API/api_playerconfig_getloopcount.dita new file mode 100644 index 00000000000..2f25bd193d0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getloopcount.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="GetLoopCount"/> + 获取媒体文件的循环次数。获取媒体文件的循环播放次数。获取媒体文件的循环次数参数。获取媒体文件的循环次数参数。 + + + + + + + + +
+

+ int32_t GetLoopCount(Error *err = nullptr) + public int getLoopCount() throws RteException + - (int32_t)loopCount:(AgoraRteError * _Nullable)error; + - (int32_t)loopCount:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 输出参数,用于指示错误信息,详见 + + + error + 输出参数,用于指示错误信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回媒体文件的循环次数。

+

方法调用成功,返回媒体文件的循环播放次数。

+

方法调用成功时,返回媒体文件的循环次数。

+

方法调用成功时,返回媒体文件的循环次数。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getplaybackspeed.dita b/dita/RTC-AIDOC/API/api_playerconfig_getplaybackspeed.dita new file mode 100644 index 00000000000..b37043e47bf --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getplaybackspeed.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="GetPlaybackSpeed"/> + 获取播放速度参数。获取播放速度参数。获取播放速度参数。获取播放速度参数。 + + + + + + + + +
+

+ int32_t GetPlaybackSpeed(Error *err = nullptr) + public int getPlaybackSpeed() throws RteException + - (int32_t)playbackSpeed:(AgoraRteError * _Nullable)error; + - (int32_t)playbackSpeed:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 输出参数,用于指示错误信息,详见 + + + error + 输出参数,用于指示错误信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回播放速度值。

+

方法调用成功,返回播放速度的值。

+

方法调用成功时,返回播放速度的值。

+

方法调用成功时,返回播放速度的值。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_getplayoutvolume.dita b/dita/RTC-AIDOC/API/api_playerconfig_getplayoutvolume.dita new file mode 100644 index 00000000000..a3656f2207f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_getplayoutvolume.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="GetPlayoutVolume"/> + 获取播放器的播放音量。获取媒体播放器的播放音量。获取媒体播放器的播放音量。获取媒体播放器的播放音量。 + + + + + + + + +
+

+ int32_t GetPlayoutVolume(Error *err = nullptr) + public int getPlayoutVolume() throws RteException + - (int32_t)playoutVolume:(AgoraRteError * _Nullable)error; + - (int32_t)playoutVolume:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 输出参数,用于返回错误信息,详见 + + + error + 输出参数,用于返回错误信息,详见 + + +
+
+ 返回值 +

方法调用成功,返回播放器的音量值。

+

方法调用成功,返回媒体播放器的播放音量级别。

+

方法调用成功,返回媒体播放器的播放音量。

+

方法调用成功,返回媒体播放器的播放音量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setabrfallbacklayer.dita b/dita/RTC-AIDOC/API/api_playerconfig_setabrfallbacklayer.dita new file mode 100644 index 00000000000..c23f954c416 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setabrfallbacklayer.dita @@ -0,0 +1,230 @@ + + + + <ph keyref="SetAbrFallbackLayer"/> + 设置已订阅视频流的回退选项。设置已订阅远端视频流的回退选项。设置已订阅远端视频流的分层推流回退选项。设置已订阅远端视频流的分层推流回退选项。 + + + + + + + + +
+

+ void SetAbrFallbackLayer(AbrFallbackLayer abr_fallback_layer, Error *err = nullptr) + public void setAbrFallbackLayer(Constants.AbrFallbackLayer fallbackLayer) throws RteException + - (void)setAbrFallbackLayer:(AgoraRteAbrFallbackLayer)layer error:(AgoraRteError * _Nullable)error; + - (void)setAbrFallbackLayer:(AgoraRteAbrFallbackLayer)layer error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

在网络状况较差时,SDK 会将视频流的分辨率降级为指定的回退质量层,以保证播放的连续性。不同的质量层对应不同的分辨率和码率。SDK 会持续监测网络状况,在网络恢复后自动将视频流恢复为订阅的质量层。 +默认情况下,仅支持回退到 kRteAbrFallbackLowkRteAbrFallbackAudioOnly。如需更灵活的视频体验,可[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能,开启后可回退到所有质量层,并自定义每一层的分辨率。

+

在网络状况不佳时,SDK 会将已订阅远端视频流的分辨率降级到指定的视频质量层。每个质量层对应特定的分辨率和码率。网络恢复后,SDK 会将视频流恢复至原始质量层。

+

在网络条件较差时,实时音视频通信的质量可能会下降。调用该方法后,SDK 会在网络变差时将远端视频流的分辨率回退到指定的视频质量层级。每个视频质量层级对应特定的分辨率和码率。SDK 会持续监测网络质量,在网络改善时恢复到原始订阅的视频质量层级。 + +默认情况下,调用该方法后只能选择回退到 AgoraRteAbrFallbackLowAgoraRteAbrFallbackAudioOnly。如果你对视频体验有更高要求,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,可以回退到所有视频质量层级,并自定义每个层级的分辨率。

+

在网络条件较差时,实时音视频通信的质量可能会下降。调用该方法后,SDK 会在网络变差时将远端视频流的分辨率回退到指定的视频质量层级。每个视频质量层级对应特定的分辨率和码率。SDK 会持续监测网络质量,在网络改善时恢复到原始订阅的视频质量层级。 + +默认情况下,调用该方法后只能选择回退到 AgoraRteAbrFallbackLowAgoraRteAbrFallbackAudioOnly。如果你对视频体验有更高要求,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,可以回退到所有视频质量层级,并自定义每个层级的分辨率。

+ 如果在调用该方法时未开启 ABR 功能,视频流的回退质量层只能为 kRteAbrFallbackLowkRteAbrFallbackAudioOnly + 如果未开启 ABR 功能,视频流的回退质量层只能设置为 LOWAUDIO_ONLY + 如果未开启 ABR 功能,远端视频流的回退质量层级只能设置为 AgoraRteAbrFallbackLowAgoraRteAbrFallbackAudioOnly + 如果未开启 ABR 功能,远端视频流的回退质量层级只能设置为 AgoraRteAbrFallbackLowAgoraRteAbrFallbackAudioOnly +
+
+ 适用场景 +

一般场景下,可调用该方法并将回退质量层设置为 kRteAbrFallbackLowkRteAbrFallbackAudioOnly。当网络较差时,SDK 会回退为视频小流或仅接收音频流。 +如果对回退视频流的分辨率有更高要求,可[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,可自定义每一层的分辨率。SDK 会以你指定的最低质量层的分辨率为下限,并根据网络状况在该范围内动态调整分辨率。

+
+
+ 调用时机 +

该方法必须在调用 SetConfigs 之前调用。

+

必须在调用 setConfigs 之前调用该方法。

+

必须在调用 之前调用该方法。

+

必须在调用 之前调用该方法。

+
+
+ 参数 + + + abr_fallback_layer + 视频流的回退质量层,详见 。当自定义 kRteAbrFallbackLayer1kRteAbrFallbackLayer6 的分辨率时,可参考下表: + 自定义分辨率时,务必将视频质量层按分辨率从高到低排序;当分辨率相同时,按帧率从高到低排序。 + + + 视频质量层 + 分辨率 + + + kRteAbrSubscriptionLayer1 + 2160p (4K) + + + kRteAbrSubscriptionLayer2 + 1440p (2K) + + + kRteAbrSubscriptionLayer3 + 1080p (HD) + + + kRteAbrSubscriptionLayer4 + 720p (HD) + + + kRteAbrSubscriptionLayer5 + 540p (SD) + + + kRteAbrSubscriptionLayer6 + 480p (SD) + + + + + + err + 状态或错误信息,详见 + + + fallbackLayer + 视频流的回退质量层,详见 。 + 自定义分辨率时,请确保视频质量层按从高到低的分辨率排序;若分辨率相同,则按帧率从高到低排序。 + + + 视频质量层 + 分辨率 + + + LAYER1 + 2160p (4K) + + + LAYER2 + 1440p (2K) + + + LAYER3 + 1080p (HD) + + + LAYER4 + 720p (HD) + + + LAYER5 + 540p (SD) + + + LAYER6 + 480p (SD) + + + + + + + layer + 回退的视频质量层级。可选值详见 。当自定义 AgoraRteAbrFallbackLayer1AgoraRteAbrFallbackLayer6 的分辨率时,可参考下表或根据实际需求定义: + 自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。 + + + 视频质量层级 + 分辨率 + + + AgoraRteAbrSubscriptionLayer1 + 2160p (4K) + + + AgoraRteAbrSubscriptionLayer2 + 1440p (2K) + + + AgoraRteAbrSubscriptionLayer3 + 1080p (HD) + + + AgoraRteAbrSubscriptionLayer4 + 720p (HD) + + + AgoraRteAbrSubscriptionLayer5 + 540p (SD) + + + AgoraRteAbrSubscriptionLayer6 + 480p (SD) + + 自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。详见 `AgoraRteAbrFallbackLayer`。 + + + + error + 状态或错误信息。详见 + + + layer + 回退的视频质量层级。可选值详见 。当自定义 AgoraRteAbrFallbackLayer1AgoraRteAbrFallbackLayer6 的分辨率时,可参考下表或根据实际需求定义: + 自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。 + + + 视频质量层级 + 分辨率 + + + AgoraRteAbrSubscriptionLayer1 + 2160p (4K) + + + AgoraRteAbrSubscriptionLayer2 + 1440p (2K) + + + AgoraRteAbrSubscriptionLayer3 + 1080p (HD) + + + AgoraRteAbrSubscriptionLayer4 + 720p (HD) + + + AgoraRteAbrSubscriptionLayer5 + 540p (SD) + + + AgoraRteAbrSubscriptionLayer6 + 480p (SD) + + 自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。详见 `AgoraRteAbrFallbackLayer`。 + + + + error + 状态或错误信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setabrsubscriptionlayer.dita b/dita/RTC-AIDOC/API/api_playerconfig_setabrsubscriptionlayer.dita new file mode 100644 index 00000000000..c86e1b3729f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setabrsubscriptionlayer.dita @@ -0,0 +1,226 @@ + + + + <ph keyref="SetAbrSubscriptionLayer"/> + 设置订阅媒体流的视频质量层级。设置订阅媒体流的视频质量等级。设置订阅端媒体流的视频质量层级。设置订阅端媒体流的视频质量层级。 + + + + + + + + +
+

+ void SetAbrSubscriptionLayer(AbrSubscriptionLayer abr_subscription_layer, Error *err = nullptr) + public void setAbrSubscriptionLayer(Constants.AbrSubscriptionLayer subscriptionLayer) throws RteException + - (void)setAbrSubscriptionLayer:(AgoraRteAbrSubscriptionLayer)layer error:(AgoraRteError * _Nullable)error; + - (void)setAbrSubscriptionLayer:(AgoraRteAbrSubscriptionLayer)layer error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以根据实际网络状况在不同的视频流质量层级之间切换,每个层级对应不同的分辨率。默认情况下,调用该方法后,订阅端只能在高低画质之间切换,即 kRteAbrSubscriptionHighkRteAbrSubscriptionLow。如果你对视频分辨率切换有更高要求,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR(自适应码率)功能。开启后,你可以自定义每个视频质量层级的分辨率,订阅端可根据需要在所有视频质量层级之间切换。

+

你可以根据实际网络状况,在所订阅的视频流中切换不同的视频质量等级。如果你需要更高级的视频分辨率切换控制,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR(自适应码率)功能。开启后,你可以为每个视频质量等级自定义分辨率,使观众可以根据需要在多质量层级视频流的所有等级之间切换。

+

你可以根据实际的网络状况,在多质量层级视频流中切换不同的视频质量层级,每个层级对应不同的分辨率。默认情况下,调用该方法后,观众只能在高、低两个视频流之间切换,即 AgoraRteAbrSubscriptionHighAgoraRteAbrSubscriptionLow。如果你需要更高级的分辨率切换功能,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR(自适应码率)功能。开启后,你可以自定义每个视频质量层级的分辨率,观众可以根据需要在所有可用的视频质量层级之间切换。

+

你可以根据实际的网络状况,在多质量层级视频流中切换不同的视频质量层级,每个层级对应不同的分辨率。默认情况下,调用该方法后,观众只能在高、低两个视频流之间切换,即 AgoraRteAbrSubscriptionHighAgoraRteAbrSubscriptionLow。如果你需要更高级的分辨率切换功能,可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR(自适应码率)功能。开启后,你可以自定义每个视频质量层级的分辨率,观众可以根据需要在所有可用的视频质量层级之间切换。

+ 如果在调用该方法时未开启 ABR 功能,订阅的视频质量层级只能为 kRteAbrSubscriptionHighkRteAbrSubscriptionLow + 如果未开启 ABR 功能,你只能订阅 HIGHLOW 视频质量等级。 + 如果在调用该方法时未开启 ABR 功能,订阅的视频质量层级只能设置为 AgoraRteAbrSubscriptionHighAgoraRteAbrSubscriptionLow + 如果在调用该方法时未开启 ABR 功能,订阅的视频质量层级只能设置为 AgoraRteAbrSubscriptionHighAgoraRteAbrSubscriptionLow +
+
+ 适用场景 +

在网络环境不稳定的场景中,订阅端可根据实际网络状况选择合适的视频质量层级,以保障流畅的观看体验。

+
+
+ 调用时机 +

该方法必须在调用 SetConfigs 之前调用。

+

该方法必须在调用 setConfigs 之前调用。

+

你必须在调用 之前调用该方法。

+

你必须在调用 之前调用该方法。

+
+
+ 参数 + + + abr_subscription_layer + 要订阅的视频质量层级,详见 。当自定义 kRteAbrSubscriptionLayer1kRteAbrSubscriptionLayer6 的分辨率时,可参考下表或根据实际需求设置: + +注意:自定义分辨率时,需确保视频质量层级按分辨率从高到低排序;当分辨率相同时,按帧率从高到低排序。 + + + 视频质量层级 + 分辨率 + + + kRteAbrSubscriptionLayer1 + 2160p (4K) + + + kRteAbrSubscriptionLayer2 + 1440p (2K) + + + kRteAbrSubscriptionLayer3 + 1080p (HD) + + + kRteAbrSubscriptionLayer4 + 720p (HD) + + + kRteAbrSubscriptionLayer5 + 540p (SD) + + + kRteAbrSubscriptionLayer6 + 480p (SD) + + + + + + err + 输出参数,状态或错误信息,详见 + + + subscriptionLayer + 要订阅的视频质量等级,详见 。在自定义 LAYER1LAYER6 的分辨率时,你可以参考下表,或根据实际需求进行配置: +注意:自定义分辨率时,必须按分辨率从高到低排序各视频质量等级(Layer),若分辨率相同,则按帧率从高到低排序。 + + + 视频质量等级 + 分辨率 + + + LAYER1 + 2160p (4K) + + + LAYER2 + 1440p (2K) + + + LAYER3 + 1080p (HD) + + + LAYER4 + 720p (HD) + + + LAYER5 + 540p (SD) + + + LAYER6 + 480p (SD) + + + + + + layer + 要订阅的视频质量层级。你可以自定义 AgoraRteAbrSubscriptionLayer1AgoraRteAbrSubscriptionLayer6 的分辨率,参考如下建议,或根据实际需求定义: + +注意:自定义分辨率时,请确保视频质量层级按分辨率从高到低排序;如果分辨率相同,则按帧率从高到低排序。 + + + 视频质量层级 + 分辨率 + + + AgoraRteAbrSubscriptionLayer1 + 2160p (4K) + + + AgoraRteAbrSubscriptionLayer2 + 1440p (2K) + + + AgoraRteAbrSubscriptionLayer3 + 1080p (HD) + + + AgoraRteAbrSubscriptionLayer4 + 720p (HD) + + + AgoraRteAbrSubscriptionLayer5 + 540p (SD) + + + AgoraRteAbrSubscriptionLayer6 + 480p (SD) + + 详见 `AgoraRteAbrSubscriptionLayer`。 + + + + error + 状态或错误信息。详见 + + + layer + 要订阅的视频质量层级。你可以自定义 AgoraRteAbrSubscriptionLayer1AgoraRteAbrSubscriptionLayer6 的分辨率,参考如下建议,或根据实际需求定义: + +注意:自定义分辨率时,请确保视频质量层级按分辨率从高到低排序;如果分辨率相同,则按帧率从高到低排序。 + + + 视频质量层级 + 分辨率 + + + AgoraRteAbrSubscriptionLayer1 + 2160p (4K) + + + AgoraRteAbrSubscriptionLayer2 + 1440p (2K) + + + AgoraRteAbrSubscriptionLayer3 + 1080p (HD) + + + AgoraRteAbrSubscriptionLayer4 + 720p (HD) + + + AgoraRteAbrSubscriptionLayer5 + 540p (SD) + + + AgoraRteAbrSubscriptionLayer6 + 480p (SD) + + 详见 `AgoraRteAbrSubscriptionLayer`。 + + + + error + 状态或错误信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setautoplay.dita b/dita/RTC-AIDOC/API/api_playerconfig_setautoplay.dita new file mode 100644 index 00000000000..04b4c2afe6a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setautoplay.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="SetAutoPlay"/> + 设置是否自动播放。设置是否启用自动播放。设置是否启用自动播放。设置是否启用自动播放。 + + + + + + + + +
+

+ void SetAutoPlay(bool auto_play, Error *err = nullptr) + public void setAutoPlay(boolean autoPlay) throws RteException + - (void)setAutoPlay:(BOOL)autoPlay error:(AgoraRteError * _Nullable)error; + - (void)setAutoPlay:(BOOL)autoPlay error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

在调用 打开媒体流之前,可以调用该方法设置是否自动播放。如果未设置,默认启用自动播放。

+

你可以在调用 之前调用此方法设置是否启用自动播放。如果未设置,默认启用自动播放。

+

你可以在调用 之前调用此方法设置是否启用自动播放。如果未设置,默认启用自动播放。

+

你可以在调用 之前调用此方法设置是否启用自动播放。如果未设置,默认启用自动播放。

+ 该方法必须在调用 之前调用。 + 该方法必须在调用 之前调用。 +
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

此方法必须在调用 之前调用。

+

该方法必须在调用 之前调用。

+

该方法必须在调用 之前调用。

+
+
+ 参数 + + + auto_play + 是否启用自动播放: +
    +
  • :(默认)启用自动播放。
  • +
  • :不启用自动播放。
  • +
+
+
+ + err + 输出参数,表示状态或错误信息,详见 + + + autoPlay + 是否启用自动播放: +
    +
  • :(默认)启用自动播放。
  • +
  • :关闭自动播放。
  • +
+
+
+ + autoPlay + 是否启用自动播放: +
    +
  • :(默认)启用自动播放。
  • +
  • :不启用自动播放。
  • +
+
+
+ + error + 状态或错误信息,详见 + + + autoPlay + 是否启用自动播放: +
    +
  • :(默认)启用自动播放。
  • +
  • :不启用自动播放。
  • +
+
+
+ + error + 状态或错误信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setloopcount.dita b/dita/RTC-AIDOC/API/api_playerconfig_setloopcount.dita new file mode 100644 index 00000000000..4eb879cdde6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setloopcount.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="SetLoopCount"/> + 设置媒体文件播放的循环次数。设置媒体文件在播放期间循环播放的次数。设置播放媒体文件的循环次数。设置播放媒体文件的循环次数。 + + + + + + + + +
+

+ void SetLoopCount(int32_t count, Error *err = nullptr) + public void setLoopCount(int count) throws RteException + - (void)setLoopCount:(int32_t)count error:(AgoraRteError * _Nullable)error; + - (void)setLoopCount:(int32_t)count error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 参数 + + + count + 媒体文件的循环播放次数。 +
    +
  • 1:播放一次。
  • +
  • 2:播放两次。
  • +
  • -1:无限循环播放,直到调用
  • +
+
+
+ + err + 输出参数,状态或错误信息,详见 。 +
    +
  • kRteOk:调用成功。
  • +
  • kRteErrorInvalidArgumentcount 参数设置为无效值。
  • +
+
+
+ + count + 媒体文件循环播放的次数: +
    +
  • 1:播放一次。
  • +
  • 2:播放两次。
  • +
  • -1:无限循环播放,直到调用 停止播放。
  • +
+
+
+ + count + 媒体文件的播放次数: +
    +
  • 1:播放一次。
  • +
  • 2:播放两次。
  • +
  • -1:无限循环播放,直到调用
  • +
+
+
+ + error + 输出参数,表示状态或错误信息,详见 。 +
    +
  • AgoraRteOk:调用成功。
  • +
  • AgoraRteErrorInvalidArgumentcount 参数设置为无效值。
  • +
+
+
+ + count + 媒体文件的播放次数: +
    +
  • 1:播放一次。
  • +
  • 2:播放两次。
  • +
  • -1:无限循环播放,直到调用
  • +
+
+
+ + error + 输出参数,表示状态或错误信息,详见 。 +
    +
  • AgoraRteOk:调用成功。
  • +
  • AgoraRteErrorInvalidArgumentcount 参数设置为无效值。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setplaybackspeed.dita b/dita/RTC-AIDOC/API/api_playerconfig_setplaybackspeed.dita new file mode 100644 index 00000000000..926e6ae5ae2 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setplaybackspeed.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="SetPlaybackSpeed"/> + 设置播放速度参数。设置播放速度参数。设置播放速度参数。设置播放速度参数。 + + + + + + + + +
+

+ void SetPlaybackSpeed(int32_t speed, Error *err = nullptr) + public void setPlaybackSpeed(int speed) throws RteException + - (void)setPlaybackSpeed:(int32_t)speed error:(AgoraRteError * _Nullable)error; + - (void)setPlaybackSpeed:(int32_t)speed error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

你可以在调用 后调用该方法。

+ 你可以在调用 方法之后调用此方法。 + 你可以在调用 方法之后调用此方法。 + 你可以在调用 方法之后调用此方法。 +
+
+ 参数 + + + speed + 播放速度。有效范围为 [50, 400]。 + + + err + 状态或错误信息,详见 。 +
    +
  • kRteOk:调用成功。
  • +
  • kRteErrorInvalidArgumentspeed 参数设置为无效值。
  • +
+
+
+ + speed + 播放速度。有效范围为 [50, 400]。 + + + speed + 播放速度,取值范围为 [50, 400]。 + + + error + 用于返回错误信息的输出参数。详见 + + + speed + 播放速度,取值范围为 [50, 400]。 + + + error + 用于返回错误信息的输出参数。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_playerconfig_setplayoutvolume.dita b/dita/RTC-AIDOC/API/api_playerconfig_setplayoutvolume.dita new file mode 100644 index 00000000000..8f05915ca7a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_playerconfig_setplayoutvolume.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="SetPlayoutVolume"/> + 设置播放音量。设置播放音量参数。设置播放音量参数。设置播放音量参数。 + + + + + + + + +
+

+ void SetPlayoutVolume(int32_t volume, Error *err = nullptr) + public void setPlayoutVolume(int volume) throws RteException + - (void)setPlayoutVolume:(int32_t)volume error:(AgoraRteError * _Nullable)error; + - (void)setPlayoutVolume:(int32_t)volume error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

你可以使用该方法设置播放音量。有效范围为 [0, 400]。

+

你可以使用该方法设置播放音量。有效范围为 [0, 400]。

+
+
+ 参数 + + + volume + 要设置的播放音量,取值范围为 [0, 400]。 + + + err + 状态或错误信息,详见 。 +
    +
  • kRteOk:设置成功。
  • +
  • kRteErrorInvalidArgument:音量参数设置为无效值。
  • +
+
+
+ + volume + 播放器的音量值。有效范围为 [0, 400]。 + + + volume + 要设置的播放音量。有效范围为 [0, 400]。 + + + error + 输出参数,返回错误信息。详见 。 +
    +
  • AgoraRteOk:设置成功。
  • +
  • AgoraRteErrorInvalidArgument:音量参数无效。
  • +
+
+
+ + volume + 要设置的播放音量。有效范围为 [0, 400]。 + + + error + 输出参数,返回错误信息。详见 。 +
    +
  • AgoraRteOk:设置成功。
  • +
  • AgoraRteErrorInvalidArgument:音量参数无效。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_destroy_rte.dita b/dita/RTC-AIDOC/API/api_rte_destroy_rte.dita new file mode 100644 index 00000000000..32b969b91e0 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_destroy_rte.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="Destroy_Rte"/> + 销毁 RTE 对象。销毁 RTE 对象,释放相关资源。销毁 RTE 对象。销毁 RTE 对象。 + + + + + + + + +
+

+ bool Destroy(Error *err = nullptr) + public synchronized void destroy() throws RteException + - (BOOL)destroy:(AgoraRteError * _Nullable)error; + - (BOOL)destroy:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

该方法会释放 RTE 对象使用的所有资源。

+

该方法会释放 RTE 对象使用的所有资源。

+
+
+ 参数 + + + err + 输出参数,状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :销毁成功。
  • +
  • :销毁失败。
  • +
+

+

+

    +
  • :销毁成功。
  • +
  • :销毁失败。
  • +
+

+

+

    +
  • :销毁成功。
  • +
  • :销毁失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_getconfigs_rte.dita b/dita/RTC-AIDOC/API/api_rte_getconfigs_rte.dita new file mode 100644 index 00000000000..4e4c71bdc50 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_getconfigs_rte.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="GetConfigs_Rte"/> + 获取 RTE 对象的配置信息。获取 对象的配置信息。获取 RTE 对象的配置信息。获取 RTE 对象的配置信息。 + + + + + + + + +
+

+ bool GetConfigs(Config *config, Error *err = nullptr) + public void getConfigs(Config config) throws RteException + - (BOOL)getConfigs:(AgoraRteConfig *_Nonnull)config error:(AgoraRteError * _Nullable)error; + - (BOOL)getConfigs:(AgoraRteConfig *_Nonnull)config error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 调用时机 +

在调用 之后调用该方法。

+

该方法必须在调用 之后使用。

+

你必须在调用 之后调用该方法。

+

你必须在调用 之后调用该方法。

+
+
+ 参数 + + + config + 输出参数,表示 RTE 对象的配置信息。详见 + + + err + 输出参数,状态或错误信息。详见 + + + config + 详见 + + + config + RTE 对象的配置信息。详见 + + + error + 状态或错误信息。详见 + + + config + RTE 对象的配置信息。详见 + + + error + 状态或错误信息。详见 + + +
+
+ 返回值 +

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+

+

    +
  • :获取成功。
  • +
  • :获取失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_getfrombridge.dita b/dita/RTC-AIDOC/API/api_rte_getfrombridge.dita new file mode 100644 index 00000000000..5870d98922d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_getfrombridge.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="GetFromBridge"/> + 中桥接一个 RTE 对象。 中桥接一个 RTE 对象。桥接一个来自 RTE 对象。桥接一个来自 RTE 对象。 + + + + + + + + +
+

+ static Rte GetFromBridge(Error* err = nullptr) + public static synchronized Rte getFromBridge() throws RteException + + (instancetype _Nonnull)getFromBridge:(AgoraRteError * _Nullable)error; + + (instancetype _Nonnull)getFromBridge:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

通过该方法创建的 RTE 对象无需再调用 进行初始化。如果尚未创建并初始化 RTC 引擎,可以先调用 创建一个 RTE 对象,再调用 进行初始化。

+

通过该方法创建的 RTE 对象无需通过 进行初始化。如果你尚未创建并初始化 RTC 引擎,可以先调用 RTE 创建一个 RTE 对象,再调用 进行初始化。

+

通过调用此方法创建的 RTE 对象无需通过 进行初始化。如果你尚未创建并初始化 RTC 引擎,可以先调用 创建一个 RTE 对象,然后使用 进行初始化。

+

通过调用此方法创建的 RTE 对象无需通过 进行初始化。如果你尚未创建并初始化 RTC 引擎,可以先调用 创建一个 RTE 对象,然后使用 进行初始化。

+
+
+ 调用时机 +

在调用此方法之前,请确保你已调用 初始化 RTC 引擎。

+

调用此方法前,请确保已调用 初始化 RTC 引擎。

+

在调用此方法之前,请确保你已通过调用 初始化 RTC 引擎。

+

在调用此方法之前,请确保你已通过调用 初始化 RTC 引擎。

+
+
+ 参数 + + + err + 输出参数,用于接收状态或错误信息,详见 + + + error + 用于接收状态和错误码的指针,详见 + + + error + 用于接收状态和错误码的指针,详见 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回一个 RTE 对象,详见 RTE
  • +
  • 方法调用失败,返回
  • +
+

+

方法调用成功,返回 RTE 对象。

+

方法调用成功,返回一个 RTE 对象,详见

+

方法调用成功,返回一个 RTE 对象,详见

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_initmediaengine.dita b/dita/RTC-AIDOC/API/api_rte_initmediaengine.dita new file mode 100644 index 00000000000..9b20367c0dd --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_initmediaengine.dita @@ -0,0 +1,102 @@ + + + + <ph keyref="InitMediaEngine"/> + 初始化 RTE 引擎。初始化 RTE 引擎。初始化 RTE 引擎。初始化 RTE 引擎。 + + + + + + + + +
+

+ bool InitMediaEngine(std::function<void(rte::Error *err)> cb, Error *err = nullptr) + public void initMediaEngine(AsyncCallback callBack) throws RteException + - (BOOL)initMediaEngine:(void (^ _Nullable)(AgoraRteError* _Nullable err) )cb error:(AgoraRteError * _Nullable)error; + - (BOOL)initMediaEngine:(void (^ _Nullable)(AgoraRteError* _Nullable err) )cb error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

该方法为异步方法,通过回调函数返回初始化结果。你需要在创建 RTE 对象并设置 App ID 后调用该方法。

+

该方法为异步方法,通过回调函数返回初始化结果。你需要在创建 RTE 对象并设置 App ID 后调用该方法。

+

该方法为异步方法,通过回调函数返回初始化结果。你需要在创建 RTE 对象并设置 App ID 后调用该方法。

+ 的返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化本身是否成功。 + 该返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化是否成功。 + 该返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化是否成功。 +
+
+ 调用时机 +

该方法必须在创建 RTE 对象并设置 App ID 后调用。

+

你需要在创建 RTE 对象并设置 App ID 后调用该方法。

+

你需要在创建 RTE 对象并设置 App ID 后调用该方法。

+
+
+ 参数 + + + cb + 异步通知初始化结果的回调。你可以通过该回调的 err 参数获取初始化结果或错误码信息,详见 + + + err + 输出参数,表示初始化过程中产生的状态或错误信息,详见 。调用 时,如果发生可立即检测的错误(如参数无效或资源不足),SDK 会通过该参数同步返回错误信息。 + + + callBack + 异步返回引擎初始化结果的回调。详见 + + + cb + 用于返回引擎初始化结果的异步回调函数。你可以通过该回调的 err 参数判断引擎初始化的结果或错误码。详见 + + + error + 初始化过程中发生的错误信息。当调用 方法进行初始化时,如果发生可立即检测的错误(如参数无效或资源不足),SDK 会通过该参数同步返回错误信息。详见 + + + cb + 用于返回引擎初始化结果的异步回调函数。你可以通过该回调的 err 参数判断引擎初始化的结果或错误码。详见 + + + error + 初始化过程中发生的错误信息。当调用 方法进行初始化时,如果发生可立即检测的错误(如参数无效或资源不足),SDK 会通过该参数同步返回错误信息。详见 + + +
+
+ 返回值 +

+

    +
  • :成功将初始化操作加入异步任务队列。
  • +
  • :未能将初始化操作加入异步任务队列。
  • +
该返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化本身是否成功。

+

+

    +
  • :异步操作成功加入队列。
  • +
  • :异步操作未能加入队列。
  • +
该返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化是否成功。

+

+

    +
  • :异步操作成功加入队列。
  • +
  • :异步操作未能加入队列。
  • +
该返回值仅表示初始化操作是否已成功加入异步任务队列,并不表示初始化是否成功。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_rte_rte.dita b/dita/RTC-AIDOC/API/api_rte_rte_rte.dita new file mode 100644 index 00000000000..6e2bebb3dbe --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_rte_rte.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="Rte_Rte"/> + 构造一个 对象。构造一个 对象。构造一个 RTE 对象。构造一个 RTE 对象。 + + + + + + + + +
+

+ Rte(Rte &&other) + public Rte(InitialConfig initialConfig) + - (instancetype _Nonnull)initWithInitialConfig:(AgoraRteInitialConfig * _Nullable)config; + - (instancetype _Nonnull)initWithInitialConfig:(AgoraRteInitialConfig * _Nullable)config; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

RTE 对象用于组织和管理 RTE 的内部资源。你必须在调用 方法之前调用此方法。

+

RTE 对象用于组织和管理 RTE 的内部资源。你必须在调用 方法之前调用此方法。

+
+
+ 调用时机 +

该方法必须在调用 之前调用。

+

你必须在调用 之前调用此方法。

+

你必须在调用 方法之前调用此方法。

+

你必须在调用 方法之前调用此方法。

+
+
+ 参数 + + + other + 用于移动构造的 对象,详见 + + + initialConfig + 初始化设置。你可以传入 null + + + config + 初始化设置。你可以传入 + + + config + 初始化设置。你可以传入 + + +
+
+ 返回值 +

+

    +
  • 方法调用成功,返回 RTE 对象。
  • +
  • 方法调用失败,返回
  • +
+

+

+

    +
  • 方法调用成功,返回 RTE 对象。
  • +
  • 方法调用失败,返回
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rte_setconfigs_rte.dita b/dita/RTC-AIDOC/API/api_rte_setconfigs_rte.dita new file mode 100644 index 00000000000..dd480678444 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rte_setconfigs_rte.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="SetConfigs_Rte"/> + 配置 RTE 对象的信息。配置 RTE 对象的信息。配置 RTE 对象的信息。配置 RTE 对象的信息。 + + + + + + + + +
+

+ bool SetConfigs(Config *config, Error *err = nullptr) + public void setConfigs(Config config) throws RteException + - (BOOL)setConfigs:(AgoraRteConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; + - (BOOL)setConfigs:(AgoraRteConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

你可以调用该方法设置如 App ID 等信息。

+

你可以调用此方法设置如 App ID 等信息。

+

你可以调用此方法设置如 App ID 等信息。

+ 必须在调用 之后调用此方法。 + 必须在调用 之后调用此方法。 +
+
+ 调用时机 +

该方法必须在调用 之后执行。

+

该方法必须在调用 之后调用。

+
+
+ 参数 + + + config + RTE 对象的设置信息,详见 + + + err + 输出参数,状态或错误信息,详见 + + + config + 用于设置 RTE 对象的配置信息,详见 + + + config + RTE 对象的设置信息,详见 + + + error + 状态或错误信息,详见 + + + config + RTE 对象的设置信息,详见 + + + error + 状态或错误信息,详见 + + +
+
+ 返回值 +

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+

+

    +
  • :配置成功。
  • +
  • :配置失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteexception_errorcode_rteexception.dita b/dita/RTC-AIDOC/API/api_rteexception_errorcode_rteexception.dita new file mode 100644 index 00000000000..356633473ae --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteexception_errorcode_rteexception.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="errorCode_RteException"/> + 获取 中携带的错误码。 + + + + + + + + +
+

+ public Constants.ErrorCode errorCode() +

+
+
+
+ 返回值 +

方法调用成功,返回 枚举值。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_abrsubscriptionlayer.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_abrsubscriptionlayer.dita new file mode 100644 index 00000000000..a9f3e65232e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_abrsubscriptionlayer.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="AbrSubscriptionLayer"/> + 获取当前订阅的视频层级。获取当前订阅的视频层级。 + + + + + + + + +
+

+ AbrSubscriptionLayer AbrSubscriptionLayer() const + public Constants.AbrSubscriptionLayer abrSubscriptionLayer() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

该方法仅在打开 RTE URL 时有效。

+ 仅当你打开 RTE URL 时,该字段才有效。 +
+
+ 返回值 +

方法调用成功,返回当前订阅的视频层级,详见

+

方法调用成功,返回 对象。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_audiobitspersample.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiobitspersample.dita new file mode 100644 index 00000000000..c6cbd68c1d7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiobitspersample.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="AudioBitsPerSample"/> + 获取每个音频采样的位数。获取每个音频采样点的位数。 + + + + + + + + +
+

+ int AudioBitsPerSample() const + public int audioBitsPerSample() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+ 仅在打开非 RTE URL 时该字段有效。 + 仅在打开非 RTM URL 时有效。 +
+
+ 返回值 +

方法调用成功,返回每个音频采样的位数,单位为 bit。

+

方法调用成功,返回每个音频采样点的位数,单位为 bit。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_audiochannels.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiochannels.dita new file mode 100644 index 00000000000..d27c57f65b7 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiochannels.dita @@ -0,0 +1,34 @@ + + + + <ph keyref="AudioChannels"/> + 获取音频的声道数。获取音频通道数。 + + + + + + + + +
+

+ int AudioChannels() const + public int audioChannels() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回音频的声道数。

+

方法调用成功,返回音频通道数。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_audiosamplerate.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiosamplerate.dita new file mode 100644 index 00000000000..3b14ec8dc9e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_audiosamplerate.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="AudioSampleRate"/> + 获取音频采样率。获取音频采样率。 + + + + + + + + +
+

+ int AudioSampleRate() const + public int audioSampleRate() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回音频采样率,单位为 Hz。

+

方法调用成功,返回音频采样率,单位为 Hz。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_currenturl.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_currenturl.dita new file mode 100644 index 00000000000..47e7ed33ef8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_currenturl.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="CurrentUrl"/> + 获取当前正在播放的 URL。获取当前正在播放的 URL。 + + + + + + + + +
+

+ std::string CurrentUrl() const + public String currentUrl() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回当前正在播放的 URL。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+

方法调用成功时,返回当前正在播放的 URL。 +方法调用失败,返回空字符串。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_duration.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_duration.dita new file mode 100644 index 00000000000..d5fac62b5d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_duration.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="Duration"/> + 获取当前媒体资源的时长。获取当前媒体资源的时长。 + + + + + + + + +
+

+ size_t Duration() const + public long duration() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+ 仅在播放本地媒体文件或点播流时有效。 + 该方法仅在播放本地媒体文件或输入在线媒体流时有效。 +
+
+ 返回值 +

方法调用成功,返回当前媒体资源的时长,单位为毫秒。

+

方法调用成功,返回当前媒体资源的时长,单位为毫秒。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_hasaudio.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_hasaudio.dita new file mode 100644 index 00000000000..79555e6420f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_hasaudio.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="HasAudio"/> + 判断媒体资源中是否包含音频流。判断媒体资源是否包含音频流。 + + + + + + + + +
+

+ bool HasAudio() const + public boolean hasAudio() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • :媒体资源中包含音频流。
  • +
  • :媒体资源中不包含音频流。
  • +
+

+

+

    +
  • :媒体资源中包含音频流。
  • +
  • :媒体资源中不包含音频流。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_hasvideo.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_hasvideo.dita new file mode 100644 index 00000000000..c311ba54841 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_hasvideo.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="HasVideo"/> + 判断 URL 源中是否包含视频流。判断是否包含视频流。 + + + + + + + + +
+

+ bool HasVideo() const + public boolean hasVideo() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • :URL 源包含视频流。
  • +
  • :URL 源不包含视频流。
  • +
+

+

:URL 源包含视频流。 +:URL 源不包含视频流。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_isaudiomuted.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_isaudiomuted.dita new file mode 100644 index 00000000000..3a7a310ac6f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_isaudiomuted.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="IsAudioMuted"/> + 判断播放器是否停止接收音频流。判断播放器是否停止接收远端音频流。 + + + + + + + + +
+

+ bool IsAudioMuted() const + public boolean isAudioMuted() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • :播放器已停止接收音频流。
  • +
  • :播放器仍在接收音频流。
  • +
+

+

+

    +
  • :播放器已停止接收远端音频流。
  • +
  • :播放器仍在接收远端音频流。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_isvideomuted.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_isvideomuted.dita new file mode 100644 index 00000000000..e1aca79113c --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_isvideomuted.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="IsVideoMuted"/> + 判断播放器是否停止接收视频流。判断播放器是否停止接收远端视频流。 + + + + + + + + +
+

+ bool IsVideoMuted() const + public boolean isVideoMuted() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+ 仅在打开 RTE URL 时有效。 + 接口仅在打开 RTE URL 时有效。 +
+
+ 返回值 +

+

    +
  • :播放器已停止接收视频流。
  • +
  • :播放器仍在接收视频流。
  • +
+

+

+

    +
  • :播放器已停止接收远端视频流。
  • +
  • :播放器仍在接收远端视频流。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_state.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_state.dita new file mode 100644 index 00000000000..66fc569b13b --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_state.dita @@ -0,0 +1,34 @@ + + + + <ph keyref="State"/> + 获取当前播放器状态。获取当前播放器状态。 + + + + + + + + +
+

+ RtePlayerState State() const + public int state() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功时,返回当前播放器状态,详见

+

方法调用成功,返回当前播放器的状态。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_streamcount.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_streamcount.dita new file mode 100644 index 00000000000..c599020c6f8 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_streamcount.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="StreamCount"/> + 获取当前播放源中的流数量。获取当前播放源中的流的数量。 + + + + + + + + +
+

+ size_t StreamCount() const + public int streamCount() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+

该方法仅在打开非 RTE URL 时有效。

+ 方法在打开非 RTE URL 时有效。 +
+
+ 返回值 +

方法调用成功,返回当前播放源中的流数量。

+

方法调用成功,返回流的数量。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_videoheight.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_videoheight.dita new file mode 100644 index 00000000000..89f0e1e4cab --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_videoheight.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="VideoHeight"/> + 获取视频分辨率的高度。获取视频分辨率的高度。 + + + + + + + + +
+

+ int VideoHeight() const + public int videoHeight() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回视频分辨率的高度,单位为像素。

+

方法调用成功,返回视频分辨率的高度,单位为像素。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_rteplayerinfo_videowidth.dita b/dita/RTC-AIDOC/API/api_rteplayerinfo_videowidth.dita new file mode 100644 index 00000000000..8f03fa8201a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_rteplayerinfo_videowidth.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="VideoWidth"/> + 获取视频分辨率的宽度。获取视频分辨率的宽度。 + + + + + + + + +
+

+ int VideoWidth() const + public int videoWidth() +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回视频分辨率的宽度,单位为像素。

+

方法调用成功,返回视频分辨率的宽度,单位为像素。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithsize.dita b/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithsize.dita new file mode 100644 index 00000000000..57f7a8e1456 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithsize.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="initWithSize"/> + 指定视频分辨率并初始化 对象。指定视频分辨率并初始化 对象。 + + + + + + + + +
+

+ - (instancetype _Nonnull)initWithSize:(CGSize)size + frameRate:(NSInteger)frameRate + bitrate:(NSInteger)bitrate + orientationMode:(AgoraVideoOutputOrientationMode)orientationMode + mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(size:frameRate:bitrate:orientationMode:mirrorMode:)); + - (instancetype _Nonnull)initWithSize:(CGSize)size + frameRate:(NSInteger)frameRate + bitrate:(NSInteger)bitrate + orientationMode:(AgoraVideoOutputOrientationMode)orientationMode + mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(size:frameRate:bitrate:orientationMode:mirrorMode:)); +

+
+
+
+ 参数 + + + size + 视频分辨率。 + + + frameRate + 视频帧率,详见 + + + bitrate + 编码视频的码率。 + + + orientationMode + 编码视频的方向模式,详见 + + + mirrorMode + 设置本地视频流的镜像模式,仅影响远端用户看到的视频,详见 + + + size + 视频分辨率。 + + + frameRate + 视频帧率,详见 + + + bitrate + 编码视频的码率。 + + + orientationMode + 编码视频的方向模式,详见 + + + mirrorMode + 设置本地视频流的镜像模式,仅影响远端用户看到的视频,详见 + + +
+
+ 返回值 +

方法调用成功,返回初始化后的 对象。

+

方法调用成功,返回初始化后的 对象。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithwidth.dita b/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithwidth.dita new file mode 100644 index 00000000000..5b63ad0854e --- /dev/null +++ b/dita/RTC-AIDOC/API/api_videoencoderconfiguration_initwithwidth.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="initWithWidth"/> + 指定视频宽高并初始化 对象。指定视频宽高并初始化 对象。 + + + + + + + + +
+

+ - (instancetype _Nonnull)initWithWidth:(NSInteger)width + height:(NSInteger)height + frameRate:(NSInteger)frameRate + bitrate:(NSInteger)bitrate + orientationMode:(AgoraVideoOutputOrientationMode)orientationMode + mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(width:height:frameRate:bitrate:orientationMode:mirrorMode:)); + - (instancetype _Nonnull)initWithWidth:(NSInteger)width + height:(NSInteger)height + frameRate:(NSInteger)frameRate + bitrate:(NSInteger)bitrate + orientationMode:(AgoraVideoOutputOrientationMode)orientationMode + mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(width:height:frameRate:bitrate:orientationMode:mirrorMode:)); +

+
+
+
+ 参数 + + + width + 视频的宽度。 + + + height + 视频的高度。 + + + frameRate + 视频帧率,详见 + + + bitrate + 编码视频的码率。 + + + orientationMode + 编码视频的方向模式,详见 + + + mirrorMode + 设置本地视频流的镜像模式,仅影响远端用户看到的视频,详见 + + + width + 视频的宽度。 + + + height + 视频的高度。 + + + frameRate + 视频帧率,详见 + + + bitrate + 编码视频的码率。 + + + orientationMode + 编码视频的方向模式,详见 + + + mirrorMode + 设置本地视频流的镜像模式,仅影响远端用户看到的视频,详见 + + +
+
+ 返回值 +

方法调用成功,返回 对象。

+

方法调用成功,返回 对象。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkbuffer_getbuffer.dita b/dita/RTC-AIDOC/API/api_watermarkbuffer_getbuffer.dita new file mode 100644 index 00000000000..3fa37a37d79 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkbuffer_getbuffer.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getBuffer"/> + 获取水印图像的数据缓冲区。 + + + + + + + + +
+

+ public WatermarkBuffer getBuffer() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功时,返回包含水印图像数据的 ByteBuffer 对象。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkbuffer_getformat.dita b/dita/RTC-AIDOC/API/api_watermarkbuffer_getformat.dita new file mode 100644 index 00000000000..0636b818587 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkbuffer_getformat.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getFormat"/> + 获取水印图像的格式。 + + + + + + + + +
+

+ public int getFormat() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回水印图像缓冲区的格式。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkbuffer_getheight.dita b/dita/RTC-AIDOC/API/api_watermarkbuffer_getheight.dita new file mode 100644 index 00000000000..a3c0ddc96d6 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkbuffer_getheight.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getHeight"/> + 获取水印图像的高度。 + + + + + + + + +
+

+ public int getHeight() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回水印图像的高度,单位为像素。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkbuffer_getid.dita b/dita/RTC-AIDOC/API/api_watermarkbuffer_getid.dita new file mode 100644 index 00000000000..3a2d93f0cfb --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkbuffer_getid.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="getId"/> + 获取水印的唯一标识符。 + + + + + + + + +
+

+ public String getId() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

用于从 实例中获取水印的唯一标识符。

+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回水印的唯一标识符。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkbuffer_getwidth.dita b/dita/RTC-AIDOC/API/api_watermarkbuffer_getwidth.dita new file mode 100644 index 00000000000..dcb37c68529 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkbuffer_getwidth.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getWidth"/> + 获取水印图像的宽度。 + + + + + + + + +
+

+ public int getWidth() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回水印图像的宽度,单位为像素。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkconfig_getimageurl.dita b/dita/RTC-AIDOC/API/api_watermarkconfig_getimageurl.dita new file mode 100644 index 00000000000..3a515cacc7d --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkconfig_getimageurl.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="getImageUrl"/> + 获取水印图像的 URL。 + + + + + + + + +
+

+ public String getImageUrl() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • 方法调用成功时,返回水印图像的 URL。
  • +
  • 方法调用失败,返回空字符串。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkconfig_getoptions.dita b/dita/RTC-AIDOC/API/api_watermarkconfig_getoptions.dita new file mode 100644 index 00000000000..d1077addd07 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkconfig_getoptions.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getOptions"/> + 获取当前配置的水印显示选项。 + + + + + + + + +
+

+ public WatermarkOptions getOptions() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回 对象。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkconfig_gettype.dita b/dita/RTC-AIDOC/API/api_watermarkconfig_gettype.dita new file mode 100644 index 00000000000..94cd8aa9e68 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkconfig_gettype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="getType"/> + 获取当前水印配置中的水印类型信息。 + + + + + + + + +
+

+ public int getType() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回水印类型: +

    +
  • WATERMARK_TYPE_IMAGE:图片水印。
  • +
  • WATERMARK_TYPE_BUFFER:Buffer 水印。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninlandscapemode.dita b/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninlandscapemode.dita new file mode 100644 index 00000000000..4dfb96e9135 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninlandscapemode.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getPositionInLandscapeMode"/> + 获取横屏模式下水印的位置。 + + + + + + + + +
+

+ public int[] getPositionInLandscapeMode() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回一个包含四个元素的整数数组,依次表示水印矩形的 x、y、宽度和高度。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninportraitmode.dita b/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninportraitmode.dita new file mode 100644 index 00000000000..60ee63b9ce9 --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkoptions_getpositioninportraitmode.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getPositionInPortraitMode"/> + 获取竖屏模式下水印的位置。 + + + + + + + + +
+

+ public int[] getPositionInPortraitMode() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回一个包含四个元素的整数数组,分别表示水印矩形的 x、y、宽度和高度。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkoptions_getzorder.dita b/dita/RTC-AIDOC/API/api_watermarkoptions_getzorder.dita new file mode 100644 index 00000000000..65049c65d4a --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkoptions_getzorder.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="getzOrder"/> + 获取水印图像的 Z-order 索引。 + + + + + + + + +
+

+ public int getzOrder() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

方法调用成功,返回水印图像的 Z-order 索引。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/api_watermarkoptions_isvisibleinpreview.dita b/dita/RTC-AIDOC/API/api_watermarkoptions_isvisibleinpreview.dita new file mode 100644 index 00000000000..4903e089e1f --- /dev/null +++ b/dita/RTC-AIDOC/API/api_watermarkoptions_isvisibleinpreview.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="isVisibleInPreview"/> + 检查水印在本地视频预览中是否可见。 + + + + + + + + +
+

+ public boolean isVisibleInPreview() +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 返回值 +

+

    +
  • :水印在本地视频预览中可见。
  • +
  • :水印在本地视频预览中不可见。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_asynccallback_onresult_asynccallback.dita b/dita/RTC-AIDOC/API/callback_asynccallback_onresult_asynccallback.dita new file mode 100644 index 00000000000..b3bd7d04ed1 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_asynccallback_onresult_asynccallback.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="onResult_AsyncCallback"/> + 回调,用于报告异步操作的结果。 + + + + + + + + +
+

+ @CalledByNative void onResult(Error error); +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 触发时机 +

该回调在异步操作完成时被触发,用于报告操作结果。

+
+
+ 参数 + + + error + 状态码或错误码。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onmixedaudioencodedframe.dita b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onmixedaudioencodedframe.dita new file mode 100644 index 00000000000..1ea82ae0771 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onmixedaudioencodedframe.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="onMixedAudioEncodedFrame"/> + 本地和所有远端用户的混音编码音频数据回调。本地及所有远端用户的混音编码音频数据回调。获取本地和所有远端用户的混音编码音频数据回调。获取本地和所有远端用户的混音编码音频数据回调。 + + + + + + + + +
+

+ virtual void onMixedAudioEncodedFrame(const uint8_t* frameBuffer, int length, const EncodedAudioFrameInfo& audioEncodedFrameInfo) = 0; + public abstract void onMixedAudioEncodedFrame(ByteBuffer buffer, int samplesPerChannel, int channels, int samplesPerSec, int codecType); + - (void)onMixedEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onMixedEncodedAudioFrame(_:info:)); + - (void)onMixedEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onMixedEncodedAudioFrame(_:info:)); +

+
+
+

调用 并将音频配置设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED 后,可以通过该回调获取本地和所有远端用户的混音编码音频数据。

+

调用 并将音频配置设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED 后,可以通过该回调获取混音编码音频数据。

+

调用 并将音频配置设置为 AgoraAudioEncodedFrameObserverPositionMixed 后,可以通过该回调获取本地和所有远端用户的混音编码音频数据。

+

调用 并将音频配置设置为 AgoraAudioEncodedFrameObserverPositionMixed 后,可以通过该回调获取本地和所有远端用户的混音编码音频数据。

+
+
+ 触发时机 +

该回调在调用 并将音频配置设置为 AgoraAudioEncodedFrameObserverPositionMixed 后触发。

+

该回调在调用 并将音频配置设置为 AgoraAudioEncodedFrameObserverPositionMixed 后触发。

+
+
+ 参数 + + + frameBuffer + 音频数据缓冲区。 + + + length + 音频数据的字节长度。 + + + audioEncodedFrameInfo + 编码后的音频帧信息。详见 + + + buffer + 音频缓冲区。 + + + samplesPerChannel + 每个声道中的采样数。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。若为立体声,数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录制采样率(Hz)。 + + + codecType + 音频编码类型: +
    +
  • 1:OPUS。
  • +
  • 8:LC-AAC。
  • +
  • 9:HE-AAC。
  • +
  • 11:HE-AAC v2。
  • +
+
+
+ + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + + + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onplaybackaudioencodedframe.dita b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onplaybackaudioencodedframe.dita new file mode 100644 index 00000000000..e396b445ce6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onplaybackaudioencodedframe.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="onPlaybackAudioEncodedFrame"/> + 获取所有远端用户编码音频数据的回调。获取所有远端用户编码音频数据的回调。获取所有远端用户的编码音频数据回调。获取所有远端用户的编码音频数据回调。 + + + + + + + + +
+

+ virtual void onPlaybackAudioEncodedFrame(const uint8_t* frameBuffer, int length, const EncodedAudioFrameInfo& audioEncodedFrameInfo) = 0; + public abstract void onPlaybackAudioEncodedFrame(ByteBuffer buffer, int samplesPerChannel, int channels, int samplesPerSec, int codecType); + - (void)onPlaybackEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onPlaybackEncodedAudioFrame(_:info:)); + - (void)onPlaybackEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onPlaybackEncodedAudioFrame(_:info:)); +

+
+
+

调用 并将编码音频位置设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK 后,可以通过该回调获取所有远端用户的编码音频数据。

+

调用 并将编码音频设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK 后,可以通过该回调获取所有远端用户的编码音频数据。

+

调用 并将编码音频设置为 AgoraAudioEncodedFrameObserverPositionPlayback 后,该回调会返回所有远端用户的编码音频数据。

+

调用 并将编码音频设置为 AgoraAudioEncodedFrameObserverPositionPlayback 后,该回调会返回所有远端用户的编码音频数据。

+
+
+ 触发时机 +

该回调在获取远端用户编码音频数据时被触发。

+

该回调在获取到所有远端用户的编码音频数据时被触发。

+

该回调在获取到所有远端用户的编码音频数据时被触发。

+
+
+ 参数 + + + frameBuffer + 音频数据缓冲区。 + + + length + 音频数据的长度,单位为字节。 + + + audioEncodedFrameInfo + 编码后的音频帧信息。详见 + + + buffer + 音频缓冲区。 + + + samplesPerChannel + 每个声道中的采样数。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。若为立体声,数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + codecType + 音频编码类型: +
    +
  • 1:OPUS。
  • +
  • 8:LC-AAC。
  • +
  • 9:HE-AAC。
  • +
  • 11:HE-AAC v2。
  • +
+
+
+ + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + + + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onrecordaudioencodedframe.dita b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onrecordaudioencodedframe.dita new file mode 100644 index 00000000000..7dc357c59e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioencodedframeobserver_onrecordaudioencodedframe.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="onRecordAudioEncodedFrame"/> + 本地用户编码后音频数据回调。本地用户编码音频数据回调。获取本地用户的编码音频数据回调。获取本地用户的编码音频数据回调。 + + + + + + + + +
+

+ virtual void onRecordAudioEncodedFrame(const uint8_t* frameBuffer, int length, const EncodedAudioFrameInfo& audioEncodedFrameInfo) = 0; + public abstract void onRecordAudioEncodedFrame(ByteBuffer buffer, int samplesPerChannel, int channels, int samplesPerSec, int codecType); + - (void)onRecordEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onRecordEncodedAudioFrame(_:info:)); + - (void)onRecordEncodedAudioFrame:(NSData* _Nonnull)frameData info:(AgoraEncodedAudioFrameInfo* _Nonnull)info NS_SWIFT_NAME(onRecordEncodedAudioFrame(_:info:)); +

+
+
+

调用 并将编码后音频位置设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD 后,可以通过该回调获取本地用户的编码后音频数据。

+

调用 并将编码音频设置为 AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIC 后,可以通过该回调获取本地用户的编码音频数据。

+

调用 并将编码音频设置为 AgoraAudioEncodedFrameObserverPositionRecord 后,该回调返回本地用户的编码音频数据。

+

调用 并将编码音频设置为 AgoraAudioEncodedFrameObserverPositionRecord 后,该回调返回本地用户的编码音频数据。

+
+
+ 触发时机 +

该回调在获取到本地用户的编码音频数据时被触发。

+

该回调在获取到本地用户的编码音频数据时被触发。

+
+
+ 参数 + + + frameBuffer + 音频数据缓冲区。 + + + length + 音频数据的字节长度。 + + + audioEncodedFrameInfo + 编码后的音频帧信息。详见 + + + buffer + 音频缓冲区。 + + + samplesPerChannel + 音频帧中每个声道的采样数。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。若为立体声,数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录制采样率(Hz)。 + + + codecType + 音频编码类型: +
    +
  • 1:OPUS。
  • +
  • 8:LC-AAC。
  • +
  • 9:HE-AAC。
  • +
  • 11:HE-AAC v2。
  • +
+
+
+ + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + + + frameData + 音频缓冲区。 + + + info + 编码后的音频信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onearmonitoringaudioframe.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onearmonitoringaudioframe.dita new file mode 100644 index 00000000000..d973eae6007 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onearmonitoringaudioframe.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="onEarMonitoringAudioFrame"/> + 获取耳返音频帧回调。耳返音频帧回调。获取耳返音频帧回调。 + + + + + + + + +
+

+ - (BOOL)onEarMonitoringAudioFrame:(AgoraAudioFrame* _Nonnull)frame NS_SWIFT_NAME(onEarMonitoringAudioFrame(_:)); + public abstract boolean onEarMonitoringAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type); + - (BOOL)onEarMonitoringAudioFrame:(AgoraAudioFrame* _Nonnull)frame NS_SWIFT_NAME(onEarMonitoringAudioFrame(_:)); +

+
+
+

为了确保你获取的耳返音频数据符合预期,声网建议你通过以下两种方式之一设置耳返音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

该回调用于获取耳返音频数据。为了确保获取的数据符合预期,声网建议你通过以下任一方式设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象后,SDK 会根据设置的参数计算采样间隔,并按该间隔触发 回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 的返回值中设置音频数据格式。然后 SDK 会根据 的返回值计算采样间隔,并按该间隔触发 回调。
  • +
+

+

为了确保你获取的耳返音频数据符合预期,声网建议你通过以下两种方式之一设置耳返音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+ +
    +
  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
  • +
+
+ 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。 + +
    +
  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
  • +
+
+
+
+ 触发时机 +

该回调在采样间隔到达时被触发。

+

该回调在采样间隔到达时被触发。

+
+
+ 参数 + + + frame + 原始音频数据,详见 + + + type + 音频帧类型。 + + + samplesPerChannel + 每个声道中的采样点数。 + + + bytesPerSample + 每个音频采样点的字节数。例如,每个 PCM 音频采样点通常占用 16 位(2 字节)。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。若为立体声,数据为交错格式。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + buffer + 音频缓冲区。缓冲区大小 = samplesPerChannel × channels × bytesPerSample。详见 ByteBuffer + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该参数在视频或音频相关场景中(包括使用自定义视频源的场景)实现音视频帧同步。 + + + avsync_type + 预留参数。 + + + frame + 原始音频数据,详见 + +
+
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onmixedaudioframe.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onmixedaudioframe.dita new file mode 100644 index 00000000000..3216967ae78 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onmixedaudioframe.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="onMixedAudioFrame"/> + 获取混合后的采集和播放音频帧回调。获取混合采集和播放的音频帧回调。获取混合后的采集和播放音频帧回调。 + + + + + + + + +
+

+ - (BOOL)onMixedAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:)); + public abstract boolean onMixedAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type); + - (BOOL)onMixedAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:)); +

+
+
+

为了确保混合后的采集和播放音频帧的数据格式符合预期,声网建议你通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据方法中设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 的返回值中设置音频数据格式。SDK 会根据 的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

声网建议通过以下两种方式之一设置音频数据格式,以确保混合采集和播放音频帧的数据格式符合预期: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象后,SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

为了确保混合后的采集和播放音频帧的数据格式符合预期,声网建议你通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据方法中设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 的返回值中设置音频数据格式。SDK 会根据 的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+ +
    +
  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
  • +
+
+ 的设置优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 + +
    +
  • 方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。
  • +
+
+
+
+ 触发时机 +

该回调在获取混合后的采集和播放音频帧时被触发。

+

该回调在获取混合后的采集和播放音频帧时被触发。

+
+
+ 参数 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + + + channelId + 频道 ID。 + + + type + 音频帧类型。 + + + samplesPerChannel + 每个声道的采样点数。 + + + bytesPerSample + 每个音频采样的字节数。例如,每个 PCM 音频采样通常占用 16 位(2 字节)。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。使用立体声时,数据为交错格式。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + buffer + 音频缓冲区。缓冲区大小 = samplesPerChannel × channels × bytesPerSample。详见 ByteBuffer + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该参数在视频或音频相关场景中(包括使用外部视频源的场景)实现音视频帧同步。 + + + avsync_type + 预留参数。 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + +
+
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframe.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframe.dita new file mode 100644 index 00000000000..9a7a1a38f6d --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframe.dita @@ -0,0 +1,133 @@ + + + + <ph keyref="onPlaybackAudioFrame"/> + 获取用于播放的原始音频帧回调。获取用于播放的原始音频帧回调。获取用于播放的原始音频帧回调。 + + + + + + + + +
+

+ - (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onPlaybackAudioFrame(_:channelId:)); + public abstract boolean onPlaybackAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type); + - (BOOL)onPlaybackAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onPlaybackAudioFrame(_:channelId:)); +

+
+
+

为了确保播放音频帧的数据格式符合预期,声网建议你通过以下两种方法之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 的返回值中设置音频数据格式。SDK 会根据 的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

你可以通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象后,SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

为了确保播放音频帧的数据格式符合预期,声网建议你通过以下两种方法之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 的返回值中设置音频数据格式。SDK 会根据 的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+ 的优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 + 的设置优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 + 的优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 +
+
+ 触发时机 +

该回调在 SDK 获取到用于播放的音频帧时被触发。

+

该回调在 SDK 获取到用于播放的音频帧时被触发。

+
+
+ 参数 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + + + channelId + 频道 ID。 + + + type + 音频帧类型。 + + + samplesPerChannel + 每个声道中的采样点数。 + + + bytesPerSample + 每个音频采样点的字节数。例如,每个 PCM 音频采样点通常占用 16 位(2 字节)。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。若为立体声,数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + buffer + 音频缓冲区。缓冲区大小 = samplesPerChannel × channels × bytesPerSample + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该参数在视频或音频相关场景中(包括使用外部视频源的场景)实现音视频帧同步。 + + + avsync_type + 预留参数。 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + +
+
+
+ 返回值 +

+

    +
  • :处理成功。
  • +
  • :处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :处理成功。
  • +
  • :处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframebeforemixing.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframebeforemixing.dita new file mode 100644 index 00000000000..e8d84f8478c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onplaybackaudioframebeforemixing.dita @@ -0,0 +1,130 @@ + + + + <ph keyref="onPlaybackAudioFrameBeforeMixing"/> + 获取已订阅远端用户在混音前的音频帧。获取已订阅远端用户混音前的音频帧回调。获取已订阅远端用户在混音前的音频帧。 + + + + + + + + +
+

+ - (BOOL)onPlaybackAudioFrameBeforeMixing:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onPlaybackAudioFrame(beforeMixing:channelId:uid:)); + public abstract boolean onPlaybackAudioFrameBeforeMixing(String channelId, int uid, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type, int rtpTimestamp, long presentationMs); + - (BOOL)onPlaybackAudioFrameBeforeMixing:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onPlaybackAudioFrame(beforeMixing:channelId:uid:)); +

+
+
+
+ 触发时机 +

该回调在获取远端用户音频帧并在混音前触发。

+
+
+ 参数 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + + + uid + 远端用户 ID。 + + + channelId + 频道 ID。 + + + uid + 已订阅远端用户的用户 ID。 + + + type + 音频帧类型。 + + + samplesPerChannel + 每个声道的采样点数。 + + + bytesPerSample + 每个音频采样点的字节数。例如,每个 PCM 音频采样点通常为 16 位(2 字节)。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。立体声数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + buffer + 音频缓冲区。缓冲区大小 = samplesPerChannel × channels × bytesPerSample + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该参数在视频或音频相关场景中(包括使用自定义视频源的场景)实现音视频同步。 + + + avsync_type + 预留参数。 + + + rtpTimestamp + RTP 时间戳。 + + + presentationMs + 展示时间戳(毫秒)。 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + + + uid + 远端用户 ID。 + +
+
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :处理成功。
  • +
  • :处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onrecordaudioframe.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onrecordaudioframe.dita new file mode 100644 index 00000000000..02b590cb954 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserver_onrecordaudioframe.dita @@ -0,0 +1,133 @@ + + + + <ph keyref="onRecordAudioFrame"/> + 采集到音频帧时触发的回调。获取采集到的音频帧回调。采集到音频帧时触发的回调。 + + + + + + + + +
+

+ - (BOOL)onRecordAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:)); + public abstract boolean onRecordAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type); + - (BOOL)onRecordAudioFrame:(AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:)); +

+
+
+

你可以通过以下两种方式之一设置音频数据格式,以确保采集到的音频帧格式符合预期: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

你可以通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象后,SDK 会根据方法中设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+

你可以通过以下两种方式之一设置音频数据格式,以确保采集到的音频帧格式符合预期: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照采样间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,并在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照采样间隔触发该回调。
  • +
+

+ 的设置优先级高于 的设置。如果使用方法一设置音频数据格式,则方法二的设置无效。 + 的设置优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 + 的设置优先级高于 的设置。如果使用方法一设置音频数据格式,则方法二的设置无效。 +
+
+ 触发时机 +

该回调在采集到音频帧时被触发。

+

该回调在采集到音频帧时被触发。

+
+
+ 参数 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + + + channelId + 频道 ID。 + + + type + 音频帧类型。 + + + samplesPerChannel + 每个声道中的采样点数。 + + + bytesPerSample + 每个音频采样的字节数。例如,每个 PCM 音频采样通常占用 16 位(2 字节)。 + + + channels + 声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。如果使用立体声,数据为交错排列。
  • +
+
+
+ + samplesPerSec + 录音采样率(Hz)。 + + + buffer + 音频缓冲区。缓冲区大小 = samplesPerChannel × channels × bytesPerSample + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该参数在视频或音频相关场景中(包括使用外部视频源的场景)实现音视频帧同步。 + + + avsync_type + 预留参数。 + + + frame + 原始音频数据,详见 + + + channelId + 频道 ID。 + +
+
+
+ 返回值 +

+

    +
  • :处理成功。
  • +
  • :处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :处理成功。
  • +
  • :处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onearmonitoringaudioframe_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onearmonitoringaudioframe_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..6cf954a9940 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onearmonitoringaudioframe_iaudioframeobserverbase.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="onEarMonitoringAudioFrame_IAudioFrameObserverBase"/> + 耳返音频帧回调。 + + + + + + + + +
+

+ virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0; +

+
+
+

为了确保获取的耳返音频数据符合预期,声网建议你通过以下两种方法之一设置耳返音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按照该间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按照该间隔触发该回调。
  • +
+

+ 的优先级高于 。如果使用方法一设置音频数据格式,则方法二的设置无效。 +
+
+ 参数 + + + audioFrame + 原始音频数据。详见 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onmixedaudioframe_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onmixedaudioframe_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..736906c07d6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onmixedaudioframe_iaudioframeobserverbase.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="onMixedAudioFrame_IAudioFrameObserverBase"/> + 混合采集和播放音频帧的回调。 + + + + + + + + +
+

+ virtual bool onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0; +

+
+
+

为了确保混合采集和播放音频帧的数据格式符合预期,声网建议通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按该间隔触发该回调。
  • +
方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。

+
+
+ 参数 + + + channelId + 频道 ID。 + + + audioFrame + 输出参数,原始音频数据。详见 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframe_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframe_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..6d3e944aebf --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframe_iaudioframeobserverbase.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="onPlaybackAudioFrame_IAudioFrameObserverBase"/> + 回调:获取用于播放的原始音频帧。 + + + + + + + + +
+

+ virtual bool onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0; +

+
+
+

为了确保播放音频帧的数据格式符合预期,声网建议你通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象。SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 回调的返回值中设置音频数据格式。SDK 会根据 回调的返回值计算采样间隔,并按该间隔触发该回调。
  • +
方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。

+
+
+ 参数 + + + channelId + 频道 ID。 + + + audioFrame + 输出参数,原始音频数据,详见 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframebeforemixing_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframebeforemixing_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..1bd237eb98e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onplaybackaudioframebeforemixing_iaudioframeobserverbase.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="onPlaybackAudioFrameBeforeMixing_IAudioFrameObserverBase"/> + 获取订阅远端用户混音前的音频帧回调。 + + + + + + + + +
+

+ virtual bool onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId, AudioFrame& audioFrame) +

+
+
+
+ 参数 + + + channelId + 频道 ID。 + + + userId + 订阅远端用户的用户 ID。 + + + audioFrame + 输出参数,原始音频数据。详见 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onrecordaudioframe_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onrecordaudioframe_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..f762aa39e95 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudioframeobserverbase_onrecordaudioframe_iaudioframeobserverbase.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="onRecordAudioFrame_IAudioFrameObserverBase"/> + 采集到音频帧时触发的回调。 + + + + + + + + +
+

+ virtual bool onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame) = 0; +

+
+
+

为了确保采集到的音频帧格式符合预期,你可以通过以下两种方式之一设置音频数据格式: +

    +
  • 方法一:调用 设置音频数据格式,并调用 注册音频帧观察者对象后,SDK 会根据设置的参数计算采样间隔,并按该间隔触发该回调。
  • +
  • 方法二:调用 注册音频帧观察者对象后,在 的返回值中设置音频数据格式。然后 SDK 会根据 的返回值计算采样间隔,并按该间隔触发该回调。
  • +
方法一的优先级高于方法二。如果使用方法一设置音频数据格式,则方法二的设置无效。

+
+
+ 触发时机 +

SDK 根据采样间隔触发该回调。

+
+
+ 参数 + + + channelId + 频道 ID。 + + + audioFrame + 输出参数,原始音频数据。详见 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudiopcmframesink_onframe_iaudiopcmframesink.dita b/dita/RTC-AIDOC/API/callback_iaudiopcmframesink_onframe_iaudiopcmframesink.dita new file mode 100644 index 00000000000..87a73873f61 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudiopcmframesink_onframe_iaudiopcmframesink.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="onFrame_IAudioPcmFrameSink"/> + 回调。每次播放器接收到音频帧时触发。每次播放器接收到音频帧时触发的回调。每次播放器接收到音频帧时触发的回调。 + + + + + + + + +
+

+ virtual void onFrame(agora::media::base::AudioPcmFrame* frame) = 0; + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveAudioFrame:(AgoraAudioFrame* _Nonnull)audioFrame NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveAudioFrame:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveAudioFrame:(AgoraAudioFrame* _Nonnull)audioFrame NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveAudioFrame:)); +

+
+
+

注册音频帧观察器后,每次播放器接收到音频帧时,都会触发该回调,并报告该音频帧的详细信息。

+

注册音频帧观察器后,每次播放器接收到音频帧时,都会触发该回调,报告音频帧的详细信息。

+

注册音频帧观察器后,每次播放器接收到音频帧时,都会触发该回调,报告音频帧的详细信息。

+
+
+ 触发时机 +

每次播放器接收到音频帧时触发。

+

每次播放器接收到音频帧时触发。

+

每次播放器接收到音频帧时触发。

+
+
+ 参数 + + + frame + 音频帧信息,详见 + + + playerKit + 播放器实例,详见 + + + audioFrame + 音频帧信息,详见 + + + playerKit + 播放器实例,详见 + + + audioFrame + 音频帧信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onlocalaudiospectrum.dita b/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onlocalaudiospectrum.dita new file mode 100644 index 00000000000..a484622f019 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onlocalaudiospectrum.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="onLocalAudioSpectrum"/> + 本地音频频谱数据回调。本地音频频谱数据回调。获取本地音频频谱数据。获取本地音频频谱数据。 + + + + + + + + +
+

+ virtual bool onLocalAudioSpectrum(const AudioSpectrumData& data) = 0; + @CalledByNative boolean onLocalAudioSpectrum(AudioSpectrumInfo data); + - (BOOL)onLocalAudioSpectrum:(NSArray<NSNumber *> * _Nullable)audioSpectrumData NS_SWIFT_NAME(onLocalAudioSpectrum(_:)); + - (BOOL)onLocalAudioSpectrum:(NSArray<NSNumber *> * _Nullable)audioSpectrumData NS_SWIFT_NAME(onLocalAudioSpectrum(_:)); +

+
+
+

调用 注册 接口并实现 回调,同时调用 启用音频频谱监测后,SDK 会按照设置的时间间隔,在编码前触发该回调,报告本地音频频谱数据。

+

在成功调用 实现 回调,并调用 启用音频频谱监测后,SDK 会按照你设置的时间间隔,在编码前触发该回调报告本地用户的音频频谱数据。

+

成功调用 实现 中的 回调,并调用 启用音频频谱监测后,SDK 会按照你设置的时间间隔触发该回调,在编码前报告接收到的远端音频数据频谱。

+

成功调用 实现 中的 回调,并调用 启用音频频谱监测后,SDK 会按照你设置的时间间隔触发该回调,在编码前报告接收到的远端音频数据频谱。

+
+
+ 触发时机 +

该回调在启用音频频谱监测并设置时间间隔后,由 SDK 按照设置的时间间隔在编码前触发。

+
+
+ 参数 + + + data + 本地用户的音频频谱数据。详见 + + + data + 本地用户的音频频谱数据。详见 + + + audioSpectrumData + 本地用户的音频频谱数据。声网将音频频率划分为 256 个频率域,并通过该参数报告每个频率域的能量值。每个能量值的取值范围为 [-300, 1],单位为 dBFS。 + + + audioSpectrumData + 本地用户的音频频谱数据。声网将音频频率划分为 256 个频率域,并通过该参数报告每个频率域的能量值。每个能量值的取值范围为 [-300, 1],单位为 dBFS。 + + +
+
+ 返回值 +

+

    +
  • :接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+

是否接收到频谱数据: +

    +
  • :已接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+

+

    +
  • :接收到音频频谱数据。
  • +
  • :未接收到音频频谱数据。
  • +
+

+

+

    +
  • :接收到音频频谱数据。
  • +
  • :未接收到音频频谱数据。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onremoteaudiospectrum.dita b/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onremoteaudiospectrum.dita new file mode 100644 index 00000000000..5fc05a4aaf6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_iaudiospectrumobserver_onremoteaudiospectrum.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="onRemoteAudioSpectrum"/> + 远端音频频谱回调。远端音频频谱数据回调。获取远端音频频谱信息回调。获取远端音频频谱信息回调。 + + + + + + + + +
+

+ virtual bool onRemoteAudioSpectrum(const UserAudioSpectrumInfo* spectrums, unsigned int spectrumNumber) = 0; + boolean onRemoteAudioSpectrum(UserAudioSpectrumInfo[] userAudioSpectrumInfos, int spectrumNumber); + - (BOOL)onRemoteAudioSpectrum:(NSArray<AgoraAudioSpectrumInfo *> * _Nullable)AudioSpectrumInfo NS_SWIFT_NAME(onRemoteAudioSpectrum(_:)); + - (BOOL)onRemoteAudioSpectrum:(NSArray<AgoraAudioSpectrumInfo *> * _Nullable)AudioSpectrumInfo NS_SWIFT_NAME(onRemoteAudioSpectrum(_:)); +

+
+
+

成功调用 实现 回调,并调用 启用音频频谱监测后,SDK 会按照你设置的时间间隔触发该回调,报告接收到的远端音频数据频谱。

+

成功调用 并调用 启用音频频谱监测后,SDK 会按照你设置的时间间隔触发该回调。

+

你调用 注册 协议并实现 回调,同时调用 启用音频频谱监测后,该回调会按照设置的时间间隔触发,用于报告接收到的远端音频频谱数据。

+

你调用 注册 协议并实现 回调,同时调用 启用音频频谱监测后,该回调会按照设置的时间间隔触发,用于报告接收到的远端音频频谱数据。

+
+
+ 触发时机 +

SDK 会按照你设置的时间间隔触发该回调,报告接收到的远端音频数据频谱。

+

该回调在成功调用 并启用音频频谱监测后,根据设置的时间间隔被触发。

+

该回调在接收到远端音频频谱数据时被触发。

+

该回调在接收到远端音频频谱数据时被触发。

+
+
+ 参数 + + + spectrums + 远端用户的音频频谱信息。数组长度为 SDK 监测到的远端用户数量。如果该数组为 ,表示未检测到远端用户的音频频谱。详见 + + + spectrumNumber + 远端用户的数量。 + + + userAudioSpectrumInfos + 远端用户的音频频谱信息。数组长度为 SDK 监测到的远端用户数量。如果该数组为 null,表示未检测到远端用户的音频频谱。详见 + + + spectrumNumber + 远端用户的数量。 + + + AudioSpectrumInfo + 远端用户的音频频谱信息。数组的数量为 SDK 监测到的远端用户数量。若该数组为 ,表示未检测到远端用户的音频频谱。详见 + + + AudioSpectrumInfo + 远端用户的音频频谱信息。数组的数量为 SDK 监测到的远端用户数量。若该数组为 ,表示未检测到远端用户的音频频谱。详见 + + +
+
+ 返回值 +

+

    +
  • :接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+

+

    +
  • :接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+

+

    +
  • :已接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+

+

    +
  • :已接收到频谱数据。
  • +
  • :未接收到频谱数据。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstatechanged.dita b/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstatechanged.dita new file mode 100644 index 00000000000..521ee8a0c27 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstatechanged.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="onDirectCdnStreamingStateChanged"/> + CDN 推流状态变化回调。CDN 推流状态发生变化回调。CDN 推流状态发生变化回调。CDN 推流状态发生变化回调。 + + + + + + + + +
+

+ virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message) + void onDirectCdnStreamingStateChanged(DirectCdnStreamingState state, DirectCdnStreamingReason reason, String message) + - (void)onDirectCdnStreamingStateChanged:(AgoraDirectCdnStreamingState)state + reason:(AgoraDirectCdnStreamingReason)reason + message:(NSString *_Nullable)message NS_SWIFT_NAME(onDirectCdnStreamingStateChanged(_:reason:message:)); + - (void)onDirectCdnStreamingStateChanged:(AgoraDirectCdnStreamingState)state + reason:(AgoraDirectCdnStreamingReason)reason + message:(NSString *_Nullable)message NS_SWIFT_NAME(onDirectCdnStreamingStateChanged(_:reason:message:)); +

+
+
+

当主播直接向 CDN 推流时,若推流状态发生变化,SDK 会触发该回调,报告变化后的推流状态、错误码及相关信息。

+

当主播直接向 CDN 推流时,如果推流状态发生变化,SDK 会触发该回调,报告变化后的推流状态、错误码及其他信息。你可以参考该回调进行问题排查。

+

当主播直接向 CDN 推流时,如果推流状态发生变化,SDK 会触发该回调,报告变化后的推流状态、错误码及其他信息。你可以通过该回调排查问题。

+

当主播直接向 CDN 推流时,如果推流状态发生变化,SDK 会触发该回调,报告变化后的推流状态、错误码及其他信息。你可以通过该回调排查问题。

+
+
+ 触发时机 +

该回调在主播直接向 CDN 推流过程中,推流状态发生变化时被触发。

+

该回调在 CDN 推流状态发生变化时被触发。

+

该回调在 CDN 推流状态发生变化时被触发。

+
+
+ 参数 + + + state + 当前的 CDN 推流状态。详见 + + + reason + CDN 推流状态变化的原因。详见 + + + message + 关于推流状态变化的补充信息。 + + + state + 当前的 CDN 推流状态。详见 + + + reason + CDN 推流状态变化的原因。详见 + + + message + 关于推流状态变化的说明信息。 + + + state + 当前的 CDN 推流状态。详见 + + + reason + CDN 推流状态变化的原因。详见 + + + message + 关于推流状态变化的补充信息。 + + + state + 当前的 CDN 推流状态。详见 + + + reason + CDN 推流状态变化的原因。详见 + + + message + 关于推流状态变化的补充信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstats.dita b/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstats.dita new file mode 100644 index 00000000000..6454f715460 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_idirectcdnstreamingeventhandler_ondirectcdnstreamingstats.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="onDirectCdnStreamingStats"/> + 上报 CDN 推流统计信息的回调。上报 CDN 推流统计信息的回调。上报 CDN 推流统计信息。上报 CDN 推流统计信息。 + + + + + + + + +
+

+ virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats& stats) + void onDirectCdnStreamingStats(DirectCdnStreamingStats stats) + - (void)onDirectCdnStreamingStats:(AgoraDirectCdnStreamingStats *_Nonnull)stats NS_SWIFT_NAME(onDirectCdnStreamingStats(_:)); + - (void)onDirectCdnStreamingStats:(AgoraDirectCdnStreamingStats *_Nonnull)stats NS_SWIFT_NAME(onDirectCdnStreamingStats(_:)); +

+
+
+

当主播直接向 CDN 推送媒体流时,SDK 每秒触发一次该回调。

+
+
+ 触发时机 +

当主播直接向 CDN 推送媒体流时,SDK 每秒触发一次该回调。

+

该回调在主播直接向 CDN 推送媒体流时每秒触发一次。

+

该回调在主播直接向 CDN 推送媒体流时每秒触发一次。

+

该回调在主播直接向 CDN 推送媒体流时每秒触发一次。

+
+
+ 参数 + + + stats + 当前 CDN 推流的统计信息。详见 + + + stats + 当前 CDN 推流的统计信息,详见 + + + stats + 当前 CDN 推流的统计信息,详见 + + + stats + 当前 CDN 推流的统计信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayeraudioframeobserver_onframe_imediaplayeraudioframeobserver.dita b/dita/RTC-AIDOC/API/callback_imediaplayeraudioframeobserver_onframe_imediaplayeraudioframeobserver.dita new file mode 100644 index 00000000000..f803dd0f3b3 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayeraudioframeobserver_onframe_imediaplayeraudioframeobserver.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="onFrame_IMediaPlayerAudioFrameObserver"/> + 播放器接收到音频帧时触发的回调。 + + + + + + + + +
+

+ @CalledByNative AudioFrame onFrame(AudioFrame frame); +

+
+
+

注册音频帧观察器后,该回调会在播放器每次接收到音频帧时触发。

+
+
+ 触发时机 +

该回调在播放器接收到音频帧时被触发。

+
+
+ 参数 + + + frame + 音频帧信息,详见 + + +
+
+ 返回值 +

在调用 并设置 mode 参数后传入的音频数据,用于处理音频数据。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onreaddata.dita b/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onreaddata.dita new file mode 100644 index 00000000000..f1c316ffe11 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onreaddata.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="onReadData"/> + SDK 读取媒体资源数据时触发的回调。SDK 读取媒体资源数据时触发的回调。 + + + + + + + + +
+

+ virtual int onReadData(unsigned char *buffer, int bufferSize) = 0; + @CalledByNative int onReadData(ByteBuffer buffer, int bufferSize); +

+
+
+

当你调用 方法打开媒体资源时,SDK 会触发该回调,并请求你传入媒体资源数据的缓冲区。

+

当你调用 方法打开媒体资源时,SDK 会触发该回调,并请求你传入媒体资源数据的缓冲区。

+
+
+ 参数 + + + buffer + 输出参数,表示数据缓冲区(字节)。你需要将 SDK 请求的 bufferSize 大小的数据写入该缓冲区。 + + + bufferSize + 数据缓冲区的长度(字节)。 + + + buffer + 数据缓冲区。你需要将 SDK 请求的 bufferSize 字节数据写入该缓冲区。详见 ByteBuffer + + + bufferSize + 数据缓冲区的长度,单位为字节。 + + +
+
+ 返回值 +

+

    +
  • 如果数据读取成功,返回实际读取的数据长度(字节)。
  • +
  • 如果读取失败,返回 0。
  • +
+

+

+

    +
  • 数据读取成功时,返回实际读取的数据长度(字节)。
  • +
  • 数据读取失败时,返回 0。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onseek.dita b/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onseek.dita new file mode 100644 index 00000000000..77af8a76f1b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayercustomdataprovider_onseek.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="onSeek"/> + 定位媒体资源数据时触发的回调。当 SDK 定位媒体资源数据时触发的回调。 + + + + + + + + +
+

+ virtual int64_t onSeek(int64_t offset, int whence) = 0; + long onSeek(long offset, int whence) +

+
+
+

该回调在调用 打开自定义媒体资源时触发,用于请求媒体资源中指定位置的数据。

+

当你调用 open 方法打开自定义媒体资源时,SDK 会触发该回调,请求媒体资源中指定位置的数据。

+
+
+ 参数 + + + offset + 目标位置相对于起始点的偏移量,单位为字节。该值可以为正数或负数。 + + + whence + 起始点,可设置为以下值之一: +
    +
  • 0:起始点为数据开头,定位后的实际数据偏移量为 offset
  • +
  • 1:起始点为当前位置,定位后的实际数据偏移量为当前位置加 offset
  • +
  • 2:起始点为数据末尾,定位后的实际数据偏移量为整个数据长度加 offset
  • +
  • 65536:不执行定位操作,返回文件大小。建议在播放 MP3、WAV 等纯音频文件时使用该值。
  • +
+
+
+ + offset + 目标位置相对于起始点的偏移量,单位为字节。该值可以为正数或负数。 + + + whence + 起始点,可设置为以下值之一: +
    +
  • 0:起始点为数据开头,定位后的实际数据偏移量为 offset
  • +
  • 1:起始点为当前位置,定位后的实际数据偏移量为当前位置加 offset
  • +
  • 2:起始点为数据末尾,定位后的实际数据偏移量为整个数据长度加 offset
  • +
  • 65536:不执行定位操作,返回文件大小。建议在播放 MP3、WAV 等纯音频文件时使用该值。
  • +
+
+
+
+
+
+ 返回值 +

+

    +
  • whence65536 时,返回媒体文件大小。
  • +
  • whence012 时,返回定位后的实际数据偏移量。
  • +
  • -1:定位失败。
  • +
+

+

+

    +
  • whence 为 65536 时,返回媒体文件大小。
  • +
  • whence 为 0、1 或 2 时,返回定位后的实际数据偏移量。
  • +
  • -1:定位失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onaudiovolumeindication_imediaplayersourceobserver.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onaudiovolumeindication_imediaplayersourceobserver.dita new file mode 100644 index 00000000000..3d31ddd89e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onaudiovolumeindication_imediaplayersourceobserver.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="onAudioVolumeIndication_IMediaPlayerSourceObserver"/> + 报告媒体播放器音量的回调。报告媒体播放器音量的回调。报告媒体播放器的音量。报告媒体播放器的音量。 + + + + + + + + +
+

+ virtual void onAudioVolumeIndication(int volume) = 0; + @CalledByNative void onAudioVolumeIndication(int volume); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + volumeIndicationDidReceive:(NSInteger)volume NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:volumeIndicationDidReceive:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + volumeIndicationDidReceive:(NSInteger)volume NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:volumeIndicationDidReceive:)); +

+
+
+

该回调每 200 毫秒触发一次。

+

该回调每 200 毫秒触发一次。

+

该回调每 200 毫秒触发一次,用于报告当前媒体播放器的音量。

+

该回调每 200 毫秒触发一次,用于报告当前媒体播放器的音量。

+
+
+ 触发时机 +

该回调每 200 毫秒触发一次,用于报告媒体播放器的当前音量。

+

该回调每 200 毫秒触发一次。

+

该回调每 200 毫秒触发一次。

+
+
+ 参数 + + + volume + 媒体播放器的音量,取值范围为 0 到 255。 + + + volume + 媒体播放器的音量,取值范围为 0 到 255。 + + + playerKit + 实例。详见 + + + volume + 媒体播放器的音量,取值范围为 0 到 255。 + + + playerKit + 实例。详见 + + + volume + 媒体播放器的音量,取值范围为 0 到 255。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onmetadata.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onmetadata.dita new file mode 100644 index 00000000000..06763b89ffa --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onmetadata.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="onMetaData"/> + 接收到媒体元数据时触发的回调。接收到媒体元数据时触发的回调。接收到媒体元数据时触发的回调。接收到媒体元数据时触发的回调。 + + + + + + + + +
+

+ virtual void onMetaData(const void* data, int length) = 0; + void onMetaData(Constants.MediaPlayerMetadataType type, byte[] data) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveData:(NSString *_Nullable)data + length:(NSInteger)length NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveData:length:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didReceiveData:(NSString *_Nullable)data + length:(NSInteger)length NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didReceiveData:length:)); +

+
+
+

该回调在播放器接收到媒体元数据时触发。

+

该回调在播放器接收到媒体元数据时被触发。

+

播放器接收到媒体元数据时,会触发该回调并上报媒体元数据的详细信息。

+

播放器接收到媒体元数据时,会触发该回调并上报媒体元数据的详细信息。

+
+
+ 触发时机 +

该回调在播放器接收到媒体元数据时被触发。

+

该回调在播放器接收到媒体元数据时触发。

+

该回调在播放器接收到媒体元数据时触发。

+
+
+ 参数 + + + data + 媒体元数据的详细数据。 + + + length + 数据长度,单位为字节。 + + + type + 媒体元数据的类型,详见 + + + data + 媒体元数据的详细内容。 + + + playerKit + 播放器实例。详见 + + + data + 媒体元数据的详细数据。 + + + length + 数据长度(字节)。 + + + playerKit + 播放器实例。详见 + + + data + 媒体元数据的详细数据。 + + + length + 数据长度(字节)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplaybufferupdated.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplaybufferupdated.dita new file mode 100644 index 00000000000..0664b170799 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplaybufferupdated.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="onPlayBufferUpdated"/> + 报告缓冲数据可支持的播放时长。 回调:报告缓冲数据可支持的播放时长。报告缓冲数据可支持的播放时长。报告缓冲数据可支持的播放时长。 + + + + + + + + +
+

+ virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0; + void onPlayBufferUpdated(long playCachedBuffer) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didPlayBufferUpdated:(NSInteger)playCachedBuffer NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didPlayBufferUpdated:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didPlayBufferUpdated:(NSInteger)playCachedBuffer NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didPlayBufferUpdated:)); +

+
+
+

当播放在线媒体资源时,SDK 每两秒触发一次该回调,用于报告当前缓冲数据可支持的播放时长。 +

    +
  • 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回 PLAYER_EVENT_BUFFER_LOW(6)。
  • +
  • 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回 PLAYER_EVENT_BUFFER_RECOVER(7)。
  • +
+

+

该回调在播放在线媒体资源时每两秒触发一次。 +

    +
  • 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回 PLAYER_EVENT_BUFFER_LOW(6)。
  • +
  • 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回 PLAYER_EVENT_BUFFER_RECOVER(7)。
  • +
+

+

+

    +
  • 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回 AgoraMediaPlayerEventBufferLow(6)。
  • +
  • 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回 AgoraMediaPlayerEventBufferRecover(7)。
  • +
+

+

+

    +
  • 当缓冲数据可支持的播放时长小于阈值(默认值为 0)时,SDK 返回 AgoraMediaPlayerEventBufferLow(6)。
  • +
  • 当缓冲数据可支持的播放时长大于阈值(默认值为 0)时,SDK 返回 AgoraMediaPlayerEventBufferRecover(7)。
  • +
+

+
+
+ 触发时机 +

播放在线媒体资源时,SDK 每两秒触发一次该回调。

+

该回调在播放在线媒体资源时每两秒被触发。

+

播放在线媒体资源时,SDK 每两秒触发一次该回调。

+

播放在线媒体资源时,SDK 每两秒触发一次该回调。

+
+
+ 参数 + + + playCachedBuffer + 缓冲数据可支持的播放时长,单位为毫秒。 + + + playCachedBuffer + 缓冲数据可支持的播放时长,单位为毫秒。 + + + playerKit + 播放器实例。详见 + + + playCachedBuffer + 缓冲数据可支持的播放时长(毫秒)。 + + + playerKit + 播放器实例。详见 + + + playCachedBuffer + 缓冲数据可支持的播放时长(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayercachestats.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayercachestats.dita new file mode 100644 index 00000000000..7bb8393a18e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayercachestats.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="onPlayerCacheStats"/> + 上报正在缓存的媒体文件的统计信息。报告正在缓存的媒体文件的统计信息回调。上报正在缓存的媒体文件的统计信息。上报正在缓存的媒体文件的统计信息。 + + + + + + + + +
+

+ virtual void onPlayerCacheStats(const media::base::CacheStatistics& stats) + void onPlayerCacheStats(CacheStatistics stats) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit cacheStats:(AgoraMediaPlayerCacheStatistics *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:cacheStats:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit cacheStats:(AgoraMediaPlayerCacheStatistics *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:cacheStats:)); +

+
+
+

调用 方法并将 enableCache 设置为 后,SDK 每秒触发一次该回调,上报正在缓存的媒体文件的统计信息。

+

调用 方法并将 enableCache 设置为 后,SDK 每秒触发一次该回调。

+
+
+ 触发时机 +

该回调在调用 方法并将 enableCache 设置为 后,每秒触发一次。

+

该回调在你调用 方法并将 enableCache 设置为 后,每秒触发一次。

+

该回调在你调用 方法并将 enableCache 设置为 后,每秒触发一次。

+
+
+ 参数 + + + stats + 媒体文件缓存统计信息。详见 + + + stats + 正在缓存的媒体文件的统计信息。详见 + + + playerKit + 实例。详见 + + + info + 正在缓存的媒体文件的统计信息。详见 + + + playerKit + 实例。详见 + + + info + 正在缓存的媒体文件的统计信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerevent.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerevent.dita new file mode 100644 index 00000000000..d357969a3c3 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerevent.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="onPlayerEvent"/> + 播放器事件回调。播放器事件回调。上报播放器事件。上报播放器事件。 + + + + + + + + +
+

+ virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT eventCode, int64_t elapsedTime, const char* message) = 0; + void onPlayerEvent(Constants.MediaPlayerEvent eventCode, long elapsedTime, String message) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didOccurEvent:(AgoraMediaPlayerEvent)eventCode + elapsedTime:(NSInteger)elapsedTime + message:(NSString *_Nullable)message NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didOccur:elapsedTime:message:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didOccurEvent:(AgoraMediaPlayerEvent)eventCode + elapsedTime:(NSInteger)elapsedTime + message:(NSString *_Nullable)message NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didOccur:elapsedTime:message:)); +

+
+
+

调用 方法后,SDK 会触发该回调报告 操作的结果。

+

调用 方法后,SDK 会触发该回调报告操作结果。

+

调用 方法后,SDK 会触发该回调,上报跳转播放位置操作的结果。

+

调用 方法后,SDK 会触发该回调,上报跳转播放位置操作的结果。

+
+
+ 触发时机 +

该回调在你调用 方法后触发,用于上报跳转播放位置操作的结果。

+

该回调在你调用 方法后触发,用于上报跳转播放位置操作的结果。

+
+
+ 参数 + + + eventCode + 播放器事件,详见 + + + elapsedTime + 事件发生的时间,单位为毫秒。 + + + message + 事件的相关信息。 + + + eventCode + 播放器事件,详见 + + + elapsedTime + 事件发生的时间,单位为毫秒。 + + + message + 关于该事件的补充信息。 + + + playerKit + 播放器实例。详见 + + + eventCode + 播放器事件类型。详见 + + + elapsedTime + 事件发生的时间,单位为毫秒。 + + + message + 事件的相关信息。 + + + playerKit + 播放器实例。详见 + + + eventCode + 播放器事件类型。详见 + + + elapsedTime + 事件发生的时间,单位为毫秒。 + + + message + 事件的相关信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerinfoupdated.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerinfoupdated.dita new file mode 100644 index 00000000000..4b130b31d85 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerinfoupdated.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onPlayerInfoUpdated"/> + onPlayerInfoUpdated 回调:当媒体播放器信息发生变化时触发。媒体播放器相关信息发生变化时的回调。媒体播放器相关信息发生变化时的回调。媒体播放器相关信息发生变化时的回调。 + + + + + + + + +
+

+ virtual void onPlayerInfoUpdated(const media::base::PlayerUpdatedInfo& info) = 0; + @CalledByNative void onPlayerInfoUpdated(PlayerUpdatedInfo info); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit infoUpdated:(AgoraMediaPlayerUpdatedInfo *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:infoUpdated:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit infoUpdated:(AgoraMediaPlayerUpdatedInfo *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:infoUpdated:)); +

+
+
+

你可以通过该回调获取媒体播放器信息的变化,用于故障排查。

+

你可以使用该回调进行故障排查。

+

你可以通过该回调获取媒体播放器的最新信息,用于故障排查。

+

你可以通过该回调获取媒体播放器的最新信息,用于故障排查。

+
+
+ 触发时机 +

该回调在媒体播放器相关信息发生变化时被触发。

+

该回调在媒体播放器相关信息发生变化时被触发。

+

该回调在媒体播放器相关信息发生变化时被触发。

+
+
+ 参数 + + + info + 媒体播放器相关信息。详见 + + + info + 媒体播放器相关信息。详见 + + + playerKit + 媒体播放器对象。详见 + + + info + 媒体播放器相关的信息。详见 + + + playerKit + 媒体播放器对象。详见 + + + info + 媒体播放器相关的信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerplaybackstats.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerplaybackstats.dita index fb4c881a7b1..9751cc57a7b 100644 --- a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerplaybackstats.dita +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayerplaybackstats.dita @@ -1,12 +1,8 @@ - - <ph keyref="onPlayerPlaybackStats"/> - - - 报告正在播放的媒体文件的统计信息。 - + <ph keyref="onPlayerPlaybackStats"/> + 播放中的媒体文件的统计信息回调。报告正在播放的媒体文件的统计信息回调。播放媒体文件的统计信息回调。播放媒体文件的统计信息回调。 @@ -15,9 +11,52 @@ -
- 使用限制 -

无。

+
+

+ virtual void onPlayerPlaybackStats(const media::base::PlayerPlaybackStats& stats) + void onPlayerPlaybackStats(PlayerPlaybackStats stats) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit playbackStats:(AgoraMediaPlayerPlaybackStats *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:playbackStats:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit playbackStats:(AgoraMediaPlayerPlaybackStats *_Nonnull)info NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:playbackStats:)); +

+
+
+

该回调每秒触发一次,用于报告播放中的媒体文件的统计信息。

+

该回调在媒体文件播放过程中每秒触发一次。

+
+
+ 触发时机 +

该回调在媒体文件播放过程中每秒触发一次。

+

该回调每秒触发一次,用于报告正在播放的媒体文件的统计信息。

+

该回调每秒触发一次,用于报告正在播放的媒体文件的统计信息。

+
+
+ 参数 + + + stats + 媒体文件的统计信息。详见 + + + stats + 媒体文件的统计信息。详见 + + + playerKit + 播放器实例。详见 + + + info + 媒体文件的统计信息。详见 + + + playerKit + 播放器实例。详见 + + + info + 媒体文件的统计信息。详见 + +
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersourcestatechanged.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersourcestatechanged.dita new file mode 100644 index 00000000000..64b934ed59b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersourcestatechanged.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="onPlayerSourceStateChanged"/> + 播放状态变化回调。播放状态发生改变回调。播放状态发生变化时触发的回调。播放状态发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onPlayerSourceStateChanged(media::base::MEDIA_PLAYER_STATE state, media::base::MEDIA_PLAYER_REASON reason) = 0; + void onPlayerStateChanged(Constants.MediaPlayerState state, Constants.MediaPlayerReason reason); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didChangedToState:(AgoraMediaPlayerState)state + reason:(AgoraMediaPlayerReason)reason NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didChangedTo:reason:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didChangedToState:(AgoraMediaPlayerState)state + reason:(AgoraMediaPlayerReason)reason NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didChangedTo:reason:)); +

+
+
+

当媒体播放器状态发生变化时,SDK 会触发该回调报告当前播放状态。

+

当媒体播放器的状态发生变化时,SDK 会触发该回调。

+

播放状态发生变化时触发的回调。

+

播放状态发生变化时触发的回调。

+
+
+ 触发时机 +

该回调在媒体播放器播放状态发生变化时被触发。

+

该回调在媒体播放器播放状态发生变化时被触发。

+
+
+ 参数 + + + state + 播放状态。详见 + + + reason + 播放状态变化的原因。详见 + + + state + 播放状态,详见 + + + reason + 播放状态变化的原因,详见 + + + playerKit + 媒体播放器实例。详见 + + + state + 播放状态。详见 + + + reason + 播放状态变化的原因。详见 + + + playerKit + 媒体播放器实例。详见 + + + state + 播放状态。详见 + + + reason + 播放状态变化的原因。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersrcinfochanged.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersrcinfochanged.dita new file mode 100644 index 00000000000..0e9a977336b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onplayersrcinfochanged.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="onPlayerSrcInfoChanged"/> + 媒体资源视频码率发生变化时触发的回调。媒体资源视频码率发生变化回调。媒体文件播放源信息变化回调。媒体文件播放源信息变化回调。 + + + + + + + + +
+

+ virtual void onPlayerSrcInfoChanged(const media::base::SrcInfo& from, const media::base::SrcInfo& to) = 0; + void onPlayerSrcInfoChanged(SrcInfo from, SrcInfo to) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit playerSrcInfoDidChange:(AgoraMediaPlayerSrcInfo *_Nonnull)to from:(AgoraMediaPlayerSrcInfo *_Nonnull)from NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:playerSrcInfoDidChange:from:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit playerSrcInfoDidChange:(AgoraMediaPlayerSrcInfo *_Nonnull)to from:(AgoraMediaPlayerSrcInfo *_Nonnull)from NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:playerSrcInfoDidChange:from:)); +

+
+
+

该回调在播放媒体文件过程中每两秒触发一次,用于报告播放源信息的变化。

+

该回调在播放媒体文件过程中每两秒触发一次,用于报告播放源信息的变化。

+
+
+ 触发时机 +

该回调在媒体资源的视频码率发生变化时被触发。

+

该回调在播放媒体文件过程中每两秒触发一次。

+

该回调在播放媒体文件过程中每两秒触发一次。

+
+
+ 参数 + + + from + 正在播放的媒体资源的视频码率信息。详见 + + + to + 变更后的视频码率信息。详见 + + + from + 正在播放的媒体资源的视频码率信息。详见 + + + to + 变更后的视频码率信息。详见 + + + playerKit + 播放器实例。详见 + + + to + 变更后的媒体播放器源信息。详见 + + + from + 变更前的媒体播放器源信息。详见 + + + playerKit + 播放器实例。详见 + + + to + 变更后的媒体播放器源信息。详见 + + + from + 变更前的媒体播放器源信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpositionchanged.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpositionchanged.dita new file mode 100644 index 00000000000..521b04b1728 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpositionchanged.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="onPositionChanged"/> + 播放进度发生变化回调。播放进度回调。播放进度回调。播放进度回调。 + + + + + + + + +
+

+ virtual void onPositionChanged(int64_t positionMs, int64_t timestampMs) = 0; + void onPositionChanged(long positionMs, long timestampMs) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didChangedToPosition:(NSInteger)positionMs + atTimestamp:(NSTimeInterval)timestampMs NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didChangedTo:atTimestamp:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didChangedToPosition:(NSInteger)positionMs + atTimestamp:(NSTimeInterval)timestampMs NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didChangedTo:atTimestamp:)); +

+
+
+

该回调在播放媒体文件时每两秒触发一次,用于报告当前播放进度。

+

该回调用于报告媒体文件的播放进度。

+

该回调在播放过程中每秒触发一次,用于报告当前播放进度。

+

该回调在播放过程中每秒触发一次,用于报告当前播放进度。

+
+
+ 触发时机 +

该回调在播放媒体文件时每两秒被触发。

+

该回调在播放过程中每秒触发一次。

+

该回调在播放过程中每秒触发一次。

+
+
+ 参数 + + + positionMs + 媒体文件的播放位置,单位为毫秒。 + + + timestampMs + 当前播放进度对应的 NTP 时间戳,单位为毫秒。 + + + positionMs + 媒体文件的播放位置,单位为毫秒。 + + + timestampMs + 当前播放进度对应的 NTP 时间戳,单位为毫秒。 + + + playerKit + 播放器实例。详见 + + + positionMs + 当前播放进度,单位为毫秒。 + + + timestampMs + 发送 positionMs 时的 NTP 时间戳,单位为毫秒。 + + + playerKit + 播放器实例。详见 + + + positionMs + 当前播放进度,单位为毫秒。 + + + timestampMs + 发送 positionMs 时的 NTP 时间戳,单位为毫秒。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpreloadevent.dita b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpreloadevent.dita new file mode 100644 index 00000000000..83d2ddd7fc7 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayersourceobserver_onpreloadevent.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="onPreloadEvent"/> + 预加载媒体资源事件回调。预加载媒体资源事件回调。上报预加载媒体资源的事件。上报预加载媒体资源的事件。 + + + + + + + + +
+

+ virtual void onPreloadEvent(const char* src, media::base::PLAYER_PRELOAD_EVENT event) = 0; + void onPreloadEvent(String src, Constants.MediaPlayerPreloadEvent event) + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didPreloadEvent:(AgoraMediaPlayerPreloadEvent)event NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didPreloadEvent:)); + - (void)AgoraRtcMediaPlayer:(id<AgoraRtcMediaPlayerProtocol> _Nonnull)playerKit + didPreloadEvent:(AgoraMediaPlayerPreloadEvent)event NS_SWIFT_NAME(AgoraRtcMediaPlayer(_:didPreloadEvent:)); +

+
+
+

该回调用于上报预加载媒体资源过程中发生的事件。

+
+
+ 触发时机 +

该回调在媒体资源预加载过程中发生事件时被触发。

+

该回调在媒体资源预加载过程中发生事件时被触发。

+
+
+ 参数 + + + src + 媒体资源的 URL。 + + + event + 预加载媒体资源时触发的事件,详见 + + + src + 媒体资源的 URL。 + + + event + 预加载媒体资源时发生的事件。详见 + + + playerKit + 播放器实例,详见 + + + event + 预加载媒体资源时发生的事件,详见 + + + playerKit + 播放器实例,详见 + + + event + 预加载媒体资源时发生的事件,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediaplayervideoframeobserver_onframe_imediaplayervideoframeobserver.dita b/dita/RTC-AIDOC/API/callback_imediaplayervideoframeobserver_onframe_imediaplayervideoframeobserver.dita new file mode 100644 index 00000000000..9b78c7aee0e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediaplayervideoframeobserver_onframe_imediaplayervideoframeobserver.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="onFrame_IMediaPlayerVideoFrameObserver"/> + 播放器接收到视频帧时触发的回调。 + + + + + + + + +
+

+ @CalledByNative void onFrame(VideoFrame frame); +

+
+
+

注册视频帧观察器后,该回调在播放器接收到视频帧时被触发。

+
+
+ 触发时机 +

该回调在播放器接收到视频帧时被触发。

+
+
+ 参数 + + + frame + 视频帧信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderinfoupdated.dita b/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderinfoupdated.dita new file mode 100644 index 00000000000..07f56cb2ac7 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderinfoupdated.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="onRecorderInfoUpdated"/> + 录制信息更新的回调。录制信息更新回调。录制信息更新回调。录制信息更新回调。 + + + + + + + + +
+

+ virtual void onRecorderInfoUpdated(const char* channelId, rtc::uid_t uid, const RecorderInfo& info) = 0; + void onRecorderInfoUpdated(String channelId, int uid, RecorderInfo info) + - (void)mediaRecorder:(AgoraMediaRecorder* _Nonnull)recorder informationDidUpdated:(NSString * _Nonnull)channelId uid:(NSUInteger)uid info:(AgoraMediaRecorderInfo* _Nonnull)info; + - (void)mediaRecorder:(AgoraMediaRecorder* _Nonnull)recorder informationDidUpdated:(NSString * _Nonnull)channelId uid:(NSUInteger)uid info:(AgoraMediaRecorderInfo* _Nonnull)info; +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

成功注册该回调并开始音视频流录制后,SDK 会根据 中设置的 recorderInfoUpdateInterval 的值定期触发该回调,报告当前录制文件的名称、时长和大小。

+

在你成功注册该回调并开始音视频流录制后,SDK 会根据你在 中设置的 recorderInfoUpdateInterval 的值定期触发该回调,报告当前录制文件的名称、时长和大小。

+

在你成功注册该回调并开始音视频流录制后,SDK 会根据你在 中设置的 recorderInfoUpdateInterval 的值,周期性地触发该回调,报告当前录制文件的名称、时长和大小。

+

在你成功注册该回调并开始音视频流录制后,SDK 会根据你在 中设置的 recorderInfoUpdateInterval 的值,周期性地触发该回调,报告当前录制文件的名称、时长和大小。

+
+
+ 触发时机 +

成功注册该回调并开始音视频流录制后,SDK 会定期触发该回调。

+

该回调在你成功注册回调并开始音视频流录制后,根据 中设置的 recorderInfoUpdateInterval 定期触发。

+

该回调在你成功注册并开始音视频流录制后,SDK 会周期性地触发。

+

该回调在你成功注册并开始音视频流录制后,SDK 会周期性地触发。

+
+
+ 参数 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + info + 录制文件信息。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + info + 录制文件信息,详见 + + + recorder + 实例。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + info + 录制文件信息,详见 + + + recorder + 实例。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + info + 录制文件信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderstatechanged.dita b/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderstatechanged.dita new file mode 100644 index 00000000000..bd19bf24db3 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imediarecorderobserver_onrecorderstatechanged.dita @@ -0,0 +1,137 @@ + + + + <ph keyref="onRecorderStateChanged"/> + 录制状态发生变化时的回调。录制状态发生变化时的回调。录制状态发生变化时的回调。录制状态发生变化时的回调。 + + + + + + + + +
+

+ virtual void onRecorderStateChanged(const char* channelId, rtc::uid_t uid, RecorderState state, RecorderReasonCode reason) = 0; + @CalledByNative void onRecorderStateChanged(String channelId, int uid, int state, int reason); + - (void)mediaRecorder:(AgoraMediaRecorder* _Nonnull)recorder stateDidChanged:(NSString * _Nonnull)channelId uid:(NSUInteger)uid state:(AgoraMediaRecorderState)state reason:(AgoraMediaRecorderReasonCode)reason; + - (void)mediaRecorder:(AgoraMediaRecorder* _Nonnull)recorder stateDidChanged:(NSString * _Nonnull)channelId uid:(NSUInteger)uid state:(AgoraMediaRecorderState)state reason:(AgoraMediaRecorderReasonCode)reason; +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

当音视频流的录制状态发生变化时,SDK 会触发该回调,报告当前的录制状态及其变化原因。

+

SDK 在音视频流的录制状态发生变化时会触发该回调,报告当前的录制状态及其变化原因。

+
+
+ 触发时机 +

当音视频流的录制状态发生变化时触发。

+

当音视频流的录制状态发生变化时触发。

+
+
+ 参数 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + state + 当前录制状态。详见 + + + reason + 录制状态变化的原因。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + state + 当前录制状态: +
    +
  • RECORDER_STATE_ERROR(-1):录制过程中发生错误。
  • +
  • RECORDER_STATE_START(2):开始录制音视频流。
  • +
  • RECORDER_STATE_STOP(3):停止录制音视频流。
  • +
+
+
+ + reason + 录制状态变化的原因: +
    +
  • RECORDER_REASON_NONE(0):一切正常。
  • +
  • RECORDER_REASON_WRITE_FAILED(1):录制文件写入失败。
  • +
  • RECORDER_REASON_NO_STREAM(2):无可用音视频流,或音视频流中断超过 5 秒。
  • +
  • RECORDER_REASON_OVER_MAX_DURATION(3):录制时长超过最大限制。
  • +
  • RECORDER_REASON_CONFIG_CHANGED(4):录制配置发生变化。
  • +
+
+
+ + recorder + 录制器实例。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + state + 当前的录制状态,详见 + + + reason + 录制状态变化的原因,详见 + + + recorder + 录制器实例。详见 + + + channelId + 频道名。 + + + uid + 用户 ID。 + + + state + 当前的录制状态,详见 + + + reason + 录制状态变化的原因,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imetadataobserver_onmetadatareceived.dita b/dita/RTC-AIDOC/API/callback_imetadataobserver_onmetadatareceived.dita new file mode 100644 index 00000000000..8cda6fed880 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imetadataobserver_onmetadatareceived.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="onMetadataReceived"/> + 当本地用户接收到 metadata 时触发的回调。本地用户接收到元数据时触发的回调。当本地用户接收到元数据时触发。当本地用户接收到元数据时触发。 + + + + + + + + +
+

+ virtual void onMetadataReceived(const Metadata& metadata) = 0; + public abstract void onMetadataReceived(AgoraMetadata metadata) + - (void)didMetadataReceived:(AgoraMetadata * _Nonnull)metadata NS_SWIFT_NAME(didMetadataReceived(_:)); + - (void)didMetadataReceived:(AgoraMetadata * _Nonnull)metadata NS_SWIFT_NAME(didMetadataReceived(_:)); +

+
+
+
+ 触发时机 +

该回调在本地用户接收到元数据时被触发。

+

该回调在本地用户接收到元数据时被触发。

+

该回调在本地用户接收到元数据时被触发。

+
+
+ 参数 + + + metadata + 接收到的元数据。详见 + + + metadata + 接收到的元数据。详见 + + + metadata + 接收到的元数据。详见 + + + metadata + 接收到的元数据。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imetadataobserver_onreadytosendmetadata.dita b/dita/RTC-AIDOC/API/callback_imetadataobserver_onreadytosendmetadata.dita new file mode 100644 index 00000000000..bfa36e6ebcc --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imetadataobserver_onreadytosendmetadata.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="onReadyToSendMetadata"/> + 当 SDK 准备好发送元数据时触发的回调。SDK 准备好发送元数据时触发的回调。 + + + + + + + + +
+

+ virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0; + public abstract byte[] onReadyToSendMetadata(long timeStampMs, int sourceType) +

+
+
+ 请确保元数据的大小不超过 回调中设置的值。 + 请确保元数据的大小不超过 回调中设置的值。 +
+
+ 触发时机 +

当 SDK 准备好发送元数据时触发。

+

该回调在 SDK 准备好发送元数据时被触发。

+
+
+ 参数 + + + metadata + 用户希望发送的元数据。详见 + + + source_type + 视频数据类型。详见 + + + timeStampMs + 时间戳。 + + + sourceType + 视频数据类型。详见 + + +
+
+ 返回值 +

+

    +
  • :发送该视频帧。
  • +
  • :不发送该视频帧。
  • +
+

+

方法调用成功时,返回希望发送的元数据,格式为字节数组。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onlyricresult.dita b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onlyricresult.dita new file mode 100644 index 00000000000..07b17d21805 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onlyricresult.dita @@ -0,0 +1,102 @@ + + + + <ph keyref="onLyricResult"/> + 获取歌词下载链接的回调。歌词下载链接的回调。歌词下载链接回调。 + + + + + + + + +
+

+ virtual void onLyricResult(const char* requestId, int64_t songCode, const char* lyricUrl, MusicContentCenterStateReason reason) = 0; + - (void)onLyricResult:(NSString*)requestId songCode:(NSInteger)songCode lyricUrl:(NSString* _Nullable)lyricUrl reason:(AgoraMusicContentCenterStateReason)reason; + @CalledByNative void onLyricResult(String requestId, long songCode, String lyricUrl, int reason); +

+
+
+

调用 获取某首歌曲的歌词下载链接后,SDK 会触发该回调。

+

调用 方法获取指定歌曲的歌词下载链接后,SDK 会触发该回调。

+

调用 后,SDK 会触发该回调。

+
+
+ 触发时机 +

该回调在你调用 获取指定歌曲的歌词下载链接后被触发。

+

该回调在调用 方法后被触发。

+
+
+ 参数 + + + requestId + 请求 ID,用于标识此次请求的唯一标识符。 + + + songCode + 音乐资源的 ID,用于标识歌曲。 + + + lyricUrl + 歌词的下载链接。 + + + reason + 请求状态码,详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的标识符,用于指定音乐资源。 + + + lyricUrl + 歌词的下载链接。 + + + reason + 请求状态码,详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的编号,用于标识音乐资源。 + + + lyricUrl + 歌词的下载链接。 + + + reason + 来自版权音乐内容中心的请求状态码: +
    +
  • MUSIC_CONTENT_CENTER_STATE_REASON_OK (0):请求成功。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_ERROR (1):通用错误,无具体原因。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY (2):网关错误。可能原因包括: +
      +
    • 当前临时 Token 已过期。请重新生成 Token。
    • +
    • 提供的 Token 无效。请确保使用的是 RTM Token。
    • +
    • 网络错误。请检查网络连接。
    • +
    +
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE (3):权限错误或音乐资源不存在。请确保项目已启用版权音乐内容中心权限。如有疑问,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE (4):内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING (5):加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION (6):解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL (7):HTTP 内部错误。请稍后重试。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusicchartsresult.dita b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusicchartsresult.dita new file mode 100644 index 00000000000..1e7b4634bba --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusicchartsresult.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="onMusicChartsResult"/> + 获取音乐排行榜结果的回调。获取音乐排行榜结果的回调。获取音乐排行榜后的回调。 + + + + + + + + +
+

+ virtual void onMusicChartsResult(const char* requestId, agora_refptr<MusicChartCollection> result, MusicContentCenterStateReason reason) = 0; + - (void)onMusicChartsResult:(NSString *)requestId result:(NSArray<AgoraMusicChartInfo*> *)result reason:(AgoraMusicContentCenterStateReason)reason; + @CalledByNative void onMusicChartsResult(String requestId, MusicChartInfo[] list, int reason); +

+
+
+

调用 后,SDK 会触发该回调。

+

你调用 方法后,SDK 会触发该回调。

+

该回调在调用 后被触发。

+
+
+ 触发时机 +

该回调在你调用 方法后被触发。

+

该回调在调用 方法后被触发。

+
+
+ 参数 + + + requestId + 请求 ID,用于标识本次请求的唯一性。 + + + result + 当前可播放的音乐排行榜列表。详见 + + + reason + 请求的状态码。详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + result + 当前可播放的音乐排行榜列表。详见 + + + reason + 请求的状态码。详见 + + + requestId + 请求 ID,用于标识此次请求的唯一标识符。 + + + list + 当前可播放的音乐排行榜列表,详见 + + + reason + 来自音乐内容中心的请求状态码: +
    +
  • MUSIC_CONTENT_CENTER_STATE_REASON_OK (0):请求成功。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_ERROR (1):通用错误,无具体原因。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY (2):网关错误。可能原因包括: +
      +
    • 当前 token 已过期。请重新生成 token。
    • +
    • 提供的 token 无效。请确保使用的是 RTM token。
    • +
    • 网络错误。请检查网络连接。
    • +
    +
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE (3):权限错误或未找到音乐资源。请确保项目已启用访问声网音乐内容中心。如有问题,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE (4):内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING (5):加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION (6):解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL (7):内部 HTTP 错误。请稍后重试。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusiccollectionresult.dita b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusiccollectionresult.dita new file mode 100644 index 00000000000..e8915a158f8 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onmusiccollectionresult.dita @@ -0,0 +1,102 @@ + + + + <ph keyref="onMusicCollectionResult"/> + 获取音乐资源列表的回调。获取音乐内容列表的回调。获取音乐资源列表的回调。 + + + + + + + + +
+

+ virtual void onMusicCollectionResult(const char* requestId, agora_refptr<MusicCollection> result, MusicContentCenterStateReason reason) = 0; + - (void)onMusicCollectionResult:(NSString *)requestId result:(AgoraMusicCollection *)result reason:(AgoraMusicContentCenterStateReason)reason; + void onMusicCollectionResult(String requestId, int page, int pageSize, int total, Music[] list, int reason) +

+
+
+

调用 获取某个榜单的音乐资源列表,或调用 搜索音乐资源时,SDK 会触发该回调,返回音乐资源列表的详细信息。

+

当你调用 方法获取指定榜单或搜索音乐内容时,SDK 会触发该回调,返回音乐内容列表的详细信息。

+

该回调在调用 getMusicCollectionByMusicChartIdsearchMusic 时触发。

+
+
+ 触发时机 +

调用 getMusicCollectionWithMusicChartId 后触发。

+

该回调在你调用 后被触发。

+
+
+ 参数 + + + requestId + 请求 ID,用于标识此次请求的唯一标识符。 + + + result + 音乐资源列表的详细信息。详见 + + + reason + 请求状态码。详见 + + + requestId + 请求 ID。此请求的唯一标识符。 + + + result + 音乐内容列表的详细信息。详见 + + + reason + 请求状态码。详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + page + 当前页码,从 1 开始。 + + + pageSize + 每页最多返回的音乐资源数量,最大为 50。 + + + total + 音乐资源列表中的总资源数。 + + + list + 音乐资源列表的详细信息,详见 + + + reason + 来自声网音乐内容中心的请求状态码: +
    +
  • MUSIC_CONTENT_CENTER_STATE_REASON_OK (0):请求成功。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_ERROR (1):通用错误,无具体归因。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY (2):网关错误。可能原因包括: +
      +
    • 当前临时 Token 已过期。请重新生成临时 Token。
    • +
    • 提供的临时 Token 无效。请确保你使用的是 RTM Token。
    • +
    • 网络错误。请检查你的网络连接。
    • +
    +
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE (3):权限错误或未找到音乐资源。请确保你的项目已启用访问声网音乐内容中心的权限。如有问题,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE (4):内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING (5):加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION (6):解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL (7):HTTP 内部错误。请稍后重试。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onpreloadevent_imusiccontentcentereventhandler.dita b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onpreloadevent_imusiccontentcentereventhandler.dita new file mode 100644 index 00000000000..40312bcb365 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onpreloadevent_imusiccontentcentereventhandler.dita @@ -0,0 +1,132 @@ + + + + <ph keyref="onPreLoadEvent_IMusicContentCenterEventHandler"/> + 预加载音乐资源相关事件的回调。上报预加载音乐资源的事件。预加载音乐资源事件的回调。 + + + + + + + + +
+

+ virtual void onPreLoadEvent(const char* requestId, int64_t songCode, int percent, const char* lyricUrl, PreloadState state, MusicContentCenterStateReason reason) = 0; + - (void)onPreLoadEvent:(NSString*)requestId songCode:(NSInteger)songCode percent:(NSInteger)percent lyricUrl:(NSString * _Nullable)lyricUrl state:(AgoraMusicContentCenterPreloadState)state reason:(AgoraMusicContentCenterStateReason)reason; + void onPreLoadEvent(String requestId, long songCode, int percent, String lyricUrl, int state, int reason) +

+
+
+

调用 preload 预加载音乐资源后,SDK 会触发该回调。

+

调用 方法预加载音乐资源后,SDK 会触发该回调。

+

调用 preload 方法预加载音乐资源后,SDK 会触发该回调。

+
+
+ 触发时机 +

该回调在调用 方法预加载音乐资源后被触发。

+

该回调在调用 preload 方法后被触发。

+
+
+ 参数 + + + requestId + 请求 ID,用于标识该次请求的唯一标识符。 + + + songCode + 音乐资源的 ID,用于标识某个音乐项。 + + + percent + 音乐资源当前的加载进度,范围为 [0, 100]。 + + + lyricUrl + 歌词的下载地址。 + + + state + 音乐资源当前的加载状态,详见 + + + reason + 来自音乐内容中心的请求状态码,详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的编号,用于标识特定的音乐资源。 + + + percent + 音乐资源当前的加载进度,取值范围为 [0, 100]。 + + + lyricUrl + 歌词的下载地址。 + + + state + 音乐资源当前的加载状态,详见 + + + reason + 来自音乐内容中心的请求状态码,详见 + + + requestId + 请求 ID,用于唯一标识该请求。 + + + songCode + 音乐资源的 ID,用于标识一个音乐资源。 + + + percent + 音乐资源的当前加载进度,取值范围为 [0, 100]。 + + + lyricUrl + 歌词的下载地址。 + + + state + 音乐资源的当前加载状态: +
    +
  • 0:加载完成。
  • +
  • 1:加载失败。
  • +
  • 2:加载中。
  • +
+
+
+ + reason + 来自 Music Content Center 的请求状态码: +
    +
  • MUSIC_CONTENT_CENTER_STATE_REASON_OK (0):请求成功。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_ERROR (1):通用错误,无具体归因。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY (2):网关错误。可能原因包括: +
      +
    • 当前临时 Token 已过期,请重新生成 Token。
    • +
    • 提供的 Token 无效,请确保使用的是 Token。
    • +
    • 网络错误,请检查网络连接。
    • +
    +
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE (3):权限错误或音乐资源不存在。请确保项目已启用 Music Content Center 访问权限。如有问题请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE (4):内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING (5):加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION (6):解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL (7):HTTP 内部错误。请稍后重试。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onsongsimpleinforesult.dita b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onsongsimpleinforesult.dita new file mode 100644 index 00000000000..7bf08721167 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_imusiccontentcentereventhandler_onsongsimpleinforesult.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="onSongSimpleInfoResult"/> + 获取音乐资源详细信息的回调。获取音乐资源详细信息的回调。获取音乐资源详细信息的回调。 + + + + + + + + +
+

+ virtual void onSongSimpleInfoResult(const char* requestId, int64_t songCode, const char* simpleInfo, MusicContentCenterStateReason reason) = 0; + - (void)onSongSimpleInfoResult:(NSString*)requestId songCode:(NSInteger)songCode simpleInfo:(NSString* _Nullable)simpleInfo reason:(AgoraMusicContentCenterStateReason)reason; + void onSongSimpleInfoResult(String requestId, long songCode, String simpleInfo, int reason); +

+
+
+

调用 后,SDK 会触发该回调。

+

当你调用 获取某个音乐资源的详细信息后,SDK 会触发该回调。

+
+
+ 触发时机 +

调用 后触发。

+

该回调在你调用 获取音乐资源详细信息后被触发。

+

该回调在调用 后被触发。

+
+
+ 参数 + + + requestId + 请求 ID,用于标识此次请求的唯一标识符。 + + + songCode + 音乐资源的 ID,用于标识该音乐。 + + + simpleInfo + 音乐资源的相关信息,包括以下内容: +
    +
  • 副歌片段的起止时间(毫秒)。
  • +
  • 副歌歌词的下载链接。
  • +
  • 副歌片段的时长(毫秒)。
  • +
  • 歌曲名称。
  • +
  • 艺术家名称。
  • +
+
+
+ + reason + 请求状态码,详见 + + + requestId + 请求 ID。该请求的唯一标识符。 + + + songCode + 音乐资源的标识符。 + + + simpleInfo + 音乐资源的相关信息,包括: +
    +
  • 副歌片段的起始和结束时间(毫秒)。
  • +
  • 副歌片段的歌词下载 URL。
  • +
  • 副歌片段的时长(毫秒)。
  • +
  • 歌曲名称。
  • +
  • 歌手名称。
  • +
+
+
+ + reason + 请求状态码,详见 + + + requestId + 请求 ID,用于标识此次请求的唯一标识符。 + + + songCode + 音乐资源的标识符。 + + + simpleInfo + 音乐资源的相关信息,包括: +
    +
  • 副歌片段的起始和结束时间(毫秒)。
  • +
  • 副歌歌词的下载链接。
  • +
  • 副歌片段的时长(毫秒)。
  • +
  • 歌曲标题。
  • +
  • 艺术家名称。
  • +
+
+
+ + reason + 来自音乐内容中心的请求状态码: +
    +
  • MUSIC_CONTENT_CENTER_STATE_REASON_OK (0):请求成功。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_ERROR (1):通用错误,无具体原因。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY (2):网关错误。可能原因包括: +
      +
    • 当前临时 Token 已过期,请生成新的 Token。
    • +
    • 提供的 Token 无效,请确保使用的是 RTM Token。
    • +
    • 网络错误,请检查网络连接。
    • +
    +
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE (3):权限错误或音乐资源不存在。请确保项目已启用音乐内容中心权限。如有问题,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE (4):内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING (5):加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION (6):解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
  • MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL (7):内部 HTTP 错误。请稍后重试。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceiveaudiopacket.dita b/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceiveaudiopacket.dita new file mode 100644 index 00000000000..230af68b50f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceiveaudiopacket.dita @@ -0,0 +1,35 @@ + + + + <ph keyref="onReceiveAudioPacket"/> + 当本地用户接收到音频包时触发的回调。 + + + + + + + + +
+

+ virtual bool onReceiveAudioPacket(Packet& packet) = 0; +

+
+
+
+ 参数 + + + packet + 接收到的音频包。详见 + + +
+
+ 返回值 +

:音频包接收成功。 +:音频包被丢弃。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceivevideopacket.dita b/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceivevideopacket.dita new file mode 100644 index 00000000000..163987f1425 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ipacketobserver_onreceivevideopacket.dita @@ -0,0 +1,35 @@ + + + + <ph keyref="onReceiveVideoPacket"/> + 本地用户接收到视频数据包时触发的回调。 + + + + + + + + +
+

+ virtual bool onReceiveVideoPacket(Packet& packet) = 0; +

+
+
+
+ 参数 + + + packet + 接收到的视频数据包。详见 + + +
+
+ 返回值 +

:视频数据包接收成功。 +:视频数据包被丢弃。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendaudiopacket.dita b/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendaudiopacket.dita new file mode 100644 index 00000000000..ea476c5fe96 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendaudiopacket.dita @@ -0,0 +1,35 @@ + + + + <ph keyref="onSendAudioPacket"/> + 本地用户发送音频包时触发的回调。 + + + + + + + + +
+

+ virtual bool onSendAudioPacket(Packet& packet) = 0; +

+
+
+
+ 参数 + + + packet + 发送的音频包。详见 + + +
+
+ 返回值 +

:音频包发送成功。 +:音频包被丢弃。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendvideopacket.dita b/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendvideopacket.dita new file mode 100644 index 00000000000..f918d29e4de --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ipacketobserver_onsendvideopacket.dita @@ -0,0 +1,35 @@ + + + + <ph keyref="onSendVideoPacket"/> + 本地用户发送视频数据包时触发的回调。 + + + + + + + + +
+

+ virtual bool onSendVideoPacket(Packet& packet) = 0; +

+
+
+
+ 参数 + + + packet + 发送的视频数据包。详见 + + +
+
+ 返回值 +

:视频数据包发送成功。 +:视频数据包被丢弃。

+
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onactivespeaker.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onactivespeaker.dita new file mode 100644 index 00000000000..cf09aa48e6b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onactivespeaker.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="onActiveSpeaker"/> + 最活跃远端说话人回调。最活跃远端说话人回调。检测到最活跃的远端说话人时触发的回调。检测到最活跃的远端说话人时触发的回调。 + + + + + + + + +
+

+ virtual void onActiveSpeaker(uid_t uid) + public void onActiveSpeaker(int uid) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine activeSpeaker:(NSUInteger)speakerUid NS_SWIFT_NAME(rtcEngine(_:activeSpeaker:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine activeSpeaker:(NSUInteger)speakerUid NS_SWIFT_NAME(rtcEngine(_:activeSpeaker:)); +

+
+
+

调用 方法成功后,SDK 会持续检测哪位远端用户的音量最大。在当前周期内,音量被检测为最大次数最多的远端用户即为最活跃用户。当频道中用户数不少于两人且存在活跃的远端说话人时,SDK 会触发该回调并报告最活跃远端说话人的用户 ID。 +

    +
  • 如果最活跃的远端说话人始终是同一用户,SDK 只会触发一次该回调。
  • +
  • 如果最活跃的远端说话人变更为其他用户,SDK 会再次触发该回调并报告新的最活跃远端说话人的用户 ID。
  • +
+

+

成功调用 方法后,SDK 会持续检测哪位远端用户的音量最大。在当前周期内,音量被检测为最大次数最多的远端用户即为最活跃用户。当频道中用户数不少于两人,且存在活跃的远端说话人时,SDK 会触发该回调,并报告最活跃远端说话人的用户 ID。 +

    +
  • 如果最活跃的远端说话人始终是同一用户,SDK 只会触发一次该回调。
  • +
  • 如果最活跃的远端说话人变更为其他用户,SDK 会再次触发该回调,并报告新的最活跃远端说话人的用户 ID。
  • +
+

+

成功调用 enableAudioVolumeIndication 方法后,SDK 会持续检测哪位远端用户的音量最大。在当前周期内,音量被检测为最大次数最多的远端用户即为最活跃用户。当频道中用户数不少于两人且存在活跃的远端说话人时,SDK 会触发该回调并报告最活跃远端说话人的用户 ID(speakerUid)。 +

    +
  • 如果最活跃的远端说话人始终是同一用户,SDK 只会触发一次该回调。
  • +
  • 如果最活跃的远端说话人变更为其他用户,SDK 会再次触发该回调并报告新的最活跃远端说话人的用户 ID。
  • +
+

+

成功调用 enableAudioVolumeIndication 方法后,SDK 会持续检测哪位远端用户的音量最大。在当前周期内,音量被检测为最大次数最多的远端用户即为最活跃用户。当频道中用户数不少于两人且存在活跃的远端说话人时,SDK 会触发该回调并报告最活跃远端说话人的用户 ID(speakerUid)。 +

    +
  • 如果最活跃的远端说话人始终是同一用户,SDK 只会触发一次该回调。
  • +
  • 如果最活跃的远端说话人变更为其他用户,SDK 会再次触发该回调并报告新的最活跃远端说话人的用户 ID。
  • +
+

+
+
+ 触发时机 +

该回调在检测到最活跃的远端说话人时被触发。

+

该回调在检测到最活跃的远端说话人时被触发。

+

该回调在检测到最活跃的远端说话人时被触发。

+
+
+ 参数 + + + uid + 最活跃远端说话人的用户 ID。 + + + uid + 最活跃远端说话用户的用户 ID。 + + + engine + 引擎实例。详见 + + + speakerUid + 最活跃远端说话用户的用户 ID。 + + + engine + 引擎实例。详见 + + + speakerUid + 最活跃远端说话用户的用户 ID。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicestatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicestatechanged.dita new file mode 100644 index 00000000000..18a4036b14c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicestatechanged.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="onAudioDeviceStateChanged"/> + 音频设备状态发生变化回调。 + + + + + + + + +
+

+ virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) +

+
+
+

该回调用于通知音频设备的状态发生变化,例如设备上的耳机被拔出。

+ 该方法仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 设备 ID。 + + + deviceType + 设备类型,详见 + + + deviceState + 设备状态,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicevolumechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicevolumechanged.dita new file mode 100644 index 00000000000..1cfae6a3b91 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiodevicevolumechanged.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="onAudioDeviceVolumeChanged"/> + 音频设备或 App 音量变化时触发的回调。 + + + + + + + + +
+

+ virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) +

+
+
+ 该回调仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceType + 设备类型,详见 + + + volume + 音量值,范围为 [0, 255]。 + + + muted + 音频设备是否静音: +
    +
  • :音频设备已静音。
  • +
  • :音频设备未静音。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioeffectfinished.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioeffectfinished.dita new file mode 100644 index 00000000000..9ad6010695f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioeffectfinished.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="onAudioEffectFinished"/> + 本地音效文件播放结束回调。本地音效文件播放完成时的回调。本地音效文件播放完成时的回调。本地音效文件播放完成时的回调。 + + + + + + + + +
+

+ virtual void onAudioEffectFinished(int soundId) {} + public void onAudioEffectFinished(int soundId) {} + - (void)rtcEngineDidAudioEffectFinish:(AgoraRtcEngineKit * _Nonnull)engine soundId:(int)soundId NS_SWIFT_NAME(rtcEngineDidAudioEffectFinish(_:soundId:)); + - (void)rtcEngineDidAudioEffectFinish:(AgoraRtcEngineKit * _Nonnull)engine soundId:(int)soundId NS_SWIFT_NAME(rtcEngineDidAudioEffectFinish(_:soundId:)); +

+
+
+

当本地音效文件播放结束时,会触发该回调。你可以通过该回调获知指定音效是否已播放完成。

+

该回调在本地音效文件播放完成时触发。

+

该回调在本地音效文件播放完成时触发。

+
+
+ 触发时机 +

该回调在本地音效文件播放完成时被触发。

+

该回调在本地音效文件播放完成时被触发。

+

该回调在本地音效文件播放完成时被触发。

+
+
+ 参数 + + + soundId + 音效 ID,每个音效文件的唯一标识。 + + + soundId + 音效文件的唯一 ID。 + + + engine + 对象,详见 + + + soundId + 音效 ID,每个音效文件的唯一标识。 + + + engine + 对象,详见 + + + soundId + 音效 ID,每个音效文件的唯一标识。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingfinished.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingfinished.dita new file mode 100644 index 00000000000..ad55330e562 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingfinished.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="onAudioMixingFinished"/> + 本地音乐文件播放结束时触发的回调。本地音乐文件播放结束回调。本地音乐文件播放结束时的回调。本地音乐文件播放结束时的回调。 + + + + + + + + +
+

+ virtual void onAudioMixingFinished() __deprecated {} + public void onAudioMixingFinished() + - (void)rtcEngineLocalAudioMixingDidFinish:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineLocalAudioMixingDidFinish(_:)) __deprecated_msg("Use rtcEngine:audioMixingStateChanged:reasonCode: instead"); + - (void)rtcEngineLocalAudioMixingDidFinish:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineLocalAudioMixingDidFinish(_:)) __deprecated_msg("Use rtcEngine:audioMixingStateChanged:reasonCode: instead"); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 audioMixingStateChanged
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 audioMixingStateChanged
+
+
+

调用 startAudioMixing 播放本地音乐文件后,当播放结束时会触发该回调。如果调用 startAudioMixing 失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR

+

调用 startAudioMixing 播放本地音乐文件后,播放结束时会触发该回调。如果调用 startAudioMixing 失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR

+

调用 startAudioMixing 播放本地音乐文件后,当播放结束时会触发该回调。如果调用失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR

+

调用 startAudioMixing 播放本地音乐文件后,当播放结束时会触发该回调。如果调用失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR

+
+
+ 触发时机 +

调用 startAudioMixing 播放本地音乐文件后,当播放结束时触发。

+

该回调在本地音乐文件播放结束时被触发。

+

调用 startAudioMixing 播放本地音乐文件后,当播放结束时触发。

+

调用 startAudioMixing 播放本地音乐文件后,当播放结束时触发。

+
+
+ 参数 + + + engine + 对象,详见 + + + engine + 对象,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingpositionchanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingpositionchanged.dita new file mode 100644 index 00000000000..868e306dae6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingpositionchanged.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="onAudioMixingPositionChanged"/> + 报告音乐文件播放进度的回调。音乐文件播放进度回调。报告音乐文件的播放进度。报告音乐文件的播放进度。 + + + + + + + + +
+

+ virtual void onAudioMixingPositionChanged(int64_t position) {} + public void onAudioMixingPositionChanged(long position) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingPositionChanged:(NSInteger)position NS_SWIFT_NAME(rtcEngine(_:audioMixingPositionChanged:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingPositionChanged:(NSInteger)position NS_SWIFT_NAME(rtcEngine(_:audioMixingPositionChanged:)); +

+
+
+

调用 startAudioMixing 播放音乐文件后,SDK 每两秒触发一次该回调,报告音乐文件的播放进度。

+

调用 startAudioMixing 方法播放音乐文件后,SDK 每两秒触发一次该回调,报告音乐文件的播放进度。

+

你调用 方法播放音乐文件后,SDK 每两秒触发一次该回调,报告音乐文件的播放进度。

+

你调用 方法播放音乐文件后,SDK 每两秒触发一次该回调,报告音乐文件的播放进度。

+
+
+ 触发时机 +

该回调在调用 startAudioMixing 播放音乐文件后,每两秒触发一次。

+

你调用 方法播放音乐文件后,SDK 每两秒触发一次该回调。

+

你调用 方法播放音乐文件后,SDK 每两秒触发一次该回调。

+
+
+ 参数 + + + position + 播放进度,单位为毫秒。 + + + position + 播放进度,单位为毫秒。 + + + engine + 实例,详见 + + + position + 播放进度,单位为毫秒。 + + + engine + 实例,详见 + + + position + 播放进度,单位为毫秒。 + + +
+
+ 返回值 +

+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/windows/error-code)了解详情和解决建议。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingstatechanged.dita new file mode 100644 index 00000000000..4e20e8d4ed2 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiomixingstatechanged.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="onAudioMixingStateChanged"/> + 音乐文件播放状态变化回调。音乐文件播放状态变化回调。音乐文件播放状态发生变化回调。音乐文件播放状态发生变化回调。 + + + + + + + + +
+

+ virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) + public void onAudioMixingStateChanged(int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingStateChanged:(AgoraAudioMixingStateType)state + reasonCode:(AgoraAudioMixingReasonCode)reasonCode NS_SWIFT_NAME(rtcEngine(_:audioMixingStateChanged:reasonCode:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingStateChanged:(AgoraAudioMixingStateType)state + reasonCode:(AgoraAudioMixingReasonCode)reasonCode NS_SWIFT_NAME(rtcEngine(_:audioMixingStateChanged:reasonCode:)); +

+
+
+

该回调在音乐文件的播放状态发生变化时触发,并报告当前的播放状态和错误码。

+

该回调报告当前音乐文件的播放状态和错误码。

+

该回调在音乐文件的播放状态发生变化时触发,并报告当前的状态和错误码。

+

该回调在音乐文件的播放状态发生变化时触发,并报告当前的状态和错误码。

+
+
+ 触发时机 +

该回调在音乐文件播放状态发生变化时被触发。

+

该回调在音乐文件的播放状态发生变化时被触发。

+

该回调在音乐文件的播放状态发生变化时被触发。

+
+
+ 参数 + + + state + 音乐文件的播放状态。详见 + + + reason + 播放状态变化的原因或错误码。详见 + + + state + 音乐文件的播放状态: +
    +
  • AUDIO_MIXING_STATE_PLAYING (710):音乐文件正在播放。
  • +
  • AUDIO_MIXING_STATE_PAUSED (711):音乐文件暂停播放。
  • +
  • AUDIO_MIXING_STATE_STOPPED (713):音乐文件停止播放。
  • +
  • AUDIO_MIXING_STATE_FAILED (714):播放音乐文件时出现异常,SDK 会通过 reason 参数返回具体原因。
  • +
+
+
+ + reason + 错误码: +
    +
  • AUDIO_MIXING_REASON_OK (0):没有错误。
  • +
  • AUDIO_MIXING_REASON_CAN_NOT_OPEN (701):SDK 无法打开音乐文件。
  • +
  • AUDIO_MIXING_REASON_TOO_FREQUENT_CALL (702):SDK 打开音乐文件过于频繁。
  • +
  • AUDIO_MIXING_REASON_INTERRUPTED_EOF (703):音乐文件播放被中断。
  • +
  • AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED (721):音乐文件完成一次循环播放。
  • +
  • AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED (723):音乐文件完成所有循环播放。
  • +
  • AUDIO_MIXING_REASON_STOPPED_BY_USER (724):通过调用 停止音乐文件播放。
  • +
+
+
+ + engine + 对象,详见 + + + state + 音乐文件的播放状态,详见 + + + reasonCode + 错误码,详见 + + + engine + 对象,详见 + + + state + 音乐文件的播放状态,详见 + + + reasonCode + 错误码,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiopublishstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiopublishstatechanged.dita new file mode 100644 index 00000000000..cf41bf6bf4e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiopublishstatechanged.dita @@ -0,0 +1,130 @@ + + + + <ph keyref="onAudioPublishStateChanged"/> + 音频发布状态发生变化时触发的回调。音频发布状态发生变化回调。音频发布状态发生变化回调。音频发布状态发生变化回调。 + + + + + + + + +
+

+ virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) + public void onAudioPublishStateChanged(String channel, int oldState, int newState, int elapseSinceLastState) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didAudioPublishStateChange:(NSString * _Nonnull)channelId + oldState:(AgoraStreamPublishState)oldState + newState:(AgoraStreamPublishState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didAudioPublishStateChange:oldState:newState:elapseSinceLastState:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didAudioPublishStateChange:(NSString * _Nonnull)channelId + oldState:(AgoraStreamPublishState)oldState + newState:(AgoraStreamPublishState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didAudioPublishStateChange:oldState:newState:elapseSinceLastState:)); +

+
+
+

该回调在音频发布状态发生变化时触发。

+

该回调在音频发布状态发生变化时触发。

+
+
+ 触发时机 +

该回调在音频发布状态发生变化时被触发。

+

该回调在音频发布状态发生变化时触发。

+

该回调在音频发布状态发生变化时触发。

+
+
+ 参数 + + + channel + 频道名。 + + + oldState + 之前的音频发布状态,详见 + + + newState + 当前的音频发布状态,详见 + + + elapseSinceLastState + 从上一个状态切换到当前状态所经过的时间(毫秒)。 + + + channel + 频道名。 + + + oldState + 之前的音频发布状态: +
    +
  • PUB_STATE_IDLE(0):加入频道后的初始发布状态。
  • +
  • PUB_STATE_NO_PUBLISHED(1):发布本地流失败。
  • +
  • PUB_STATE_PUBLISHING(2):正在发布本地流。
  • +
  • PUB_STATE_PUBLISHED(3):成功发布本地流。
  • +
+
+
+ + newState + 当前的音频发布状态: +
    +
  • PUB_STATE_IDLE(0):加入频道后的初始发布状态。
  • +
  • PUB_STATE_NO_PUBLISHED(1):发布本地流失败。
  • +
  • PUB_STATE_PUBLISHING(2):正在发布本地流。
  • +
  • PUB_STATE_PUBLISHED(3):成功发布本地流。
  • +
+
+
+ + elapseSinceLastState + 从上一个状态到当前状态所经过的时间,单位为毫秒。 + + + engine + 当前使用的 实例。详见 + + + channelId + 频道名。 + + + oldState + 之前的发布状态。详见 + + + newState + 当前的发布状态。详见 + + + elapseSinceLastState + 从之前状态切换到当前状态所经过的时间(毫秒)。 + + + engine + 当前使用的 实例。详见 + + + channelId + 频道名。 + + + oldState + 之前的发布状态。详见 + + + newState + 当前的发布状态。详见 + + + elapseSinceLastState + 从之前状态切换到当前状态所经过的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioquality.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioquality.dita new file mode 100644 index 00000000000..79dbb5a94a0 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioquality.dita @@ -0,0 +1,115 @@ + + + + <ph keyref="onAudioQuality"/> + 报告每个远端用户发送的音频流的统计信息。报告每个远端用户发送的音频流的统计信息回调。当前通话的音频质量,每两秒报告一次。当前通话的音频质量,每两秒报告一次。 + + + + + + + + +
+

+ virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated + public void onAudioQuality(int uid, int quality, short delay, short lost) + - (void)audioQualityBlock:(void(^ _Nullable)(NSUInteger uid, AgoraNetworkQuality quality, NSUInteger delay, NSUInteger lost))audioQualityBlock NS_SWIFT_NAME(audioQualityBlock(_:)) __deprecated_msg("use delegate instead."); + - (void)audioQualityBlock:(void(^ _Nullable)(NSUInteger uid, AgoraNetworkQuality quality, NSUInteger delay, NSUInteger lost))audioQualityBlock NS_SWIFT_NAME(audioQualityBlock(_:)) __deprecated_msg("use delegate instead."); +

+
+
+
+ +
废弃
+
该回调已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用 remoteAudioStats
+
+ +
废弃
+
该方法已废弃,请改用 remoteAudioStats
+
+
+

SDK 每两秒触发一次该回调,用于报告每个正在发送音频流的远端用户的音频质量。如果频道中有多个用户发送音频流,SDK 会触发多次该回调。

+

该回调每两秒触发一次,用于报告每个正在发送音频流的远端用户的音频质量。

+
+
+ 参数 + + + uid + 发送音频流的远端用户 ID。 + + + quality + 该用户的音频质量,详见 + + + delay + 从发送端到接收端的网络延迟(毫秒),包括音频采样预处理、网络传输和网络抖动缓冲造成的延迟。 + + + lost + 从远端用户到接收端的音频数据包丢包率(%)。 + + + uid + 发送音频流的远端用户 ID。 + + + quality + 用户的音频质量: +
    +
  • QUALITY_UNKNOWN (0):音质未知。
  • +
  • QUALITY_EXCELLENT (1):音质极佳。
  • +
  • QUALITY_GOOD (2):网络质量很好,但码率略低于极佳。
  • +
  • QUALITY_POOR (3):通话质量轻微受损。
  • +
  • QUALITY_BAD (4):无法流畅沟通。
  • +
  • QUALITY_VBAD (5):音质极差,几乎无法沟通。
  • +
  • QUALITY_DOWN (6):网络连接中断,完全无法沟通。
  • +
  • QUALITY_DETECTING (8):正在进行 Last-mile 网络探测。
  • +
+
+
+ + delay + 从发送端到接收端的网络延迟(毫秒),包括音频采样预处理、网络传输和网络抖动缓冲造成的延迟。 + + + lost + 从远端用户发送到接收端的音频数据包的丢包率(%)。 + + + audioQualityBlock + 回调 block,包含以下内容: +
    +
  • uid:说话者的用户 ID。
  • +
  • quality:网络质量,详见
  • +
  • delay:时延,单位为毫秒。
  • +
  • lost:丢包率,单位为 %。
  • +
+
+
+ + audioQualityBlock + 回调 block,包含以下内容: +
    +
  • uid:说话者的用户 ID。
  • +
  • quality:网络质量,详见
  • +
  • delay:时延,单位为毫秒。
  • +
  • lost:丢包率,单位为 %。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioroutingchanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioroutingchanged.dita new file mode 100644 index 00000000000..8df131f3e41 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudioroutingchanged.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="onAudioRoutingChanged"/> + 本地音频路由发生变化时触发的回调。本地音频路由发生变化时的回调。本地音频路由发生变化时的回调。本地音频路由发生变化时的回调。 + + + + + + + + +
+

+ virtual void onAudioRoutingChanged(int routing) { (void)routing; } + public void onAudioRouteChanged(int routing) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didAudioRouteChanged:(AgoraAudioOutputRouting)routing NS_SWIFT_NAME(rtcEngine(_:didAudioRouteChanged:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didAudioRouteChanged:(AgoraAudioOutputRouting)routing NS_SWIFT_NAME(rtcEngine(_:didAudioRouteChanged:)); +

+
+
+

该回调在本地音频路由发生变化时触发,例如从听筒切换到扬声器。

+

该回调在本地音频路由发生变化时触发,例如从听筒切换到扬声器。

+ 该回调仅适用于 Android、iOS 和 macOS 平台。 +
+
+ 触发时机 +

该回调在本地音频路由发生变化时被触发。

+

该回调在本地音频路由发生变化时被触发。

+

该回调在本地音频路由发生变化时被触发。

+
+
+ 参数 + + + routing + 当前的音频路由,详见 + + + routing + 当前的音频路由。 +
    +
  • AUDIO_ROUTE_DEFAULT(-1):默认音频路由。
  • +
  • AUDIO_ROUTE_HEADSET(0):音频路由为带麦克风的耳机。
  • +
  • AUDIO_ROUTE_EARPIECE(1):音频路由为听筒。
  • +
  • AUDIO_ROUTE_HEADSETNOMIC(2):音频路由为不带麦克风的耳机。
  • +
  • AUDIO_ROUTE_SPEAKERPHONE(3):音频路由为设备自带扬声器。
  • +
  • AUDIO_ROUTE_LOUDSPEAKER(4):音频路由为外接扬声器(预留)。
  • +
  • AUDIO_ROUTE_BLUETOOTH_DEVICE_HFP(5):音频路由为使用 HFP 协议的蓝牙设备。
  • +
  • AUDIO_ROUTE_BLUETOOTH_DEVICE_A2DP(10):音频路由为使用 A2DP 协议的蓝牙设备。
  • +
+
+
+ + engine + 实例。详见 + + + routing + 当前的音频路由。详见 + + + engine + 实例。详见 + + + routing + 当前的音频路由。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiosubscribestatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiosubscribestatechanged.dita new file mode 100644 index 00000000000..a0f68967d8b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiosubscribestatechanged.dita @@ -0,0 +1,181 @@ + + + + <ph keyref="onAudioSubscribeStateChanged"/> + 音频订阅状态发生变化回调。音频订阅状态发生变化回调。音频订阅状态发生变化回调。音频订阅状态发生变化回调。 + + + + + + + + +
+

+ virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) + public void onAudioSubscribeStateChanged(String channel, int uid, int oldState, int newState, int elapseSinceLastState) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didAudioSubscribeStateChange:(NSString * _Nonnull)channelId + uid:(unsigned int)uid + oldState:(AgoraStreamSubscribeState)oldState + newState:(AgoraStreamSubscribeState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didAudioSubscribeStateChange:(NSString * _Nonnull)channelId + uid:(unsigned int)uid + oldState:(AgoraStreamSubscribeState)oldState + newState:(AgoraStreamSubscribeState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:)); +

+
+
+

该回调在本地用户订阅远端音频流的状态发生变化时触发。

+

该回调在音频订阅状态发生变化时触发。

+

该回调在音频订阅状态发生变化时触发。

+
+
+ 触发时机 +

该回调在本地用户订阅远端音频流的状态发生变化时被触发。

+
+
+ 参数 + + + channel + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态,详见 + + + newState + 当前的订阅状态,详见 + + + elapseSinceLastState + 从前一个状态到当前状态所经历的时间(毫秒)。 + + + channel + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态: +
    +
  • SUB_STATE_IDLE (0):加入频道后的初始订阅状态。
  • +
  • SUB_STATE_NO_SUBSCRIBED (1):订阅远端音频流失败。可能原因包括: +
      +
    • 远端用户: +
        +
      • 调用 muteLocalAudioStream(true) 停止发送本地音频流。
      • +
      • 调用 禁用本地音频模块。
      • +
      • 调用 enableLocalAudio(false) 禁用本地音频采集。
      • +
      • 角色为观众。
      • +
      +
    • +
    • 本地用户: +
        +
      • 调用 joinChannel 时将 中的 autoSubscribeAudio 设为 ,表示不自动订阅任何音频流。
      • +
      • 调用 时将 muted 设为 ,表示停止接收远端音频流。
      • +
      +
    • +
    +
  • +
  • SUB_STATE_SUBSCRIBING (2):正在订阅中。
  • +
  • SUB_STATE_SUBSCRIBED (3):已成功接收远端音频流。
  • +
+
+
+ + newState + 当前的订阅状态: +
    +
  • SUB_STATE_IDLE (0):加入频道后的初始订阅状态。
  • +
  • SUB_STATE_NO_SUBSCRIBED (1):订阅远端音频流失败。可能原因包括: +
      +
    • 远端用户: +
        +
      • 调用 muteLocalAudioStream(true) 停止发送本地音频流。
      • +
      • 调用 禁用本地音频模块。
      • +
      • 调用 enableLocalAudio(false) 禁用本地音频采集。
      • +
      • 角色为观众。
      • +
      +
    • +
    • 本地用户: +
        +
      • 调用 joinChannel 时将 中的 autoSubscribeAudio 设为 ,表示不自动订阅任何音频流。
      • +
      • 调用 时将 muted 设为 ,表示停止接收远端音频流。
      • +
      +
    • +
    +
  • +
  • SUB_STATE_SUBSCRIBING (2):正在订阅中。
  • +
  • SUB_STATE_SUBSCRIBED (3):已成功接收远端音频流。
  • +
+
+
+ + elapseSinceLastState + 从上一个状态到当前状态所经过的时间,单位为毫秒。 + + + engine + 对象。 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态,详见 + + + newState + 当前的订阅状态,详见 + + + elapseSinceLastState + 从上一个状态到当前状态所经历的时间(毫秒)。 + + + engine + 对象。 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态,详见 + + + newState + 当前的订阅状态,详见 + + + elapseSinceLastState + 从上一个状态到当前状态所经历的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiovolumeindication.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiovolumeindication.dita new file mode 100644 index 00000000000..f9371f14e5a --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onaudiovolumeindication.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="onAudioVolumeIndication"/> + 回调。报告用户音量信息的回调。报告用户音量信息的回调。报告用户音量信息的回调。 + + + + + + + + +
+

+ virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber, int totalVolume) + public void onAudioVolumeIndication(AudioVolumeInfo[] speakers, int totalVolume) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine reportAudioVolumeIndicationOfSpeakers:(NSArray<AgoraRtcAudioVolumeInfo *> * _Nonnull)speakers totalVolume:(NSInteger)totalVolume NS_SWIFT_NAME(rtcEngine(_:reportAudioVolumeIndicationOfSpeakers:totalVolume:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine reportAudioVolumeIndicationOfSpeakers:(NSArray<AgoraRtcAudioVolumeInfo *> * _Nonnull)speakers totalVolume:(NSInteger)totalVolume NS_SWIFT_NAME(rtcEngine(_:reportAudioVolumeIndicationOfSpeakers:totalVolume:)); +

+
+
+

默认情况下,该回调处于关闭状态。你可以通过调用 方法开启该回调。开启后,当频道中有用户发送音频流时,SDK 会按照 中设置的时间间隔触发该回调。SDK 会同时触发两个独立的 回调,分别报告发送音频流的本地用户和瞬时音量最高的最多三位远端用户的音量信息。

+

默认情况下,该回调处于关闭状态。你可以通过调用 方法开启该回调。开启后,当用户在频道中发送音频流时,SDK 会根据 中设置的时间间隔触发该回调。SDK 会同时触发两个独立的 回调,分别报告发送音频流的本地用户和瞬时音量最高的最多三位远端用户的音量信息。

+

你可以通过调用 enableAudioVolumeIndication 方法开启该回调。开启后,当用户在频道中发送音频流时,SDK 会根据 enableAudioVolumeIndication 中设置的时间间隔触发该回调。SDK 会同时触发两个独立的回调,分别报告发送音频流的本地用户和瞬时音量最高的最多三位远端用户的音量信息。

+

你可以通过调用 enableAudioVolumeIndication 方法开启该回调。开启后,当用户在频道中发送音频流时,SDK 会根据 enableAudioVolumeIndication 中设置的时间间隔触发该回调。SDK 会同时触发两个独立的回调,分别报告发送音频流的本地用户和瞬时音量最高的最多三位远端用户的音量信息。

+ 开启该回调后,即使本地用户调用 方法将音频静音,SDK 仍会继续报告本地用户的音量信息。如果某位远端用户的音量为频道中前三高之一,但停止发布音频流超过 20 秒,该回调将不再包含该用户的信息;如果所有远端用户都停止发布音频流超过 20 秒,SDK 将不再触发远端用户的音量回调。 + 开启该回调后,即使本地用户调用 方法静音,SDK 仍会继续报告本地用户的音量信息。 +
    +
  • 如果某位远端用户的音量在频道中排名前三,但停止发布音频流超过 20 秒,该回调将不再包含该用户的信息。
  • +
  • 如果所有远端用户都停止发布音频流超过 20 秒,SDK 将不再触发远端用户的音量回调。
  • +
+
+ 收到该回调后,如需更新 UI 界面,请确保将执行线程切换到 UI 线程。开启该回调后,即使本地用户调用 muteLocalAudioStream 方法进行静音,SDK 仍会继续报告本地用户的音量信息。如果频道中音量排名前三的远端用户停止发布音频流超过 20 秒,回调中将不再包含该用户的信息;如果所有远端用户都停止发布音频流超过 20 秒,SDK 将不再触发远端用户的音量回调。 + 收到该回调后,如需更新 UI 界面,请确保将执行线程切换到 UI 线程。开启该回调后,即使本地用户调用 muteLocalAudioStream 方法进行静音,SDK 仍会继续报告本地用户的音量信息。如果频道中音量排名前三的远端用户停止发布音频流超过 20 秒,回调中将不再包含该用户的信息;如果所有远端用户都停止发布音频流超过 20 秒,SDK 将不再触发远端用户的音量回调。 +
+
+ 触发时机 +

当启用音量提示并有用户发送音频流时触发。

+

该回调在启用音量提示并有用户发送音频流时被触发。

+

该回调在启用音量提示并有用户发送音频流时被触发。

+
+
+ 参数 + + + speakers + 用户的音量信息。详见 。当该回调中的 speakers 数组为空时,表示频道中没有远端用户或没有用户发送音频流。 + + + speakerNumber + 用户总数。 +
    +
  • 本地用户的回调中,如果本地用户正在发送音频流,speakerNumber 的值为 1。
  • +
  • 远端用户的回调中,speakerNumber 的取值范围为 [0, 3]。如果发送音频流的远端用户数量大于或等于 3,speakerNumber 的值为 3。
  • +
+
+
+ + totalVolume + 说话者的音量,取值范围为 [0, 255]。 +
    +
  • 本地用户的回调中,totalVolume 表示本地用户的音量。
  • +
  • 远端用户的回调中,totalVolume 表示瞬时音量最高的最多三位远端用户的音量总和。如果调用了 startAudioMixing,则该值为混音后的音量。
  • +
+
+
+ + speakers + 用户的音量信息。当该数组为空时,表示频道中没有远端用户或远端用户未发送音频流。详见 + + + totalVolume + 说话者的音量,取值范围为 [0, 255]。 +
    +
  • 对于本地用户的回调,totalVolume 是发送音频流的本地用户的音量。
  • +
  • 对于远端用户的回调,totalVolume 是瞬时音量最高的最多三位远端用户的音量总和。
  • +
  • 如果调用了 startAudioMixing,则 totalVolume 是混音后的音量。
  • +
+
+
+ + engine + 对象。详见 + + + speakers + 用户的音量信息。详见 。当该数组为空时,表示频道中没有远端用户或远端用户未发送音频流。 + + + totalVolume + 扬声器的音量,取值范围为 [0, 255]。 +
    +
  • 对于本地用户的回调,totalVolume 是发送音频流的本地用户的音量。
  • +
  • 对于远端用户的回调,totalVolume 是瞬时音量最高的最多三位远端用户的音量总和。如果你调用了 startAudioMixing,则 totalVolume 是混音后的音量。
  • +
+
+
+ + engine + 对象。详见 + + + speakers + 用户的音量信息。详见 。当该数组为空时,表示频道中没有远端用户或远端用户未发送音频流。 + + + totalVolume + 扬声器的音量,取值范围为 [0, 255]。 +
    +
  • 对于本地用户的回调,totalVolume 是发送音频流的本地用户的音量。
  • +
  • 对于远端用户的回调,totalVolume 是瞬时音量最高的最多三位远端用户的音量总和。如果你调用了 startAudioMixing,则 totalVolume 是混音后的音量。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraexposureareachanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraexposureareachanged.dita new file mode 100644 index 00000000000..acbc55a70e6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraexposureareachanged.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="onCameraExposureAreaChanged"/> + 摄像头曝光区域发生变化回调。摄像头曝光区域发生变化回调。摄像头曝光区域发生变化回调。 + + + + + + + + +
+

+ virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine cameraExposureDidChangedToRect:(CGRect)rect NS_SWIFT_NAME(rtcEngine(_:cameraExposureDidChangedTo:)); + public void onCameraExposureAreaChanged(Rect rect) +

+
+
+

当本地用户调用 更改摄像头曝光位置时,SDK 会触发该回调。

+

当你调用 方法更改摄像头曝光位置时,SDK 会触发该回调。

+

当本地用户调用 更改摄像头曝光位置时,SDK 会触发该回调。

+ 该回调仅适用于 Android 和 iOS 平台。 +
+
+ 触发时机 +

该回调在你调用 更改摄像头曝光位置时被触发。

+

该回调在调用 更改摄像头曝光位置时被触发。

+
+
+ 参数 + + + x + 更改后曝光区域的 x 坐标。 + + + y + 更改后曝光区域的 y 坐标。 + + + width + 更改后曝光区域的宽度。 + + + height + 更改后曝光区域的高度。 + + + engine + 对象,详见 + + + rect + 本地预览中的曝光矩形区域。 + + + rect + 本地预览中的曝光矩形区域。详见 [Rect](https://developer.android.google.cn/reference/android/graphics/Rect)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncamerafocusareachanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncamerafocusareachanged.dita new file mode 100644 index 00000000000..e79e323cb6a --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncamerafocusareachanged.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onCameraFocusAreaChanged"/> + 回调。当摄像头对焦区域发生变化时触发。摄像头对焦区域发生变化时的回调。摄像头对焦区域发生变化的回调。 + + + + + + + + +
+

+ virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine cameraFocusDidChangedToRect:(CGRect)rect NS_SWIFT_NAME(rtcEngine(_:cameraFocusDidChangedTo:)); + public void onCameraFocusAreaChanged(Rect rect) +

+
+
+

调用 方法更改摄像头对焦位置时,SDK 会触发该回调。

+

当本地用户调用 更改摄像头对焦位置时,SDK 会触发该回调。

+ 该回调仅适用于 Android 和 iOS 平台。 +
+
+ 触发时机 +

该回调在你调用 更改摄像头对焦位置时被触发。

+
+
+ 参数 + + + x + 对焦区域变化后的 x 坐标。 + + + y + 对焦区域变化后的 y 坐标。 + + + width + 对焦区域变化后的宽度。 + + + height + 对焦区域变化后的高度。 + + + rect + 本地预览画面中的对焦矩形区域。 + + + engine + 对象,详见 + + + rect + 本地预览中的对焦矩形区域。详见 [Rect](https://developer.android.google.cn/reference/android/graphics/Rect)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraready.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraready.dita new file mode 100644 index 00000000000..408e259c34f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_oncameraready.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="onCameraReady"/> + 回调:当摄像头打开并准备好采集视频时触发。摄像头准备就绪回调。摄像头开启并准备好采集视频时触发的回调。 + + + + + + + + +
+

+ virtual void onCameraReady() __deprecated {} + - (void)rtcEngineCameraDidReady:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineCameraDidReady(_:)) __deprecated_msg("Use rtcEngine:localVideoStateChangedOfState:reason:sourceType: instead"); + public void onCameraReady() {} +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 中的 LOCAL_VIDEO_STREAM_STATE_CAPTURING
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 触发时机 +

该回调在摄像头成功打开并准备好采集视频时触发。

+

该回调在摄像头成功开启并准备好采集视频时被触发。

+
+
+ 参数 + + + engine + 对象。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onchannelmediarelaystatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onchannelmediarelaystatechanged.dita new file mode 100644 index 00000000000..0cc13c488c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onchannelmediarelaystatechanged.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="onChannelMediaRelayStateChanged"/> + 跨频道媒体流转发状态变化回调。跨频道媒体流转发状态发生变化回调。跨频道媒体流转发状态发生变化回调。跨频道媒体流转发状态发生变化回调。 + + + + + + + + +
+

+ virtual void onChannelMediaRelayStateChanged(int state, int code) + public void onChannelMediaRelayStateChanged(int state, int code) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine +channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state + error:(AgoraChannelMediaRelayError)error NS_SWIFT_NAME(rtcEngine(_:channelMediaRelayStateDidChange:error:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine +channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state + error:(AgoraChannelMediaRelayError)error NS_SWIFT_NAME(rtcEngine(_:channelMediaRelayStateDidChange:error:)); +

+
+
+

该回调返回当前跨频道媒体流转发的状态和错误码信息。

+

该回调返回当前跨频道媒体流转发的错误信息。

+

该回调返回当前跨频道媒体流转发的状态及错误码。

+

该回调返回当前跨频道媒体流转发的状态及错误码。

+
+
+ 触发时机 +

该回调在跨频道媒体流转发状态发生变化时被触发。

+

该回调在跨频道媒体流转发状态发生变化时触发。

+

该回调在跨频道媒体流转发状态发生变化时触发。

+
+
+ 参数 + + + state + 状态码。详见 + + + code + 错误码。详见 + + + state + 跨频道媒体流转发的状态码: +
    +
  • RELAY_STATE_IDLE:SDK 正在初始化。
  • +
  • RELAY_STATE_CONNECTING:SDK 尝试将媒体流转发到目标频道。
  • +
  • RELAY_STATE_RUNNING:SDK 成功将媒体流转发到目标频道。
  • +
  • RELAY_STATE_FAILURE:发生错误,详见
  • +
+
+
+ + code + 跨频道媒体流转发的错误码: +
    +
  • RELAY_OK:一切正常。
  • +
  • RELAY_ERROR_SERVER_ERROR_RESPONSE:服务器响应出错。
  • +
  • RELAY_ERROR_SERVER_NO_RESPONSE:服务器无响应。该错误可能由网络连接不佳引起。如果在启动跨频道媒体流转发时出现该错误,可以稍后重试;如果在转发过程中出现该错误,可以调用 leaveChannel 离开频道。该错误也可能是项目未启用跨频道媒体流转发服务导致的。你可以[联系技术支持](https://ticket.shengwang.cn/)启用该服务。
  • +
  • RELAY_ERROR_NO_RESOURCE_AVAILABLE:SDK 无法访问服务,可能由于服务器资源有限。
  • +
  • RELAY_ERROR_FAILED_JOIN_SRC:服务器无法发送转发请求。
  • +
  • RELAY_ERROR_FAILED_JOIN_DEST:服务器无法接受转发请求。
  • +
  • RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC:服务器无法接收媒体流。
  • +
  • RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST:服务器无法发送媒体流。
  • +
  • RELAY_ERROR_SERVER_CONNECTION_LOST:由于网络连接不佳,SDK 与服务器断开连接。你可以调用 leaveChannel 离开频道。
  • +
  • RELAY_ERROR_INTERNAL_ERROR:服务器内部发生错误。
  • +
  • RELAY_ERROR_SRC_TOKEN_EXPIRED:源频道的 Token 已过期。
  • +
  • RELAY_ERROR_DEST_TOKEN_EXPIRED:目标频道的 Token 已过期。
  • +
+
+
+ + engine + 对象,详见 + + + state + 跨频道媒体流转发的状态码,详见 + + + error + 跨频道媒体流转发的错误码,详见 + + + engine + 对象,详见 + + + state + 跨频道媒体流转发的状态码,详见 + + + error + 跨频道媒体流转发的错误码,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechanged.dita new file mode 100644 index 00000000000..44853b86bdc --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechanged.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="onClientRoleChanged"/> + 用户角色或观众延迟等级发生变化时触发的回调。用户角色或观众延迟级别发生变化回调。用户角色或观众延迟等级发生变化时触发的回调。用户角色或观众延迟等级发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) + public void onClientRoleChanged(int oldRole, int newRole, ClientRoleOptions newRoleOptions) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didClientRoleChanged:(AgoraClientRole)oldRole newRole:(AgoraClientRole)newRole newRoleOptions:(AgoraClientRoleOptions * _Nullable)newRoleOptions NS_SWIFT_NAME(rtcEngine(_:didClientRoleChanged:newRole:newRoleOptions:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didClientRoleChanged:(AgoraClientRole)oldRole newRole:(AgoraClientRole)newRole newRoleOptions:(AgoraClientRoleOptions * _Nullable)newRoleOptions NS_SWIFT_NAME(rtcEngine(_:didClientRoleChanged:newRole:newRoleOptions:)); +

+
+
+ 当你在加入频道前调用 setClientRole 并将用户角色设置为 BROADCASTER 时,该回调不会被触发。 + 当你在加入频道前调用 并将用户角色设置为主播时,该回调不会被触发。 + 加入频道前调用 并将用户角色设置为 BROADCASTER 时不会触发该回调。 + 加入频道前调用 并将用户角色设置为 BROADCASTER 时不会触发该回调。 +
+
+ 触发时机 +

在以下任一情况下会触发该回调: +

    +
  • 在加入频道后调用 setClientRole 设置用户角色或观众延迟等级;
  • +
  • 在加入频道前调用 setClientRole 并将用户角色设置为 AUDIENCE
  • +
+

+

该回调在以下任一情况下被触发: +

    +
  • 加入频道后调用 设置用户角色或观众延迟级别;
  • +
  • 加入频道前调用 并将用户角色设置为观众。
  • +
+

+

该回调会在以下任一情况下触发: +

    +
  • 在加入频道后调用 设置用户角色或观众延迟等级。
  • +
  • 在加入频道前调用 并将用户角色设置为 AUDIENCE
  • +
+

+

该回调会在以下任一情况下触发: +

    +
  • 在加入频道后调用 设置用户角色或观众延迟等级。
  • +
  • 在加入频道前调用 并将用户角色设置为 AUDIENCE
  • +
+

+
+
+ 参数 + + + oldRole + 用户切换前的角色。详见 + + + newRole + 用户切换后的角色。详见 + + + newRoleOptions + 用户切换后的角色属性。详见 。 + 自 v4.1.0 起引入。 + + + + oldRole + 用户切换前的角色: +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众。
  • +
+
+
+ + newRole + 用户切换后的角色: +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众。
  • +
+
+
+ + newRoleOptions + 用户切换后的角色属性,详见 + + + engine + 引擎实例。详见 + + + oldRole + 用户切换前的角色。详见 + + + newRole + 用户切换后的角色。详见 + + + newRoleOptions + 用户切换后的角色属性。详见 + + + engine + 引擎实例。详见 + + + oldRole + 用户切换前的角色。详见 + + + newRole + 用户切换后的角色。详见 + + + newRoleOptions + 用户切换后的角色属性。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechangefailed.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechangefailed.dita new file mode 100644 index 00000000000..0d28405f467 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onclientrolechangefailed.dita @@ -0,0 +1,84 @@ + + + + <ph keyref="onClientRoleChangeFailed"/> + 切换用户角色失败时触发的回调。切换用户角色失败时的回调。当切换用户角色失败时触发的回调。当切换用户角色失败时触发的回调。 + + + + + + + + +
+

+ virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) + public void onClientRoleChangeFailed(int reason, int currentRole) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didClientRoleChangeFailed:(AgoraClientRoleChangeFailedReason)reason currentRole:(AgoraClientRole)currentRole NS_SWIFT_NAME(rtcEngine(_:didClientRoleChangeFailed:currentRole:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didClientRoleChangeFailed:(AgoraClientRoleChangeFailedReason)reason currentRole:(AgoraClientRole)currentRole NS_SWIFT_NAME(rtcEngine(_:didClientRoleChangeFailed:currentRole:)); +

+
+
+

该回调用于报告切换用户角色失败的原因和当前的用户角色。

+

该回调用于通知切换用户角色失败的原因以及当前的用户角色。

+
+
+ 触发时机 +

当本地用户加入频道后调用 setClientRole 切换用户角色失败时,SDK 会触发该回调。

+

该回调在本地用户加入频道后调用 (带 参数)切换用户角色失败时被触发。

+

该回调在你加入频道后调用 切换用户角色但切换失败时被触发。

+

该回调在你加入频道后调用 切换用户角色但切换失败时被触发。

+
+
+ 参数 + + + reason + 用户角色切换失败的原因。详见 + + + currentRole + 当前的用户角色。详见 + + + reason + + 仅在启用 128 人功能时会返回该枚举值。主播数量上限取决于启用 128 人功能时配置的实际主播数量。用户角色切换失败的原因。 +
    +
  • CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS (1):频道中的主播数量已达上限。仅在启用 128 人功能时会返回该枚举值。
  • +
  • CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED (2):请求被声网服务器拒绝。建议提示用户重试切换用户角色。
  • +
  • CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT (3):请求超时。建议提示用户检查网络连接并重试切换用户角色。自 v4.4.0 版本废弃,不建议使用。
  • +
  • CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED (4):SDK 连接失败。你可以通过 回调中报告的 reason 进行排查。自 v4.4.0 版本废弃,不建议使用。
  • +
+
+
+ + currentRole + 当前的用户角色。 +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播,可以发送和接收音视频流。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众,只能接收音视频流。
  • +
+
+
+ + reason + 用户角色切换失败的原因,详见 + + + currentRole + 当前的用户角色,详见 + + + reason + 用户角色切换失败的原因,详见 + + + currentRole + 当前的用户角色,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionbanned.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionbanned.dita new file mode 100644 index 00000000000..4294dd67296 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionbanned.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onConnectionBanned"/> + 连接被声网服务器封禁时触发的回调。连接被声网服务器封禁时触发的回调。连接被声网服务器封禁时触发的回调。连接被声网服务器封禁时触发的回调。 + + + + + + + + +
+

+ virtual void onConnectionBanned() __deprecated {} + public void onConnectionBanned() {} + - (void)rtcEngineConnectionDidBanned:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidBanned(_:)); + - (void)rtcEngineConnectionDidBanned:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidBanned(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

该回调在连接被声网服务器封禁时触发。

+

该回调在连接被声网服务器封禁时触发。

+
+
+ 触发时机 +

该回调在连接被声网服务器封禁时被触发。

+

该回调在连接被声网服务器封禁时触发。

+

该回调在连接被声网服务器封禁时触发。

+
+
+ 参数 + + + engine + 引擎实例。详见 + + + engine + 引擎实例。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectioninterrupted.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectioninterrupted.dita new file mode 100644 index 00000000000..7570a49a77b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectioninterrupted.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="onConnectionInterrupted"/> + 回调。 回调。连接中断回调。连接中断回调。 + + + + + + + + +
+

+ virtual void onConnectionInterrupted() __deprecated {} + public void onConnectionInterrupted() {} + - (void)rtcEngineConnectionDidInterrupted:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidInterrupted(_:)); + - (void)rtcEngineConnectionDidInterrupted:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidInterrupted(_:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用 回调。
+
+ +
废弃
+
该方法已废弃,请改用 回调。
+
+
+

当 SDK 建立连接后与服务器断开超过 4 秒时,会触发该回调。触发后,SDK 会尝试重新连接服务器。你可以通过该回调实现弹窗提醒功能。

+

该回调在 SDK 建立连接后与服务器断开连接超过四秒时被触发。触发该回调后,SDK 会尝试重新连接服务器。你可以通过该回调实现弹窗提醒功能。 +该回调与 的区别如下: +

    +
  • 当 SDK 成功加入频道后,与服务器断开连接超过四秒时,会触发 回调。
  • +
  • 无论是否加入频道,当 SDK 与服务器断开连接超过 10 秒时,会触发 回调。
  • +
如果 SDK 在与声网边缘服务器断开连接后 20 分钟内仍未重新加入频道,则停止重连。

+

当 SDK 在建立连接后与服务器断开连接超过四秒时,会触发该回调。触发该回调后,SDK 会尝试重新连接服务器。你可以使用该回调实现弹窗提醒功能。该回调与 的区别如下: +

    +
  • 当 SDK 成功加入频道后,与服务器断开连接超过四秒时,会触发 回调。
  • +
  • 无论是否加入频道,当 SDK 与服务器断开连接超过 10 秒时,会触发 回调。
  • +
如果 SDK 在与声网边缘服务器断开连接 20 分钟后仍未重新加入频道,则停止重连。

+

当 SDK 在建立连接后与服务器断开连接超过四秒时,会触发该回调。触发该回调后,SDK 会尝试重新连接服务器。你可以使用该回调实现弹窗提醒功能。该回调与 的区别如下: +

    +
  • 当 SDK 成功加入频道后,与服务器断开连接超过四秒时,会触发 回调。
  • +
  • 无论是否加入频道,当 SDK 与服务器断开连接超过 10 秒时,会触发 回调。
  • +
如果 SDK 在与声网边缘服务器断开连接 20 分钟后仍未重新加入频道,则停止重连。

+ 的区别如下: +
    +
  • 当 SDK 成功加入频道后与服务器断开连接超过 4 秒时,会触发 回调。
  • +
  • 无论是否加入频道,当 SDK 与服务器断开连接超过 10 秒时,会触发 回调。
  • +
如果 SDK 在与声网边缘服务器断开连接 20 分钟后仍未重新加入频道,则停止重连。
+
+
+ 触发时机 +

当 SDK 与服务器的连接中断超过 4 秒时触发。

+

该回调在 SDK 与服务器断开连接超过四秒时被触发。

+

该回调在 SDK 与服务器的连接中断超过四秒时被触发。

+

该回调在 SDK 与服务器的连接中断超过四秒时被触发。

+
+
+ 参数 + + + engine + 引擎实例。详见 + + + engine + 引擎实例。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionlost.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionlost.dita new file mode 100644 index 00000000000..ecf40d22823 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionlost.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="onConnectionLost"/> + 回调。当 SDK 与声网边缘服务器的连接中断后 10 秒内无法重新连接时触发。 回调:当 SDK 在连接中断后 10 秒内无法重新连接到声网边缘服务器时触发。连接中断 10 秒后仍无法重连时触发的回调。连接中断 10 秒后仍无法重连时触发的回调。 + + + + + + + + +
+

+ virtual void onConnectionLost() {} + public void onConnectionLost() {} + - (void)rtcEngineConnectionDidLost:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidLost(_:)); + - (void)rtcEngineConnectionDidLost:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineConnectionDidLost(_:)); +

+
+
+

调用 joinChannel 方法后,如果 SDK 与声网边缘服务器的连接中断,并在 10 秒内无法重新连接,则触发该回调。无论此时是否在频道中,都会触发该回调。如果在断开连接后 20 分钟内仍无法重新加入频道,SDK 将停止尝试重新加入。

+

无论是否在频道中,当调用 joinChannel 方法后,SDK 在连接中断后 10 秒内无法连接到服务器时会触发该回调。如果 SDK 在与声网边缘服务器断开连接后 20 分钟内仍无法重新加入频道,则停止重连。

+

调用 joinChannelByToken 方法后,无论是否已加入频道,如果 SDK 在连接中断后 10 秒内仍无法连接到服务器,则会触发该回调。如果在与声网边缘服务器断开连接后 20 分钟内仍无法重新加入频道,SDK 将停止尝试重新加入频道。

+

调用 joinChannelByToken 方法后,无论是否已加入频道,如果 SDK 在连接中断后 10 秒内仍无法连接到服务器,则会触发该回调。如果在与声网边缘服务器断开连接后 20 分钟内仍无法重新加入频道,SDK 将停止尝试重新加入频道。

+
+
+ 触发时机 +

当 SDK 与声网边缘服务器的连接中断后 10 秒内无法重新连接时触发。

+

该回调在调用 joinChannel 后,SDK 与服务器连接中断并在 10 秒内无法重新连接时被触发。

+

当 SDK 与声网边缘服务器的连接中断后 10 秒仍无法重连时触发。

+

当 SDK 与声网边缘服务器的连接中断后 10 秒仍无法重连时触发。

+
+
+ 参数 + + + engine + 当前使用的 实例。详见 + + + engine + 当前使用的 实例。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionstatechanged.dita new file mode 100644 index 00000000000..ba1ce9d83c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onconnectionstatechanged.dita @@ -0,0 +1,138 @@ + + + + <ph keyref="onConnectionStateChanged"/> + 网络连接状态发生变化时触发的回调。网络连接状态发生变化回调。网络连接状态发生变化时的回调。网络连接状态发生变化时的回调。 + + + + + + + + +
+

+ virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) + public void onConnectionStateChanged(int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine connectionChangedToState:(AgoraConnectionState)state reason:(AgoraConnectionChangedReason)reason NS_SWIFT_NAME(rtcEngine(_:connectionChangedTo:reason:)); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine connectionChangedToState:(AgoraConnectionState)state reason:(AgoraConnectionChangedReason)reason NS_SWIFT_NAME(rtcEngine(_:connectionChangedTo:reason:)); +

+
+
+
+ +
自从
+
自 v2.3.2 版本新增。
+
+
+

该回调在网络连接状态发生变化时触发,报告当前的连接状态以及导致状态变化的原因。

+

SDK 会在网络连接状态发生变化时触发该回调,并报告当前的连接状态及其变化原因。

+

该回调在网络连接状态发生变化时触发,报告当前的连接状态以及导致状态变化的原因。

+

该回调在网络连接状态发生变化时触发,报告当前的连接状态以及导致状态变化的原因。

+
+
+ 触发时机 +

该回调在网络连接状态发生变化时被触发。

+

该回调在网络连接状态发生变化时被触发。

+

该回调在网络连接状态发生变化时被触发。

+
+
+ 参数 + + + state + 当前的连接状态。详见 + + + reason + 连接状态变化的原因。详见 + + + state + 当前的连接状态: +
    +
  • CONNECTION_STATE_DISCONNECTED (1):SDK 与声网边缘服务器断开连接。
  • +
  • CONNECTION_STATE_CONNECTING (2):SDK 正在连接声网边缘服务器。
  • +
  • CONNECTION_STATE_CONNECTED (3):SDK 已连接到声网边缘服务器。
  • +
  • CONNECTION_STATE_RECONNECTING (4):SDK 尝试重新连接声网边缘服务器。
  • +
  • CONNECTION_STATE_FAILED (5):SDK 连接声网边缘服务器失败。
  • +
+
+
+ + reason + 连接状态变化的原因: +
    +
  • CONNECTION_CHANGED_CONNECTING (0):SDK 正在连接声网边缘服务器。
  • +
  • CONNECTION_CHANGED_JOIN_SUCCESS (1):SDK 成功加入频道。
  • +
  • CONNECTION_CHANGED_INTERRUPTED (2):SDK 与声网边缘服务器之间的连接中断。
  • +
  • CONNECTION_CHANGED_BANNED_BY_SERVER (3):连接被声网服务器禁止,例如用户被踢出频道时会返回该错误码。
  • +
  • CONNECTION_CHANGED_JOIN_FAILED (4):SDK 加入频道失败。若超过 20 分钟未能加入频道,SDK 会停止重连并返回该错误码。你需要提示用户尝试切换网络并重新加入频道。
  • +
  • CONNECTION_CHANGED_LEAVE_CHANNEL (5):SDK 已离开频道。
  • +
  • CONNECTION_CHANGED_INVALID_APP_ID (6):无效的 App ID。你需要使用有效的 App ID 重新加入频道,并确保该 App ID 与声网控制台中生成的一致。
  • +
  • CONNECTION_CHANGED_INVALID_CHANNEL_NAME (7):无效的频道名。请使用有效的频道名重新加入频道。有效的频道名为不超过 64 字节的字符串,支持的字符包括: +
      +
    • 所有小写英文字母:a 到 z。
    • +
    • 所有大写英文字母:A 到 Z。
    • +
    • 所有数字字符:0 到 9。
    • +
    • 特殊字符:!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,
    • +
    +
  • +
  • CONNECTION_CHANGED_INVALID_TOKEN (8):无效的 Token。可能原因包括: +
      +
    • 项目在声网控制台启用了 App Certificate,但加入频道时未传入 Token。
    • +
    • 调用 joinChannel 加入频道时指定的 uid 与生成 Token 时传入的 uid 不一致。
    • +
    • 使用的 Token 与生成的 Token 不一致。
    • +
    +
  • +
请确保: +
    +
  • 项目启用 App Certificate 时,加入频道必须传入 Token。
  • +
  • 生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致。
  • +
  • 使用的 Token 与生成的 Token 一致。
  • +
+
    +
  • CONNECTION_CHANGED_TOKEN_EXPIRED (9):当前使用的 Token 已过期。你需要在服务器上生成新的 Token,并使用新 Token 重新加入频道。
  • +
  • CONNECTION_CHANGED_REJECTED_BY_SERVER (10):用户被服务器禁止。
  • +
  • CONNECTION_CHANGED_SETTING_PROXY_SERVER (11):设置代理服务器后,SDK 尝试重新连接。
  • +
  • CONNECTION_CHANGED_RENEW_TOKEN (12):由于 Token 被更新,连接状态发生变化。
  • +
  • CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED (13):客户端 IP 地址发生变化。如果多次收到该错误码,你需要提示用户切换网络并重新加入频道。
  • +
  • CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT (14):SDK 与声网边缘服务器之间的连接保活超时,SDK 会自动尝试重新连接。
  • +
  • CONNECTION_CHANGED_REJOIN_SUCCESS (15):SDK 成功重新加入频道。
  • +
  • CONNECTION_CHANGED_LOST (16):SDK 与服务器之间的连接丢失。
  • +
  • CONNECTION_CHANGED_ECHO_TEST (17):由于回声测试,连接状态发生变化。
  • +
  • CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER (18):本地 IP 地址被用户更改。
  • +
  • CONNECTION_CHANGED_SAME_UID_LOGIN (19):用户在不同设备上以相同的 uid 加入同一频道。注意:以相同 uid 加入同一 RTC 频道属于未定义行为,声网不保证在相同情况下始终触发该错误码。
  • +
  • CONNECTION_CHANGED_TOO_MANY_BROADCASTERS (20):频道中的主播数量已达上限。
  • +
+
+
+ + engine + 对象,详见 + + + state + 当前的连接状态,详见 + + + reason + 连接状态发生变化的原因,详见 + + + engine + 对象,详见 + + + state + 当前的连接状态,详见 + + + reason + 连接状态发生变化的原因,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onencryptionerror.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onencryptionerror.dita new file mode 100644 index 00000000000..6391b14f1b0 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onencryptionerror.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="onEncryptionError"/> + 报告内置加密错误的回调。内置加密错误回调。内置加密错误回调。内置加密错误回调。 + + + + + + + + +
+

+ virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) + public void onEncryptionError(int errorType) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurEncryptionError:(AgoraEncryptionErrorType)errorType NS_SWIFT_NAME(rtcEngine(_:didOccur:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurEncryptionError:(AgoraEncryptionErrorType)errorType NS_SWIFT_NAME(rtcEngine(_:didOccur:)); +

+
+
+

调用 启用加密功能后,如果在发送端或接收端的加密或解密过程中发生错误,SDK 会触发该回调。

+

如果在调用 启用加密功能后,发送端或接收端在加密或解密过程中发生错误,SDK 会触发该回调。

+

当你调用 启用加密功能后,如果在发送端或接收端的加密或解密过程中发生错误,SDK 会触发该回调。

+

当你调用 启用加密功能后,如果在发送端或接收端的加密或解密过程中发生错误,SDK 会触发该回调。

+
+
+ 触发时机 +

该回调在加密或解密过程中发生错误时被触发。

+

该回调在加密或解密过程中发生错误时被触发。

+

该回调在加密或解密过程中发生错误时被触发。

+
+
+ 参数 + + + errorType + 错误类型,详见 + + + errorType + 错误类型: +
    +
  • ENCRYPTION_ERROR_INTERNAL_FAILURE(0):内部原因。
  • +
  • ENCRYPTION_ERROR_DECRYPTION_FAILURE(1):媒体流解密错误。请确保接收端和发送端使用相同的加密模式和密钥。
  • +
  • ENCRYPTION_ERROR_ENCRYPTION_FAILURE(2):媒体流加密错误。
  • +
  • ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE(3):数据流解密错误。请确保接收端和发送端使用相同的加密模式和密钥。
  • +
  • ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE(4):数据流加密错误。
  • +
+
+
+ + engine + 引擎对象。详见 + + + errorType + 错误类型的详细信息。详见 + + + engine + 引擎对象。详见 + + + errorType + 错误类型的详细信息。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onerror.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onerror.dita new file mode 100644 index 00000000000..d82f4c69ab4 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onerror.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="onError"/> + 回调。报告 SDK 运行时发生的错误。SDK 运行期间发生错误时触发的回调。报告 SDK 运行时发生的错误回调。报告 SDK 运行时发生的错误回调。 + + + + + + + + +
+

+ virtual void onError(int err, const char* msg) + public void onError(int err) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurError:(AgoraErrorCode)errorCode NS_SWIFT_NAME(rtcEngine(_:didOccurError:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurError:(AgoraErrorCode)errorCode NS_SWIFT_NAME(rtcEngine(_:didOccurError:)); +

+
+
+

该回调表示 SDK 运行过程中发生了网络或媒体相关的错误。在大多数情况下,SDK 无法自动修复该问题并继续运行,需要你在应用层进行处理或提示用户。

+

该回调表示 SDK 运行期间发生了网络或媒体相关的错误。在大多数情况下,SDK 无法自动修复该问题并继续运行,需要你在应用层进行处理或通知用户。

+

该回调在 SDK 运行过程中发生错误时触发。

+

该回调在 SDK 运行过程中发生错误时触发。

+
+
+ 触发时机 +

该回调在 SDK 运行期间发生错误时被触发。

+

该回调在 SDK 运行过程中发生错误时触发。

+

该回调在 SDK 运行过程中发生错误时触发。

+
+
+ 参数 + + + err + 错误码。详见 + + + msg + 错误信息。 + + + err + 错误码。详见[错误码](https://doc.shengwang.cn/api-ref/rtc/android/error-code)文档。 + + + engine + 对象。详见 + + + errorCode + 错误码。详见 + + + engine + 对象。详见 + + + errorCode + 错误码。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita new file mode 100644 index 00000000000..23d052f7aef --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita @@ -0,0 +1,91 @@ + + + + <ph keyref="onExtensionErrorWithContext"/> + 扩展运行异常时触发的回调。扩展运行异常时触发的回调。当扩展运行异常时触发的回调。当扩展运行异常时触发的回调。 + + + + + + + + +
+

+ virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) + default void onErrorWithContext(ExtensionContext extContext, int error, String message) + - (void)onExtensionErrorWithContext:(AgoraExtensionContext * _Nonnull)context + error:(int)error + message:(NSString * _Nullable)message NS_SWIFT_NAME(onExtensionErrorWithContext(_:error:message:)); + - (void)onExtensionErrorWithContext:(AgoraExtensionContext * _Nonnull)context + error:(int)error + message:(NSString * _Nullable)message NS_SWIFT_NAME(onExtensionErrorWithContext(_:error:message:)); +

+
+
+

当扩展启用失败或运行时发生错误时,会触发该回调,并返回错误码和错误原因。

+

当扩展启用失败或运行时发生错误时,会触发该回调,并报告错误码及原因。

+

当扩展启用失败或运行时发生错误时,会触发该回调,并报告错误码及原因。

+
+
+ 触发时机 +

该回调在扩展启用失败或运行过程中发生错误时被触发。

+

该回调在扩展启用失败或运行时发生错误时被触发。

+

该回调在扩展启用失败或运行时发生错误时被触发。

+
+
+ 参数 + + + context + 扩展的上下文信息。详见 + + + error + 错误码。详见扩展提供方的扩展文档。 + + + message + 错误原因。详见扩展提供方的扩展文档。 + + + extContext + 扩展的上下文信息。详见 + + + error + 错误码。 + + + message + 错误原因。 + + + context + 扩展的上下文信息。详见 + + + error + 错误码。详情请参见扩展提供方提供的扩展文档。 + + + message + 错误原因。详情请参见扩展提供方提供的扩展文档。 + + + context + 扩展的上下文信息。详见 + + + error + 错误码。详情请参见扩展提供方提供的扩展文档。 + + + message + 错误原因。详情请参见扩展提供方提供的扩展文档。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita new file mode 100644 index 00000000000..e57b8e4c98e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="onExtensionEventWithContext"/> + 扩展事件回调。扩展事件回调。扩展的事件回调。扩展的事件回调。 + + + + + + + + +
+

+ virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) + default void onEventWithContext(ExtensionContext extContext, String key, String value) + - (void)onEventWithContext:(AgoraExtensionContext * _Nonnull)context + key:(NSString * _Nullable)key + value:(NSString * _Nullable)value NS_SWIFT_NAME(onEventWithContext(_:key:value:)); + - (void)onEventWithContext:(AgoraExtensionContext * _Nonnull)context + key:(NSString * _Nullable)key + value:(NSString * _Nullable)value NS_SWIFT_NAME(onEventWithContext(_:key:value:)); +

+
+
+

在扩展运行期间监听事件时,你需要注册该回调。

+

你需要注册该回调,用于在扩展运行期间监听事件。

+

你需要注册该回调以在扩展运行期间监听事件。

+

你需要注册该回调以在扩展运行期间监听事件。

+
+
+ 参数 + + + context + 扩展的上下文信息。详见 + + + key + 扩展事件的键。 + + + value + 扩展事件键对应的值。 + + + extContext + 扩展的上下文信息,详见 + + + key + 扩展事件的键。 + + + value + 扩展事件键对应的值。 + + + context + 扩展的上下文信息,详见 + + + key + 扩展事件的键。 + + + value + 扩展事件键对应的值。 + + + context + 扩展的上下文信息,详见 + + + key + 扩展事件的键。 + + + value + 扩展事件键对应的值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita new file mode 100644 index 00000000000..2612e5be21a --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita @@ -0,0 +1,51 @@ + + + + <ph keyref="onExtensionStartedWithContext"/> + 回调。当扩展启用成功时触发。扩展启用成功回调。扩展启用成功时触发的回调。扩展启用成功时触发的回调。 + + + + + + + + +
+

+ virtual void onExtensionStartedWithContext(const ExtensionContext &context) + default void onStartedWithContext(ExtensionContext extContext) + - (void)onExtensionStartedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStartedWithContext(_:)); + - (void)onExtensionStartedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStartedWithContext(_:)); +

+
+
+
+ 触发时机 +

该回调在扩展成功启用后被触发。

+

该回调在扩展成功启用后被触发。

+

该回调在扩展成功启用后被触发。

+
+
+ 参数 + + + context + 扩展的上下文信息。详见 + + + extContext + 扩展的上下文信息。详见 + + + context + 扩展的上下文信息。详见 + + + context + 扩展的上下文信息。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita new file mode 100644 index 00000000000..3642fe201f1 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="onExtensionStoppedWithContext"/> + 回调:扩展被禁用时触发。扩展被禁用时触发的回调。当扩展被禁用时触发的回调。当扩展被禁用时触发的回调。 + + + + + + + + +
+

+ virtual void onExtensionStoppedWithContext(const ExtensionContext &context) + default void onStoppedWithContext(ExtensionContext extContext) + - (void)onExtensionStoppedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStoppedWithContext(_:)); + - (void)onExtensionStoppedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStoppedWithContext(_:)); +

+
+
+
+ 触发时机 +

当扩展被成功禁用后触发该回调。

+

该回调在扩展被成功禁用后触发。

+

该回调在扩展成功被禁用后触发。

+

该回调在扩展成功被禁用后触发。

+
+
+ 参数 + + + context + 扩展的上下文信息。详见 + + + extContext + 扩展的上下文信息。详见 + + + context + 扩展的上下文信息。详见 + + + context + 扩展的上下文信息。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfacepositionchanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfacepositionchanged.dita new file mode 100644 index 00000000000..fb7da9381c7 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfacepositionchanged.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="onFacePositionChanged"/> + 上报本地用户的人脸检测结果。上报本地用户的人脸检测结果。上报本地用户的人脸检测结果。 + + + + + + + + +
+

+ virtual void onFacePositionChanged(int imageWidth, int imageHeight, const Rectangle* vecRectangle, const int* vecDistance, int numFaces) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine facePositionDidChangeWidth:(int)width previewHeight:(int)height faces:(NSArray<AgoraFacePositionInfo*>* _Nullable)faces NS_SWIFT_NAME(rtcEngine(_:facePositionDidChangeWidth:previewHeight:faces:)); + public void onFacePositionChanged(int imageWidth, int imageHeight, AgoraFacePositionInfo[] faceRectArr) +

+
+
+
+ +
自从
+
自 v3.0.1 版本新增。
+
+
+

调用 启用人脸检测后,你可以实时获取以下本地用户的信息: +

    +
  • 本地视频的宽度和高度。
  • +
  • 人脸在本地视图中的位置。
  • +
  • 人脸与屏幕之间的距离。
  • +
该距离值基于本地视频尺寸和人脸位置的拟合计算得出。

+

调用 传入 启用人脸检测后,你可以实时获取本地用户的以下信息: +

    +
  • 本地视频的宽度和高度。
  • +
  • 人脸在本地视图中的位置。
  • +
  • 人脸与屏幕之间的距离。
  • +
该距离值是基于本地视频尺寸和人脸位置的拟合计算结果。

+

调用 enableFaceDetection(true) 启用人脸检测功能后,你可以实时获取以下信息: +

    +
  • 本地视频的宽度和高度。
  • +
  • 人脸在本地视图中的位置。
  • +
  • 人脸与屏幕之间的距离。该距离值基于本地视频尺寸和人脸位置的拟合计算得出。
  • +
+

+ +
    +
  • 该回调仅适用于 Android 和 iOS 平台。
  • +
  • 当检测到摄像头前的人脸消失时,会立即触发该回调。当未检测到人脸时,为降低本地设备功耗,该回调的触发频率会降低。
  • +
  • 当人脸靠近屏幕时,SDK 会停止触发该回调。
  • +
  • 在 Android 平台,该回调中上报的距离值可能与实际距离存在偏差,因此声网不建议将其用于精确计算。
  • +
+
+ +
    +
  • 当检测到摄像头前的人脸消失时,会立即触发该回调。当未检测到人脸时,为降低本地设备的功耗,该回调的触发频率会降低。
  • +
  • 当人脸靠近屏幕时,SDK 会停止触发该回调。
  • +
+
+ +
    +
  • 当检测到摄像头前的人脸消失时,会立即触发该回调。当未检测到人脸时,为降低本地设备的功耗,该回调的触发频率会降低。
  • +
  • 当人脸靠近屏幕时,SDK 会停止触发该回调。
  • +
  • 在 Android 平台,该回调中上报的距离值可能与实际距离略有偏差,因此不建议用于精确计算。
  • +
+
+
+
+ 触发时机 +

当检测到人脸位置变化时触发。

+

该回调在检测到人脸位置或数量发生变化时被触发。

+
+
+ 参数 + + + imageWidth + 本地摄像头采集的视频图像的宽度(像素)。 + + + imageHeight + 本地摄像头采集的视频图像的高度(像素)。 + + + vecRectangle + 长度为 numFaces 的数组,表示检测到的人脸信息: +
    +
  • x:人脸在本地视图中的 x 坐标(像素),以视图左上角为原点,表示人脸相对于原点的水平位置。
  • +
  • y:人脸在本地视图中的 y 坐标(像素),以视图左上角为原点,表示人脸相对于原点的垂直位置。
  • +
  • width:人脸在捕获视图中的宽度(像素)。
  • +
  • height:人脸在捕获视图中的高度(像素)。详见
  • +
+
+
+ + vecDistance + 长度为 numFaces 的数组,表示每张人脸与设备屏幕之间的距离(厘米)。 + + + numFaces + 检测到的人脸数量。若为 0,表示未检测到人脸。 + + + engine + 对象。详见 + + + width + 本地摄像头采集的视频图像的宽度(像素)。 + + + height + 本地摄像头采集的视频图像的高度(像素)。 + + + faces + 检测到的人脸信息,详见 。该回调中返回的 数组数量取决于检测到的人脸数量。数组长度可能为 0,表示摄像头前未检测到人脸。 + + + imageWidth + 本地摄像头采集的视频图像的宽度(单位为像素)。 + + + imageHeight + 本地摄像头采集的视频图像的高度(单位为像素)。 + + + faceRectArr + 检测到的人脸信息。该数组的长度取决于检测到的人脸数量,可能为 0,表示摄像头前未检测到人脸。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalaudioframepublished.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalaudioframepublished.dita new file mode 100644 index 00000000000..444e9bb494f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalaudioframepublished.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="onFirstLocalAudioFramePublished"/> + 本地用户发布首帧音频时触发的回调。本地音频首帧发布回调。本地音频首帧发布回调。本地音频首帧发布回调。 + + + + + + + + +
+

+ virtual void onFirstLocalAudioFramePublished(int elapsed) + public void onFirstLocalAudioFramePublished(int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalAudioFramePublished:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstLocalAudioFramePublished:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalAudioFramePublished:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstLocalAudioFramePublished:)); +

+
+
+

当满足以下任一条件时,SDK 会触发该回调: +

    +
  • 本地客户端启用音频模块并成功调用 joinChannel
  • +
  • 本地客户端依次调用 muteLocalAudioStream(true)muteLocalAudioStream(false)
  • +
  • 本地客户端依次调用
  • +
  • 本地客户端调用 成功将音频帧推送至 SDK。
  • +
+

+

该回调在本地音频首帧成功发布时被触发,触发时机包括: +

    +
  • 启用音频模块并成功调用 joinChannelByToken 加入频道。
  • +
  • 依次调用 muteLocalAudioStream(设为 )和 muteLocalAudioStream(设为 )。
  • +
  • 依次调用
  • +
  • 调用 pushExternalAudioFrameRawData 成功向 SDK 推送自定义音频帧。
  • +
+

+

该回调在本地音频首帧成功发布时被触发,触发时机包括: +

    +
  • 启用音频模块并成功调用 joinChannelByToken 加入频道。
  • +
  • 依次调用 muteLocalAudioStream(设为 )和 muteLocalAudioStream(设为 )。
  • +
  • 依次调用
  • +
  • 调用 pushExternalAudioFrameRawData 成功向 SDK 推送自定义音频帧。
  • +
+

+
+
+ 触发时机 +

该回调在以下任一情况下由 SDK 触发: +

    +
  • 本地客户端启用音频模块并成功调用 joinChannel
  • +
  • 本地客户端依次调用 muteLocalAudioStream(true)muteLocalAudioStream(false)
  • +
  • 本地客户端依次调用
  • +
  • 本地客户端调用 成功将音频帧推送至 SDK。
  • +
+

+

该回调在本地音频首帧发布时被触发。

+

该回调在本地音频首帧成功发布时被触发。

+

该回调在本地音频首帧成功发布时被触发。

+
+
+ 参数 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间间隔(毫秒)。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间间隔(毫秒)。 + + + engine + 对象。详见 + + + elapsed + 从调用 joinChannelByToken 到 SDK 触发该回调的时间间隔(毫秒)。 + + + engine + 对象。详见 + + + elapsed + 从调用 joinChannelByToken 到 SDK 触发该回调的时间间隔(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframe.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframe.dita new file mode 100644 index 00000000000..7cf4429f306 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframe.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="onFirstLocalVideoFrame"/> + 本地视频画面首次在本地视图中显示时触发的回调。本地视频首帧在本地视图中显示时触发的回调。本地视频视图显示首帧本地视频画面时触发的回调。本地视频视图显示首帧本地视频画面时触发的回调。 + + + + + + + + +
+

+ virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed) + public void onFirstLocalVideoFrame(Constants.VideoSourceType source, int width, int height, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFrameWithSize:(CGSize)size elapsed:(NSInteger)elapsed sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:firstLocalVideoFrameWith:elapsed:sourceType:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFrameWithSize:(CGSize)size elapsed:(NSInteger)elapsed sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:firstLocalVideoFrameWith:elapsed:sourceType:)); +

+
+
+
+ 触发时机 +

当本地视频画面首次在本地视图中显示时触发。

+

当本地视频视图上显示首帧本地视频画面时触发。

+

当本地视频视图上显示首帧本地视频画面时触发。

+
+
+ 参数 + + + source + 视频源类型,详见 + + + width + 本地首帧视频画面的宽度,单位为像素。 + + + height + 本地首帧视频画面的高度,单位为像素。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到该回调触发的时间间隔,单位为毫秒。如果在加入频道前调用了 startPreview,该参数表示从调用 startPreview 到该事件触发的时间间隔。 + + + source + 视频源类型,详见 + + + width + 首帧本地视频画面的宽度,单位为像素。 + + + height + 首帧本地视频画面的高度,单位为像素。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到该回调触发的时间间隔,单位为毫秒。如果在加入频道前调用了 startPreview,该参数表示从调用 startPreview 到该事件触发的时间间隔。 + + + engine + 引擎对象,详见 + + + size + 首帧本地视频画面的尺寸。 + + + elapsed + 从调用 加入频道到 SDK 触发该回调的时间间隔(毫秒)。如果在加入频道前调用了 ,该参数表示从调用 到触发该事件的时间间隔。 + + + sourceType + 视频源的类型,详见 + + + engine + 引擎对象,详见 + + + size + 首帧本地视频画面的尺寸。 + + + elapsed + 从调用 加入频道到 SDK 触发该回调的时间间隔(毫秒)。如果在加入频道前调用了 ,该参数表示从调用 到触发该事件的时间间隔。 + + + sourceType + 视频源的类型,详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframepublished.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframepublished.dita new file mode 100644 index 00000000000..38d8075a3b5 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstlocalvideoframepublished.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="onFirstLocalVideoFramePublished"/> + 首帧本地视频发布时触发的回调。本地视频首帧发布回调。 回调。当首帧本地视频发布时触发。 回调。当首帧本地视频发布时触发。 + + + + + + + + +
+

+ virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed) + public void onFirstLocalVideoFramePublished(Constants.VideoSourceType source, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFramePublishedWithElapsed:(NSInteger)elapsed sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:firstLocalVideoFramePublishedWithElapsed:sourceType:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFramePublishedWithElapsed:(NSInteger)elapsed sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:firstLocalVideoFramePublishedWithElapsed:sourceType:)); +

+
+
+

当满足以下任一条件时,SDK 会触发该回调: +

    +
  • 本地客户端启用视频模块并调用 joinChannel 成功加入频道。
  • +
  • 本地客户端依次调用 muteLocalVideoStream(true)muteLocalVideoStream(false)
  • +
  • 本地客户端依次调用
  • +
  • 本地客户端调用 成功向 SDK 推送视频帧。
  • +
+

+

当满足以下任一条件时,SDK 会触发该回调: +

    +
  • 本地客户端启用视频模块并调用 joinChannel 成功加入频道。
  • +
  • 本地客户端依次调用 muteLocalVideoStream(true)muteLocalVideoStream(false)
  • +
  • 本地客户端依次调用
  • +
  • 本地客户端调用 pushExternalVideoFrameById 成功向 SDK 推送视频帧。
  • +
+

+
+
+ 触发时机 +

当首帧本地视频发布时触发。

+

该回调在本地视频首帧发布时被触发。

+

该回调在发布首帧本地视频时触发,触发时机包括: +

    +
  • 启用视频模块并调用 joinChannelByToken 成功加入频道;
  • +
  • 依次调用 muteLocalVideoStream:YESmuteLocalVideoStream:NO
  • +
  • 依次调用
  • +
  • 调用 pushExternalVideoFrame 成功向 SDK 推送视频帧。
  • +
+

+

该回调在发布首帧本地视频时触发,触发时机包括: +

    +
  • 启用视频模块并调用 joinChannelByToken 成功加入频道;
  • +
  • 依次调用 muteLocalVideoStream:YESmuteLocalVideoStream:NO
  • +
  • 依次调用
  • +
  • 调用 pushExternalVideoFrame 成功向 SDK 推送视频帧。
  • +
+

+
+
+ 参数 + + + source + 视频源类型,详见 + + + elapsed + 从本地用户调用 joinChannel 到该回调触发的时间间隔(毫秒)。 + + + source + 视频源类型,详见 + + + elapsed + 从本地用户调用 joinChannel 成功加入频道到该回调触发的时间(毫秒)。 + + + engine + 对象。详见 + + + elapsed + 从调用 joinChannelByToken 加入频道到该回调被触发的时间间隔(毫秒)。 + + + sourceType + 视频源的类型。详见 + + + engine + 对象。详见 + + + elapsed + 从调用 joinChannelByToken 加入频道到该回调被触发的时间间隔(毫秒)。 + + + sourceType + 视频源的类型。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudiodecoded.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudiodecoded.dita new file mode 100644 index 00000000000..f05b05836d1 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudiodecoded.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="onFirstRemoteAudioDecoded"/> + 首帧远端音频解码完成回调。首帧远端音频解码完成回调。当 SDK 解码来自某个远端用户的首帧音频时触发回调。当 SDK 解码来自某个远端用户的首帧音频时触发回调。 + + + + + + + + +
+

+ virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated + public void onFirstRemoteAudioDecoded(int uid, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine firstRemoteAudioFrameDecodedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteAudioFrameDecodedOfUid:elapsed:)) __deprecated_msg("use rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed: instead."); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine firstRemoteAudioFrameDecodedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteAudioFrameDecodedOfUid:elapsed:)) __deprecated_msg("use rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
自 v3.0.0 版本废弃,请改用
+
+ +
废弃
+
自 v3.0.0 版本废弃,请改用
+
+
+
+
+ 触发时机 +

当远端用户首次发送音频流,或音频从离线恢复为在线重新发送音频时触发。

+

该回调在以下场景中被触发: +

    +
  • 远端用户加入频道并首次发送音频流。
  • +
  • 远端用户音频从离线恢复为在线并重新发送音频流。可能的原因包括:远端用户离开频道、掉线、调用 停止发送音频流,或调用 禁用音频。
  • +
+

+

该回调在 SDK 解码来自某个远端用户的首帧音频时被触发。

+

该回调在 SDK 解码来自某个远端用户的首帧音频时被触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到 SDK 触发该回调的时间,单位为毫秒。 + + + uid + 远端用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间(毫秒)。 + + + engine + 对象。详见 + + + uid + 远端用户的用户 ID。 + + + elapsed + 从调用 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + + engine + 对象。详见 + + + uid + 远端用户的用户 ID。 + + + elapsed + 从调用 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudioframe.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudioframe.dita new file mode 100644 index 00000000000..c0cd4b10717 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremoteaudioframe.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="onFirstRemoteAudioFrame"/> + 远端用户音频首帧到达回调。远端用户音频首帧已接收回调。 回调。远端用户的第一帧音频被接收并解码时触发。 回调。远端用户的第一帧音频被接收并解码时触发。 + + + + + + + + +
+

+ virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated + public void onFirstRemoteAudioFrame(int uid, int elapsed) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteAudioFrameOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteAudioFrameOfUid:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteAudioFrameOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteAudioFrameOfUid:elapsed:)); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+
+
+ 触发时机 +

该回调在 SDK 收到来自某个远端用户的首帧音频时被触发。

+

该回调在接收到并解码远端用户的第一帧音频时触发。

+

该回调在接收到并解码远端用户的第一帧音频时触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到 SDK 触发该回调的时间,单位为毫秒。 + + + uid + 远端用户的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间(毫秒)。 + + + engine + 声网引擎实例。详见 + + + uid + 远端用户 ID。 + + + elapsed + 从本地用户调用 joinChannelByToken 到该回调被触发的时间(毫秒)。 + + + engine + 声网引擎实例。详见 + + + uid + 远端用户 ID。 + + + elapsed + 从本地用户调用 joinChannelByToken 到该回调被触发的时间(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideodecoded.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideodecoded.dita new file mode 100644 index 00000000000..92c9fc0f533 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideodecoded.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="onFirstRemoteVideoDecoded"/> + 接收到并解码首帧远端视频时触发的回调。接收到并解码首帧远端视频时的回调。接收到并解码首帧远端视频时触发的回调。接收到并解码首帧远端视频时触发的回调。 + + + + + + + + +
+

+ virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated + public void onFirstRemoteVideoDecoded(int uid, int width, int height, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoDecodedOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteVideoDecodedOfUid:size:elapsed:)) __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead."); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoDecodedOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteVideoDecodedOfUid:size:elapsed:)) __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃。
+
+ +
废弃
+
该方法已废弃,请改用 回调中的 REMOTE_VIDEO_STATE_STARTING(1)REMOTE_VIDEO_STATE_DECODING(2)
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 remoteVideoStateChangedOfUid
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 remoteVideoStateChangedOfUid
+
+
+

SDK 在以下任一情况下会触发该回调: +

    +
  • 远端用户加入频道并发送视频流。
  • +
  • 远端用户停止发送视频流并在 15 秒后重新发送。导致此类中断的原因包括: +
      +
    • 远端用户离开频道。
    • +
    • 远端用户掉线。
    • +
    • 远端用户调用 关闭视频功能。
    • +
    +
  • +
+

+
+
+ 触发时机 +

当远端用户加入频道并发送视频流,或在停止发送视频流 15 秒后重新发送时触发。中断的原因包括:远端用户离开频道、掉线或调用 关闭视频。

+

该回调在接收到并解码首帧远端视频时被触发。

+

该回调在以下场景中被触发: +

    +
  • 远端用户加入频道并发送视频流。
  • +
  • 远端用户停止发送视频流 15 秒后重新发送。中断的原因包括:远端用户离开频道、掉线,或调用 关闭视频。
  • +
+

+

该回调在以下场景中被触发: +

    +
  • 远端用户加入频道并发送视频流。
  • +
  • 远端用户停止发送视频流 15 秒后重新发送。中断的原因包括:远端用户离开频道、掉线,或调用 关闭视频。
  • +
+

+
+
+ 参数 + + + uid + 发送视频流的远端用户 ID。 + + + width + 视频流的宽度(单位为像素)。 + + + height + 视频流的高度(单位为像素)。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到 SDK 触发该回调的时间(单位为毫秒)。 + + + uid + 远端用户 ID。 + + + width + 视频流的宽度(单位为像素)。 + + + height + 视频流的高度(单位为像素)。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到触发该回调的时间(单位为毫秒)。 + + + engine + 对象。详见 + + + uid + 发送视频流的远端用户 ID。 + + + size + 视频尺寸。 + + + elapsed + 从调用 joinChannelByToken 方法到触发该回调的时间(毫秒)。 + + + engine + 对象。详见 + + + uid + 发送视频流的远端用户 ID。 + + + size + 视频尺寸。 + + + elapsed + 从调用 joinChannelByToken 方法到触发该回调的时间(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideoframe.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideoframe.dita new file mode 100644 index 00000000000..01d025dd5e3 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onfirstremotevideoframe.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="onFirstRemoteVideoFrame"/> + 远端视频首帧显示回调。远端视频首帧显示回调。远端视频首帧渲染回调。远端视频首帧渲染回调。 + + + + + + + + +
+

+ virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) + public void onFirstRemoteVideoFrame(int uid, int width, int height, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteVideoFrameOfUid:size:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:firstRemoteVideoFrameOfUid:size:elapsed:)); +

+
+
+ 回调仅在视频帧由 SDK 渲染时触发。如果你使用自定义视频渲染,则不会触发该回调。你需要使用 SDK 之外的方法独立实现此功能。 + 回调仅在视频帧由 SDK 渲染时触发;如果你使用自定义视频渲染,则不会触发该回调。你需要使用 SDK 外的方法自行实现该功能。 + 该回调仅在视频帧由 SDK 渲染时触发;如果你使用自定义视频渲染,则不会触发该回调。你需要使用 SDK 之外的方法自行实现。 + 该回调仅在视频帧由 SDK 渲染时触发;如果你使用自定义视频渲染,则不会触发该回调。你需要使用 SDK 之外的方法自行实现。 +
+
+ 触发时机 +

当渲染器接收到远端视频的首帧时触发。

+

该回调在渲染器接收到远端视频的首帧时被触发。

+

该回调在远端用户的视频首帧被 SDK 渲染时触发。

+

该回调在远端用户的视频首帧被 SDK 渲染时触发。

+
+
+ 参数 + + + uid + 远端用户 ID,即发送视频流的用户。 + + + width + 视频流的宽度(像素)。 + + + height + 视频流的高度(像素)。 + + + elapsed + 从本地用户调用 joinChannel 到触发该回调的时间(毫秒)。 + + + uid + 发送视频流的远端用户 ID。 + + + width + 视频流的宽度(像素)。 + + + height + 视频流的高度(像素)。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间(毫秒)。 + + + engine + 引擎对象,详见 + + + uid + 发送视频流的远端用户 ID。 + + + size + 视频画面的尺寸。 + + + elapsed + 从调用 joinChannelByToken 加入频道到触发该回调的时间(毫秒)。 + + + engine + 引擎对象,详见 + + + uid + 发送视频流的远端用户 ID。 + + + size + 视频画面的尺寸。 + + + elapsed + 从调用 joinChannelByToken 加入频道到触发该回调的时间(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onjoinchannelsuccess.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onjoinchannelsuccess.dita new file mode 100644 index 00000000000..60e429f025a --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onjoinchannelsuccess.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="onJoinChannelSuccess"/> + 本地用户成功加入频道回调。远端用户成功加入频道回调。本地用户成功加入频道回调。本地用户成功加入频道回调。 + + + + + + + + +
+

+ virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) + public void onJoinChannelSuccess(String channel, int uid, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didJoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didJoinChannel:withUid:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didJoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didJoinChannel:withUid:elapsed:)); +

+
+
+

该回调在本地用户成功加入指定频道时触发。

+

该回调在本地用户成功加入指定频道时触发。

+
+
+ 触发时机 +

当你调用 joinChanneljoinChannelWithUserAccount 加入频道时,SDK 会触发该回调。

+

该回调在你调用 joinChanneljoinChannelWithUserAccount 加入频道时被触发。

+

该回调在调用 joinChannelByTokenjoinChannelExByToken 等方法加入频道时被触发。

+

该回调在调用 joinChannelByTokenjoinChannelExByToken 等方法加入频道时被触发。

+
+
+ 参数 + + + channel + 频道名。 + + + uid + 本地用户的用户 ID。 + + + elapsed + 从本地用户调用 joinChanneljoinChannelWithUserAccount 加入频道到触发该回调的时间间隔,单位为毫秒。 + + + channel + 频道名。 + + + uid + 加入频道的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 加入频道到 SDK 触发该回调的时间间隔,单位为毫秒。 + + + engine + 对象,详见 + + + channel + 频道名。 + + + uid + 本地用户加入频道的用户 ID。 + + + elapsed + 从调用 joinChannelByToken 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + + engine + 对象,详见 + + + channel + 频道名。 + + + uid + 本地用户加入频道的用户 ID。 + + + elapsed + 从调用 joinChannelByToken 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmileproberesult.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmileproberesult.dita new file mode 100644 index 00000000000..db420c6dd86 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmileproberesult.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onLastmileProbeResult"/> + 上行和下行 Last-mile 网络探测结果回调。上行和下行 Last-mile 网络探测测试结果的回调。报告 Last-mile 网络探测结果。报告 Last-mile 网络探测结果。 + + + + + + + + +
+

+ virtual void onLastmileProbeResult(const LastmileProbeResult& result) + public void onLastmileProbeResult(LastmileProbeResult result) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine lastmileProbeTestResult:(AgoraLastmileProbeResult * _Nonnull)result NS_SWIFT_NAME(rtcEngine(_:lastmileProbeTest:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine lastmileProbeTestResult:(AgoraLastmileProbeResult * _Nonnull)result NS_SWIFT_NAME(rtcEngine(_:lastmileProbeTest:)); +

+
+
+

调用 后,SDK 会在 30 秒内触发该回调。

+

该回调在调用 后触发。

+

该回调在调用 后 30 秒内触发。

+

该回调在调用 后 30 秒内触发。

+
+
+ 触发时机 +

该回调在调用 后 30 秒内被触发。

+

该回调在调用 后 30 秒内触发。

+

该回调在调用 后 30 秒内触发。

+
+
+ 参数 + + + result + 上行和下行 Last-mile 网络探测测试结果。详见 + + + result + 上行和下行 Last-mile 网络探测测试结果。详见 + + + engine + 引擎实例。详见 + + + result + 上下行 Last-mile 网络探测测试结果。详见 + + + engine + 引擎实例。详见 + + + result + 上下行 Last-mile 网络探测测试结果。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmilequality.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmilequality.dita new file mode 100644 index 00000000000..c6ebe1dabd4 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlastmilequality.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="onLastmileQuality"/> + 报告本地用户的 Last-mile 网络质量回调。本地用户的 Last-mile 网络质量回调。上报本地用户的 Last-mile 网络质量。上报本地用户的 Last-mile 网络质量。 + + + + + + + + +
+

+ virtual void onLastmileQuality(int quality) { (void)quality; } + public void onLastmileQuality(int quality) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine lastmileQuality:(AgoraNetworkQuality)quality NS_SWIFT_NAME(rtcEngine(_:lastmileQuality:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine lastmileQuality:(AgoraNetworkQuality)quality NS_SWIFT_NAME(rtcEngine(_:lastmileQuality:)); +

+
+
+

该回调在加入频道前触发,用于报告本地用户与声网边缘服务器之间连接的网络质量(即 last-mile 网络状况)。调用 后,SDK 会触发该回调。

+

该回调在用户加入频道前触发,用于上报本地用户与声网边缘服务器之间连接的 Last-mile 网络质量。在调用 后,SDK 会触发该回调。

+

该回调在用户加入频道前,由 SDK 在调用 后触发一次,用于上报本地用户的 Last-mile 网络状况。Last-mile 指的是本地设备与声网边缘服务器之间的连接。

+

该回调在用户加入频道前,由 SDK 在调用 后触发一次,用于上报本地用户的 Last-mile 网络状况。Last-mile 指的是本地设备与声网边缘服务器之间的连接。

+
+
+ 触发时机 +

该回调在调用 方法后被触发。

+

该回调在调用 后被触发,用于上报本地用户的 Last-mile 网络状况。

+

该回调在调用 后被触发,用于上报本地用户的 Last-mile 网络状况。

+
+
+ 参数 + + + quality + Last-mile 网络质量,详见 + + + quality + Last-mile 网络质量: +
    +
  • QUALITY_UNKNOWN (0):网络质量未知。
  • +
  • QUALITY_EXCELLENT (1):网络质量极好。
  • +
  • QUALITY_GOOD (2):网络质量较好,但码率可能略低于极好。
  • +
  • QUALITY_POOR (3):通信质量略有下降。
  • +
  • QUALITY_BAD (4):无法流畅通信。
  • +
  • QUALITY_VBAD (5):网络质量极差,几乎无法通信。
  • +
  • QUALITY_DOWN (6):网络连接已断,无法通信。
  • +
  • QUALITY_DETECTING (8):正在进行 Last-mile 探测。
  • +
+
+
+ + engine + 引擎对象,详见 + + + quality + Last-mile 网络质量,详见 + + + engine + 引擎对象,详见 + + + quality + Last-mile 网络质量,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onleavechannel.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onleavechannel.dita new file mode 100644 index 00000000000..ee842ee1275 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onleavechannel.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onLeaveChannel"/> + 用户离开频道时触发的回调。用户离开频道回调。用户离开频道时的回调。用户离开频道时的回调。 + + + + + + + + +
+

+ virtual void onLeaveChannel(const RtcStats& stats) + public void onLeaveChannel(RtcStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLeaveChannelWithStats:(AgoraChannelStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:didLeaveChannelWith:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLeaveChannelWithStats:(AgoraChannelStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:didLeaveChannelWith:)); +

+
+
+

你可以获取通话的总时长以及 SDK 的收发数据量。

+

你可以通过该回调获取通话的总时长以及 SDK 的收发数据量。

+

你可以通过该回调获取通话的总时长以及 SDK 的收发数据量。

+
+
+ 触发时机 +

在你调用 离开频道后,SDK 会触发该回调。

+

该回调在你调用 离开频道后被触发。

+

该回调在你调用 离开频道后被触发。

+

该回调在你调用 离开频道后被触发。

+
+
+ 参数 + + + stats + 通话统计信息。详见 + + + stats + 通话统计信息。详见 + + + engine + 对象。 + + + stats + 通话统计信息,详见 + + + engine + 对象。 + + + stats + 通话统计信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostatechanged.dita new file mode 100644 index 00000000000..de5717df6d9 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostatechanged.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="onLocalAudioStateChanged"/> + 本地音频流状态发生变化回调。本地音频流状态发生变化回调。本地音频流状态发生变化时的回调。本地音频流状态发生变化时的回调。 + + + + + + + + +
+

+ virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason) + public void onLocalAudioStateChanged(int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localAudioStateChanged:(AgoraAudioLocalState)state reason:(AgoraAudioLocalReason)reason NS_SWIFT_NAME(rtcEngine(_:localAudioStateChanged:reason:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localAudioStateChanged:(AgoraAudioLocalState)state reason:(AgoraAudioLocalReason)reason NS_SWIFT_NAME(rtcEngine(_:localAudioStateChanged:reason:)); +

+
+
+

当本地音频流的状态(包括音频采集和编码状态)发生变化时,SDK 会触发该回调报告当前状态,帮助你排查音频异常问题。

+

当本地音频流的状态发生变化时,SDK 会触发该回调以报告当前状态,便于你在音频异常时排查问题。

+

当本地音频流状态(包括音频采集和编码状态)发生变化时,SDK 会触发该回调以报告当前状态,便于你在出现音频异常时排查问题。

+

当本地音频流状态(包括音频采集和编码状态)发生变化时,SDK 会触发该回调以报告当前状态,便于你在出现音频异常时排查问题。

+ 当状态为 LOCAL_AUDIO_STREAM_STATE_FAILED(3)时,可以在 reason 参数中查看错误信息。 + 当状态为 LOCAL_AUDIO_STREAM_STATE_FAILED(3)时,可以在 error 参数中查看错误信息。 + 当状态为 AgoraAudioLocalStateFailed(3)时,可以在 error 参数中查看错误信息。 + 当状态为 AgoraAudioLocalStateFailed(3)时,可以在 error 参数中查看错误信息。 +
+
+ 触发时机 +

该回调在本地音频流状态发生变化时被触发。

+

该回调在本地音频流状态发生变化时被触发。

+

该回调在本地音频流状态发生变化时被触发。

+
+
+ 参数 + + + state + 本地音频流的状态,详见 + + + reason + 本地音频流状态变化的原因,详见 + + + state + 本地音频的状态: +
    +
  • LOCAL_AUDIO_STREAM_STATE_STOPPED(0):本地音频处于初始状态。
  • +
  • LOCAL_AUDIO_STREAM_STATE_RECORDING(1):本地音频采集设备启动成功。
  • +
  • LOCAL_AUDIO_STREAM_STATE_ENCODING(2):首帧音频编码成功。
  • +
  • LOCAL_AUDIO_STREAM_STATE_FAILED(3):本地音频启动失败。
  • +
+
+
+ + reason + 本地音频状态变化的原因: +
    +
  • LOCAL_AUDIO_STREAM_REASON_OK(0):本地音频状态正常。
  • +
  • LOCAL_AUDIO_STREAM_REASON_FAILURE(1):本地音频失败的原因不明确。提示用户尝试重新加入频道。
  • +
  • LOCAL_AUDIO_STREAM_REASON_DEVICE_NO_PERMISSION(2):没有权限使用本地音频采集设备。提示用户授予权限。
  • +
  • LOCAL_AUDIO_STREAM_REASON_DEVICE_BUSY(3):麦克风被占用。提示用户检查是否有其他应用占用了麦克风。麦克风空闲约五秒后本地音频采集会自动恢复,也可以在麦克风空闲后尝试重新加入频道。
  • +
  • LOCAL_AUDIO_STREAM_REASON_CAPTURE_FAILURE(4):本地音频采集失败。
  • +
  • LOCAL_AUDIO_STREAM_REASON_ENCODE_FAILURE(5):本地音频编码失败。
  • +
  • LOCAL_AUDIO_STREAM_REASON_INTERRUPTED(8):本地音频采集被系统电话、智能助手或闹钟中断。如果需要继续采集本地音频,提示用户结束电话、智能助手或闹钟。
  • +
+
+
+ + engine + 实例。详见 + + + state + 本地音频的状态。详见 + + + reason + 本地音频状态变化的原因。详见 + + + engine + 实例。详见 + + + state + 本地音频的状态。详见 + + + reason + 本地音频状态变化的原因。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostats.dita new file mode 100644 index 00000000000..26a8404292f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalaudiostats.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="onLocalAudioStats"/> + 本地音频统计信息回调。本地音频流统计信息回调。上报本地音频流的统计信息。上报本地音频流的统计信息。 + + + + + + + + +
+

+ virtual void onLocalAudioStats(const LocalAudioStats& stats) + public void onLocalAudioStats(LocalAudioStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localAudioStats:(AgoraRtcLocalAudioStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:localAudioStats:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localAudioStats:(AgoraRtcLocalAudioStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:localAudioStats:)); +

+
+
+

该回调每两秒触发一次。

+
+
+ 触发时机 +

SDK 每两秒触发一次该回调。

+

该回调每两秒触发一次。

+

该回调每两秒触发一次。

+

该回调每两秒触发一次。

+
+
+ 参数 + + + stats + 本地音频统计信息。详见 + + + stats + 本地音频统计信息。详见 + + + engine + 对象,详见 + + + stats + 本地音频统计信息,详见 + + + engine + 对象,详见 + + + stats + 本地音频统计信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocaluserregistered.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocaluserregistered.dita new file mode 100644 index 00000000000..f8a45bb52b2 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocaluserregistered.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="onLocalUserRegistered"/> + 回调。当本地用户注册用户 User Account 时触发。本地用户注册用户 User Account 回调。本地用户注册用户 User Account 回调。本地用户注册用户 User Account 回调。 + + + + + + + + +
+

+ virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) + public void onLocalUserRegistered(int uid, String userAccount) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalUserRegisteredWithUserId:(NSUInteger)uid userAccount:(NSString * _Nonnull)userAccount NS_SWIFT_NAME(rtcEngine(_:didLocalUserRegisteredWithUserId:userAccount:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalUserRegisteredWithUserId:(NSUInteger)uid userAccount:(NSString * _Nonnull)userAccount NS_SWIFT_NAME(rtcEngine(_:didLocalUserRegisteredWithUserId:userAccount:)); +

+
+
+
+ +
自从
+
自 v2.8.0 版本新增。
+
+
+

当本地用户成功调用 注册用户 User Account,或调用 joinChannelWithUserAccount 加入频道后,SDK 会触发该回调,并返回本地用户的用户 ID 和用户 User Account。

+

当本地用户成功调用 方法注册用户 User Account,或调用 joinChannelWithUserAccount 方法加入频道后,SDK 会触发该回调,并返回本地用户的用户 ID 和用户 User Account。

+

当你成功调用 registerLocalUserAccountWithAppID:userAccount: 方法注册用户 User Account,或调用 方法加入频道后,SDK 会触发该回调,并返回你的用户 ID 和用户 User Account。

+

当你成功调用 registerLocalUserAccountWithAppID:userAccount: 方法注册用户 User Account,或调用 方法加入频道后,SDK 会触发该回调,并返回你的用户 ID 和用户 User Account。

+
+
+ 触发时机 +

该回调在本地用户成功注册用户 User Account 或加入频道后被触发。

+

该回调在你注册用户 User Account 或加入频道成功后被触发。

+

该回调在你注册用户 User Account 或加入频道成功后被触发。

+
+
+ 参数 + + + uid + 本地用户的用户 ID。 + + + userAccount + 本地用户的用户 User Account。 + + + uid + 本地用户的用户 ID。 + + + userAccount + 本地用户的用户 User Account。 + + + engine + 对象,详见 + + + uid + 本地用户的用户 ID。 + + + userAccount + 本地用户的用户 User Account。 + + + engine + 对象,详见 + + + uid + 本地用户的用户 ID。 + + + userAccount + 本地用户的用户 User Account。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostatechanged.dita new file mode 100644 index 00000000000..ebc34fe6847 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostatechanged.dita @@ -0,0 +1,149 @@ + + + + <ph keyref="onLocalVideoStateChanged"/> + 本地视频状态发生变化回调。本地视频流状态发生变化回调。当本地视频流状态发生变化时触发的回调。当本地视频流状态发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason) + public void onLocalVideoStateChanged(Constants.VideoSourceType source, int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localVideoStateChangedOfState:(AgoraVideoLocalState)state reason:(AgoraLocalVideoStreamReason)reason sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:localVideoStateChangedOf:reason:sourceType:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localVideoStateChangedOfState:(AgoraVideoLocalState)state reason:(AgoraLocalVideoStreamReason)reason sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:localVideoStateChangedOf:reason:sourceType:)); +

+
+
+

你可以通过该回调及时了解本地视频流的状态变化,并根据变化原因采取相应措施,以更好地管理和排查视频流相关问题。

+

当本地视频状态发生变化时,SDK 会触发该回调,报告当前本地视频状态及其变化原因。你可以通过该回调及时了解本地视频流的状态变化,并根据变化原因采取相应措施,以更好地管理和排查视频流相关问题。

+

当本地视频状态发生变化时,SDK 会触发该回调,报告当前本地视频状态及其变化原因。你可以通过该回调及时了解本地视频流的状态变化,并根据变化原因采取相应措施,以更好地管理和排查视频流相关问题。

+ 请注意,视频帧重复检测仅适用于分辨率大于 200 × 200、帧率大于等于 10 fps 且码率小于 20 Kbps 的视频帧。 +通常情况下,如果视频采集出现异常,可以通过该回调中的 reason 参数排查问题。但在部分设备上,采集异常(如卡顿)时,Android 系统不会抛出任何错误回调,导致 SDK 无法上报本地视频状态变化的原因。此时,你可以通过以下方式判断是否未采集到视频帧:该回调上报的 stateLOCAL_VIDEO_STREAM_STATE_CAPTURINGLOCAL_VIDEO_STREAM_STATE_ENCODING,且 回调中的 captureFrameRate 为 0。 + 请注意,视频帧重复检测仅适用于分辨率大于 200 × 200、帧率大于等于 10 fps 且码率小于 20 Kbps 的视频帧。 +通常情况下,如果视频采集出现错误,可以通过该回调中的 reason 参数排查问题。但在某些设备上,当采集出现问题(如卡顿)时,Android 系统不会抛出任何错误回调,因此 SDK 无法上报本地视频状态变化的原因。此时,你可以通过以下方式判断是否未采集到视频帧:该回调上报 LOCAL_VIDEO_STREAM_STATE_CAPTURINGLOCAL_VIDEO_STREAM_STATE_ENCODING,且 回调中的 captureFrameRate 为 0。 + 请注意,视频帧重复检测仅适用于分辨率大于 200 × 200、帧率大于等于 10 fps 且码率小于 20 Kbps 的视频帧。通常情况下,如果视频采集出现错误,可以通过该回调中的 reason 参数排查问题。但在某些设备上,当采集出现问题(如卡顿)时,Android 系统不会抛出任何错误回调,SDK 也无法上报本地视频状态变化的原因。此时,你可以通过以下方式判断是否未采集到视频帧:该回调上报的 stateAgoraVideoLocalStateCapturingAgoraVideoLocalStateEncoding,且 回调中的 captureFrameRate 为 0。 + 请注意,视频帧重复检测仅适用于分辨率大于 200 × 200、帧率大于等于 10 fps 且码率小于 20 Kbps 的视频帧。通常情况下,如果视频采集出现错误,可以通过该回调中的 reason 参数排查问题。但在某些设备上,当采集出现问题(如卡顿)时,Android 系统不会抛出任何错误回调,SDK 也无法上报本地视频状态变化的原因。此时,你可以通过以下方式判断是否未采集到视频帧:该回调上报的 stateAgoraVideoLocalStateCapturingAgoraVideoLocalStateEncoding,且 回调中的 captureFrameRate 为 0。 +
+
+ 触发时机 +

SDK 在以下情况下会触发该回调,并将 state 设置为 LOCAL_VIDEO_STREAM_STATE_FAILEDreason 设置为 LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE: +

    +
  • 应用切换到后台,系统回收了摄像头资源。
  • +
  • 在 Android 9 及以上版本中,应用在后台运行一段时间后,系统自动回收摄像头权限。
  • +
  • 在 Android 6 及以上版本中,摄像头被第三方应用占用一段时间后释放,SDK 会触发该回调并上报 回调,stateLOCAL_VIDEO_STREAM_STATE_CAPTURINGreasonLOCAL_VIDEO_STREAM_REASON_OK
  • +
  • 摄像头正常启动,但连续四秒未输出视频帧。
  • +
  • 当摄像头输出采集的视频帧时,若 SDK 检测到连续 15 帧重复的视频帧,会触发该回调,stateLOCAL_VIDEO_STREAM_STATE_CAPTURINGreasonLOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE
  • +
+

+

该回调在以下情况下被触发,状态为 LOCAL_VIDEO_STREAM_STATE_FAILEDreasonLOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE: +

    +
  • Android 9 及以上版本中,应用在后台运行一段时间后,系统会自动收回摄像头权限。
  • +
  • Android 6 及以上版本中,摄像头被第三方应用占用一段时间后释放,SDK 会触发该回调并上报 回调,LOCAL_VIDEO_STREAM_STATE_CAPTURINGreasonLOCAL_VIDEO_STREAM_REASON_OK
  • +
  • 摄像头正常启动,但连续四秒未输出视频帧。
  • +
  • 当摄像头输出采集的视频帧时,若 SDK 检测到连续 15 帧重复帧,会触发该回调,LOCAL_VIDEO_STREAM_STATE_CAPTURINGreasonLOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE
  • +
+

+

该回调在以下情况下被触发,stateAgoraVideoLocalStateFailedreasonAgoraLocalVideoStreamReasonCaptureFailure: +

    +
  • 应用切换到后台,系统回收了摄像头资源。
  • +
  • 摄像头正常启动,但连续四秒未输出视频帧。
  • +
当摄像头输出采集的视频帧时,若 SDK 检测到连续 15 帧重复帧,也会触发该回调,stateAgoraVideoLocalStateCapturingreasonAgoraLocalVideoStreamReasonCaptureFailure

+

该回调在以下情况下被触发,stateAgoraVideoLocalStateFailedreasonAgoraLocalVideoStreamReasonCaptureFailure: +

    +
  • 应用切换到后台,系统回收了摄像头资源。
  • +
  • 摄像头正常启动,但连续四秒未输出视频帧。
  • +
当摄像头输出采集的视频帧时,若 SDK 检测到连续 15 帧重复帧,也会触发该回调,stateAgoraVideoLocalStateCapturingreasonAgoraLocalVideoStreamReasonCaptureFailure

+
+
+ 参数 + + + source + 视频源的类型,详见 + + + state + 本地视频的状态,详见 + + + reason + 本地视频状态变化的原因,详见 + + + source + 视频源的类型。详见 + + + state + +
    +
  • LOCAL_VIDEO_STREAM_STATE_STOPPED (0):本地视频处于初始状态。
  • +
  • LOCAL_VIDEO_STREAM_STATE_CAPTURING (1):本地视频采集设备启动成功。
  • +
  • LOCAL_VIDEO_STREAM_STATE_ENCODING (2):首帧视频编码成功。
  • +
  • LOCAL_VIDEO_STREAM_STATE_FAILED (3):本地视频启动失败。
  • +
+
+
+ + reason + +
    +
  • LOCAL_VIDEO_STREAM_REASON_OK (0):本地视频状态正常。
  • +
  • LOCAL_VIDEO_STREAM_REASON_FAILURE (1):本地视频失败,未指定原因。
  • +
  • LOCAL_VIDEO_STREAM_REASON_DEVICE_BUSY (3):本地视频采集设备被占用。提示用户检查摄像头是否被其他应用占用,或尝试重新加入频道。
  • +
  • LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE (4):本地视频采集失败。提示用户检查视频采集设备是否正常工作,摄像头是否被其他应用占用,或尝试重新加入频道。
  • +
  • LOCAL_VIDEO_STREAM_REASON_CODEC_NOT_SUPPORT (5):本地视频编码失败。
  • +
  • LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND (8):未找到本地视频采集设备。提示用户检查摄像头是否正确连接或正常工作,然后重新加入频道。
  • +
  • LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT (14):视频采集中断。可能原因包括: +
      +
    • 摄像头被其他应用占用。提示用户检查摄像头是否被其他应用占用。
    • +
    • 设备被锁屏,或当前应用被切换到后台。你可以使用前台服务通知操作系统,确保应用切换到后台后仍能采集视频。
    • +
    +
  • +
  • LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR (15):视频采集设备出现错误。提示用户关闭并重启摄像头以恢复功能。如果该操作无法解决问题,请检查摄像头是否存在硬件故障。
  • +
  • LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE (21):当前采集的窗口无数据。
  • +
+
+
+ + engine + 当前使用的 实例。 + + + sourceType + 视频源的类型,详见 + + + state + 本地视频的状态,详见 + + + reason + 本地视频状态变化的原因,详见 + + + engine + 当前使用的 实例。 + + + sourceType + 视频源的类型,详见 + + + state + 本地视频的状态,详见 + + + reason + 本地视频状态变化的原因,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostats.dita new file mode 100644 index 00000000000..f1171eddd44 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideostats.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="onLocalVideoStats"/> + 本地视频流统计信息回调。本地视频流统计信息回调。本地视频流统计信息回调。本地视频流统计信息回调。 + + + + + + + + +
+

+ virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats& stats) + public void onLocalVideoStats(Constants.VideoSourceType source, LocalVideoStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localVideoStats:(AgoraRtcLocalVideoStats * _Nonnull)stats sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:localVideoStats:sourceType:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine localVideoStats:(AgoraRtcLocalVideoStats * _Nonnull)stats sourceType:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(rtcEngine(_:localVideoStats:sourceType:)); +

+
+
+

该回调每两秒触发一次。

+
+
+ 触发时机 +

SDK 每两秒触发一次该回调。

+

该回调每两秒触发一次。

+

该回调每两秒触发一次。

+

该回调每两秒触发一次。

+
+
+ 参数 + + + source + 视频源的类型,详见 + + + stats + 本地视频流的统计信息。详见 + + + source + 视频源类型,详见 + + + stats + 本地视频流的统计信息,详见 + + + engine + 对象。详见 + + + stats + 本地视频流的统计信息。详见 + + + sourceType + 视频源的类型。详见 + + + engine + 对象。详见 + + + stats + 本地视频流的统计信息。详见 + + + sourceType + 视频源的类型。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideotranscodererror.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideotranscodererror.dita new file mode 100644 index 00000000000..e167216344f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onlocalvideotranscodererror.dita @@ -0,0 +1,83 @@ + + + + <ph keyref="onLocalVideoTranscoderError"/> + 本地视频合图过程中发生错误的回调。本地视频合图过程中发生错误回调。本地合图过程中发生错误时触发的回调。本地合图过程中发生错误时触发的回调。 + + + + + + + + +
+

+ virtual void onLocalVideoTranscoderError(const TranscodingVideoStream& stream, VIDEO_TRANSCODER_ERROR error) + public void onLocalVideoTranscoderError(LocalTranscoderConfiguration.TranscodingVideoStream stream, int error) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoTranscoderErrorWithStream:(AgoraTranscodingVideoStream * _Nonnull )stream + errorCode:(AgoraVideoTranscoderError)errorCode NS_SWIFT_NAME(rtcEngine(_:didLocalVideoTranscoderErrorWithStream:errorCode:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoTranscoderErrorWithStream:(AgoraTranscodingVideoStream * _Nonnull )stream + errorCode:(AgoraVideoTranscoderError)errorCode NS_SWIFT_NAME(rtcEngine(_:didLocalVideoTranscoderErrorWithStream:errorCode:)); +

+
+
+

当调用 失败时,SDK 会触发该回调报告失败原因。

+

当调用 失败时,SDK 会触发该回调报告失败原因。

+

当你调用 失败时,SDK 会触发该回调报告失败原因。

+

当你调用 失败时,SDK 会触发该回调报告失败原因。

+
+
+ 触发时机 +

该回调在调用 失败时被触发。

+

该回调在本地合图过程中发生错误时被触发。

+

该回调在本地合图过程中发生错误时被触发。

+
+
+ 参数 + + + stream + 在视频合图过程中无法被合图的视频流。详见 + + + error + 本地视频合图失败的原因。详见 + + + stream + 在视频合图过程中无法被合图的视频流。详见 + + + error + 本地视频合图错误的原因: +
    +
  • 1:指定的视频源尚未开始视频采集。你需要创建视频轨道并开始采集。
  • +
  • 2:无效的视频源类型。你需要指定支持的视频源类型。
  • +
  • 3:无效的图片路径。你需要指定正确的图片路径。
  • +
  • 4:无效的图片格式。请确保图片格式为 PNG、JPEG 或 GIF。
  • +
  • 5:合图后的视频分辨率无效。
  • +
  • 20:内部错误。
  • +
+
+
+ + stream + 在视频合图过程中无法被合图的视频流。详见 + + + errorCode + 本地合图错误的原因。详见 + + + stream + 在视频合图过程中无法被合图的视频流。详见 + + + errorCode + 本地合图错误的原因。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onmultipathstats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onmultipathstats.dita new file mode 100644 index 00000000000..5b210f0d86c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onmultipathstats.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="onMultipathStats"/> + 多路径传输统计信息的回调。多路径传输统计信息回调。上报多路径传输统计信息。上报多路径传输统计信息。 + + + + + + + + +
+

+ virtual void onMultipathStats(const MultipathStats& stats) + public void onMultipathStats(MultipathStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine multiPathStats:(AgoraMultipathStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:multiPathStats:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine multiPathStats:(AgoraMultipathStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:multiPathStats:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 触发时机 +

该回调在你将 enableMultipath 设置为 以启用多路径传输后触发。

+

该回调在你将 enableMultipath 设置为 以启用多路径传输后被触发。

+

该回调在你将 enableMultipath 设置为 true 以启用多路径传输后触发。

+

该回调在你将 enableMultipath 设置为 true 以启用多路径传输后触发。

+
+
+ 参数 + + + stats + 多路径传输统计信息。详见 + + + stats + 多路径传输统计信息。详见 + + + engine + 实例。详见 + + + stats + 多路径统计信息。详见 + + + engine + 实例。详见 + + + stats + 多路径统计信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworkquality.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworkquality.dita new file mode 100644 index 00000000000..ad2c480f9dd --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworkquality.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="onNetworkQuality"/> + 报告频道中每个用户的 Last-mile 网络质量。 回调。报告频道中每个用户的 Last-mile 网络质量。报告频道中每个用户的 Last-mile 网络质量。报告频道中每个用户的 Last-mile 网络质量。 + + + + + + + + +
+

+ virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) + public void onNetworkQuality(int uid, int txQuality, int rxQuality) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine networkQuality:(NSUInteger)uid txQuality:(AgoraNetworkQuality)txQuality rxQuality:(AgoraNetworkQuality)rxQuality NS_SWIFT_NAME(rtcEngine(_:networkQuality:txQuality:rxQuality:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine networkQuality:(NSUInteger)uid txQuality:(AgoraNetworkQuality)txQuality rxQuality:(AgoraNetworkQuality)rxQuality NS_SWIFT_NAME(rtcEngine(_:networkQuality:txQuality:rxQuality:)); +

+
+
+

该回调报告频道中每个用户的 Last-mile 网络状况。Last-mile 指的是本地设备与声网边缘服务器之间的连接。SDK 每两秒触发一次该回调。如果频道中有多个用户,SDK 会触发多次该回调。该回调通过在频道内发送和接收广播数据包来反馈网络质量。为避免广播风暴导致频道内数据传输量过大,该回调默认最多同时反馈 4 个远端用户的网络质量。

+

该回调通过在频道内发送和接收广播数据包来反馈网络质量。过多的广播数据包可能导致广播风暴。为防止广播风暴造成频道内大量数据传输,该回调默认最多同时反馈 4 个远端用户的网络质量。

+

回调报告频道中每个用户的 Last-mile 网络状况。Last-mile 指的是本地设备与声网边缘服务器之间的连接。SDK 每两秒触发一次该回调。如果频道中有多个用户,SDK 会触发多次该回调。该回调通过在频道内发送和接收广播数据包来反馈网络质量。过多的广播数据包可能会导致广播风暴。为防止广播风暴造成频道内大量数据传输,该回调默认支持同时反馈最多 4 个远端用户的网络质量。

+

回调报告频道中每个用户的 Last-mile 网络状况。Last-mile 指的是本地设备与声网边缘服务器之间的连接。SDK 每两秒触发一次该回调。如果频道中有多个用户,SDK 会触发多次该回调。该回调通过在频道内发送和接收广播数据包来反馈网络质量。过多的广播数据包可能会导致广播风暴。为防止广播风暴造成频道内大量数据传输,该回调默认支持同时反馈最多 4 个远端用户的网络质量。

+ txQuality 在用户未发送流时为 UNKNOWNrxQuality 在用户未接收流时为 UNKNOWN + txQuality 在用户未发送流时为 UNKNOWNrxQuality 在用户未接收流时为 UNKNOWN + txQuality 在用户未发送流时为 UnknownrxQuality 在用户未接收流时为 Unknown + txQuality 在用户未发送流时为 UnknownrxQuality 在用户未接收流时为 Unknown +
+
+ 触发时机 +

该回调每两秒触发一次。

+

该回调在 SDK 每两秒检测一次网络质量时被触发。

+

该回调在 SDK 每两秒检测一次网络质量时被触发。

+
+
+ 参数 + + + uid + 用户 ID。用于指定要报告网络质量的用户。如果该值为 0,则表示报告本地用户的网络质量。 + + + txQuality + 用户的上行网络质量评分,依据上行网络的传输码率、丢包率、平均往返时延(RTT)和抖动情况评估。该评分有助于判断当前上行网络是否能支持所选的视频编码器配置。例如,1000 Kbps 的上行网络可能足以支持分辨率为 640 × 480、帧率为 15 fps 的视频帧,但可能不足以支持高于 1280 × 720 的分辨率。详见 + + + rxQuality + 用户的下行网络质量评分,依据下行网络的丢包率、平均 RTT 和抖动情况评估。详见 + + + uid + 用户 ID,用于标识被报告网络质量的用户。 +
    +
  • 0:表示本地用户。
  • +
+
+
+ + txQuality + 用户上行网络质量评分,依据传输码率、丢包率、平均往返时延(RTT)和抖动等指标评估。 +
    +
  • QUALITY_UNKNOWN (0):质量未知。
  • +
  • QUALITY_EXCELLENT (1):质量极佳。
  • +
  • QUALITY_GOOD (2):网络质量看似极佳,但码率略低于极佳。
  • +
  • QUALITY_POOR (3):用户能感受到通信略有卡顿。
  • +
  • QUALITY_BAD (4):用户无法流畅通信。
  • +
  • QUALITY_VBAD (5):质量极差,用户几乎无法通信。
  • +
  • QUALITY_DOWN (6):网络连接已断,用户无法通信。
  • +
  • QUALITY_DETECTING (8):正在进行 Last-mile 探测测试。
  • +
+
+
+ + rxQuality + 用户下行网络质量评分,依据丢包率、平均往返时延(RTT)和抖动等指标评估。 +
    +
  • QUALITY_UNKNOWN (0):质量未知。
  • +
  • QUALITY_EXCELLENT (1):质量极佳。
  • +
  • QUALITY_GOOD (2):网络质量看似极佳,但码率略低于极佳。
  • +
  • QUALITY_POOR (3):用户能感受到通信略有卡顿。
  • +
  • QUALITY_BAD (4):用户无法流畅通信。
  • +
  • QUALITY_VBAD (5):质量极差,用户几乎无法通信。
  • +
  • QUALITY_DOWN (6):网络连接已断,用户无法通信。
  • +
  • QUALITY_DETECTING (8):正在进行 Last-mile 探测测试。
  • +
+
+
+ + engine + 对象。详见 + + + uid + 用户 ID。该参数报告指定用户的网络质量。如果 uid 为 0,则报告本地用户的网络质量。 + + + txQuality + 用户的上行网络质量评分,依据传输码率、丢包率、平均往返时延(RTT)和抖动等指标评估。该评分有助于你了解当前上行网络状况是否能支持所选的视频编码器配置。例如,1000 Kbps 的上行网络可能足以支持在 LIVE_BROADCASTING 场景下分辨率为 640 × 480、帧率为 15 fps 的视频帧,但可能不足以支持高于 1280 × 720 的分辨率。详见 + + + rxQuality + 用户的下行网络质量评分,依据丢包率、平均 RTT 和抖动等指标评估。详见 + + + engine + 对象。详见 + + + uid + 用户 ID。该参数报告指定用户的网络质量。如果 uid 为 0,则报告本地用户的网络质量。 + + + txQuality + 用户的上行网络质量评分,依据传输码率、丢包率、平均往返时延(RTT)和抖动等指标评估。该评分有助于你了解当前上行网络状况是否能支持所选的视频编码器配置。例如,1000 Kbps 的上行网络可能足以支持在 LIVE_BROADCASTING 场景下分辨率为 640 × 480、帧率为 15 fps 的视频帧,但可能不足以支持高于 1280 × 720 的分辨率。详见 + + + rxQuality + 用户的下行网络质量评分,依据丢包率、平均 RTT 和抖动等指标评估。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworktypechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworktypechanged.dita new file mode 100644 index 00000000000..236ead7bffc --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onnetworktypechanged.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="onNetworkTypeChanged"/> + 本地网络类型发生变化时触发的回调。本地网络类型发生变化时的回调。本地网络类型发生变化回调。本地网络类型发生变化回调。 + + + + + + + + +
+

+ virtual void onNetworkTypeChanged(NETWORK_TYPE type) + public void onNetworkTypeChanged(int type) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine networkTypeChanged:(AgoraNetworkType)type NS_SWIFT_NAME(rtcEngine(_:networkTypeChanged:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine networkTypeChanged:(AgoraNetworkType)type NS_SWIFT_NAME(rtcEngine(_:networkTypeChanged:)); +

+
+
+

你可以通过该回调获取连接状态及其变化原因。当网络连接中断时,该回调可用于判断中断是由于网络类型变化还是网络状况不佳导致的。

+

你可以通过该回调获取连接状态及其变化原因。当网络连接中断时,该回调会指示中断是由于网络类型变化还是由于网络状况不佳导致的。

+

该回调在本地用户的连接状态发生变化时触发。你可以通过该回调获取连接状态及其变化原因。当网络连接中断时,该回调会指示中断是由于网络类型变化还是网络状况不佳导致。

+

该回调在本地用户的连接状态发生变化时触发。你可以通过该回调获取连接状态及其变化原因。当网络连接中断时,该回调会指示中断是由于网络类型变化还是网络状况不佳导致。

+
+
+ 触发时机 +

该回调在本地网络类型发生变化时被触发。

+
+
+ 参数 + + + type + 本地网络连接的类型,详见 + + + type + 网络类型: +
    +
  • NETWORK_TYPE_UNKNOWN(-1):网络类型未知。
  • +
  • NETWORK_TYPE_DISCONNECTED(0):SDK 与网络断开连接。
  • +
  • NETWORK_TYPE_LAN(1):网络类型为 LAN。
  • +
  • NETWORK_TYPE_WIFI(2):网络类型为 Wi-Fi(包括热点)。
  • +
  • NETWORK_TYPE_MOBILE_2G(3):网络类型为移动 2G。
  • +
  • NETWORK_TYPE_MOBILE_3G(4):网络类型为移动 3G。
  • +
  • NETWORK_TYPE_MOBILE_4G(5):网络类型为移动 4G。
  • +
  • NETWORK_TYPE_MOBILE_5G(6):网络类型为移动 5G。
  • +
+
+
+ + engine + 对象,详见 + + + type + 本地网络连接的类型,详见 + + + engine + 对象,详见 + + + type + 本地网络连接的类型,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onpermissionerror.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onpermissionerror.dita new file mode 100644 index 00000000000..4732a4d763f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onpermissionerror.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="onPermissionError"/> + 报告 SDK 无法获取设备权限。设备权限获取失败时触发的回调。当 SDK 无法获取设备权限时触发的回调。当 SDK 无法获取设备权限时触发的回调。 + + + + + + + + +
+

+ virtual void onPermissionError(PERMISSION_TYPE permissionType) + public void onPermissionError(int permission) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine permissionError:(AgoraPermissionType)type NS_SWIFT_NAME(rtcEngine(_:permissionError:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine permissionError:(AgoraPermissionType)type NS_SWIFT_NAME(rtcEngine(_:permissionError:)); +

+
+
+

该回调在 SDK 无法获取设备权限时触发,用于报告无法获取的设备权限类型。

+

该回调在 SDK 无法获取设备权限时被触发,用于报告无法获取的权限类型。

+
+
+ 触发时机 +

该回调在 SDK 无法获取设备权限时被触发。

+

该回调在 SDK 无法获取设备权限时被触发。

+

该回调在 SDK 无法获取设备权限时被触发。

+
+
+ 参数 + + + permissionType + 设备权限类型,详见 + + + permission + 设备权限的类型: +
    +
  • RECORD_AUDIO(0):音频采集设备的权限。
  • +
  • CAMERA(1):摄像头的权限。
  • +
  • SCREEN_CAPTURE(2):屏幕共享的权限。
  • +
+
+
+ + engine + 引擎对象,详见 + + + type + 设备权限的类型,详见 + + + engine + 引擎对象,详见 + + + type + 设备权限的类型,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onproxyconnected.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onproxyconnected.dita new file mode 100644 index 00000000000..ee7a9eb675c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onproxyconnected.dita @@ -0,0 +1,136 @@ + + + + <ph keyref="onProxyConnected"/> + 代理连接状态回调。代理连接状态回调。代理连接状态回调。代理连接状态回调。 + + + + + + + + +
+

+ virtual void onProxyConnected(const char* channel, uid_t uid, PROXY_TYPE proxyType, const char* localProxyIp, int elapsed) + public void onProxyConnected(String channel, int uid, int proxyType, String localProxyIp, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine didProxyConnected:(NSString* _Nonnull)channel withUid:(NSUInteger)uid proxyType:(AgoraProxyType)proxyType localProxyIp:(NSString* _Nonnull)localProxyIp elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didProxyConnected:withUid:proxyType:localProxyIp:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine didProxyConnected:(NSString* _Nonnull)channel withUid:(NSUInteger)uid proxyType:(AgoraProxyType)proxyType localProxyIp:(NSString* _Nonnull)localProxyIp elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didProxyConnected:withUid:proxyType:localProxyIp:elapsed:)); +

+
+
+

回调用于监听 SDK 连接代理的状态。当用户调用 并成功加入频道后,SDK 会触发该回调,报告用户 ID、连接的代理类型,以及从调用 joinChannel 到触发该回调所经历的时间(毫秒)。

+

当用户调用 并成功加入频道后,SDK 会触发该回调,报告用户 ID、连接的代理类型,以及从调用 joinChannel 到触发该回调所经历的时间(毫秒)。

+

你可以使用该回调监听 SDK 的代理连接状态。例如,当你调用 并成功加入频道后,SDK 会触发该回调,上报用户 ID、连接的代理类型,以及从调用 joinChannelByToken 到触发该回调所经历的时间(毫秒)。

+

你可以使用该回调监听 SDK 的代理连接状态。例如,当你调用 并成功加入频道后,SDK 会触发该回调,上报用户 ID、连接的代理类型,以及从调用 joinChannelByToken 到触发该回调所经历的时间(毫秒)。

+
+
+ 触发时机 +

该回调在用户调用 并成功加入频道后被触发。

+

该回调在你调用 并成功加入频道后被触发。

+

该回调在你调用 并成功加入频道后被触发。

+
+
+ 参数 + + + channel + 频道名。 + + + uid + 用户 ID。 + + + proxyType + 连接的代理类型,详见 + + + localProxyIp + 预留参数,暂未使用。 + + + elapsed + 从调用 joinChannel 到触发该回调所经历的时间,单位为毫秒。 + + + channel + 频道名。 + + + uid + 用户 ID。 + + + proxyType + 连接的代理类型: +
    +
  • PROXY_TYPE_NONE_PROXY(0):预留参数。
  • +
  • PROXY_TYPE_UDP_CLOUD_PROXY(1):UDP 协议的云代理,即强制 UDP 云代理模式。在该模式下,SDK 始终通过 UDP 传输数据。
  • +
  • PROXY_TYPE_TCP_CLOUD_PROXY(2):TCP(加密)协议的云代理,即强制 TCP 云代理模式。在该模式下,SDK 始终通过 TCP/TLS 443 传输数据。
  • +
  • PROXY_TYPE_LOCAL_PROXY(3):预留参数。
  • +
  • PROXY_TYPE_TCP_AUTO_FALLBACK(4):自动模式。在该模式下,SDK 会尝试直接连接 SD-RTN™,如果失败则自动切换到 TCP/TLS 443。
  • +
+
+
+ + localProxyIp + 预留参数。 + + + elapsed + 从调用 joinChannel 到触发该回调所经历的时间(毫秒)。 + + + engine + 对象。 + + + channel + 频道名称。 + + + uid + 用户 ID。 + + + proxyType + 连接的代理类型,详见 + + + localProxyIp + 预留参数,暂未使用。 + + + elapsed + 从调用 joinChannelByToken 到触发该回调所经历的时间(毫秒)。 + + + engine + 对象。 + + + channel + 频道名称。 + + + uid + 用户 ID。 + + + proxyType + 连接的代理类型,详见 + + + localProxyIp + 预留参数,暂未使用。 + + + elapsed + 从调用 joinChannelByToken 到触发该回调所经历的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrejoinchannelsuccess.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrejoinchannelsuccess.dita new file mode 100644 index 00000000000..3cb9378359c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrejoinchannelsuccess.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="onRejoinChannelSuccess"/> + 回调。用户重新加入频道回调。 回调。当用户重新加入频道时触发。 回调。当用户重新加入频道时触发。 + + + + + + + + +
+

+ virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) + public void onRejoinChannelSuccess(String channel, int uid, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRejoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didRejoinChannel:withUid:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRejoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didRejoinChannel:withUid:elapsed:)); +

+
+
+

当用户因网络问题与服务器断开连接时,SDK 会自动尝试重连,并在重连成功后触发该回调。

+

该回调在用户因网络问题与服务器断开连接后,SDK 自动尝试重连并成功重连时触发。

+
+
+ 触发时机 +

当用户因网络问题与服务器断开连接后,SDK 自动尝试重连并成功后触发该回调。

+

该回调在用户因网络问题与服务器断开连接后,SDK 自动尝试重连并成功重连时被触发。

+

该回调在因网络问题与服务器断开连接后,SDK 自动尝试重连并在重新连接成功时触发。

+

该回调在因网络问题与服务器断开连接后,SDK 自动尝试重连并在重新连接成功时触发。

+
+
+ 参数 + + + channel + 频道名。 + + + uid + 重新加入频道的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间间隔(单位为毫秒)。 + + + channel + 频道名。 + + + uid + 重新加入频道的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到 SDK 触发该回调的时间间隔,单位为毫秒。 + + + engine + 声网引擎对象。详见 + + + channel + 频道名。 + + + uid + 重新加入频道的用户 ID。 + + + elapsed + 从调用 到 SDK 触发该回调所经过的时间(毫秒)。 + + + engine + 声网引擎对象。详见 + + + channel + 频道名。 + + + uid + 重新加入频道的用户 ID。 + + + elapsed + 从调用 到 SDK 触发该回调所经过的时间(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostatechanged.dita new file mode 100644 index 00000000000..1e33f7a4bae --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostatechanged.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="onRemoteAudioStateChanged"/> + 远端音频状态发生变化回调。远端音频状态发生变化回调。远端音频状态发生变化回调。远端音频状态发生变化回调。 + + + + + + + + +
+

+ virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) + public void onRemoteAudioStateChanged(int uid, int state, int reason, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteAudioStateChangedOfUid:(NSUInteger)uid state:(AgoraAudioRemoteState)state reason:(AgoraAudioRemoteReason)reason elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:remoteAudioStateChangedOfUid:state:reason:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteAudioStateChangedOfUid:(NSUInteger)uid state:(AgoraAudioRemoteState)state reason:(AgoraAudioRemoteReason)reason elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:remoteAudioStateChangedOfUid:state:reason:elapsed:)); +

+
+
+

该回调在语音/视频通话频道中的远端用户或直播频道中的主播的音频状态发生变化时被触发,用于报告远端音频流的当前状态。

+

当语音/视频通话频道中的远端用户,或直播频道中的主播的音频状态发生变化时,SDK 会触发该回调以报告远端音频流的当前状态。

+

当语音/视频通话频道中的远端用户,或直播频道中的主播的音频状态发生变化时,SDK 会触发该回调以报告远端音频流的当前状态。

+ 当通信场景下的用户或直播场景下的主播数量超过 32 时,该回调无法正常工作。 + 当频道中的用户(通信场景)或主播(直播场景)数量超过 32 时,该回调可能无法正常工作。 + 当频道中的用户(通信场景)或主播(直播频道)数量超过 32 时,该回调可能无法正常工作。 + 当频道中的用户(通信场景)或主播(直播频道)数量超过 32 时,该回调可能无法正常工作。 +
+
+ 触发时机 +

当远端用户的音频状态发生变化时触发。

+

该回调在远端用户的音频状态发生变化时被触发。

+

该回调在远端用户的音频状态发生变化时被触发。

+

该回调在远端用户的音频状态发生变化时被触发。

+
+
+ 参数 + + + uid + 音频状态发生变化的远端用户 ID。 + + + state + 远端音频状态。详见 + + + reason + 远端音频状态变化的原因。详见 + + + elapsed + 从本地用户调用 joinChannel 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + + uid + 音频状态发生变化的远端用户 ID。 + + + state + 远端音频状态: +
    +
  • REMOTE_AUDIO_STATE_STOPPED(0):远端音频处于初始状态。SDK 在 REMOTE_AUDIO_REASON_LOCAL_MUTEDREMOTE_AUDIO_REASON_REMOTE_MUTEDREMOTE_AUDIO_REASON_REMOTE_OFFLINE 的情况下报告该状态。
  • +
  • REMOTE_AUDIO_STATE_STARTING(1):已接收到第一包远端音频数据。
  • +
  • REMOTE_AUDIO_STATE_DECODING(2):远端音频流解码并正常播放。SDK 在 REMOTE_AUDIO_REASON_NETWORK_RECOVERYREMOTE_AUDIO_REASON_LOCAL_UNMUTEDREMOTE_AUDIO_REASON_REMOTE_UNMUTED 的情况下报告该状态。
  • +
  • REMOTE_AUDIO_STATE_FROZEN(3):远端音频卡顿。SDK 在 REMOTE_AUDIO_REASON_NETWORK_CONGESTION 的情况下报告该状态。
  • +
  • REMOTE_AUDIO_STATE_FAILED(4):远端音频启动失败。SDK 在 REMOTE_AUDIO_REASON_INTERNAL 的情况下报告该状态。
  • +
+
+
+ + reason + 远端音频状态变化的原因: +
    +
  • REMOTE_AUDIO_REASON_INTERNAL(0):SDK 音频状态改变时报告该原因。
  • +
  • REMOTE_AUDIO_REASON_NETWORK_CONGESTION(1):网络拥塞。
  • +
  • REMOTE_AUDIO_REASON_NETWORK_RECOVERY(2):网络恢复。
  • +
  • REMOTE_AUDIO_REASON_LOCAL_MUTED(3):本地用户停止接收远端音频流或关闭音频模块。
  • +
  • REMOTE_AUDIO_REASON_LOCAL_UNMUTED(4):本地用户恢复接收远端音频流或开启音频模块。
  • +
  • REMOTE_AUDIO_REASON_REMOTE_MUTED(5):远端用户停止发送音频流或关闭音频模块。
  • +
  • REMOTE_AUDIO_REASON_REMOTE_UNMUTED(6):远端用户恢复发送音频流或开启音频模块。
  • +
  • REMOTE_AUDIO_REASON_REMOTE_OFFLINE(7):远端用户离开频道。
  • +
+
+
+ + elapsed + 从本地用户调用 joinChannel 方法到 SDK 触发该回调的时间(毫秒)。 + + + engine + 对象。详见 + + + uid + 音频状态发生变化的远端用户 ID。 + + + state + 远端音频的状态,详见 + + + reason + 远端音频状态变化的原因,详见 + + + elapsed + 从调用 joinChannelByToken 方法到 SDK 触发该回调的时间(毫秒)。 + + + engine + 对象。详见 + + + uid + 音频状态发生变化的远端用户 ID。 + + + state + 远端音频的状态,详见 + + + reason + 远端音频状态变化的原因,详见 + + + elapsed + 从调用 joinChannelByToken 方法到 SDK 触发该回调的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostats.dita new file mode 100644 index 00000000000..744c9854083 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiostats.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="onRemoteAudioStats"/> + 远端音频流统计信息回调。报告每个远端音频流的传输层统计信息回调。上报每个远端音频流的传输层统计信息。上报每个远端音频流的传输层统计信息。 + + + + + + + + +
+

+ virtual void onRemoteAudioStats(const RemoteAudioStats& stats) + public void onRemoteAudioStats(RemoteAudioStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteAudioStats:(AgoraRtcRemoteAudioStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:remoteAudioStats:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteAudioStats:(AgoraRtcRemoteAudioStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:remoteAudioStats:)); +

+
+
+

该回调每两秒触发一次,用于报告每个正在发送音频流的远端用户的传输层统计信息。如果频道中有多个远端用户,SDK 会分别为每个用户触发该回调。

+

该回调每两秒触发一次。如果频道中有多个远端用户,SDK 会分别为每个用户触发该回调。

+

该回调每两秒触发一次,用于上报每个正在发送音频流的远端用户的传输层统计信息。如果频道中有多个远端用户,SDK 会分别为每个用户触发该回调。

+

该回调每两秒触发一次,用于上报每个正在发送音频流的远端用户的传输层统计信息。如果频道中有多个远端用户,SDK 会分别为每个用户触发该回调。

+
+
+ 触发时机 +

该回调每两秒触发一次。

+

该回调每两秒触发一次。

+
+
+ 参数 + + + stats + 远端音频流的统计信息。详见 + + + stats + 远端音频流的统计信息。详见 + + + engine + 对象。 + + + stats + 接收的远端音频流的统计信息,详见 + + + engine + 对象。 + + + stats + 接收的远端音频流的统计信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiotransportstats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiotransportstats.dita new file mode 100644 index 00000000000..c6a1d362364 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremoteaudiotransportstats.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="onRemoteAudioTransportStats"/> + 报告每个远端音频流的传输层统计信息回调。上报每个远端音频流的传输层统计信息。报告每个远端音频流的传输层统计信息。报告每个远端音频流的传输层统计信息。 + + + + + + + + +
+

+ virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated + public void onRemoteAudioTransportStats(int uid, int delay, int lost, int rxKBitRate) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine audioTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate NS_SWIFT_NAME(rtcEngine(_:audioTransportStatsOfUid:delay:lost:rxKBitRate:)) __deprecated_msg("use rtcEngine:remoteAudioStats: instead"); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine audioTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate NS_SWIFT_NAME(rtcEngine(_:audioTransportStatsOfUid:delay:lost:rxKBitRate:)) __deprecated_msg("use rtcEngine:remoteAudioStats: instead"); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该回调已废弃,请使用 代替。
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

该回调报告传输层的统计信息,例如在本地用户接收到远端用户的音频数据包后,数据包的丢失率和网络时延。该回调在通话过程中每 2 秒触发一次。

+

该回调上报远端音频流的传输层统计信息,例如本地用户接收到远端用户音频包后的丢包率和网络时延。

+
+
+ 触发时机 +

在通话过程中,每当本地用户接收到远端用户发送的音频数据包时,每 2 秒触发一次。

+

该回调在通话过程中,当本地用户接收到远端用户发送的音频包时每 2 秒被触发。

+

该回调在通话过程中,当你接收到远端用户发送的音频包时,每 2 秒触发一次。

+

该回调在通话过程中,当你接收到远端用户发送的音频包时,每 2 秒触发一次。

+
+
+ 参数 + + + uid + 远端用户 ID,即发送音频流的用户。 + + + delay + 从远端用户到本地接收端的网络时延(毫秒)。 + + + lost + 从远端用户到本地接收端的音频数据包丢失率(%)。 + + + rxKBitRate + 接收到的音频码率(Kbps)。 + + + uid + 远端用户 ID,即发送音频流的用户。 + + + delay + 从远端用户到接收端的网络时延,单位为毫秒。 + + + lost + 从远端用户到接收端的音频包丢包率,单位为百分比(%)。 + + + rxKBitRate + 接收到的音频码率,单位为 Kbps。 + + + engine + 引擎对象,详见 + + + uid + 发送音频流的远端用户 ID。 + + + delay + 从远端用户到接收端的网络时延(毫秒)。 + + + lost + 从远端用户到接收端的音频包丢包率(%)。 + + + rxKBitRate + 接收到的音频码率(Kbps)。 + + + engine + 引擎对象,详见 + + + uid + 发送音频流的远端用户 ID。 + + + delay + 从远端用户到接收端的网络时延(毫秒)。 + + + lost + 从远端用户到接收端的音频包丢包率(%)。 + + + rxKBitRate + 接收到的音频码率(Kbps)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotesubscribefallbacktoaudioonly.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotesubscribefallbacktoaudioonly.dita new file mode 100644 index 00000000000..921d8c2133f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotesubscribefallbacktoaudioonly.dita @@ -0,0 +1,124 @@ + + + + <ph keyref="onRemoteSubscribeFallbackToAudioOnly"/> + 远端媒体流因网络变化在音频流与视频流之间切换时触发的回调。 回调。当远端媒体流因网络变化在音频流与视频流之间切换时触发。远端媒体流因网络变化在音频流与视频流之间切换时触发的回调。远端媒体流因网络变化在音频流与视频流之间切换时触发的回调。 + + + + + + + + +
+

+ virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) + public void onRemoteSubscribeFallbackToAudioOnly(int uid, boolean isFallbackOrRecover) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didRemoteSubscribeFallbackToAudioOnly:byUid:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didRemoteSubscribeFallbackToAudioOnly:byUid:)); +

+
+
+

如果你调用了 并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY,SDK 会在以下情况下触发该回调: +

    +
  • 下行网络条件较差,已订阅的视频流被降级为纯音频流。
  • +
  • 下行网络条件改善,已订阅的流恢复为视频流。
  • +
+

+

如果你调用了 setRemoteSubscribeFallbackOption 并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY,SDK 会在以下情况下触发该回调: +

    +
  • 下行网络条件较差,已订阅的视频流降级为纯音频流。
  • +
  • 下行网络条件改善,已订阅的流恢复为视频流。
  • +
+

+

如果你调用了 并将 option 设置为 AgoraStreamFallbackOptionAudioOnly,SDK 会在以下情况下触发该回调: +

    +
  • 下行网络条件较差,订阅的视频流被降级为纯音频流。
  • +
  • 下行网络条件改善,订阅的流恢复为视频流。
  • +
+

+

如果你调用了 并将 option 设置为 AgoraStreamFallbackOptionAudioOnly,SDK 会在以下情况下触发该回调: +

    +
  • 下行网络条件较差,订阅的视频流被降级为纯音频流。
  • +
  • 下行网络条件改善,订阅的流恢复为视频流。
  • +
+

+ 当远端媒体流因网络较弱切换为视频小流时,你可以通过 回调监控高质量与视频小流之间的切换。 + 你可以在 回调中监控高质量与视频小流之间的切换。 + 一旦远端媒体流因网络较弱切换为视频小流,你可以在 remoteVideoStats 回调中监控高质量与视频小流之间的切换。 + 一旦远端媒体流因网络较弱切换为视频小流,你可以在 remoteVideoStats 回调中监控高质量与视频小流之间的切换。 +
+
+ 触发时机 +

该回调在远端媒体流因网络变化在音频流与视频流之间切换时被触发。

+

该回调在远端媒体流因网络不佳降级为纯音频流,或在网络改善后恢复为视频流时被触发。

+

该回调在远端媒体流因网络不佳降级为纯音频流,或在网络改善后恢复为视频流时被触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + isFallbackOrRecover + 是否因网络变化导致媒体流切换: +
    +
  • :由于网络条件差,已订阅的媒体流降级为纯音频流。
  • +
  • :网络条件改善后,已订阅的媒体流恢复为视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + + + isFallbackOrRecover + 是否因网络变化触发音视频切换: +
    +
  • :由于网络条件差,已订阅的媒体流降级为纯音频流。
  • +
  • :网络条件改善后,已订阅的媒体流恢复为视频流。
  • +
+
+
+ + engine + 引擎实例。详见 + + + isFallbackOrRecover + +
    +
  • :由于网络条件差,订阅的媒体流降级为纯音频流。
  • +
  • :网络条件改善后,订阅的媒体流恢复为视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + + + engine + 引擎实例。详见 + + + isFallbackOrRecover + +
    +
  • :由于网络条件差,订阅的媒体流降级为纯音频流。
  • +
  • :网络条件改善后,订阅的媒体流恢复为视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostatechanged.dita new file mode 100644 index 00000000000..052b4d20254 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostatechanged.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="onRemoteVideoStateChanged"/> + 远端视频状态发生改变回调。远端视频状态发生改变回调。远端视频状态发生改变回调。远端视频状态发生改变回调。 + + + + + + + + +
+

+ virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) + public void onRemoteVideoStateChanged(int uid, int state, int reason, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(AgoraVideoRemoteReason)reason elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:remoteVideoStateChangedOfUid:state:reason:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(AgoraVideoRemoteReason)reason elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:remoteVideoStateChangedOfUid:state:reason:elapsed:)); +

+
+
+ 当频道中的用户数(在通信频道场景中)或主播数(在直播频道中)超过 32 时,该回调无法正常工作。 + 当频道中的用户数(在通信频道场景中)或主播数(在直播频道中)超过 32 时,该回调可能无法正常工作。 + 当频道中的用户数(在通信频道场景中)或主播数(在直播频道中)超过 32 时,该回调无法正常工作。 + 当频道中的用户数(在通信频道场景中)或主播数(在直播频道中)超过 32 时,该回调无法正常工作。 +
+
+ 触发时机 +

当远端视频流状态发生变化时触发。

+

该回调在远端视频状态发生变化时被触发。

+

该回调在远端视频状态发生变化时被触发。

+

该回调在远端视频状态发生变化时被触发。

+
+
+ 参数 + + + uid + 发生视频状态变化的远端用户 ID。 + + + state + 远端视频的状态,详见 + + + reason + 远端视频状态变化的原因,详见 + + + elapsed + 从本地用户调用 joinChannel 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + + uid + 发生视频状态变化的远端用户 ID。 + + + state + 远端视频的状态: +
    +
  • REMOTE_VIDEO_STATE_STOPPED (0):远端视频处于初始状态。该状态在 REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED (3)、REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5) 或 REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE (7) 的情况下报告。
  • +
  • REMOTE_VIDEO_STATE_STARTING (1):已接收到第一帧远端视频包。
  • +
  • REMOTE_VIDEO_STATE_DECODING (2):远端视频流解码并正常播放。该状态在 REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY (2)、REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED (4)、REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY (9) 的情况下报告。
  • +
  • REMOTE_VIDEO_STATE_FROZEN (3):远端视频卡顿。该状态在 REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION (1) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK (8) 的情况下报告。
  • +
  • REMOTE_VIDEO_STATE_FAILED (4):远端视频启动失败。该状态在 REMOTE_VIDEO_STATE_REASON_INTERNAL (0) 的情况下由 SDK 报告。
  • +
+
+
+ + reason + 远端视频状态变化的原因: +
    +
  • REMOTE_VIDEO_STATE_REASON_INTERNAL (0):内部原因。
  • +
  • REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION (1):网络拥塞。
  • +
  • REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY (2):网络恢复。
  • +
  • REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED (3):本地用户停止接收远端视频流或关闭视频模块。
  • +
  • REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED (4):本地用户恢复接收远端视频流或开启视频模块。
  • +
  • REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5):远端用户停止发送视频流或关闭视频模块。
  • +
  • REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6):远端用户恢复发送视频流或开启视频模块。
  • +
  • REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE (7):远端用户离开频道。
  • +
  • REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK (8):由于网络条件差,远端媒体流降级为纯音频流。
  • +
  • REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY (9):网络条件改善后,远端媒体流从音频流恢复为视频流。
  • +
  • REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT (13):本地视频解码器不支持解码远端视频流。
  • +
+
+
+ + elapsed + 从本地用户调用 joinChannel 方法到 SDK 触发该回调的时间(毫秒)。 + + + engine + 引擎对象。详见 + + + uid + 发生视频状态变化的远端用户 ID。 + + + state + 远端视频的状态。详见 + + + reason + 远端视频状态变化的原因。详见 + + + elapsed + 从调用 方法到 SDK 触发该回调的时间间隔(毫秒)。 + + + engine + 引擎对象。详见 + + + uid + 发生视频状态变化的远端用户 ID。 + + + state + 远端视频的状态。详见 + + + reason + 远端视频状态变化的原因。详见 + + + elapsed + 从调用 方法到 SDK 触发该回调的时间间隔(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostats.dita new file mode 100644 index 00000000000..e8735d42810 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideostats.dita @@ -0,0 +1,62 @@ + + + + <ph keyref="onRemoteVideoStats"/> + 远端用户发送的视频流统计信息回调。报告每个远端用户发送的视频流的统计信息回调。报告每位远端用户发送的视频流的统计信息。报告每位远端用户发送的视频流的统计信息。 + + + + + + + + +
+

+ virtual void onRemoteVideoStats(const RemoteVideoStats& stats) + public void onRemoteVideoStats(RemoteVideoStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteVideoStats:(AgoraRtcRemoteVideoStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:remoteVideoStats:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine remoteVideoStats:(AgoraRtcRemoteVideoStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:remoteVideoStats:)); +

+
+
+

SDK 每两秒为每个远端用户触发一次该回调。如果频道中有多个用户或主播发送视频流,SDK 会相应地多次触发该回调。

+
+
+ 触发时机 +

SDK 每两秒为每位远端用户触发一次该回调。如果频道中有多个用户或主播发送视频流,SDK 会相应地多次触发该回调。

+

该回调在 SDK 每两秒收集到远端用户的视频流统计信息时被触发。

+

该回调每两秒为每位远端用户触发一次。如果频道中有多个用户或主播发送视频流,SDK 会触发多次该回调。

+

该回调每两秒为每位远端用户触发一次。如果频道中有多个用户或主播发送视频流,SDK 会触发多次该回调。

+
+
+ 参数 + + + stats + 远端视频流的统计信息。详见 + + + stats + 远端视频流的统计信息。详见 + + + engine + 对象。详见 + + + stats + 远端视频流的统计信息。详见 + + + engine + 对象。详见 + + + stats + 远端视频流的统计信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideotransportstats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideotransportstats.dita new file mode 100644 index 00000000000..c26e802cde6 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onremotevideotransportstats.dita @@ -0,0 +1,128 @@ + + + + <ph keyref="onRemoteVideoTransportStats"/> + 报告每个远端视频流的传输层统计信息。远端视频流传输层统计信息回调。上报每个远端视频流的传输层统计信息。上报每个远端视频流的传输层统计信息。 + + + + + + + + +
+

+ virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated + public void onRemoteVideoTransportStats(int uid, int delay, int lost, int rxKBitRate) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate NS_SWIFT_NAME(rtcEngine(_:videoTransportStatsOfUid:delay:lost:rxKBitRate:)) __deprecated_msg("use rtcEngine:remoteVideoStats: instead"); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate NS_SWIFT_NAME(rtcEngine(_:videoTransportStatsOfUid:delay:lost:rxKBitRate:)) __deprecated_msg("use rtcEngine:remoteVideoStats: instead"); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

该回调上报传输层的统计信息,例如丢包率和网络时延。该回调在通话过程中,当本地用户接收到远端用户或主播发送的视频包时,每 2 秒触发一次。

+
+
+ 触发时机 +

通话过程中,当你接收到远端用户或主播发送的视频包时,每 2 秒触发一次该回调。

+

该回调在通话过程中,当本地用户接收到远端用户或主播发送的视频包时,每 2 秒触发一次。

+

该回调在通话过程中,每当接收到远端用户或主播发送的视频包时,每 2 秒触发一次。

+

该回调在通话过程中,每当接收到远端用户或主播发送的视频包时,每 2 秒触发一次。

+
+
+ 参数 + + + uid + 远端用户 ID,表示发送视频包的用户。 + + + delay + 从发送端到接收端的网络时延(毫秒)。 + + + lost + 远端用户发送的视频包的丢包率(%)。 + + + rxKBitRate + 接收视频的码率(Kbps)。 + + + uid + 远端用户 ID。 + + + delay + 从发送端到接收端的网络时延(毫秒)。 + + + lost + 从远端用户发送的视频包的丢包率(%)。 + + + rxKBitRate + 接收视频的码率(Kbps)。 + + + engine + 对象,详见 + + + uid + 发送视频包的远端用户 ID。 + + + delay + 从发送端到接收端的网络时延(毫秒)。 + + + lost + 远端用户发送的视频包的丢包率(%)。 + + + rxKBitRate + 接收到的视频码率(Kbps)。 + + + engine + 对象,详见 + + + uid + 发送视频包的远端用户 ID。 + + + delay + 从发送端到接收端的网络时延(毫秒)。 + + + lost + 远端用户发送的视频包的丢包率(%)。 + + + rxKBitRate + 接收到的视频码率(Kbps)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrenewtokenresult.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrenewtokenresult.dita new file mode 100644 index 00000000000..6243b57c30d --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrenewtokenresult.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="onRenewTokenResult"/> + 方法调用结果回调。 调用结果回调。 方法调用结果的回调。 方法调用结果的回调。 + + + + + + + + +
+

+ virtual void onRenewTokenResult(const char* token, RENEW_TOKEN_ERROR_CODE code) + public void onRenewTokenResult(String token, Constants.RenewTokenErrorCode code) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine renewTokenResult:(NSString *_Nonnull)token code:(AgoraRenewTokenErrorCode)code NS_SWIFT_NAME(rtcEngine(_:renewTokenResult:code:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine renewTokenResult:(NSString *_Nonnull)token code:(AgoraRenewTokenErrorCode)code NS_SWIFT_NAME(rtcEngine(_:renewTokenResult:code:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

当你调用 方法更新 Token 后,该回调会被触发,用于通知更新结果。

+

该回调在调用 方法后触发,用于通知更新结果。

+
+
+ 触发时机 +

该回调在你调用 方法后被触发。

+

该回调在你调用 方法更新 Token 后被触发。

+

该回调在你调用 方法更新 Token 后被触发。

+
+
+ 参数 + + + token + 更新的 Token。 + + + code + 错误码,详见 + + + token + 用于鉴权的 Token。 + + + code + 错误码。详见 + + + engine + 实例。详见 + + + token + Token。 + + + code + 错误码,详见 + + + engine + 实例。详见 + + + token + Token。 + + + code + 错误码,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrequesttoken.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrequesttoken.dita new file mode 100644 index 00000000000..3618413b843 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrequesttoken.dita @@ -0,0 +1,89 @@ + + + + <ph keyref="onRequestToken"/> + Token 过期时触发的回调。Token 过期回调。当 Token 过期时触发的回调。当 Token 过期时触发的回调。 + + + + + + + + +
+

+ virtual void onRequestToken() {} + public void onRequestToken() {} + - (void)rtcEngineRequestToken:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineRequestToken(_:)); + - (void)rtcEngineRequestToken:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineRequestToken(_:)); +

+
+
+

收到该回调后,你需要在你的 Token 服务器上生成新的 Token,并通过以下方式之一进行更新: +

    +
  • 单频道场景: +
      +
    • 调用 传入新 Token。
    • +
    • 调用 leaveChannel 离开当前频道后,再调用 joinChannel 加入频道时传入新 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新 Token。
  • +
+

+

该回调在 Token 过期时被触发。收到该回调后,你需要在 Token 服务器上生成新的 Token,并通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 更新 Token。
    • +
    • 调用 leaveChannel 离开当前频道,然后在调用 joinChannel 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
+

+

当 Token 过期时,SDK 会触发该回调。收到该回调后,你需要在你的 Token 服务器上生成一个新的 Token,并可以通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 离开当前频道,然后在调用 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
+

+

当 Token 过期时,SDK 会触发该回调。收到该回调后,你需要在你的 Token 服务器上生成一个新的 Token,并可以通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 离开当前频道,然后在调用 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
+

+
+
+ 触发时机 +

当 Token 过期时触发该回调。

+

该回调在 Token 过期时被触发。

+

当 Token 过期时触发。

+

当 Token 过期时触发。

+
+
+ 参数 + + + engine + 对象。详见 + + + engine + 对象。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrhythmplayerstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrhythmplayerstatechanged.dita new file mode 100644 index 00000000000..b1a8b80fd50 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrhythmplayerstatechanged.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="onRhythmPlayerStateChanged"/> + 虚拟节拍器状态发生变化时的回调。虚拟节拍器状态发生变化回调。当虚拟节拍器状态发生变化时触发的回调。当虚拟节拍器状态发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason) + public void onRhythmPlayerStateChanged(int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRhythmPlayerStateChanged:(AgoraRhythmPlayerState)state + reason:(AgoraRhythmPlayerReason)reason NS_SWIFT_NAME(rtcEngine(_:didRhythmPlayerStateChanged:reason:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didRhythmPlayerStateChanged:(AgoraRhythmPlayerState)state + reason:(AgoraRhythmPlayerReason)reason NS_SWIFT_NAME(rtcEngine(_:didRhythmPlayerStateChanged:reason:)); +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+

该回调用于报告虚拟节拍器的当前状态,指示本地音频流的状态,帮助你在音频异常时排查问题。

+

该回调用于报告虚拟节拍器的当前状态,指示本地音频流的状态,帮助你在音频异常发生时排查问题。

+

当虚拟节拍器状态发生变化时,SDK 会触发该回调以报告当前虚拟节拍器的状态。该回调指示本地音频流的状态,并帮助你在音频异常发生时排查问题。

+

当虚拟节拍器状态发生变化时,SDK 会触发该回调以报告当前虚拟节拍器的状态。该回调指示本地音频流的状态,并帮助你在音频异常发生时排查问题。

+ 该回调仅适用于 Android 和 iOS 平台。 +
+
+ 触发时机 +

当虚拟节拍器状态发生变化时触发。

+

该回调在虚拟节拍器状态发生变化时被触发。

+

该回调在虚拟节拍器状态发生变化时被触发。

+

该回调在虚拟节拍器状态发生变化时被触发。

+
+
+ 参数 + + + state + 虚拟节拍器的当前状态,详见 + + + reason + 与虚拟节拍器错误相关的错误码和错误信息,详见 + + + state + 当前虚拟节拍器的状态: +
    +
  • RHYTHM_PLAYER_STATE_IDLE(810):虚拟节拍器未启用或已被禁用。
  • +
  • RHYTHM_PLAYER_STATE_OPENING(811):正在打开节拍文件。
  • +
  • RHYTHM_PLAYER_STATE_DECODING(812):正在解码节拍文件。
  • +
  • RHYTHM_PLAYER_STATE_PLAYING(813):节拍文件正在播放。
  • +
  • RHYTHM_PLAYER_STATE_FAILED(814):虚拟节拍器启动失败。你可以使用返回的错误码排查原因,或尝试重新启动虚拟节拍器。
  • +
+
+
+ + reason + 虚拟节拍器的错误码和错误信息: +
    +
  • RHYTHM_PLAYER_REASON_OK(0):节拍文件正常播放。
  • +
  • RHYTHM_PLAYER_REASON_FAILED(1):通用错误,原因不明确。
  • +
  • RHYTHM_PLAYER_REASON_CAN_NOT_OPEN(801):打开节拍文件时出错。
  • +
  • RHYTHM_PLAYER_REASON_CAN_NOT_PLAY(802):播放节拍文件时出错。
  • +
  • RHYTHM_PLAYER_REASON_FILE_OVER_DURATION_LIMIT(803):节拍音频文件的时长超过限制,最大为 1.2 秒。
  • +
+
+
+ + engine + 当前使用的 实例。 + + + state + 当前虚拟节拍器的状态,详见 + + + reason + 与虚拟节拍器错误相关的错误码和错误信息,详见 + + + engine + 当前使用的 实例。 + + + state + 当前虚拟节拍器的状态,详见 + + + reason + 与虚拟节拍器错误相关的错误码和错误信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtcstats.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtcstats.dita new file mode 100644 index 00000000000..5a9cfe182e5 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtcstats.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="onRtcStats"/> + 报告当前通话的统计信息。报告当前通话统计信息的回调。报告当前通话的统计信息。报告当前通话的统计信息。 + + + + + + + + +
+

+ virtual void onRtcStats(const RtcStats& stats) + public void onRtcStats(RtcStats stats) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine reportRtcStats:(AgoraChannelStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:reportRtcStats:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine reportRtcStats:(AgoraChannelStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:reportRtcStats:)); +

+
+
+
+ 触发时机 +

用户加入频道后,SDK 每两秒触发一次该回调。

+

该回调在用户加入频道后每两秒触发一次。

+

该回调在你加入频道后每两秒触发一次。

+

该回调在你加入频道后每两秒触发一次。

+
+
+ 参数 + + + stats + RTC 引擎的统计信息。详见 + + + stats + RTC 引擎的统计信息,详见 + + + engine + 对象,详见 + + + stats + 通话统计信息,详见 + + + engine + 对象,详见 + + + stats + 通话统计信息,详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingevent.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingevent.dita new file mode 100644 index 00000000000..86bfc3b5762 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingevent.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="onRtmpStreamingEvent"/> + 报告旁路推流过程中的事件。旁路推流事件回调。报告旁路推流过程中的事件。报告旁路推流过程中的事件。 + + + + + + + + +
+

+ virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode) + public void onRtmpStreamingEvent(String url, int event) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingEventWithUrl:(NSString* _Nonnull)url eventCode:(AgoraRtmpStreamingEvent)eventCode NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingEventWithUrl:eventCode:)); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingEventWithUrl:(NSString* _Nonnull)url eventCode:(AgoraRtmpStreamingEvent)eventCode NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingEventWithUrl:eventCode:)); +

+
+
+
+ +
自从
+
自 v3.1.0 版本新增。
+
+ +
自从
+
自 v3.1.0 版本新增。
+
+ +
自从
+
自 v3.1.0 版本新增。
+
+
+
+
+ 触发时机 +

该回调在旁路推流过程中发生事件时被触发。

+

该回调在旁路推流过程中发生事件时被触发。

+
+
+ 参数 + + + url + 旁路推流的地址。 + + + eventCode + 旁路推流的事件码,详见 + + + url + 旁路推流的地址。 + + + event + 旁路推流的事件码: +
    +
  • RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE(1):添加背景图或水印图时发生错误。
  • +
  • RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE(2):该推流地址已被用于旁路推流。如需开启新的推流,请使用新的推流地址。
  • +
  • RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT(3):该功能不支持。
  • +
  • RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN(4):保留参数。
  • +
+
+
+ + engine + 引擎对象。详见 + + + url + 旁路推流的 URL。 + + + eventCode + 旁路推流的事件码。详见 + + + engine + 引擎对象。详见 + + + url + 旁路推流的 URL。 + + + eventCode + 旁路推流的事件码。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingstatechanged.dita new file mode 100644 index 00000000000..b0f439c7c36 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onrtmpstreamingstatechanged.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="onRtmpStreamingStateChanged"/> + 旁路推流状态发生变化时触发的回调。旁路推流状态发生变化回调。RTMP 或 RTMPS 推流状态发生变化时触发的回调。RTMP 或 RTMPS 推流状态发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason) + public void onRtmpStreamingStateChanged(String url, int state, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingChangedToState:(NSString* _Nonnull)url state:(AgoraRtmpStreamingState)state reason:(AgoraRtmpStreamingReason)reason NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingChangedToState:state:reason:)); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingChangedToState:(NSString* _Nonnull)url state:(AgoraRtmpStreamingState)state reason:(AgoraRtmpStreamingReason)reason NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingChangedToState:state:reason:)); +

+
+
+

当旁路推流状态发生变化时,SDK 会触发该回调,并报告对应的 URL 和当前的旁路推流状态。当出现异常时,你可以参考错误码参数中的详细错误信息进行排查。

+

该回调用于指示旁路推流的状态。当旁路推流状态发生变化时,SDK 会触发该回调,并返回对应的 URL 地址和当前的推流状态。当出现异常时,你可以参考错误码参数中的详细错误信息进行排查。

+

当 RTMP 或 RTMPS 推流状态发生变化时,SDK 会触发该回调,用于报告你调用 addPublishStreamUrlremovePublishStreamUrl 的结果。该回调返回推流地址及其当前的推流状态。当出现异常时,你可以通过 reason 参数中的详细错误信息进行排查。

+

当 RTMP 或 RTMPS 推流状态发生变化时,SDK 会触发该回调,用于报告你调用 addPublishStreamUrlremovePublishStreamUrl 的结果。该回调返回推流地址及其当前的推流状态。当出现异常时,你可以通过 reason 参数中的详细错误信息进行排查。

+
+
+ 触发时机 +

该回调在旁路推流状态发生变化时被触发。

+

该回调在你调用 addPublishStreamUrlremovePublishStreamUrl 方法后,推流状态发生变化时被触发。

+

该回调在你调用 addPublishStreamUrlremovePublishStreamUrl 方法后,推流状态发生变化时被触发。

+
+
+ 参数 + + + url + 旁路推流状态发生变化的 URL 地址。 + + + state + 当前的旁路推流状态,详见 + + + reason + 旁路推流状态变化的原因,详见 + + + url + 发生状态变化的旁路推流地址。 + + + state + 当前旁路推流的状态: +
    +
  • RTMP_STREAM_PUBLISH_STATE_IDLE(0):旁路推流尚未开始或已结束。
  • +
  • RTMP_STREAM_PUBLISH_STATE_CONNECTING(1):正在连接推流服务器和 CDN 服务器。
  • +
  • RTMP_STREAM_PUBLISH_STATE_RUNNING(2):正在推流。SDK 成功推送 RTMP 或 RTMPS 流并返回该状态。
  • +
  • RTMP_STREAM_PUBLISH_STATE_RECOVERING(3):正在恢复推流。当 CDN 出现异常或旁路推流中断时,SDK 会尝试恢复推流并返回该状态。 +
      +
    • 如果 SDK 成功恢复推流,则返回 RTMP_STREAM_PUBLISH_STATE_RUNNING(2)。
    • +
    • 如果在 60 秒内未恢复推流或服务器发生错误,则返回 RTMP_STREAM_PUBLISH_STATE_FAILURE(4)。你也可以通过调用 方法重新连接服务器。
    • +
    +
  • +
  • RTMP_STREAM_PUBLISH_STATE_FAILURE(4):推流失败。你可以参考错误码参数中的详细错误信息进行排查,也可以尝试重新推流。
  • +
  • RTMP_STREAM_PUBLISH_STATE_DISCONNECTING(5):SDK 正在断开与声网旁路推流服务器和 CDN 服务器的连接。当你调用 正常停止旁路推流时,SDK 会依次返回 RTMP_STREAM_PUBLISH_STATE_DISCONNECTINGRTMP_STREAM_PUBLISH_STATE_IDLE 状态。
  • +
+
+
+ + reason + 旁路推流状态变化的原因: +
    +
  • RTMP_STREAM_PUBLISH_REASON_OK(0):推流成功。
  • +
  • RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT(1):参数无效。请检查参数设置。
  • +
  • RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED(2):加密流无法推送。
  • +
  • RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT(3):推流超时。你可以尝试重新推流。
  • +
  • RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR(4):声网推流服务器内部错误。你可以尝试重新推流。
  • +
  • RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR(5):CDN 服务器错误。
  • +
  • RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN(6):保留参数。
  • +
  • RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT(7):主播推送的 URL 超过 10 个。你可以停止向不必要的 URL 推流。
  • +
  • RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED(8):主播操作了其他主播的 URL,例如更新或停止其他主播的流。请检查你的应用逻辑。
  • +
  • RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND(9):声网服务器未找到旁路推流的媒体流。
  • +
  • RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED(10):旁路推流地址格式不支持。请检查 URL 格式是否正确。
  • +
  • RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER(11):用户角色不是主播,无法使用旁路推流功能。请检查你的应用代码逻辑。
  • +
  • RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM(13):在无转码的旁路推流场景中调用了 方法更新转码配置。请检查你的应用代码逻辑。
  • +
  • RTMP_STREAM_PUBLISH_REASON_NET_DOWN(14):主播端网络异常。
  • +
  • RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE(16):项目无权限使用旁路推流服务。
  • +
  • RTMP_STREAM_UNPUBLISH_REASON_OK(100):已正常停止旁路推流。调用 停止推流后,SDK 返回该值。
  • +
+
+
+ + engine + 对象。详见 + + + url + CDN 推流地址。 + + + state + RTMP 或 RTMPS 推流状态,详见 + + + reason + 推流的详细错误信息,详见 + + + engine + 对象。详见 + + + url + CDN 推流地址。 + + + state + RTMP 或 RTMPS 推流状态,详见 + + + reason + 推流的详细错误信息,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onsnapshottaken.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onsnapshottaken.dita new file mode 100644 index 00000000000..8522dd4f958 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onsnapshottaken.dita @@ -0,0 +1,173 @@ + + + + <ph keyref="onSnapshotTaken"/> + 截图结果回调。视频截图结果回调。报告视频截图的结果。报告视频截图的结果。 + + + + + + + + +
+

+ virtual void onSnapshotTaken(uid_t uid, const char* filePath, int width, int height, int errCode) + public void onSnapshotTaken(int uid, String filePath, int width, int height, int errCode) + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine snapshotTaken:(NSUInteger)uid filePath:(NSString* _Nonnull)filePath width:(NSInteger)width height:(NSInteger)height errCode:(NSInteger)errCode NS_SWIFT_NAME(rtcEngine(_:snapshotTaken:filePath:width:height:errCode:)); + - (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine snapshotTaken:(NSUInteger)uid filePath:(NSString* _Nonnull)filePath width:(NSInteger)width height:(NSInteger)height errCode:(NSInteger)errCode NS_SWIFT_NAME(rtcEngine(_:snapshotTaken:filePath:width:height:errCode:)); +

+
+
+

调用 takeSnapshot 方法成功后,SDK 会触发该回调,用于报告截图是否成功以及截图的详细信息。

+

该回调在调用 takeSnapshot 方法成功后被触发,用于报告截图的详细信息和是否成功。

+

调用 方法后,SDK 会触发该回调,报告截图是否成功以及截图的详细信息。

+

调用 方法后,SDK 会触发该回调,报告截图是否成功以及截图的详细信息。

+
+
+ 触发时机 +

调用 takeSnapshot 方法成功后触发。

+

该回调在调用 takeSnapshot 方法成功后被触发。

+

调用 方法成功后触发。

+

调用 方法成功后触发。

+
+
+ 参数 + + + uid + 用户 ID。uid 为 0 表示本地用户。 + + + filePath + 截图的本地路径。 + + + width + 截图的宽度(像素)。 + + + height + 截图的高度(像素)。 + + + errCode + 截图结果的错误码: +
    +
  • 0:成功。
  • +
  • < 0:失败: +
      +
    • -1:SDK 写入文件或编码 JPEG 图像失败。
    • +
    • -2:调用 takeSnapshot 方法成功后 1 秒内未找到指定用户的视频流。可能原因包括:本地采集停止、远端停止发布或视频数据处理阻塞。
    • +
    • -3:调用 takeSnapshot 方法过于频繁。
    • +
    +
  • +
+
+
+ + uid + 用户 ID。uid 为 0 表示本地用户。 + + + filePath + 截图的本地路径。 + + + width + 截图的宽度(像素)。 + + + height + 截图的高度(像素)。 + + + errCode + 截图结果的错误码: +
    +
  • 0:成功。
  • +
  • < 0:失败: +
      +
    • -1:SDK 写入文件或编码 JPEG 图像失败。
    • +
    • -2:调用 takeSnapshot 方法成功后 1 秒内未找到指定用户的视频流。可能原因包括:本地采集停止、远端停止发布或视频数据处理阻塞。
    • +
    • -3:调用 takeSnapshot 方法过于频繁。
    • +
    +
  • +
+
+
+ + engine + 引擎实例,详见 + + + uid + 用户 ID。0 表示本地用户。 + + + filePath + 截图的本地路径。 + + + width + 截图的宽度(像素)。 + + + height + 截图的高度(像素)。 + + + errCode + 截图操作的状态码: +
    +
  • 0:截图成功。
  • +
  • < 0:截图失败: +
      +
    • -1:SDK 无法将数据写入文件或编码 JPEG 图像失败。
    • +
    • -2:在调用 方法成功后的一秒内未找到指定用户的视频流。可能原因包括:本地采集停止、远端停止发布或视频数据处理阻塞。
    • +
    • -3:调用 方法过于频繁。
    • +
    +
  • +
+
+
+ + engine + 引擎实例,详见 + + + uid + 用户 ID。0 表示本地用户。 + + + filePath + 截图的本地路径。 + + + width + 截图的宽度(像素)。 + + + height + 截图的高度(像素)。 + + + errCode + 截图操作的状态码: +
    +
  • 0:截图成功。
  • +
  • < 0:截图失败: +
      +
    • -1:SDK 无法将数据写入文件或编码 JPEG 图像失败。
    • +
    • -2:在调用 方法成功后的一秒内未找到指定用户的视频流。可能原因包括:本地采集停止、远端停止发布或视频数据处理阻塞。
    • +
    • -3:调用 方法过于频繁。
    • +
    +
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessage.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessage.dita new file mode 100644 index 00000000000..534125d5d56 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessage.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="onStreamMessage"/> + 回调:远端用户发送数据流时触发。远端用户发送数据流时的回调。当本地用户收到远端用户发送的数据流时触发。当本地用户收到远端用户发送的数据流时触发。 + + + + + + + + +
+

+ virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length, uint64_t sentTs) + public void onStreamMessage(int uid, int streamId, byte[] data) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine receiveStreamMessageFromUid:(NSUInteger)uid streamId:(NSInteger)streamId data:(NSData * _Nonnull)data NS_SWIFT_NAME(rtcEngine(_:receiveStreamMessageFromUid:streamId:data:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine receiveStreamMessageFromUid:(NSUInteger)uid streamId:(NSInteger)streamId data:(NSData * _Nonnull)data NS_SWIFT_NAME(rtcEngine(_:receiveStreamMessageFromUid:streamId:data:)); +

+
+
+

当本地用户收到远端用户通过调用 发送的数据流时,SDK 会触发该回调。

+

当你收到远端用户通过调用 发送的数据流消息时,SDK 会触发该回调。

+

当你收到远端用户通过调用 发送的数据流消息时,SDK 会触发该回调。

+ 如果你需要一个更全面的解决方案,以实现低延迟、高并发和可扩展的实时消息传递与状态同步,建议使用实时消息。 + 如果你需要一个更全面的低延迟、高并发和可扩展的实时消息和状态同步解决方案,建议使用声网的实时消息。 + 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 +
+
+ 触发时机 +

该回调在本地用户收到远端用户通过 方法发送的数据流消息时被触发。

+

该回调在你收到远端用户发送的数据流时被触发。

+

该回调在你收到远端用户发送的数据流时被触发。

+
+
+ 参数 + + + uid + 发送该数据流的远端用户 ID。 + + + streamId + 接收到的数据流 ID。 + + + data + 接收到的数据内容。 + + + length + 接收到的数据长度(字节)。 + + + sentTs + 发送该数据流的时间戳。 + + + uid + 发送该消息的远端用户 ID。 + + + streamId + 接收到的消息所属的数据流 ID。 + + + data + 接收到的数据内容。 + + + engine + 对象,详见 + + + uid + 发送该消息的远端用户 ID。 + + + streamId + 接收到的消息所属的数据流 ID。 + + + data + 接收到的数据内容, + + + engine + 对象,详见 + + + uid + 发送该消息的远端用户 ID。 + + + streamId + 接收到的消息所属的数据流 ID。 + + + data + 接收到的数据内容, + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessageerror.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessageerror.dita new file mode 100644 index 00000000000..00b7b3aed2e --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onstreammessageerror.dita @@ -0,0 +1,132 @@ + + + + <ph keyref="onStreamMessageError"/> + 本地用户未收到远端用户发送的数据流消息时触发的回调。 回调:本地用户未收到远端用户发送的数据流时触发。当本地用户未收到远端用户发送的数据流时触发的回调。当本地用户未收到远端用户发送的数据流时触发的回调。 + + + + + + + + +
+

+ virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) + public void onStreamMessageError(int uid, int streamId, int error, int missed, int cached) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurStreamMessageErrorFromUid:(NSUInteger)uid streamId:(NSInteger)streamId error:(NSInteger)error missed:(NSInteger)missed cached:(NSInteger)cached NS_SWIFT_NAME(rtcEngine(_:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOccurStreamMessageErrorFromUid:(NSUInteger)uid streamId:(NSInteger)streamId error:(NSInteger)error missed:(NSInteger)missed cached:(NSInteger)cached NS_SWIFT_NAME(rtcEngine(_:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached:)); +

+
+
+

该回调在本地用户未能接收到远端用户通过调用 发送的流消息时触发。

+

该回调在本地用户未能接收到远端用户通过调用 发送的流消息时触发。

+

当本地用户未能接收到远端用户通过调用 方法发送的数据流消息时,SDK 会触发该回调。

+

当本地用户未能接收到远端用户通过调用 方法发送的数据流消息时,SDK 会触发该回调。

+ 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 如果你需要一个更全面的低延迟、高并发和可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 + 如果你需要一个更全面的低延迟、高并发、可扩展的实时消息和状态同步解决方案,建议使用实时消息。 +
+
+ 触发时机 +

该回调在本地用户未能接收到远端用户通过 发送的流消息时被触发。

+

该回调在本地用户未收到远端用户发送的数据流时被触发。

+

该回调在本地用户未收到远端用户发送的数据流时被触发。

+
+
+ 参数 + + + uid + 发送消息的远端用户 ID。 + + + streamId + 接收消息对应的数据流 ID。 + + + code + 错误码。 + + + missed + 丢失的消息数量。 + + + cached + 数据流中断期间接收到的缓存消息数量。 + + + uid + 发送消息的远端用户 ID。 + + + streamId + 接收消息对应的数据流 ID。 + + + error + 错误码。 + + + missed + 丢失的消息数量。 + + + cached + 数据流中断时缓存的传入消息数量。 + + + engine + 引擎对象,详见 + + + uid + 远端用户 ID。 + + + streamId + 接收消息所属的数据流 ID。 + + + error + 错误码。 + + + missed + 丢失的消息数量。 + + + cached + 数据流中断时缓存的传入消息数量。 + + + engine + 引擎对象,详见 + + + uid + 远端用户 ID。 + + + streamId + 接收消息所属的数据流 ID。 + + + error + 错误码。 + + + missed + 丢失的消息数量。 + + + cached + 数据流中断时缓存的传入消息数量。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontokenprivilegewillexpire.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontokenprivilegewillexpire.dita new file mode 100644 index 00000000000..9dd1f709cfa --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontokenprivilegewillexpire.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="onTokenPrivilegeWillExpire"/> + Token 即将在 30 秒后过期时触发的回调。Token 即将在 30 秒后过期时触发的回调。当 Token 在 30 秒后过期时触发的回调。当 Token 在 30 秒后过期时触发的回调。 + + + + + + + + +
+

+ virtual void onTokenPrivilegeWillExpire(const char* token) + public void onTokenPrivilegeWillExpire(String token) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine tokenPrivilegeWillExpire:(NSString *_Nonnull)token NS_SWIFT_NAME(rtcEngine(_:tokenPrivilegeWillExpire:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine tokenPrivilegeWillExpire:(NSString *_Nonnull)token NS_SWIFT_NAME(rtcEngine(_:tokenPrivilegeWillExpire:)); +

+
+
+

当收到该回调时,你需要在 Token 服务器上生成一个新的 Token,并通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 leaveChannel 离开当前频道,然后在调用 joinChannel 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
+

+

收到该回调时,你需要在 Token 服务器上生成一个新的 Token,并通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 leaveChannel 离开当前频道,然后在调用 joinChannel 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
+

+

收到该回调时,你需要在你的 Token 服务器上生成一个新的 Token,并可以通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 离开当前频道,然后在调用 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
SDK 会在 Token 过期前 30 秒触发该回调,提醒应用更新 Token。

+

收到该回调时,你需要在你的 Token 服务器上生成一个新的 Token,并可以通过以下方式之一更新 Token: +

    +
  • 单频道场景: +
      +
    • 调用 传入新的 Token。
    • +
    • 调用 离开当前频道,然后在调用 加入频道时传入新的 Token。
    • +
    +
  • +
  • 多频道场景:调用 传入新的 Token。
  • +
SDK 会在 Token 过期前 30 秒触发该回调,提醒应用更新 Token。

+
+
+ 触发时机 +

SDK 会在 Token 过期前 30 秒触发该回调,提醒你更新 Token。

+

该回调在 Token 过期前 30 秒被触发。

+

该回调在 Token 过期前 30 秒被触发,提醒你更新 Token。

+

该回调在 Token 过期前 30 秒被触发,提醒你更新 Token。

+
+
+ 参数 + + + token + 即将过期的 Token。 + + + token + 即将过期的 Token。 + + + engine + 对象,详见 + + + token + 即将过期的 Token。 + + + engine + 对象,详见 + + + token + 即将过期的 Token。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodedstreamlayoutinfo.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodedstreamlayoutinfo.dita new file mode 100644 index 00000000000..6ca80698b48 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodedstreamlayoutinfo.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="onTranscodedStreamLayoutInfo"/> + `本地用户接收到携带视频合图布局信息的合图视频时触发。 回调。当本地用户接收到携带视频合流布局信息的合图视频时触发。接收到携带布局信息的合图视频流回调。 + + + + + + + + +
+

+ virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount,const VideoLayout* layoutlist) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didTranscodedStreamLayoutInfoUpdatedWithUserId:(NSUInteger)uid videoLayoutInfo:(AgoraVideoLayoutInfo* _Nonnull)videoLayoutInfo NS_SWIFT_NAME(rtcEngine(_:didTranscodedStreamLayoutInfoUpdatedWithUserId:videoLayoutInfo:)); + public void onTranscodedStreamLayoutInfo(int uid, VideoLayoutInfo info) {} +

+
+
+

当你首次接收到视频合图服务器发送的合图视频,或合图布局信息发生变化时,SDK 会触发该回调,报告合图视频中每个子视频流的布局信息。

+

该回调在你首次接收到由视频合流服务器发送的合图视频,或混合流的布局信息发生变化时被触发。

+

当本地用户首次接收到由视频合图服务器发送的合图视频流,或该视频流的布局信息发生变化时,SDK 会触发该回调,报告该合图视频流中每个子视频流的布局信息。

+ 该回调仅适用于 Android 和 iOS 平台。 +
+
+ 触发时机 +

当本地用户首次接收到视频合流服务器发送的合图视频,或混合流的布局信息发生变化时触发。

+

该回调在你首次接收到由视频合流服务器发送的合图视频,或混合流的布局信息发生变化时被触发。

+

该回调在本地用户首次接收到合图视频流,或该视频流的布局信息发生变化时被触发。

+
+
+ 参数 + + + uid + 发布该合图视频的用户 ID。 + + + width + 合图视频的宽度(单位为像素)。 + + + height + 合图视频的高度(单位为像素)。 + + + layoutCount + 合图视频中包含的布局信息数量。 + + + layoutlist + 子视频流的布局信息数组。详见 + + + engine + 对象,详见 + + + uid + 发布该合图视频的用户 ID。 + + + videoLayoutInfo + 混合流中某个子视频流的布局信息,详见 + + + uid + 发布该合图视频流的用户 ID。 + + + info + 子视频流的布局信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodingupdated.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodingupdated.dita new file mode 100644 index 00000000000..003f29c8621 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_ontranscodingupdated.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="onTranscodingUpdated"/> + 当发布端的云端转码设置更新时触发的回调。发布端云端转码配置更新回调。发布端的云端转码设置更新时触发的回调。发布端的云端转码设置更新时触发的回调。 + + + + + + + + +
+

+ virtual void onTranscodingUpdated() {} + public void onTranscodingUpdated() {} + - (void)rtcEngineTranscodingUpdated:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineTranscodingUpdated(_:)); + - (void)rtcEngineTranscodingUpdated:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineTranscodingUpdated(_:)); +

+
+
+

当你调用 方法并更新其中的 配置时,SDK 会触发该回调以报告更新信息。

+

当调用 更新 配置时,SDK 会触发该回调以报告更新信息。

+

当你在 方法中更新 时,SDK 会触发该回调以报告更新信息。

+

当你在 方法中更新 时,SDK 会触发该回调以报告更新信息。

+ 如果你首次调用 方法设置 ,SDK 不会触发该回调。 + 如果首次调用 设置 配置,SDK 不会触发该回调。 + 如果你首次调用 方法设置 ,SDK 不会触发该回调。 + 如果你首次调用 方法设置 ,SDK 不会触发该回调。 +
+
+ 触发时机 +

该回调在发布端的云端转码配置发生更新时被触发。

+

当发布端的云端转码设置更新时触发。

+

当发布端的云端转码设置更新时触发。

+
+
+ 参数 + + + engine + 对象,详见 + + + engine + 对象,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuplinknetworkinfoupdated.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuplinknetworkinfoupdated.dita new file mode 100644 index 00000000000..62ce2748692 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuplinknetworkinfoupdated.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="onUplinkNetworkInfoUpdated"/> + 上行网络信息发生变化时触发的回调。上行网络信息发生变化回调。当上行网络信息发生变化时触发该回调。当上行网络信息发生变化时触发该回调。 + + + + + + + + +
+

+ virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) + public void onUplinkNetworkInfoUpdated(UplinkNetworkInfo info) {} + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine uplinkNetworkInfoUpdate:(AgoraUplinkNetworkInfo *_Nonnull)networkInfo NS_SWIFT_NAME(rtcEngine(_:uplinkNetworkInfoUpdate:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine uplinkNetworkInfoUpdate:(AgoraUplinkNetworkInfo *_Nonnull)networkInfo NS_SWIFT_NAME(rtcEngine(_:uplinkNetworkInfoUpdate:)); +

+
+
+ 该回调仅适用于将外部编码的 H.264 格式视频数据推送至 SDK 的场景。 + 该回调仅适用于将外部编码的 H.264 格式视频数据推送到 SDK 的场景。 + 该回调仅适用于将外部编码的 H.264 格式视频数据推送至 SDK 的场景。 + 该回调仅适用于将外部编码的 H.264 格式视频数据推送至 SDK 的场景。 +
+
+ 触发时机 +

该回调在上行网络信息发生变化时被触发。

+

当上行网络信息发生变化时触发。

+

当上行网络信息发生变化时触发。

+
+
+ 参数 + + + info + 上行网络信息。详见 + + + info + 上行网络信息,详见 + + + engine + 你使用的 实例。 + + + networkInfo + 上行网络信息,详见 + + + engine + 你使用的 实例。 + + + networkInfo + 上行网络信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablelocalvideo.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablelocalvideo.dita new file mode 100644 index 00000000000..d268f3ffc73 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablelocalvideo.dita @@ -0,0 +1,122 @@ + + + + <ph keyref="onUserEnableLocalVideo"/> + 远端用户启用或关闭本地视频采集功能回调。指定远端用户启用或关闭本地视频采集功能时触发的回调。当指定的远端用户启用或关闭本地视频采集功能时触发。当指定的远端用户启用或关闭本地视频采集功能时触发。 + + + + + + + + +
+

+ virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated + public void onUserEnableLocalVideo(int uid, boolean enabled) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didLocalVideoEnabled:byUid:)) __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead."); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didLocalVideoEnabled:byUid:)) __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead."); +

+
+
+
+ +
废弃
+
该方法已废弃。请改用 回调中的以下枚举值:REMOTE_VIDEO_STATE_STOPPEDREMOTE_VIDEO_STATE_REASON_REMOTE_MUTEDREMOTE_VIDEO_STATE_DECODINGREMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED
+
+ +
废弃
+
该回调已废弃,建议使用 回调替代,并结合以下参数使用: +
    +
  • REMOTE_VIDEO_STATE_STOPPED(0)REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED(5)
  • +
  • REMOTE_VIDEO_STATE_DECODING(2)REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED(6)
  • +
+
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 remoteVideoStateChangedOfUid:state:reason:elapsed:
+
+ +
废弃
+
自 v4.5.0 版本废弃,请改用 remoteVideoStateChangedOfUid:state:reason:elapsed:
+
+
+

当远端用户调用 恢复或停止视频采集时,SDK 会触发该回调。

+

当远端用户调用 方法启用或关闭本地视频采集功能时,SDK 会触发该回调。

+

当远端用户调用 方法启用或关闭本地视频采集功能时,SDK 会触发该回调。

+
+
+ 触发时机 +

该回调在远端用户调用 启用或关闭本地视频采集功能时被触发。

+

该回调在远端用户调用 启用或关闭本地视频采集功能时被触发。

+

该回调在远端用户调用 启用或关闭本地视频采集功能时被触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + enabled + 指定的远端用户是否启用本地视频采集功能: +
    +
  • :启用视频模块,频道内其他用户可以看到该远端用户的视频。
  • +
  • :关闭视频模块,频道内其他用户无法接收该远端用户的视频流,但该远端用户仍可接收其他用户的视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + + + enabled + 指定远端用户是否启用本地视频采集功能: +
    +
  • :启用视频模块,频道内其他用户可以看到该远端用户的视频。
  • +
  • :关闭视频模块,频道内其他用户无法接收该远端用户的视频流,但该远端用户仍可接收其他用户的视频流。
  • +
+
+
+ + engine + 对象,详见 + + + enabled + 指定的远端用户是否启用本地视频采集功能: +
    +
  • :启用视频模块,频道内其他用户可以看到该远端用户的视频。
  • +
  • :关闭视频模块,频道内其他用户无法接收该远端用户的视频流,但该远端用户仍可接收其他用户的视频流。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + engine + 对象,详见 + + + enabled + 指定的远端用户是否启用本地视频采集功能: +
    +
  • :启用视频模块,频道内其他用户可以看到该远端用户的视频。
  • +
  • :关闭视频模块,频道内其他用户无法接收该远端用户的视频流,但该远端用户仍可接收其他用户的视频流。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablevideo.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablevideo.dita new file mode 100644 index 00000000000..f649cfb2993 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserenablevideo.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="onUserEnableVideo"/> + 远端用户启用或关闭视频模块时触发的回调。远端用户启用或关闭视频模块的回调。远端用户启用或关闭视频模块回调。远端用户启用或关闭视频模块回调。 + + + + + + + + +
+

+ virtual void onUserEnableVideo(uid_t uid, bool enabled) + public void onUserEnableVideo(int uid, boolean enabled) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didVideoEnabled:byUid:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didVideoEnabled:byUid:)); +

+
+
+

一旦视频模块被关闭,用户只能进行语音通话,无法发送或接收任何视频。

+

该回调在远端用户调用 方法时触发。关闭视频模块后,用户只能进行语音通话,无法发送或接收任何视频。

+

当远端用户调用 方法启用或关闭视频模块时,SDK 会触发该回调。一旦视频模块被关闭,用户只能进行语音通话,无法发送或接收任何视频。

+

当远端用户调用 方法启用或关闭视频模块时,SDK 会触发该回调。一旦视频模块被关闭,用户只能进行语音通话,无法发送或接收任何视频。

+
+
+ 触发时机 +

该回调在远端用户调用 时触发。

+

该回调在远端用户启用或关闭视频模块时被触发。

+

该回调在远端用户调用 方法启用或关闭视频模块时被触发。

+

该回调在远端用户调用 方法启用或关闭视频模块时被触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + enabled + 是否启用视频模块: +
    +
  • :视频模块已启用。
  • +
  • :视频模块已关闭。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + enabled + 是否启用视频模块: +
    +
  • :启用视频模块。
  • +
  • :关闭视频模块。
  • +
+
+
+ + engine + 对象,详见 + + + enabled + +
    +
  • :视频模块已启用。
  • +
  • :视频模块已关闭。
  • +
+
+
+ + uid + 远端用户 ID。 + + + engine + 对象,详见 + + + enabled + +
    +
  • :视频模块已启用。
  • +
  • :视频模块已关闭。
  • +
+
+
+ + uid + 远端用户 ID。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserinfoupdated.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserinfoupdated.dita new file mode 100644 index 00000000000..65bfcdf83ea --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserinfoupdated.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="onUserInfoUpdated"/> + 远端用户的用户 ID 和用户 User Account 信息更新时触发的回调。远端用户的用户 ID 和用户 User Account 信息更新回调。当 SDK 获取到远端用户的用户 ID 和用户 User Account 时触发。当 SDK 获取到远端用户的用户 ID 和用户 User Account 时触发。 + + + + + + + + +
+

+ virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) + public void onUserInfoUpdated(int uid, UserInfo userInfo) {} + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didUserInfoUpdatedWithUserId:(NSUInteger)uid userInfo:(AgoraUserInfo* _Nonnull)userInfo NS_SWIFT_NAME(rtcEngine(_:didUserInfoUpdatedWithUserId:userInfo:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didUserInfoUpdatedWithUserId:(NSUInteger)uid userInfo:(AgoraUserInfo* _Nonnull)userInfo NS_SWIFT_NAME(rtcEngine(_:didUserInfoUpdatedWithUserId:userInfo:)); +

+
+
+
+ +
自从
+
自 v2.8.0 版本新增。
+
+
+

远端用户加入频道后,SDK 会获取该用户的用户 ID 和用户 User Account,并将其缓存在映射表中,然后在本地客户端触发该回调。

+

当远端用户加入频道后,SDK 会获取该用户的用户 ID 和用户 User Account,并将其缓存在映射表中,然后在本地客户端触发该回调。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发该回调。

+

远端用户加入频道后,SDK 会获取该远端用户的用户 ID 和用户 User Account,并将其缓存在映射表对象中,然后在本地客户端触发该回调。

+
+
+ 触发时机 +

该回调在远端用户加入频道后,SDK 获取到其用户 ID 和用户 User Account 时被触发。

+

该回调在远端用户加入频道后,SDK 获取到其用户 ID 和用户 User Account 时被触发。

+

该回调在远端用户加入频道后,SDK 获取到其用户 ID 和用户 User Account 时被触发。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + info + 包含远端用户的用户 ID 和用户 User Account 信息的对象。详见 + + + uid + 远端用户的用户 ID。 + + + userInfo + 包含远端用户的用户 ID 和用户 User Account 信息。详见 + + + engine + 对象。详见 + + + uid + 远端用户的用户 ID。 + + + userInfo + 包含远端用户的用户 ID 和用户 User Account 的对象。详见 + + + engine + 对象。详见 + + + uid + 远端用户的用户 ID。 + + + userInfo + 包含远端用户的用户 ID 和用户 User Account 的对象。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserjoined.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserjoined.dita new file mode 100644 index 00000000000..c871175d046 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuserjoined.dita @@ -0,0 +1,108 @@ + + + + <ph keyref="onUserJoined"/> + 远端用户或主播加入频道时触发的回调。远端用户或主播加入频道回调。远端用户或主播加入频道回调。远端用户或主播加入频道回调。 + + + + + + + + +
+

+ virtual void onUserJoined(uid_t uid, int elapsed) + public void onUserJoined(int uid, int elapsed) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didJoinedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didJoinedOfUid:elapsed:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didJoinedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed NS_SWIFT_NAME(rtcEngine(_:didJoinedOfUid:elapsed:)); +

+
+
+

在通信频道中,该回调表示有远端用户加入频道。当本地用户加入频道时,SDK 也会触发该回调报告频道中已有的用户。 +在极速直播频道中,该回调表示有主播加入频道。当主播加入频道时,SDK 也会触发该回调报告频道中已有的主播。声网建议将连麦主播数量限制为 32 人,最多支持 17 路视频主播。

+

在通信频道中,该回调表示有远端用户加入频道。当本地用户加入频道时,SDK 也会触发该回调报告频道中已有的用户。在极速直播频道中,该回调表示有主播加入频道。声网建议将连麦主播数量限制为 32 人,最多支持 17 路视频主播。

+

在通信频道中,该回调表示有远端用户加入频道。当你加入频道时,SDK 也会触发该回调报告频道中已有的用户。 +在直播频道中,该回调表示有主播加入频道。声网建议将连麦主播数量限制为 32 人,最多支持 17 路视频主播。

+

在通信频道中,该回调表示有远端用户加入频道。当你加入频道时,SDK 也会触发该回调报告频道中已有的用户。 +在直播频道中,该回调表示有主播加入频道。声网建议将连麦主播数量限制为 32 人,最多支持 17 路视频主播。

+
+
+ 触发时机 +

SDK 在以下任一情况下触发该回调: +

    +
  • 有远端用户或主播加入频道。
  • +
  • 远端用户加入频道后切换为主播角色。
  • +
  • 远端用户或主播在网络中断后重新加入频道。
  • +
+

+

该回调在以下任一情况下被触发: +

    +
  • 远端用户或主播加入频道。
  • +
  • 远端用户加入频道后将用户角色切换为主播。
  • +
  • 远端用户或主播在网络中断后重新加入频道。
  • +
+

+

该回调在以下任一情况下被触发: +

    +
  • 有远端用户或主播加入频道。
  • +
  • 远端用户加入频道后将用户角色切换为主播。
  • +
  • 远端用户或主播在网络中断后重新加入频道。
  • +
+

+

该回调在以下任一情况下被触发: +

    +
  • 有远端用户或主播加入频道。
  • +
  • 远端用户加入频道后将用户角色切换为主播。
  • +
  • 远端用户或主播在网络中断后重新加入频道。
  • +
+

+
+
+ 参数 + + + uid + 加入频道的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到该回调被触发的延迟时间(毫秒)。 + + + uid + 加入频道的用户 ID。 + + + elapsed + 从本地用户调用 joinChannel 到该回调被触发的延迟(毫秒)。 + + + engine + 对象。详见 + + + uid + 加入频道的用户或主播的 ID。 + + + elapsed + 从你调用 到该回调被触发的延迟时间(毫秒)。 + + + engine + 对象。详见 + + + uid + 加入频道的用户或主播的 ID。 + + + elapsed + 从你调用 到该回调被触发的延迟时间(毫秒)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermuteaudio.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermuteaudio.dita new file mode 100644 index 00000000000..814f61353a8 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermuteaudio.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="onUserMuteAudio"/> + 远端用户或主播停止或恢复发送音频流回调。远端用户或主播停止或恢复发送音频流的回调。 回调。当远端用户或主播停止或恢复发送音频流时触发。 回调。当远端用户或主播停止或恢复发送音频流时触发。 + + + + + + + + +
+

+ virtual void onUserMuteAudio(uid_t uid, bool muted) + public void onUserMuteAudio(int uid, boolean muted) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didAudioMuted:(BOOL)muted byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didAudioMuted:byUid:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didAudioMuted:(BOOL)muted byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didAudioMuted:byUid:)); +

+
+
+

当远端用户调用 停止或恢复发送音频流时,SDK 会触发该回调。

+

该回调在远端用户调用 方法时触发。

+

当远端用户调用 方法停止或恢复发送音频流时,SDK 会触发该回调。

+

当远端用户调用 方法停止或恢复发送音频流时,SDK 会触发该回调。

+ 当通信场景中的用户数量或直播场景中的主播数量超过 32 时,该回调可能无法正常工作。 + 当频道中用户(在通信场景下)或主播(在直播场景下)数量超过 32 时,该回调可能无法正常工作。 + 当频道中的用户(在通信频道场景中)或主播(在极速直播频道场景中)数量超过 32 时,该回调可能无法正常工作。 + 当频道中的用户(在通信频道场景中)或主播(在极速直播频道场景中)数量超过 32 时,该回调可能无法正常工作。 +
+
+ 触发时机 +

该回调在远端用户调用 方法停止或恢复发送音频流时被触发。

+

该回调在远端用户或主播停止或恢复发送音频流时被触发。

+

该回调在远端用户或主播停止或恢复发送音频流时被触发。

+
+
+ 参数 + + + uid + 远端用户 ID。 + + + muted + 远端用户的音频流是否被静音: +
    +
  • :音频流被静音。
  • +
  • :音频流未被静音。
  • +
+
+
+ + uid + 远端用户 ID。 + + + muted + 远端用户的音频流是否被静音: +
    +
  • :音频流被静音。
  • +
  • :音频流未被静音。
  • +
+
+
+ + engine + 对象。详见 + + + muted + 远端用户的音频流是否被静音: +
    +
  • :用户的音频流被静音。
  • +
  • :用户的音频流未被静音。
  • +
+
+
+ + uid + 远端用户 ID。 + + + engine + 对象。详见 + + + muted + 远端用户的音频流是否被静音: +
    +
  • :用户的音频流被静音。
  • +
  • :用户的音频流未被静音。
  • +
+
+
+ + uid + 远端用户 ID。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermutevideo.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermutevideo.dita new file mode 100644 index 00000000000..db354f6b3fd --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onusermutevideo.dita @@ -0,0 +1,104 @@ + + + + <ph keyref="onUserMuteVideo"/> + 远端视频发布状态变化回调。远端视频状态发生改变回调。远端用户停止或恢复发布视频流时触发的回调。远端用户停止或恢复发布视频流时触发的回调。 + + + + + + + + +
+

+ virtual void onUserMuteVideo(uid_t uid, bool muted) + public void onUserMuteVideo(int uid, boolean muted) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didVideoMuted:(BOOL)muted byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didVideoMuted:byUid:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didVideoMuted:(BOOL)muted byUid:(NSUInteger)uid NS_SWIFT_NAME(rtcEngine(_:didVideoMuted:byUid:)); +

+
+
+

当远端用户调用 方法停止或恢复发布视频流时,SDK 会触发该回调,向本地用户报告该远端用户的视频发布状态。

+

当远端用户调用 时,SDK 会触发该回调,向本地用户报告远端用户发布的视频流状态。

+

当远端用户调用 方法停止或恢复发布视频流时,SDK 会触发该回调,报告远端用户的视频流状态。

+

当远端用户调用 方法停止或恢复发布视频流时,SDK 会触发该回调,报告远端用户的视频流状态。

+ 当频道中的用户数(在通信场景下)或主播数(在极速直播场景下)超过 32 时,该回调可能不准确。 + 当频道中通信场景下的用户数或极速直播场景下的主播数超过 32 时,该回调可能不准确。 + 当通信场景中的用户数或直播场景中的主播数超过 32 时,该回调可能不准确。 + 当通信场景中的用户数或直播场景中的主播数超过 32 时,该回调可能不准确。 +
+
+ 触发时机 +

该回调在远端用户调用 停止或恢复发布视频流时被触发。

+

该回调在远端用户调用 停止或恢复发布视频流时被触发。

+

该回调在远端用户调用 停止或恢复发布视频流时被触发。

+
+
+ 参数 + + + uid + 远端用户的用户 ID。 + + + muted + 远端用户是否停止发布视频流: +
    +
  • :远端用户停止发布视频流。
  • +
  • :远端用户恢复发布视频流。
  • +
+
+
+ + uid + 远端用户的用户 ID。 + + + muted + 远端用户是否停止发布视频流: +
    +
  • :远端用户停止发布视频流。
  • +
  • :远端用户恢复发布视频流。
  • +
+
+
+ + engine + 对象。详见 + + + muted + 远端用户是否停止发布视频流: +
    +
  • :远端用户停止发布视频流。
  • +
  • :远端用户恢复发布视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + + + engine + 对象。详见 + + + muted + 远端用户是否停止发布视频流: +
    +
  • :远端用户停止发布视频流。
  • +
  • :远端用户恢复发布视频流。
  • +
+
+
+ + uid + 远端用户 ID。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuseroffline.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuseroffline.dita new file mode 100644 index 00000000000..6da2ca63c37 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onuseroffline.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="onUserOffline"/> + 回调:当远端用户(通信频道场景)或主播(极速直播频道场景)离开频道时触发。远端用户或主播离开频道时触发的回调。远端用户或主播离开频道时的回调。远端用户或主播离开频道时的回调。 + + + + + + + + +
+

+ virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) + public void onUserOffline(int uid, int reason) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOfflineOfUid:(NSUInteger)uid reason:(AgoraUserOfflineReason)reason NS_SWIFT_NAME(rtcEngine(_:didOfflineOfUid:reason:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didOfflineOfUid:(NSUInteger)uid reason:(AgoraUserOfflineReason)reason NS_SWIFT_NAME(rtcEngine(_:didOfflineOfUid:reason:)); +

+
+
+

用户离线通常有以下两种情况: +

    +
  • 离开频道:当用户或主播主动离开频道时,会发送离开消息。
  • +
  • 掉线:在一段时间内未收到用户或主播的数据包时,SDK 会认为其掉线。通信频道场景为 20 秒,极速直播频道场景时间更长。网络不佳可能导致误判,建议使用声网 RTM SDK 进行更可靠的离线检测。
  • +
+

+

用户离线通常有以下两种原因: +

    +
  • 离开频道:当用户或主播离开频道时,会发送一条离开消息。
  • +
  • 掉线:在一段时间内(频道场景为 20 秒,极速直播场景更长)未收到用户或主播的数据包时,SDK 会认为其掉线。网络连接不佳可能导致误判,建议使用声网 RTM SDK 进行可靠的离线检测。
  • +
+

+

用户离线通常有两个原因: +

    +
  • 离开频道:当用户或主播离开频道时,会发送离开消息。
  • +
  • 掉线:在一段时间内(频道场景为 20 秒,极速直播场景更长)未收到用户或主播的数据包时,SDK 会认为其掉线。网络连接不佳可能导致误判。建议使用声网 RTM SDK 进行可靠的离线检测。
  • +
+

+

用户离线通常有两个原因: +

    +
  • 离开频道:当用户或主播离开频道时,会发送离开消息。
  • +
  • 掉线:在一段时间内(频道场景为 20 秒,极速直播场景更长)未收到用户或主播的数据包时,SDK 会认为其掉线。网络连接不佳可能导致误判。建议使用声网 RTM SDK 进行可靠的离线检测。
  • +
+

+
+
+ 触发时机 +

当远端用户(通信频道场景)或主播(极速直播频道场景)离开频道时触发该回调。

+

该回调在远端用户(在频道场景中)或主播(在极速直播场景中)离开频道时被触发。

+

该回调在远端用户(在频道场景中)或主播(在极速直播场景中)离开频道时触发。

+

该回调在远端用户(在频道场景中)或主播(在极速直播场景中)离开频道时触发。

+
+
+ 参数 + + + uid + 离开频道或掉线的用户 ID。 + + + reason + 用户离线的原因,详见 + + + uid + 离开频道或掉线的用户 ID。 + + + reason + 远端用户(在频道场景中)或主播(在极速直播场景中)离线的原因: +
    +
  • USER_OFFLINE_QUIT (0):用户主动退出通话,发送离开消息。
  • +
  • USER_OFFLINE_DROPPED (1):SDK 超时未收到任何数据包,用户掉线。网络连接不佳可能导致误判,建议使用声网 RTM SDK 进行可靠的离线检测。
  • +
  • USER_OFFLINE_BECOME_AUDIENCE (2):用户将角色从主播切换为观众。
  • +
+
+
+ + engine + 对象,详见 + + + uid + 离开频道或掉线的远端用户 ID。 + + + reason + 远端用户(在频道场景中)或主播(在极速直播场景中)离线的原因,详见 + + + engine + 对象,详见 + + + uid + 离开频道或掉线的远端用户 ID。 + + + reason + 远端用户(在频道场景中)或主播(在极速直播场景中)离线的原因,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideodevicestatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideodevicestatechanged.dita new file mode 100644 index 00000000000..4394ffa499d --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideodevicestatechanged.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="onVideoDeviceStateChanged"/> + 视频设备状态变化回调。 + + + + + + + + +
+

+ virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) +

+
+
+

该回调用于报告系统视频设备的状态变化,例如设备被拔出或移除。在 Windows 设备上,如果使用外接摄像头进行视频采集,当外接摄像头被拔出时,视频功能将被禁用。

+ 该回调仅适用于 Windows 和 macOS 平台。 +
+
+ 参数 + + + deviceId + 设备 ID。 + + + deviceType + 媒体设备类型,详见 + + + deviceState + 媒体设备状态,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideopublishstatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideopublishstatechanged.dita new file mode 100644 index 00000000000..f9dff205c30 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideopublishstatechanged.dita @@ -0,0 +1,147 @@ + + + + <ph keyref="onVideoPublishStateChanged"/> + 视频发布状态发生变化回调。视频发布状态发生变化回调。视频发布状态发生变化回调。视频发布状态发生变化回调。 + + + + + + + + +
+

+ virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) + public void onVideoPublishStateChanged(Constants.VideoSourceType source, String channel, int oldState, int newState, int elapseSinceLastState) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didVideoPublishStateChange:(NSString * _Nonnull)channelId + sourceType:(AgoraVideoSourceType)sourceType + oldState:(AgoraStreamPublishState)oldState + newState:(AgoraStreamPublishState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didVideoPublishStateChange:sourceType:oldState:newState:elapseSinceLastState:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didVideoPublishStateChange:(NSString * _Nonnull)channelId + sourceType:(AgoraVideoSourceType)sourceType + oldState:(AgoraStreamPublishState)oldState + newState:(AgoraStreamPublishState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didVideoPublishStateChange:sourceType:oldState:newState:elapseSinceLastState:)); +

+
+
+

该回调在视频发布状态发生变化时触发。

+

该回调在视频发布状态发生变化时触发。

+
+
+ 触发时机 +

该回调在视频发布状态发生变化时触发。

+

该回调在视频发布状态发生变化时触发。

+
+
+ 参数 + + + source + 视频源类型。详见 + + + channel + 频道名。 + + + oldState + 之前的视频发布状态。详见 + + + newState + 当前的视频发布状态。详见 + + + elapseSinceLastState + 从上一个状态切换到当前状态所经历的时间(毫秒)。 + + + source + 视频源的类型,详见 + + + channel + 频道名。 + + + oldState + 之前的视频发布状态: +
    +
  • PUB_STATE_IDLE(0):加入频道后的初始发布状态。
  • +
  • PUB_STATE_NO_PUBLISHED(1):发布本地流失败。
  • +
  • PUB_STATE_PUBLISHING(2):正在发布本地流。
  • +
  • PUB_STATE_PUBLISHED(3):成功发布本地流。
  • +
+
+
+ + newState + 当前的视频发布状态: +
    +
  • PUB_STATE_IDLE(0):加入频道后的初始发布状态。
  • +
  • PUB_STATE_NO_PUBLISHED(1):发布本地流失败。
  • +
  • PUB_STATE_PUBLISHING(2):正在发布本地流。
  • +
  • PUB_STATE_PUBLISHED(3):成功发布本地流。
  • +
+
+
+ + elapseSinceLastState + 从上一个状态到当前状态所经历的时间(毫秒)。 + + + engine + 对象,详见 + + + channelId + 频道名。 + + + sourceType + 视频源类型,详见 + + + oldState + 之前的视频发布状态,详见 + + + newState + 当前的视频发布状态,详见 + + + elapseSinceLastState + 从之前状态到当前状态所经历的时间(毫秒)。 + + + engine + 对象,详见 + + + channelId + 频道名。 + + + sourceType + 视频源类型,详见 + + + oldState + 之前的视频发布状态,详见 + + + newState + 当前的视频发布状态,详见 + + + elapseSinceLastState + 从之前状态到当前状态所经历的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideorenderingtracingresult.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideorenderingtracingresult.dita new file mode 100644 index 00000000000..a82afa34fbc --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideorenderingtracingresult.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="onVideoRenderingTracingResult"/> + 视频帧渲染事件回调。视频帧渲染事件回调。视频帧渲染事件的回调。视频帧渲染事件的回调。 + + + + + + + + +
+

+ virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) + public void onVideoRenderingTracingResult(int uid, Constants.MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoRenderingTracingResultOfUid:(NSUInteger)uid currentEvent:(AgoraMediaTraceEvent)currentEvent tracingInfo:(AgoraVideoRenderingTracingInfo * _Nonnull)tracingInfo NS_SWIFT_NAME(rtcEngine(_:videoRenderingTracingResultOfUid:currentEvent:tracingInfo:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoRenderingTracingResultOfUid:(NSUInteger)uid currentEvent:(AgoraMediaTraceEvent)currentEvent tracingInfo:(AgoraVideoRenderingTracingInfo * _Nonnull)tracingInfo NS_SWIFT_NAME(rtcEngine(_:videoRenderingTracingResultOfUid:currentEvent:tracingInfo:)); +

+
+
+

调用 方法或加入频道后,SDK 会触发该回调,用于上报视频帧渲染事件及渲染过程中的各项指标。你可以通过优化这些指标,提高首帧视频的渲染效率。

+

调用 方法或加入频道后,SDK 会触发该回调,报告视频帧渲染事件及渲染过程中的各项指标。你可以通过优化这些指标,提高首帧视频渲染的效率。

+

调用 方法或加入频道后,SDK 会触发该回调,用于上报视频帧渲染的事件及渲染过程中的指标。你可以通过优化这些指标,提高首帧视频渲染的效率。

+

调用 方法或加入频道后,SDK 会触发该回调,用于上报视频帧渲染的事件及渲染过程中的指标。你可以通过优化这些指标,提高首帧视频渲染的效率。

+
+
+ 触发时机 +

调用 方法或加入频道后触发。

+

该回调在调用 方法或加入频道后被触发。

+

该回调在调用 方法或加入频道后被触发。

+
+
+ 参数 + + + uid + 用户 ID。 + + + currentEvent + 当前视频帧渲染事件,详见 + + + tracingInfo + 视频帧渲染过程中的各项指标,详见 + + + uid + 用户 ID。 + + + currentEvent + 当前的视频帧渲染事件,详见 + + + tracingInfo + 视频帧渲染过程中的各项指标。详见 + + + engine + 实例。详见 + + + uid + 用户 ID。 + + + currentEvent + 当前的视频帧渲染事件。详见 + + + tracingInfo + 视频帧渲染过程中的指标信息。你需要尽可能降低这些指标的数值,以提高首帧视频渲染的效率。详见 + + + engine + 实例。详见 + + + uid + 用户 ID。 + + + currentEvent + 当前的视频帧渲染事件。详见 + + + tracingInfo + 视频帧渲染过程中的指标信息。你需要尽可能降低这些指标的数值,以提高首帧视频渲染的效率。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosizechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosizechanged.dita new file mode 100644 index 00000000000..71fe9d1a02b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosizechanged.dita @@ -0,0 +1,123 @@ + + + + <ph keyref="onVideoSizeChanged"/> + 当指定用户的视频尺寸或旋转发生变化时触发。指定用户的视频尺寸或旋转信息发生变化回调。当指定用户的视频尺寸或旋转信息发生变化时触发。当指定用户的视频尺寸或旋转信息发生变化时触发。 + + + + + + + + +
+

+ virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation) + public void onVideoSizeChanged(Constants.VideoSourceType source, int uid, int width, int height, int rotation) + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoSizeChangedOfSourceType:(AgoraVideoSourceType)sourceType uid:(NSUInteger)uid size:(CGSize)size rotation:(NSInteger)rotation NS_SWIFT_NAME(rtcEngine(_:videoSizeChangedOf:uid:size:rotation:)); + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine videoSizeChangedOfSourceType:(AgoraVideoSourceType)sourceType uid:(NSUInteger)uid size:(CGSize)size rotation:(NSInteger)rotation NS_SWIFT_NAME(rtcEngine(_:videoSizeChangedOf:uid:size:rotation:)); +

+
+
+ rotation 参数在 iOS 平台上始终为 0。 + rotation 参数在 iOS 上始终为 0。 + rotation 参数在 iOS 上始终为 0。 +
+
+ 触发时机 +

该回调在指定用户的视频尺寸或旋转角度发生变化时被触发。

+
+
+ 参数 + + + sourceType + 视频源类型。详见 + + + uid + 发生视频尺寸或旋转变化的用户 ID。本地用户的 uid 为 0,表示本地用户的视频预览。 + + + width + 视频流的宽度(单位为像素)。 + + + height + 视频流的高度(单位为像素)。 + + + rotation + 视频旋转角度,取值范围为 [0, 360)。 + rotation 参数在 iOS 平台上始终为 0。 + + + + source + 视频源类型,详见 + + + uid + 发生视频尺寸或旋转变化的用户 ID。对于本地用户,uid 为 0,表示本地用户的视频预览。 + + + width + 视频流的宽度(单位为像素)。 + + + height + 视频流的高度(单位为像素)。 + + + rotation + 视频的旋转角度,取值范围为 [0, 360)。 + + + engine + 对象。详见 + + + sourceType + 视频源的类型。详见 + + + uid + 发生视频尺寸或旋转变化的用户 ID。对于本地用户,uid 为 0,表示本地用户的视频预览。 + + + size + 视频尺寸。 + + + rotation + 旋转信息,取值范围为 [0, 360)。 + rotation 参数在 iOS 上始终为 0。 + + + + engine + 对象。详见 + + + sourceType + 视频源的类型。详见 + + + uid + 发生视频尺寸或旋转变化的用户 ID。对于本地用户,uid 为 0,表示本地用户的视频预览。 + + + size + 视频尺寸。 + + + rotation + 旋转信息,取值范围为 [0, 360)。 + rotation 参数在 iOS 上始终为 0。 + + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideostopped.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideostopped.dita new file mode 100644 index 00000000000..aa7f7bc96aa --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideostopped.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="onVideoStopped"/> + 视频停止播放时触发的回调。视频停止播放时触发的回调。视频停止播放时的回调。视频停止播放时的回调。 + + + + + + + + +
+

+ virtual void onVideoStopped() __deprecated {} + public void onVideoStopped() {} + - (void)rtcEngineVideoDidStop:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineVideoDidStop(_:)) __deprecated_msg("Use rtcEngine:localVideoStateChangedOfState:reason:sourceType: instead"); + - (void)rtcEngineVideoDidStop:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineVideoDidStop(_:)) __deprecated_msg("Use rtcEngine:localVideoStateChangedOfState:reason:sourceType: instead"); +

+
+
+
+ +
废弃
+
该方法已废弃,请改用 回调中的 LOCAL_VIDEO_STREAM_STATE_STOPPED
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+ +
废弃
+
该方法已废弃,请改用
+
+
+

你可以在该回调中更改视图的配置,例如在视图中显示其他图片。

+

该回调在视频停止播放时触发。你可以通过该回调更改视图的配置,例如在视图中显示其他图片。

+

该回调在视频停止播放时触发。你可以通过该回调更改视图的配置,例如在视图中显示其他图片。

+ 你可以在视频停止播放后使用该回调更改视图配置,例如在视图中显示其他图片。 +
+
+ 触发时机 +

该回调在视频停止播放时被触发。

+

该回调在视频停止播放时触发。

+

该回调在视频停止播放时触发。

+
+
+ 参数 + + + engine + 对象,详见 + + + engine + 对象,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosubscribestatechanged.dita b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosubscribestatechanged.dita new file mode 100644 index 00000000000..7d4fbf29c9b --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcengineeventhandler_onvideosubscribestatechanged.dita @@ -0,0 +1,180 @@ + + + + <ph keyref="onVideoSubscribeStateChanged"/> + 视频订阅状态发生变化回调。视频订阅状态发生变化回调。远端视频订阅状态发生变化回调。远端视频订阅状态发生变化回调。 + + + + + + + + +
+

+ virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) + public void onVideoSubscribeStateChanged(String channel, int uid, int oldState, int newState, int elapseSinceLastState) + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didVideoSubscribeStateChange:(NSString * _Nonnull)channelId + uid:(unsigned int)uid + oldState:(AgoraStreamSubscribeState)oldState + newState:(AgoraStreamSubscribeState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:)); + - (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine didVideoSubscribeStateChange:(NSString * _Nonnull)channelId + uid:(unsigned int)uid + oldState:(AgoraStreamSubscribeState)oldState + newState:(AgoraStreamSubscribeState)newState +elapseSinceLastState:(int)elapseSinceLastState NS_SWIFT_NAME(rtcEngine(_:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:)); +

+
+
+

该回调在你订阅远端视频流的状态发生变化时触发。

+

该回调在你订阅远端视频流的状态发生变化时触发。

+
+
+ 触发时机 +

该回调在本地用户订阅远端视频流的状态发生变化时被触发。

+
+
+ 参数 + + + channel + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的视频订阅状态,详见 + + + newState + 当前的视频订阅状态,详见 + + + elapseSinceLastState + 从上一个状态变更到当前状态所经过的时间(毫秒)。 + + + channel + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态: +
    +
  • SUB_STATE_IDLE (0):加入频道后的初始订阅状态。
  • +
  • SUB_STATE_NO_SUBSCRIBED (1):订阅远端流失败。可能原因包括: +
      +
    • 远端用户: +
        +
      • 调用 muteLocalVideoStream(true) 停止发送本地视频流。
      • +
      • 调用 禁用本地视频模块。
      • +
      • 调用 enableLocalVideo(false) 禁用本地视频采集。
      • +
      • 远端用户的角色为观众。
      • +
      +
    • +
    • 本地用户: +
        +
      • 在调用 joinChannel 时将 中的 autoSubscribeVideo 设置为 ,表示不自动订阅任何视频流。
      • +
      • 调用 并将 muted 设置为 ,表示停止接收远端视频流。
      • +
      +
    • +
    +
  • +
  • SUB_STATE_SUBSCRIBING (2):正在订阅中。
  • +
  • SUB_STATE_SUBSCRIBED (3):已成功接收远端流。
  • +
+
+
+ + newState + 当前的订阅状态: +
    +
  • SUB_STATE_IDLE (0):加入频道后的初始订阅状态。
  • +
  • SUB_STATE_NO_SUBSCRIBED (1):订阅远端流失败。可能原因包括: +
      +
    • 远端用户: +
        +
      • 调用 muteLocalVideoStream(true) 停止发送本地视频流。
      • +
      • 调用 禁用本地视频模块。
      • +
      • 调用 enableLocalVideo(false) 禁用本地视频采集。
      • +
      • 远端用户的角色为观众。
      • +
      +
    • +
    • 本地用户: +
        +
      • 在调用 joinChannel 时将 中的 autoSubscribeVideo 设置为 ,表示不自动订阅任何视频流。
      • +
      • 调用 并将 muted 设置为 ,表示停止接收远端视频流。
      • +
      +
    • +
    +
  • +
  • SUB_STATE_SUBSCRIBING (2):正在订阅中。
  • +
  • SUB_STATE_SUBSCRIBED (3):已成功接收远端流。
  • +
+
+
+ + elapseSinceLastState + 从上一个状态到当前状态所经过的时间,单位为毫秒。 + + + engine + 对象。 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态,详见 + + + newState + 当前的订阅状态,详见 + + + elapseSinceLastState + 从上一个状态到当前状态所经历的时间(毫秒)。 + + + engine + 对象。 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + oldState + 之前的订阅状态,详见 + + + newState + 当前的订阅状态,详见 + + + elapseSinceLastState + 从上一个状态到当前状态所经历的时间(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_irtcenginereleasecallback_onenginereleased.dita b/dita/RTC-AIDOC/API/callback_irtcenginereleasecallback_onenginereleased.dita new file mode 100644 index 00000000000..e3b52140945 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_irtcenginereleasecallback_onenginereleased.dita @@ -0,0 +1,27 @@ + + + + <ph keyref="onEngineReleased"/> + 被释放时触发的回调。 + + + + + + + + +
+

+ @CalledByNative void onEngineReleased(); +

+
+
+

该回调在调用 方法以异步方式释放 对象时被触发。

+
+
+ 触发时机 +

该回调在调用 方法以异步方式释放 对象时被触发。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ivideoencodedframeobserver_onencodedvideoframereceived.dita b/dita/RTC-AIDOC/API/callback_ivideoencodedframeobserver_onencodedvideoframereceived.dita new file mode 100644 index 00000000000..67cd185c967 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ivideoencodedframeobserver_onencodedvideoframereceived.dita @@ -0,0 +1,160 @@ + + + + <ph keyref="onEncodedVideoFrameReceived"/> + 报告接收端已接收到远端发送的待解码视频帧。接收端收到远端编码视频帧回调。本地回调远端发送的待解码视频帧信息。本地回调远端发送的待解码视频帧信息。 + + + + + + + + +
+

+ virtual bool onEncodedVideoFrameReceived(const char* channelId, rtc::uid_t uid, const uint8_t* imageBuffer, size_t length, const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0; + boolean onEncodedVideoFrameReceived(String channelId, int remoteUid, ByteBuffer buffer, EncodedVideoFrameInfo info) + - (BOOL)onEncodedVideoFrameReceived:(NSData * _Nonnull )videoData length:(size_t)length info:(AgoraEncodedVideoFrameInfo * _Nonnull)videoFrameInfo channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onEncodedVideoFrameReceived(_:length:info:channelId:uid:)); + - (BOOL)onEncodedVideoFrameReceived:(NSData * _Nonnull )videoData length:(size_t)length info:(AgoraEncodedVideoFrameInfo * _Nonnull)videoFrameInfo channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onEncodedVideoFrameReceived(_:length:info:channelId:uid:)); +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

如果你调用了 方法并将 encodedFrameOnly 设置为 ,SDK 会在本地触发该回调,报告接收到的编码视频帧信息。

+

如果你调用了 方法并将 encodedFrameOnly 设置为 ,SDK 会在本地触发该回调,报告接收到的编码视频帧信息。

+

如果你调用了 setRemoteVideoSubscriptionOptions 方法,并将 encodedFrameOnly 设置为 ,SDK 会在本地触发该回调,用于上报接收到的编码视频帧信息。

+

如果你调用了 setRemoteVideoSubscriptionOptions 方法,并将 encodedFrameOnly 设置为 ,SDK 会在本地触发该回调,用于上报接收到的编码视频帧信息。

+
+
+ 触发时机 +

该回调在你设置 encodedFrameOnly 后,接收到远端编码视频帧时被触发。

+

该回调在你设置 encodedFrameOnly 后,接收到远端编码视频帧时被触发。

+
+
+ 参数 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + imageBuffer + 编码后的视频图像缓冲区。 + + + length + 视频图像的数据长度。 + + + videoEncodedFrameInfo + 编码视频帧的信息。详见 + + + channelId + 频道名。 + + + remoteUid + 远端用户 ID。 + + + buffer + 编码后的视频图像缓冲区。 + + + info + 编码视频帧的信息,详见 + + + videoData + 编码后的视频图像数据。 + + + length + 视频图像的数据长度。 + + + videoFrameInfo + 编码视频帧的信息,详见 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + + videoData + 编码后的视频图像数据。 + + + length + 视频图像的数据长度。 + + + videoFrameInfo + 编码视频帧的信息,详见 + + + channelId + 频道名。 + + + uid + 远端用户 ID。 + + +
+
+ 返回值 +

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+

+

    +
  • :回调处理成功。
  • +
  • :回调处理失败。
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ivideoframeobserver_oncapturevideoframe.dita b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_oncapturevideoframe.dita new file mode 100644 index 00000000000..28923a12809 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_oncapturevideoframe.dita @@ -0,0 +1,191 @@ + + + + <ph keyref="onCaptureVideoFrame"/> + 本地采集视频帧回调。本地设备采集到视频帧时触发的回调。每次 SDK 接收到本地设备采集的视频帧时触发。每次 SDK 接收到本地设备采集的视频帧时触发。 + + + + + + + + +
+

+ virtual bool onCaptureVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame& videoFrame) = 0; + @CalledByNative boolean onCaptureVideoFrame(int sourceType, VideoFrame videoFrame); + - (BOOL)onCaptureVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame sourceType:(AgoraVideoSourceType)sourceType; + - (BOOL)onCaptureVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame sourceType:(AgoraVideoSourceType)sourceType; +

+
+
+

该回调用于获取本地设备采集的原始视频数据,并进行预处理。你可以在该回调中直接修改 videoFrame,并返回 将修改后的视频数据发送给 SDK。若需将预处理后的视频数据传递给 SDK,需先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。

+

你可以通过该回调获取本地设备采集的原始视频数据,并根据需要进行预处理。预处理完成后,可以直接在该回调中修改 videoFrame,并将返回值设置为 ,以将修改后的视频数据发送给 SDK。如果需要将预处理后的视频数据发送给 SDK,需先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。

+

你可以通过该回调获取本地设备采集的原始视频数据,并根据需要进行预处理。预处理完成后,你可以直接在该回调中修改 videoFrame,并将返回值设置为 ,以将修改后的视频数据发送给 SDK。如果你需要将预处理后的视频数据发送给 SDK,需先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。

+

你可以通过该回调获取本地设备采集的原始视频数据,并根据需要进行预处理。预处理完成后,你可以直接在该回调中修改 videoFrame,并将返回值设置为 ,以将修改后的视频数据发送给 SDK。如果你需要将预处理后的视频数据发送给 SDK,需先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。

+ +
    +
  • 如果获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中的实际数据一致,否则可能导致本地预览或远端显示出现旋转、拉伸等异常。
  • +
  • 该回调默认返回的视频格式为 YUV420。如需其他格式,可在 回调中设置期望的数据格式。
  • +
+
+ +
    +
  • 如果获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致。否则,可能会导致本地预览和远端视频显示出现异常旋转、拉伸等问题。
  • +
  • 通过该回调获取的视频格式默认可能为 I420BufferTextureBufferTextureBuffer 的纹理格式可能为 OES 格式或 RGB 格式。如果你需要其他格式的视频数据,可以在 回调的返回值中设置期望的数据格式。
  • +
+
+ +
    +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示出现异常旋转、拉伸等问题。
  • +
  • 默认通过该回调获取的视频格式为 I420 或 CVPixelBufferRef。如果你需要其他格式,可以在 回调中设置期望的数据格式。
  • +
+
+ +
    +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示出现异常旋转、拉伸等问题。
  • +
  • 默认通过该回调获取的视频格式为 I420 或 CVPixelBufferRef。如果你需要其他格式,可以在 回调中设置期望的数据格式。
  • +
+
+
+
+ 触发时机 +

成功注册视频数据观察器后,每次 SDK 采集到视频帧时触发。

+

该回调在成功注册视频数据观察器后,每次 SDK 采集到视频帧时被触发。

+

该回调在成功注册视频数据观察器后,每次 SDK 采集到视频帧时被触发。

+

该回调在成功注册视频数据观察器后,每次 SDK 采集到视频帧时被触发。

+
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + videoFrame + 输出参数,表示视频帧。 + 通过该回调获取的视频帧数据格式默认如下: +
    +
  • Android:I420 或 RGB(GLES20.GL_TEXTURE_2D)
  • +
  • iOS:I420 或 CVPixelBufferRef
  • +
  • macOS:I420 或 CVPixelBufferRef
  • +
  • Windows:YUV420
  • +
+
+
+
+ + sourceType + 视频源类型,包括摄像头、屏幕或媒体播放器。详见 + + + videoFrame + 视频帧。 + 通过该回调获取的视频帧数据格式默认值如下: +
    +
  • Android:I420 或 RGB(GLES20.GL_TEXTURE_2D)
  • +
+
+
+
+ + videoFrame + 视频帧。注意:通过该回调获取的视频帧数据格式的默认值如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + sourceType + 视频源类型,包括摄像头、屏幕或媒体播放器。详见 + + + videoFrame + 视频帧。注意:通过该回调获取的视频帧数据格式的默认值如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + sourceType + 视频源类型,包括摄像头、屏幕或媒体播放器。详见 + +
+
+
+ 返回值 +

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onframe_ivideoframeobserver.dita b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onframe_ivideoframeobserver.dita new file mode 100644 index 00000000000..78bcbd5344f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onframe_ivideoframeobserver.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="onFrame_IVideoFrameObserver"/> + 播放器接收到视频帧时触发的回调。 + + + + + + + + +
+

+ virtual void onFrame(const VideoFrame* frame) = 0; +

+
+
+

注册视频帧观察器后,该回调会在播放器每次接收到视频帧时触发,并上报视频帧的详细信息。

+
+
+ 参数 + + + frame + 视频帧信息 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onpreencodevideoframe.dita b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onpreencodevideoframe.dita new file mode 100644 index 00000000000..3022aeef60c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onpreencodevideoframe.dita @@ -0,0 +1,195 @@ + + + + <ph keyref="onPreEncodeVideoFrame"/> + 接收到编码前视频帧回调。 回调。每次 SDK 在编码前接收到视频帧时触发该回调。每次 SDK 在编码前接收到视频帧时触发。每次 SDK 在编码前接收到视频帧时触发。 + + + + + + + + +
+

+ virtual bool onPreEncodeVideoFrame(agora::rtc::VIDEO_SOURCE_TYPE sourceType, VideoFrame& videoFrame) = 0; + @CalledByNative boolean onPreEncodeVideoFrame(int sourceType, VideoFrame videoFrame); + - (BOOL)onPreEncodeVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame sourceType:(AgoraVideoSourceType)sourceType; + - (BOOL)onPreEncodeVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame sourceType:(AgoraVideoSourceType)sourceType; +

+
+
+

当你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以获取编码前的视频数据,并根据具体场景进行处理。处理完成后,可以将处理后的视频数据返回给 SDK。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以获取编码前的视频数据,并根据具体场景对数据进行处理。处理完成后,可以将处理后的视频数据返回给 SDK。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以获取编码前的视频数据,并根据具体场景对其进行处理。处理完成后,你可以将处理后的视频数据返回给 SDK。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以获取编码前的视频数据,并根据具体场景对其进行处理。处理完成后,你可以将处理后的视频数据返回给 SDK。

+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,需要先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。
  • +
  • 如果你需要获取从第二路屏幕采集的编码前视频数据,需要通过 设置帧位置为 POSITION_PRE_ENCODER(1 << 2)。
  • +
  • 该回调获取的视频数据已经过预处理,包括裁剪、旋转和图像增强。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示中出现旋转异常、图像失真等问题。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,需要先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。
  • +
  • 若需获取从第二路屏幕采集的编码前视频数据,需要通过 设置帧位置为 VIDEO_MODULE_POSITION_PRE_ENCODER(1 << 2)。
  • +
  • 该回调获取的视频数据已被预处理,包括裁剪、旋转和图像增强。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示出现异常旋转、图像拉伸等问题。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,你需要先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。
  • +
  • 如果你需要获取从第二屏幕采集的编码前的视频数据,你需要通过 设置帧位置为 AgoraVideoModulePositionPreEncoder(1 << 2)。
  • +
  • 该回调获取的视频数据已被预处理,包括裁剪、旋转和图像增强。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致。否则,可能会导致本地预览和远端视频显示出现意外的旋转、变形等问题。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,你需要先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。
  • +
  • 如果你需要获取从第二屏幕采集的编码前的视频数据,你需要通过 设置帧位置为 AgoraVideoModulePositionPreEncoder(1 << 2)。
  • +
  • 该回调获取的视频数据已被预处理,包括裁剪、旋转和图像增强。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致。否则,可能会导致本地预览和远端视频显示出现意外的旋转、变形等问题。
  • +
+
+
+
+ 触发时机 +

当 SDK 在编码前接收到视频帧时触发。

+

该回调在 SDK 每次接收到编码前的视频帧时被触发。

+

该回调在每次 SDK 在编码前接收到视频帧时被触发。

+

该回调在每次 SDK 在编码前接收到视频帧时被触发。

+
+
+ 参数 + + + sourceType + 视频源类型,详见 + + + videoFrame + 输出参数,表示编码前的视频帧。 + 通过该回调获取的视频帧数据的默认格式如下: +
    +
  • Android:I420 或 RGB(GLES20.GL_TEXTURE_2D)。
  • +
  • iOS:I420 或 CVPixelBufferRef。
  • +
  • macOS:I420 或 CVPixelBufferRef。
  • +
  • Windows:YUV420。
  • +
+
+
+
+ + sourceType + 视频源类型。详见 + + + videoFrame + 视频帧。 + 通过该回调获取的视频帧数据格式默认如下: +
    +
  • Android:I420 或 RGB(GLES20.GL_TEXTURE_2D)。
  • +
+
+
+
+ + videoFrame + 视频帧。通过该回调获取的视频帧数据格式默认如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + sourceType + 视频源的类型,详见 + + + videoFrame + 视频帧。通过该回调获取的视频帧数据格式默认如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + sourceType + 视频源的类型,详见 + +
+
+
+ 返回值 +

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :SDK 接收该视频帧。
    • +
    • :SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onrendervideoframe.dita b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onrendervideoframe.dita new file mode 100644 index 00000000000..c38aa8a2786 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_ivideoframeobserver_onrendervideoframe.dita @@ -0,0 +1,201 @@ + + + + <ph keyref="onRenderVideoFrame"/> + 接收到远端用户发送的视频帧回调。远端用户发送视频帧时触发的回调。每次 SDK 接收到远端用户发送的视频帧时触发。每次 SDK 接收到远端用户发送的视频帧时触发。 + + + + + + + + +
+

+ virtual bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame) = 0; + boolean onRenderVideoFrame(String channelId, int uid, VideoFrame videoFrame) + - (BOOL)onRenderVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame uid:(NSUInteger)uid channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRenderVideoFrame(_:uid:channelId:)); + - (BOOL)onRenderVideoFrame:(AgoraOutputVideoFrame * _Nonnull)videoFrame uid:(NSUInteger)uid channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRenderVideoFrame(_:uid:channelId:)); +

+
+
+

当你成功注册视频帧观察器后,SDK 每次接收到远端用户发送的视频帧时会触发该回调。在该回调中,你可以在渲染前获取远端的视频数据,并根据具体场景进行处理。默认返回的视频格式为 YUV420。如需其他格式,可在 中设置期望格式。

+

在你成功注册视频帧观察器后,SDK 每次接收到远端用户发送的视频帧时会触发该回调。你可以在渲染前获取远端发送的视频数据,并根据具体场景进行处理。通过该回调获取的视频帧默认格式可能为 I420BufferTextureBufferTextureBuffer 的纹理格式可能为 OESRGB。如果你需要其他格式的视频数据,可以在 回调中设置期望的数据格式。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以在渲染前获取远端发送的视频数据,并根据具体场景进行处理。通过该回调获取的视频格式默认为 I420 或 CVPixelBufferRef。如果你需要其他格式,可以在 回调中设置期望的数据格式。

+

在你成功注册视频帧观察器后,SDK 每次接收到视频帧时都会触发该回调。在该回调中,你可以在渲染前获取远端发送的视频数据,并根据具体场景进行处理。通过该回调获取的视频格式默认为 I420 或 CVPixelBufferRef。如果你需要其他格式,可以在 回调中设置期望的数据格式。

+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,需先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。
  • +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道数据。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中的实际帧数据一致,否则可能导致本地预览或远端显示出现旋转、拉伸等异常。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送回 SDK,需要先调用 将视频处理模式设置为读写模式(PROCESS_MODE_READ_WRITE)。
  • +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议你确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致。否则,可能会导致本地预览和远端视频显示出现异常旋转、图像拉伸等问题。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送给 SDK,需要先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。
  • +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示出现异常旋转、拉伸等问题。
  • +
+
+ +
    +
  • 如果你需要将预处理后的视频数据发送给 SDK,需要先调用 将视频处理模式设置为读写模式(AgoraVideoFrameProcessModeReadWrite)。
  • +
  • 如果你获取的视频数据类型为 RGBA,SDK 不支持处理 alpha 通道的数据。
  • +
  • 建议确保 videoFrame 中修改后的参数与视频帧缓冲区中视频帧的实际情况一致,否则可能导致本地预览和远端视频显示出现异常旋转、拉伸等问题。
  • +
+
+
+
+ 触发时机 +

该回调在每次 SDK 接收到远端用户发送的视频帧时触发。

+

该回调在 SDK 接收到远端用户发送的视频帧时被触发。

+

该回调在 SDK 每次接收到远端用户发送的视频帧时被触发。

+

该回调在 SDK 每次接收到远端用户发送的视频帧时被触发。

+
+
+ 参数 + + + channelId + 频道 ID。 + + + remoteUid + 发送当前视频帧的远端用户的用户 ID。 + + + videoFrame + 视频帧。 + 通过该回调获取的视频帧数据格式默认如下: +
    +
  • Android:I420 或 RGB(GLES20.GL_TEXTURE_2D)
  • +
  • iOS:I420 或 CVPixelBufferRef
  • +
  • macOS:I420 或 CVPixelBufferRef
  • +
  • Windows:YUV420
  • +
+
+
+
+ + channelId + 频道 ID。 + + + uid + 发送当前视频帧的远端用户 ID。 + + + videoFrame + 视频帧。 + + + videoFrame + 视频帧。通过该回调获取的视频帧数据格式默认如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + uid + 远端用户的用户 ID,表示发送当前视频帧的用户。 + + + channelId + 频道 ID。 + + + videoFrame + 视频帧。通过该回调获取的视频帧数据格式默认如下: +
    +
  • iOS/macOS:I420 或 CVPixelBufferRef。详见
  • +
+
+
+ + uid + 远端用户的用户 ID,表示发送当前视频帧的用户。 + + + channelId + 频道 ID。 + +
+
+
+ 返回值 +

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 PROCESS_MODE_READ_ONLY 时: +
      +
    • :保留以供后续使用。
    • +
    • :保留以供后续使用。
    • +
    +
  • +
  • 当视频处理模式为 PROCESS_MODE_READ_WRITE 时: +
      +
    • :SDK 接收该视频帧。
    • +
    • :SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+

+

    +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadOnly 时: +
      +
    • :保留以供将来使用。
    • +
    • :保留以供将来使用。
    • +
    +
  • +
  • 当视频处理模式为 AgoraVideoFrameProcessModeReadWrite 时: +
      +
    • :设置 SDK 接收该视频帧。
    • +
    • :设置 SDK 丢弃该视频帧。
    • +
    +
  • +
+

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playergetstatscallback_onresult_playergetstatscallback.dita b/dita/RTC-AIDOC/API/callback_playergetstatscallback_onresult_playergetstatscallback.dita new file mode 100644 index 00000000000..01511bbb29d --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playergetstatscallback_onresult_playergetstatscallback.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="onResult_PlayerGetStatsCallback"/> + 异步获取媒体资源统计信息操作完成时触发的回调。 + + + + + + + + +
+

+ @CalledByNative void onResult(PlayerStats playerStats, Error error); +

+
+
+
+ 触发时机 +

该回调在异步获取媒体资源信息的操作完成时被触发。

+
+
+ 参数 + + + playerStats + 媒体资源的统计信息。详见 + + + error + 状态和错误信息。详见 + + +
+ + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onaudiovolumeindication_playerobserver.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onaudiovolumeindication_playerobserver.dita new file mode 100644 index 00000000000..a70035f8e2f --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onaudiovolumeindication_playerobserver.dita @@ -0,0 +1,71 @@ + + + + <ph keyref="onAudioVolumeIndication_PlayerObserver"/> + 回调。播放器音量变化时触发。播放器音量变化回调。播放器音量提示回调。播放器音量提示回调。 + + + + + + + + +
+

+ virtual void onAudioVolumeIndication(int32_t volume) {} + public void onAudioVolumeIndication(int volume) + - (void)onAudioVolumeIndication:(int32_t)volume; + - (void)onAudioVolumeIndication:(int32_t)volume; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 触发时机 +

当播放器的音量发生变化时,SDK 会触发该回调。

+

该回调在播放器音量发生变化时被触发。

+

当播放器音量发生变化时,SDK 会触发该回调。

+

当播放器音量发生变化时,SDK 会触发该回调。

+
+
+ 参数 + + + volume + 播放器当前的音量,取值范围为 [0, 225]。 + + + volume + 播放器当前的音量,取值范围为 [0, 225]。 + + + volume + 播放器当前的音量,取值范围为 [0,225]。 + + + volume + 播放器当前的音量,取值范围为 [0,225]。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onevent.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onevent.dita new file mode 100644 index 00000000000..033abe8af7c --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onevent.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="onEvent"/> + 播放器事件回调。播放器事件回调。播放器事件回调。播放器事件回调。 + + + + + + + + +
+

+ virtual void onEvent(PlayerEvent event) {} + public void onEvent(int event) + - (void)onEvent:(AgoraRtePlayerEvent)event; + - (void)onEvent:(AgoraRtePlayerEvent)event; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

调用 注册播放器观察者对象后,才能监听播放器事件。

+

如果你需要监听播放器事件,必须先调用 注册播放器观察者对象。

+

如果你需要监听播放器事件,必须先调用 方法注册播放器观察者对象。

+

如果你需要监听播放器事件,必须先调用 方法注册播放器观察者对象。

+
+
+ 触发时机 +

当播放器事件发生时,SDK 会触发该回调。

+

该回调在播放器事件发生变化时被触发。

+

该回调在播放器事件发生变化时被触发。

+

该回调在播放器事件发生变化时被触发。

+
+
+ 参数 + + + event + 播放器事件,详见 + + + event + 播放器事件。 + 详见 + + + + event + 播放器事件,详见 + + + event + 播放器事件,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onmetadata_playerobserver.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onmetadata_playerobserver.dita new file mode 100644 index 00000000000..e7fb74aab32 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onmetadata_playerobserver.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="onMetadata_PlayerObserver"/> + 接收媒体流中元数据的回调。接收媒体流附加信息的回调。接收媒体元数据的回调。接收媒体元数据的回调。 + + + + + + + + +
+

+ virtual void onMetadata(PlayerMetadataType type, const uint8_t *data, size_t length) {} + public void onMetadata(int type, byte[] data) + - (void)onMetadata:(AgoraRtePlayerMetadataType)type data:(NSData * _Nonnull)data; + - (void)onMetadata:(AgoraRtePlayerMetadataType)type data:(NSData * _Nonnull)data; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

如果你需要从媒体流中获取元数据,必须先调用 注册播放器观察者对象。

+

调用 注册播放器观察者对象后,才能接收媒体流中的附加信息。

+

如果你需要从输入在线媒体流中获取元数据,必须先调用 注册一个播放器观察者对象。

+

如果你需要从输入在线媒体流中获取元数据,必须先调用 注册一个播放器观察者对象。

+
+
+ 触发时机 +

当 SDK 从正在播放的媒体流中解析出元数据后,会触发该回调报告元数据类型及其内容。

+

该回调在 SDK 解析播放器正在播放的媒体流中的附加信息后触发,报告数据类型及其具体内容。

+

该回调在 SDK 从输入在线媒体流中解析出元数据后触发,用于上报数据的类型和内容。

+

该回调在 SDK 从输入在线媒体流中解析出元数据后触发,用于上报数据的类型和内容。

+
+
+ 参数 + + + type + 元数据类型,详见 + + + data + 解析后的元数据内容。 + + + length + 数据的字节大小。 + + + type + 附加信息的类型: +
    +
  • 0:SEI(Supplemental Enhancement Information)类型。
  • +
+
+
+ + data + 解析后的附加信息。 + + + type + 元数据的类型,详见 + + + data + 解析后的元数据内容。 + + + type + 元数据的类型,详见 + + + data + 解析后的元数据内容。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onplayerinfoupdated_playerobserver.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onplayerinfoupdated_playerobserver.dita new file mode 100644 index 00000000000..846bb41e147 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onplayerinfoupdated_playerobserver.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="onPlayerInfoUpdated_PlayerObserver"/> + 播放器或媒体流信息发生变化时触发的回调。播放器和媒体流信息发生变化回调。播放器或媒体流信息发生变化时触发的回调。播放器或媒体流信息发生变化时触发的回调。 + + + + + + + + +
+

+ virtual void onPlayerInfoUpdated(const PlayerInfo *info) {} + public void onPlayerInfoUpdated(PlayerInfo info) + - (void)onPlayerInfoUpdated:(AgoraRtePlayerInfo * _Nonnull)info; + - (void)onPlayerInfoUpdated:(AgoraRtePlayerInfo * _Nonnull)info; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

如果你需要获取播放器和媒体流的信息,必须先调用 注册播放器观察者对象。你也可以直接调用 获取信息。

+

你可以调用 注册播放器观察者对象来获取播放器和媒体流的信息,也可以直接调用 方法获取信息。

+

如果你希望获取播放器或媒体流的信息,需要先调用 方法注册播放器观察者对象。你也可以直接使用 方法获取信息。

+

如果你希望获取播放器或媒体流的信息,需要先调用 方法注册播放器观察者对象。你也可以直接使用 方法获取信息。

+
+
+ 触发时机 +

当播放器或媒体流的信息发生变化时,SDK 会触发此回调。

+

该回调在播放器和媒体流信息发生变化时被触发。

+

当播放器或媒体流信息发生变化时,SDK 会触发该回调。

+

当播放器或媒体流信息发生变化时,SDK 会触发该回调。

+
+
+ 参数 + + + info + 播放器和媒体流的信息。详见 + + + info + 播放器及媒体流的相关信息,详见 + + + info + 关于播放器和媒体流的信息,详见 + + + info + 关于播放器和媒体流的信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onpositionchanged_playerobserver.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onpositionchanged_playerobserver.dita new file mode 100644 index 00000000000..f42676071a3 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onpositionchanged_playerobserver.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="onPositionChanged_PlayerObserver"/> + 播放进度变化回调。播放进度变化回调。 回调。报告媒体资源的当前播放进度。 回调。报告媒体资源的当前播放进度。 + + + + + + + + +
+

+ virtual void onPositionChanged(uint64_t curr_time, uint64_t utc_time) {} + public void onPositionChanged(long curr_time, long utc_time) + - (void)onPositionChanged:(uint64_t)currentTime utcTime:(uint64_t)utcTime; + - (void)onPositionChanged:(uint64_t)currentTime utcTime:(uint64_t)utcTime; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 触发时机 +

该回调在媒体播放过程中每秒触发一次。

+

该回调在媒体资源播放过程中每秒触发一次。

+

该回调在媒体资源播放过程中每秒触发一次。

+

该回调在媒体资源播放过程中每秒触发一次。

+
+
+ 参数 + + + curr_time + 当前播放进度,单位为毫秒。 + + + utc_time + 当前 NTP(网络时间协议)时间,单位为毫秒。 + + + curr_time + 当前播放进度,单位为毫秒。 + + + utc_time + 当前 NTP(网络时间协议)时间,单位为毫秒。 + + + currentTime + 当前播放进度,单位为毫秒。 + + + utcTime + 当前的 NTP(网络时间协议)时间,单位为毫秒。 + + + currentTime + 当前播放进度,单位为毫秒。 + + + utcTime + 当前的 NTP(网络时间协议)时间,单位为毫秒。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onresolutionchanged.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onresolutionchanged.dita new file mode 100644 index 00000000000..ac2b6d5c296 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onresolutionchanged.dita @@ -0,0 +1,91 @@ + + + + <ph keyref="onResolutionChanged"/> + 视频分辨率发生变化时触发的回调。视频分辨率变化的回调。视频分辨率变化的回调。视频分辨率变化的回调。 + + + + + + + + +
+

+ virtual void onResolutionChanged(int width, int height) {} + public void onResolutionChanged(int width, int height) + - (void)onResolutionChanged:(int)width height:(int)height; + - (void)onResolutionChanged:(int)width height:(int)height; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

如果你需要监控播放器播放的视频流的分辨率变化,必须先调用 注册播放器观察者对象。

+

你必须先调用 注册一个播放器观察者对象,才能监听视频流分辨率的变化。

+

如果你需要监控播放器正在播放的视频流的分辨率变化,必须先调用 方法注册播放器观察者对象。

+

如果你需要监控播放器正在播放的视频流的分辨率变化,必须先调用 方法注册播放器观察者对象。

+
+
+ 触发时机 +

当视频流的分辨率发生变化时,SDK 会触发该回调以报告当前视频的宽度和高度。

+

该回调在视频流的分辨率发生变化时被触发,报告当前视频的宽度和高度。

+

该回调在视频流的分辨率发生变化时被触发,报告当前视频的宽度和高度。

+

该回调在视频流的分辨率发生变化时被触发,报告当前视频的宽度和高度。

+
+
+ 参数 + + + width + 视频帧的宽度(像素)。 + + + height + 视频帧的高度(像素)。 + + + width + 视频帧的宽度,单位为 px。 + + + height + 视频帧的高度,单位为 px。 + + + width + 视频帧的宽度(像素)。 + + + height + 视频帧的高度(像素)。 + + + width + 视频帧的宽度(像素)。 + + + height + 视频帧的高度(像素)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/callback_playerobserver_onstatechanged.dita b/dita/RTC-AIDOC/API/callback_playerobserver_onstatechanged.dita new file mode 100644 index 00000000000..d0a068ff302 --- /dev/null +++ b/dita/RTC-AIDOC/API/callback_playerobserver_onstatechanged.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="onStateChanged"/> + 播放器状态发生变化时触发的回调。播放器状态变化的回调。播放器状态发生变化回调。播放器状态发生变化回调。 + + + + + + + + +
+

+ virtual void onStateChanged(PlayerState old_state, PlayerState new_state, rte::Error *err) {} + public void onStateChanged(int old_state, int new_state, Error error) + - (void)onStateChanged:(AgoraRtePlayerState)oldState newState:(AgoraRtePlayerState)newState error:(AgoraRteError * _Nullable)error; + - (void)onStateChanged:(AgoraRtePlayerState)oldState newState:(AgoraRtePlayerState)newState error:(AgoraRteError * _Nullable)error; +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+

如果你需要监听播放器状态的变化,必须先调用 注册播放器观察者对象。

+

如果你需要监听播放器状态的变化,必须先调用 注册播放器观察者对象。

+

如果你需要监听播放器状态的变化,必须先调用 方法注册播放器观察者对象。

+

如果你需要监听播放器状态的变化,必须先调用 方法注册播放器观察者对象。

+
+
+ 触发时机 +

当播放器状态发生变化时,SDK 会触发该回调以报告当前状态和之前的状态。

+

该回调在播放器状态发生变化时被触发。

+

该回调在播放器状态发生变化时被触发,用于报告当前状态和之前的状态。

+

该回调在播放器状态发生变化时被触发,用于报告当前状态和之前的状态。

+
+
+ 参数 + + + old_state + 播放器之前的状态,详见 + + + new_state + 播放器当前的状态,详见 。如果当前状态为 kRtePlayerStateFailed,你可以通过 err 参数获取详细的错误信息。 + + + err + 状态或错误信息,详见 + + + old_state + 变更前的播放器状态。详见 + + + new_state + 当前的播放器状态。详见 。如果当前状态为 FAILED,你可以通过 error 参数获取详细的错误信息。 + + + error + 状态或错误信息。详见 + + + oldState + 变更前的播放器状态,详见 + + + newState + 当前的播放器状态,详见 。如果当前状态为 AgoraRtePlayerStateFailed,你可以通过 error 参数获取详细的错误信息。 + + + error + 状态或错误信息,详见 + + + oldState + 变更前的播放器状态,详见 + + + newState + 当前的播放器状态,详见 。如果当前状态为 AgoraRtePlayerStateFailed,你可以通过 error 参数获取详细的错误信息。 + + + error + 状态或错误信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_advancedaudiooptions.dita b/dita/RTC-AIDOC/API/class_advancedaudiooptions.dita new file mode 100644 index 00000000000..2cd978054ac --- /dev/null +++ b/dita/RTC-AIDOC/API/class_advancedaudiooptions.dita @@ -0,0 +1,50 @@ + + + + <ph keyref="AdvancedAudioOptions"/> + 用于配置高级音频选项。用于设置音频的高级配置项。高级音频选项。高级音频选项。 + +
+

+ struct AdvancedAudioOptions { + Optional<int> audioProcessingChannels; +}; + public class AdvancedAudioOptions { + public AudioProcessingChannelsEnum audioProcessingChannels; +} + __attribute__((visibility("default"))) @interface AgoraAdvancedAudioOptions: NSObject +@property(assign, nonatomic) AgoraAudioProcessChannels audioProcessingChannels; +@end + __attribute__((visibility("default"))) @interface AgoraAdvancedAudioOptions: NSObject +@property(assign, nonatomic) AgoraAudioProcessChannels audioProcessingChannels; +@end +

+
+
+ 属性 + + + audioProcessingChannels + 用于音频预处理的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + audioProcessingChannels + 用于音频预处理的通道数,详见 + + + audioProcessingChannels + 用于音频预处理的通道数。详见 + + + audioProcessingChannels + 用于音频预处理的通道数。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_advancedconfiginfo.dita b/dita/RTC-AIDOC/API/class_advancedconfiginfo.dita new file mode 100644 index 00000000000..7a8412780d9 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_advancedconfiginfo.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="AdvancedConfigInfo"/> + 用于配置本地接入点的高级选项。本地接入点的高级配置选项。本地接入点的高级配置选项。本地接入点的高级配置选项。 + +
+

+ struct AdvancedConfigInfo { + LogUploadServerInfo logUploadServer; +}; + public static class AdvancedConfigInfo { + public LogUploadServerInfo logUploadServer = null; + } + NS_SWIFT_NAME(AdvancedConfigInfo) __attribute__((visibility("default"))) @interface AdvancedConfigInfo : NSObject +@property(strong, nonatomic) LogUploadServerInfo* _Nullable logUploadServer; +@end + NS_SWIFT_NAME(AdvancedConfigInfo) __attribute__((visibility("default"))) @interface AdvancedConfigInfo : NSObject +@property(strong, nonatomic) LogUploadServerInfo* _Nullable logUploadServer; +@end +

+
+
+ 属性 + + + logUploadServer + 自定义日志上传服务器。默认情况下,SDK 会将日志上传到声网日志服务器。你可以使用该参数更改日志上传服务器。详见 + + + logUploadServer + 自定义日志上传服务器。默认情况下,SDK 会将日志上传至声网日志服务器。你可以使用该参数修改日志上传服务器。详见 + + + logUploadServer + 自定义日志上传服务器。默认情况下,SDK 会将日志上传到声网日志服务器。你可以使用该属性更改日志上传服务器,详见 + + + logUploadServer + 自定义日志上传服务器。默认情况下,SDK 会将日志上传到声网日志服务器。你可以使用该属性更改日志上传服务器,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_advanceoptions.dita b/dita/RTC-AIDOC/API/class_advanceoptions.dita new file mode 100644 index 00000000000..5d29cd0623f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_advanceoptions.dita @@ -0,0 +1,110 @@ + + + + <ph keyref="AdvanceOptions"/> + 用于配置视频编码的高级选项。用于配置视频编码的高级选项。设置视频编码的高级选项。设置视频编码的高级选项。 + +
+

+ struct AdvanceOptions { + ENCODING_PREFERENCE encodingPreference; + COMPRESSION_PREFERENCE compressionPreference; + bool encodeAlpha; + bool operator==(const AdvanceOptions& rhs) const { + return encodingPreference == rhs.encodingPreference && + compressionPreference == rhs.compressionPreference && + encodeAlpha == rhs.encodeAlpha; + } +}; + static public class AdvanceOptions { + public ENCODING_PREFERENCE encodingPreference; + public COMPRESSION_PREFERENCE compressionPreference; + public boolean encodeAlpha; + } + __attribute__((visibility("default"))) @interface AgoraAdvancedVideoOptions : NSObject +@property(assign, nonatomic) AgoraEncodingPreference encodingPreference; +@property(assign, nonatomic) AgoraCompressionPreference compressionPreference; +@property(assign, nonatomic) BOOL encodeAlpha; +@end + __attribute__((visibility("default"))) @interface AgoraAdvancedVideoOptions : NSObject +@property(assign, nonatomic) AgoraEncodingPreference encodingPreference; +@property(assign, nonatomic) AgoraCompressionPreference compressionPreference; +@property(assign, nonatomic) BOOL encodeAlpha; +@end +

+
+
+ 属性 + + + encodingPreference + 视频编码器偏好设置。详见 + + + compressionPreference + 视频编码的压缩偏好设置。详见 + + + encodeAlpha + 是否对视频帧中存在的 Alpha 数据进行编码并发送到远端: +
    +
  • :编码并发送 Alpha 数据。
  • +
  • :(默认)不编码也不发送 Alpha 数据。
  • +
+
+
+ + encodingPreference + 视频编码器优先级设置,详见 + + + compressionPreference + 视频编码的压缩偏好设置,详见 + + + encodeAlpha + 是否对视频帧中存在的 Alpha 数据进行编码并发送给远端: +
    +
  • :编码并发送 Alpha 数据。
  • +
  • (默认):不编码和发送 Alpha 数据。
  • +
+
+
+ + encodingPreference + 视频编码器偏好设置,详见 + + + compressionPreference + 视频编码的压缩偏好设置,详见 + + + encodeAlpha + 是否对视频帧中存在的 Alpha 数据进行编码并发送到远端: +
    +
  • :编码并发送 Alpha 数据。
  • +
  • :(默认)不编码也不发送 Alpha 数据。
  • +
+
+
+ + encodingPreference + 视频编码器偏好设置,详见 + + + compressionPreference + 视频编码的压缩偏好设置,详见 + + + encodeAlpha + 是否对视频帧中存在的 Alpha 数据进行编码并发送到远端: +
    +
  • :编码并发送 Alpha 数据。
  • +
  • :(默认)不编码也不发送 Alpha 数据。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agorafacepositioninfo.dita b/dita/RTC-AIDOC/API/class_agorafacepositioninfo.dita new file mode 100644 index 00000000000..0454b5960f4 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agorafacepositioninfo.dita @@ -0,0 +1,74 @@ + + + + <ph keyref="AgoraFacePositionInfo"/> + 检测到的人脸信息。检测到的人脸信息。 + +
+

+ NS_SWIFT_NAME(AgoraFacePositionInfo) __attribute__((visibility("default"))) @interface AgoraFacePositionInfo : NSObject +@property(assign, nonatomic) NSInteger x NS_SWIFT_NAME(x); +@property(assign, nonatomic) NSInteger y NS_SWIFT_NAME(y); +@property(assign, nonatomic) NSInteger width NS_SWIFT_NAME(width); +@property(assign, nonatomic) NSInteger height NS_SWIFT_NAME(height); +@property(assign, nonatomic) NSInteger distance NS_SWIFT_NAME(distance); +@end + public static class AgoraFacePositionInfo { + public int x; + public int y; + public int width; + public int height; + public int distance; + } +

+
+
+

用于描述人脸在本地视频中的位置信息,包括坐标、尺寸和与设备的距离。

+
+
+ 属性 + + + x + 人脸在本地视频中的 x 坐标(像素)。以采集视频左上角为原点,表示人脸左上角相对于原点的水平位置。 + + + y + 人脸在本地视频中的 y 坐标(像素)。以采集视频左上角为原点,表示人脸左上角相对于原点的垂直位置。 + + + width + 人脸在采集视频中的宽度(像素)。 + + + height + 人脸在采集视频中的高度(像素)。 + + + distance + 人脸与设备屏幕之间的距离(厘米)。 + + + x + 本地视频中人脸的横坐标(像素)。该值表示人脸左上角相对于采集画面左上角原点的水平位置。 + + + y + 本地视频中人脸的纵坐标(像素)。该值表示人脸左上角相对于采集画面左上角原点的垂直位置。 + + + width + 采集视频画面中人脸的宽度(像素)。 + + + height + 采集视频画面中人脸的高度(像素)。 + + + distance + 人脸与设备屏幕之间的距离(厘米)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agoramediafilterextensiondelegate.dita b/dita/RTC-AIDOC/API/class_agoramediafilterextensiondelegate.dita new file mode 100644 index 00000000000..0fbc6bea560 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agoramediafilterextensiondelegate.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="AgoraMediaFilterExtensionDelegate"/> + 实现扩展插件的委托方法,用于管理媒体插件。实现扩展插件的委托方法,用于管理媒体插件。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agoramediametadatadatasource.dita b/dita/RTC-AIDOC/API/class_agoramediametadatadatasource.dita new file mode 100644 index 00000000000..9a707fafcd8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agoramediametadatadatasource.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="AgoraMediaMetadataDataSource"/> + 协议用于提供媒体元数据的数据源。 协议用于提供媒体元数据的数据源。 + +
+ 请在关键线程中实现该协议中的所有回调。建议避免在关键线程中执行任何耗时操作。 + 请在关键线程中实现该协议中的所有回调。建议避免在关键线程中执行任何耗时操作。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agorarhythmplayerconfig.dita b/dita/RTC-AIDOC/API/class_agorarhythmplayerconfig.dita new file mode 100644 index 00000000000..d2088d0d19a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agorarhythmplayerconfig.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="AgoraRhythmPlayerConfig"/> + 节拍器配置结构体。配置节拍器参数。配置节拍器的节拍数和节奏速度。配置节拍器的节拍数和节奏速度。 + +
+

+ struct AgoraRhythmPlayerConfig { + int beatsPerMeasure; + int beatsPerMinute; +}; + public class AgoraRhythmPlayerConfig { + public int beatsPerMeasure; + public int beatsPerMinute; +} + __attribute__((visibility("default"))) @interface AgoraRhythmPlayerConfig: NSObject +@property (assign, nonatomic) int beatsPerMeasure; +@property (assign, nonatomic) int beatsPerMinute; +@end + __attribute__((visibility("default"))) @interface AgoraRhythmPlayerConfig: NSObject +@property (assign, nonatomic) int beatsPerMeasure; +@property (assign, nonatomic) int beatsPerMinute; +@end +

+
+
+ 属性 + + + beatsPerMeasure + 每小节的节拍数,取值范围为 1 到 9。默认值为 4,表示每小节包含一个强拍和三个弱拍。 + + + beatsPerMinute + 节拍速度(每分钟的节拍数),取值范围为 60 到 360。默认值为 60,表示节拍器每分钟播放 60 个节拍。 + + + beatsPerMeasure + 每小节的拍数,取值范围为 1 到 9。默认值为 4,表示每小节包含一个强拍和三个弱拍。 + + + beatsPerMinute + 节拍速度,单位为拍/分钟,取值范围为 60 到 360。默认值为 60,表示节拍器每分钟播放 60 拍。 + + + beatsPerMeasure + 每小节的节拍数,范围为 1 到 9。默认值为 4,表示每小节包含一个强拍和三个弱拍。 + + + beatsPerMinute + 节拍速度(每分钟节拍数),范围为 60 到 360。默认值为 60,表示节拍器每分钟播放 60 个节拍。 + + + beatsPerMeasure + 每小节的节拍数,范围为 1 到 9。默认值为 4,表示每小节包含一个强拍和三个弱拍。 + + + beatsPerMinute + 节拍速度(每分钟节拍数),范围为 60 到 360。默认值为 60,表示节拍器每分钟播放 60 个节拍。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agorartcdeviceinfo.dita b/dita/RTC-AIDOC/API/class_agorartcdeviceinfo.dita new file mode 100644 index 00000000000..4a9c6e66c98 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agorartcdeviceinfo.dita @@ -0,0 +1,40 @@ + + + + <ph keyref="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; +@property(copy, nonatomic) NSString *_Nullable deviceTypeName; +@end +

+
+
+ 属性 + + + type + 设备类型。详见 + + + deviceId + 设备 ID。 + + + deviceName + 设备名称。 + + + deviceTypeName + 音频设备的类型,例如内置设备、USB 和 HDMI。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_agorartcmediaplayervideoframedelegate.dita b/dita/RTC-AIDOC/API/class_agorartcmediaplayervideoframedelegate.dita new file mode 100644 index 00000000000..a23f707d288 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_agorartcmediaplayervideoframedelegate.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="AgoraRtcMediaPlayerVideoFrameDelegate"/> + 用于接收媒体播放器的视频帧回调。用于接收媒体播放器的视频帧回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_areacode.dita b/dita/RTC-AIDOC/API/class_areacode.dita new file mode 100644 index 00000000000..52ddf501ccb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_areacode.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="AreaCode"/> + 设置 SDK 连接的服务器区域。 + +
+

+ public static class AreaCode { + public final static int AREA_CODE_NONE = 0; + public final static int AREA_CODE_CN = 0x00000001; + public final static int AREA_CODE_NA = 0x00000002; + public final static int AREA_CODE_EU = 0x00000004; + public final static int AREA_CODE_AS = 0x00000008; + public final static int AREA_CODE_JP = 0x00000010; + public final static int AREA_CODE_IN = 0x00000020; + public final static int AREA_CODE_RU = 0x00001000; + public final static int AREA_CODE_GLOB = 0xFFFFFFFF; +}; +

+
+
+ 属性 + + + AREA_CODE_NONE + 无指定区域。 + + + AREA_CODE_CN + 中国大陆。 + + + AREA_CODE_NA + 北美地区。 + + + AREA_CODE_EU + 欧洲地区。 + + + AREA_CODE_AS + 亚洲(不包括中国大陆)。 + + + AREA_CODE_JP + 日本。 + + + AREA_CODE_IN + 印度。 + + + AREA_CODE_RU + 俄罗斯。 + + + AREA_CODE_GLOB + 全球。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_asynccallback.dita b/dita/RTC-AIDOC/API/class_asynccallback.dita new file mode 100644 index 00000000000..ad410abd1de --- /dev/null +++ b/dita/RTC-AIDOC/API/class_asynccallback.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="AsyncCallback"/> + 用于处理异步操作结果的回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audioencodedframeobserverconfig.dita b/dita/RTC-AIDOC/API/class_audioencodedframeobserverconfig.dita new file mode 100644 index 00000000000..b8711571246 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audioencodedframeobserverconfig.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="AudioEncodedFrameObserverConfig"/> + 用于配置编码音频观察者的设置。用于配置编码音频的监听器。设置编码音频的观察者配置。设置编码音频的观察者配置。 + +
+

+ struct AudioEncodedFrameObserverConfig { + AUDIO_ENCODED_FRAME_OBSERVER_POSITION postionType; + AUDIO_ENCODING_TYPE encodingType; +}; + public class AudioEncodedFrameObserverConfig { + public int postionType; + public int encodingType; +} + __attribute__((visibility("default"))) @interface AgoraAudioEncodedFrameDelegateConfig: NSObject +@property (assign, nonatomic) AgoraAudioEncodedFrameDelegatePosition postionType; +@property (assign, nonatomic) AgoraAudioEncodingType encodingType; +@end + __attribute__((visibility("default"))) @interface AgoraAudioEncodedFrameDelegateConfig: NSObject +@property (assign, nonatomic) AgoraAudioEncodedFrameDelegatePosition postionType; +@property (assign, nonatomic) AgoraAudioEncodingType encodingType; +@end +

+
+
+ 属性 + + + postionType + 音频配置。详见 + + + encodingType + 音频编码类型。详见 + + + postionType + 音频监听器的采集位置: +
    +
  • AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIC(1):仅采集本地用户的音频。
  • +
  • AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK(2):仅采集所有远端用户的音频。
  • +
  • AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED(3):采集本地和所有远端用户的混音音频。
  • +
+
+
+ + encodingType + 音频编码类型: +
    +
  • AUDIO_ENCODING_TYPE_AAC_16000_LOW:AAC 编码格式,16000 Hz 采样率,低质量。编码后 10 分钟音频约为 1.2 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM:AAC 编码格式,16000 Hz 采样率,中等质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_32000_LOW:AAC 编码格式,32000 Hz 采样率,低质量。编码后 10 分钟音频约为 1.2 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM:AAC 编码格式,32000 Hz 采样率,中等质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_32000_HIGH:AAC 编码格式,32000 Hz 采样率,高质量。编码后 10 分钟音频约为 3.5 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM:AAC 编码格式,48000 Hz 采样率,中等质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_AAC_48000_HIGH:AAC 编码格式,48000 Hz 采样率,高质量。编码后 10 分钟音频约为 3.5 MB。
  • +
  • AUDIO_ENCODING_TYPE_OPUS_16000_LOW:OPUS 编码格式,16000 Hz 采样率,低质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM:OPUS 编码格式,16000 Hz 采样率,中等质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM:OPUS 编码格式,48000 Hz 采样率,中等质量。编码后 10 分钟音频约为 2 MB。
  • +
  • AUDIO_ENCODING_TYPE_OPUS_48000_HIGH:OPUS 编码格式,48000 Hz 采样率,高质量。编码后 10 分钟音频约为 3.5 MB。
  • +
+
+
+ + postionType + 音频观察者的位置。详见 + + + encodingType + 音频编码类型。详见 + + + postionType + 音频观察者的位置。详见 + + + encodingType + 音频编码类型。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audioframe.dita b/dita/RTC-AIDOC/API/class_audioframe.dita new file mode 100644 index 00000000000..17078541107 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audioframe.dita @@ -0,0 +1,212 @@ + + + + <ph keyref="AudioFrame"/> + 用于描述原始音频帧数据。原始音频数据。原始音频数据。原始音频数据。 + +
+

+ struct AudioFrame { +AUDIO_FRAME_TYPE type; +int samplesPerChannel; +agora::rtc::BYTES_PER_SAMPLE bytesPerSample; +int channels; +int samplesPerSec; +void* buffer; +int64_t renderTimeMs; +int avsync_type; +int64_t presentationMs; +int audioTrackNumber; +uint32_t rtpTimestamp; +}; + public class AudioFrame { + public ByteBuffer buffer; + public int sampleRataHz; + public int bytesPerSample; + public int channelNums; + public int samplesPerChannel; + public long timestamp; +} + __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(assign, nonatomic) void* _Nullable buffer; +@property(assign, nonatomic) int64_t renderTimeMs; +@property(assign, nonatomic) int64_t presentationMs; +@property(assign, nonatomic) NSInteger avSyncType; +@property(assign, nonatomic) uint32_t rtpTimestamp; +@end + __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(assign, nonatomic) void* _Nullable buffer; +@property(assign, nonatomic) int64_t renderTimeMs; +@property(assign, nonatomic) int64_t presentationMs; +@property(assign, nonatomic) NSInteger avSyncType; +@property(assign, nonatomic) uint32_t rtpTimestamp; +@end +

+
+
+ 属性 + + + type + 音频帧的类型。详见 + + + samplesPerChannel + 每个声道中的采样点数量。 + + + bytesPerSample + 每个采样点的字节数。对于 PCM,通常为 16 位(2 字节)。详见 BYTES_PER_SAMPLE + + + channels + 音频通道数(立体声时为交错格式)。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerSec + 每个声道的采样率(每秒采样数)。 + + + buffer + 输出参数,表示音频帧的数据缓冲区。当使用立体声通道时,数据为交错格式。缓冲区大小计算方式为:samples × channels × bytesPerSample。 + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该时间戳恢复采集顺序,并在视频场景中与视频帧同步,包括使用自定义视频源的场景。 + + + avsync_type + 保留参数,供未来使用。 + + + presentationMs + 该音频帧的 PTS 时间戳,用于指示帧的原始 PTS 时间,并通过该时间戳与视频帧同步。 + + + audioTrackNumber + 音频轨道编号。 + + + rtpTimestamp + 音频帧中第一个采样点的 RTP 时间戳。 + + + buffer + 音频帧的数据缓冲区。当音频帧使用立体声通道时,数据缓冲区为交叉存储。缓冲区大小计算方式为:buffer = samples × channels × bytesPerSample + + + sampleRataHz + 音频帧中每个声道的采样率(单位为 Hz)。 + + + bytesPerSample + 每个采样的字节数。对于 PCM 数据,通常为 16 位(2 字节)。 + + + channelNums + 音频通道数(立体声时为交叉存储)。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerChannel + 音频帧中每个声道的采样数。 + + + timestamp + 音频帧的时间戳(单位:毫秒)。 + + + samplesPerChannel + 音频帧中每个声道的采样点数。 + + + bytesPerSample + 每个采样点的字节数。对于 PCM,此参数通常设置为 16 位(2 字节)。 + + + channels + 音频声道数(如果为立体声,则数据交错排列)。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerSec + 音频帧中每个声道的采样率。 + + + buffer + 音频帧的数据缓冲区。当音频帧使用立体声道时,数据缓冲区为交错格式。缓冲区大小为:buffer = samples × channels × bytesPerSample + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该时间戳恢复采集音频帧的顺序,并在视频场景中同步音频和视频帧,包括使用自定义视频源的场景。 + + + avSyncType + 预留参数 + + + rtpTimestamp + 音频帧中第一个采样点的 RTP 时间戳。 + + + samplesPerChannel + 音频帧中每个声道的采样点数。 + + + bytesPerSample + 每个采样点的字节数。对于 PCM,此参数通常设置为 16 位(2 字节)。 + + + channels + 音频声道数(如果为立体声,则数据交错排列)。 +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + samplesPerSec + 音频帧中每个声道的采样率。 + + + buffer + 音频帧的数据缓冲区。当音频帧使用立体声道时,数据缓冲区为交错格式。缓冲区大小为:buffer = samples × channels × bytesPerSample + + + renderTimeMs + 外部音频帧的时间戳(毫秒)。你可以使用该时间戳恢复采集音频帧的顺序,并在视频场景中同步音频和视频帧,包括使用自定义视频源的场景。 + + + avSyncType + 预留参数 + + + rtpTimestamp + 音频帧中第一个采样点的 RTP 时间戳。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audioparams.dita b/dita/RTC-AIDOC/API/class_audioparams.dita new file mode 100644 index 00000000000..590f3aa22bf --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audioparams.dita @@ -0,0 +1,200 @@ + + + + <ph keyref="AudioParams"/> + 用于设置音频数据格式。用于设置音频数据格式。设置音频数据格式。设置音频数据格式。 + +
+

+ struct AudioParams { + int sample_rate; + int channels; + rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE mode; + int samples_per_call; +}; + public class AudioParams { + public int sampleRate = 0; + public int channel = 0; + public int mode = Constants.RAW_AUDIO_FRAME_OP_MODE_READ_ONLY; + public int samplesPerCall = 0; +} + @interface AgoraAudioParams : NSObject +@property (assign, nonatomic) NSInteger sampleRate; +@property (assign, nonatomic) NSInteger channel; +@property (assign, nonatomic) AgoraAudioRawFrameOperationMode mode; +@property (assign, nonatomic) NSInteger samplesPerCall; +@end + @interface AgoraAudioParams : NSObject +@property (assign, nonatomic) NSInteger sampleRate; +@property (assign, nonatomic) NSInteger channel; +@property (assign, nonatomic) AgoraAudioRawFrameOperationMode mode; +@property (assign, nonatomic) NSInteger samplesPerCall; +@end +

+
+
+

你可以在以下 API 中传入 对象,以设置对应回调的音频数据格式: +

    +
  • :设置 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
+

+

你可以在以下接口中传入 对象,以设置对应回调的数据格式: +

    +
  • :设置 回调的数据格式。
  • +
  • :设置 回调的数据格式。
  • +
  • :设置 回调的数据格式。
  • +
  • :设置 回调的数据格式。
  • +
+

+

你可以在以下 API 中传入 对象,以设置对应回调的音频数据格式: +

    +
  • :设置 回调的音频数据格式。
  • +
  • :设置 onPlaybackAudioFrame: 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
+

+

你可以在以下 API 中传入 对象,以设置对应回调的音频数据格式: +

    +
  • :设置 回调的音频数据格式。
  • +
  • :设置 onPlaybackAudioFrame: 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
  • :设置 回调的音频数据格式。
  • +
+

+ SDK 会通过 中的 samplesPerCallsampleRatechannel 参数计算采样间隔,并根据采样间隔触发 回调。 +采样间隔(秒)= samplesPerCall / (sampleRate × channel)。 +请确保采样间隔 ≥ 0.01 秒。 + SDK 会通过 中的 samplesPerCallsampleRatechannel 参数计算采样间隔,并按该间隔触发 回调。 +采样间隔(秒) = samplesPerCall /(sampleRate × channel)。 +确保采样间隔 ≥ 0.01 秒。 + SDK 会通过 中的 samplesPerCallsampleRatechannel 参数计算采样间隔,并根据采样间隔触发 onPlaybackAudioFrame: 回调。 +采样间隔(秒) = samplesPerCall / (sampleRate × channel)。 +请确保采样间隔 ≥ 0.01 秒。 + SDK 会通过 中的 samplesPerCallsampleRatechannel 参数计算采样间隔,并根据采样间隔触发 onPlaybackAudioFrame: 回调。 +采样间隔(秒) = samplesPerCall / (sampleRate × channel)。 +请确保采样间隔 ≥ 0.01 秒。 +
+
+ 属性 + + + sample_rate + 音频采样率(Hz),可设置为以下值之一:8000、16000(默认)、32000、44100、48000。 + + + channels + 音频声道数,可设置为以下值之一: +
    +
  • 1:单声道(默认)。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频数据的使用模式,详见 + + + samples_per_call + 每次调用的采样点数量,例如媒体推流时为 1024。 + + + sampleRate + 音频采样率(Hz),可设置为以下值: +
    +
  • 8000。
  • +
  • (默认)16000。
  • +
  • 32000。
  • +
  • 44100。
  • +
  • 48000。
  • +
+
+
+ + channel + 音频声道数,可设置为以下值: +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频数据的使用模式,可设置为以下值: +
    +
  • RAW_AUDIO_FRAME_OP_MODE_READ_ONLY(0):只读模式,例如用户通过声网 SDK 获取数据后进行媒体流推送。
  • +
  • RAW_AUDIO_FRAME_OP_MODE_READ_WRITE(2):读写模式,例如用户拥有自定义音频特效处理模块并进行音频预处理,如变声。
  • +
+
+
+ + samplesPerCall + 每个回调中包含的采样数,例如用于媒体推送时设置为 1024。 + + + sampleRate + 音频采样率(Hz),可设置为以下值之一: +
    +
  • 8000。
  • +
  • (默认)16000。
  • +
  • 32000。
  • +
  • 44100。
  • +
  • 48000。
  • +
+
+
+ + channel + 音频声道数,可设置为以下值之一: +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频数据的使用模式。详见 + + + samplesPerCall + 每次回调的采样点数量,例如媒体推流时为 1024。 + + + sampleRate + 音频采样率(Hz),可设置为以下值之一: +
    +
  • 8000。
  • +
  • (默认)16000。
  • +
  • 32000。
  • +
  • 44100。
  • +
  • 48000。
  • +
+
+
+ + channel + 音频声道数,可设置为以下值之一: +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + mode + 音频数据的使用模式。详见 + + + samplesPerCall + 每次回调的采样点数量,例如媒体推流时为 1024。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audiopcmframe.dita b/dita/RTC-AIDOC/API/class_audiopcmframe.dita new file mode 100644 index 00000000000..5421ed99b68 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audiopcmframe.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="AudioPcmFrame"/> + 用于描述 PCM 格式音频帧的相关参数。 + +
+

+ struct AudioPcmFrame { + OPTIONAL_ENUM_SIZE_T{ + kMaxDataSizeSamples = 3840, + kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t), + }; + int64_t capture_timestamp; + size_t samples_per_channel_; + int sample_rate_hz_; + size_t num_channels_; + int audio_track_number_; + rtc::BYTES_PER_SAMPLE bytes_per_sample; + int16_t data_[kMaxDataSizeSamples]; + bool is_stereo_; +}; +

+
+
+ 属性 + + + capture_timestamp + 音频帧的时间戳(单位:毫秒)。 + + + samples_per_channel_ + 每个声道的采样点数量。 + + + sample_rate_hz_ + 音频采样率(单位:Hz)。 + + + num_channels_ + 音频的声道数。 + + + audio_track_number_ + 音频轨道编号。例如,当启用 enableMultiAudioTrack 时,音频帧将包含音频轨道编号,例如 0 或 1。 + + + bytes_per_sample + 每个采样点的字节数。 + + + data_ + 音频帧的原始数据。 + + + is_stereo_ + 是否为真实立体声数据: +
    +
  • data_ 中为真实的立体声数据。
  • +
  • data_ 中不是立体声数据。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audiorecordingconfiguration.dita b/dita/RTC-AIDOC/API/class_audiorecordingconfiguration.dita new file mode 100644 index 00000000000..38d02293624 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audiorecordingconfiguration.dita @@ -0,0 +1,227 @@ + + + + <ph keyref="AudioRecordingConfiguration"/> + 用于配置录音参数。录音参数配置。录音配置。录音配置。 + +
+

+ struct AudioRecordingConfiguration { + const char* filePath; + bool encode; + int sampleRate; + AUDIO_FILE_RECORDING_TYPE fileRecordingType; + AUDIO_RECORDING_QUALITY_TYPE quality; + int recordingChannel; +}; + public class AudioRecordingConfiguration { + public String filePath; + public int sampleRate; + public boolean codec; + public int fileRecordOption; + public int quality; + public int recordingChannel; +} + __attribute__((visibility("default"))) @interface AgoraAudioRecordingConfiguration: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property (assign, nonatomic) NSUInteger sampleRate; +@property (assign, nonatomic) AgoraAudioFileRecordingType fileRecordOption; +@property (assign, nonatomic) AgoraAudioRecordingQuality quality; +@property (assign, nonatomic) NSInteger recordingChannel; +@end + __attribute__((visibility("default"))) @interface AgoraAudioRecordingConfiguration: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property (assign, nonatomic) NSUInteger sampleRate; +@property (assign, nonatomic) AgoraAudioFileRecordingType fileRecordOption; +@property (assign, nonatomic) AgoraAudioRecordingQuality quality; +@property (assign, nonatomic) NSInteger recordingChannel; +@end +

+
+
+ 属性 + + + filePath + 录音文件的绝对路径(包含文件扩展名),例如:。 + 请确保日志文件目录存在且可写。 + + + + encode + 是否对音频数据进行编码: +
    +
  • :以 AAC 格式编码音频数据。
  • +
  • :不编码音频数据,直接保存录制的音频数据。
  • +
+
+
+ + sampleRate + + 如果将该参数设置为 44100 或 48000,声网建议录制 WAV 文件,或将 quality 设置为 AUDIO_RECORDING_QUALITY_MEDIUMAUDIO_RECORDING_QUALITY_HIGH 的 AAC 文件,以获得更好的录音质量。录音采样率(Hz): +
    +
  • 16000
  • +
  • 32000(默认)
  • +
  • 44100
  • +
  • 48000
  • +
+
+
+ + fileRecordingType + 录音内容类型,详见 + + + quality + 录音质量,详见 。 + 该参数仅适用于 AAC 文件。 + + + + recordingChannel + + 实际录制的音频声道与采集的音频声道有关: +
    +
  • 如果采集的是单声道,且 recordingChannel 为 2,则录制的音频是从单声道复制的双声道数据,不是立体声。
  • +
  • 如果采集的是双声道,且 recordingChannel 为 1,则录制的音频是由双声道混合而成的单声道数据。
  • +
集成方案也会影响最终录制的音频声道。如果需要录制立体声,请[联系技术支持](https://ticket.shengwang.cn/)。
录音的音频声道数,支持以下取值: +
    +
  • 1:单声道(默认)。
  • +
  • 2:立体声。
  • +
+
+
+ + filePath + 录音文件的绝对路径(包括文件扩展名)。例如:。 + 确保日志文件目录存在且可写。 + + + + sampleRate + 录音采样率(Hz)。支持以下数值:16000、(默认)32000、44100、48000。 + 如果将该参数设置为 44100 或 48000,声网建议录制 WAV 文件,或将 quality 设置为 AUDIO_RECORDING_QUALITY_MEDIUMAUDIO_RECORDING_QUALITY_HIGH 的 AAC 文件,以获得更好的录音质量。 + + + + codec + 是否对音频数据进行编码: +
    +
  • :将音频数据编码为 AAC 格式。
  • +
  • :(默认)不编码,直接保存录音数据。
  • +
+
+
+ + fileRecordOption + 录制内容选项: +
    +
  • AUDIO_FILE_RECORDING_MIC (1):仅录制本地用户的音频。
  • +
  • AUDIO_FILE_RECORDING_PLAYBACK (2):仅录制所有远端用户的音频。
  • +
  • AUDIO_FILE_RECORDING_MIXED (3):(默认)录制本地和所有远端用户的混音音频。
  • +
+
+
+ + quality + + 该参数仅适用于 AAC 文件。录音音质等级: +
    +
  • AUDIO_RECORDING_QUALITY_LOW (0):低音质。例如采样率为 32000 Hz、录制 10 分钟的 AAC 文件大小约为 1.2 MB。
  • +
  • AUDIO_RECORDING_QUALITY_MEDIUM (1):(默认)中等音质,文件大小约为 2 MB。
  • +
  • AUDIO_RECORDING_QUALITY_HIGH (2):高音质,文件大小约为 3.75 MB。
  • +
  • AUDIO_RECORDING_QUALITY_ULTRA_HIGH (3):超高音质,采样率为 32 kHz,录制 10 分钟后的文件大小约为 7.5 MB。
  • +
+
+
+ + recordingChannel + + 实际录制的音频声道与采集的音频声道有关。 +
    +
  • 如果采集的是单声道,recordingChannel2,则录制数据为从单声道复制的双声道数据,而非真正的立体声。
  • +
  • 如果采集的是双声道,recordingChannel1,则录制数据为将双声道混合后的单声道。
  • +
集成方案也会影响最终录制的音频声道。如需立体声录制,请[联系技术支持](https://ticket.shengwang.cn/)。
录音的音频声道数,支持以下取值: +
    +
  • 1:(默认)单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + filePath + 录音文件的绝对路径(包括文件扩展名)。例如:。 + 请确保日志文件目录存在且可写。 + + + + sampleRate + 录音采样率(Hz)。支持以下取值:16000、32000(默认)、44100、48000。 + 如果将该参数设置为 44100 或 48000,声网建议录制 WAV 文件,或录制 quality 设置为 AgoraAudioRecordingQualityMediumAgoraAudioRecordingQualityHigh 的 AAC 文件,以获得更好的录音质量。 + + + + fileRecordOption + 录音内容。详见 + + + quality + 录音质量。详见 。 + 该参数仅适用于 AAC 文件。 + + + + recordingChannel + + 实际录制的音频声道与采集的音频声道有关: +
    +
  • 如果采集的是单声道,且 recordingChannel 为 2,则录制的音频是从单声道复制的双声道数据,而非真正的立体声;
  • +
  • 如果采集的是双声道,且 recordingChannel 为 1,则录制的音频是由双声道混合而成的单声道数据。
  • +
集成方案也会影响最终录制的音频声道。如果需要录制立体声,请[联系技术支持](https://ticket.shengwang.cn/)。
录音的音频声道数。支持以下取值: +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + filePath + 录音文件的绝对路径(包括文件扩展名)。例如:。 + 请确保日志文件目录存在且可写。 + + + + sampleRate + 录音采样率(Hz)。支持以下取值:16000、32000(默认)、44100、48000。 + 如果将该参数设置为 44100 或 48000,声网建议录制 WAV 文件,或录制 quality 设置为 AgoraAudioRecordingQualityMediumAgoraAudioRecordingQualityHigh 的 AAC 文件,以获得更好的录音质量。 + + + + fileRecordOption + 录音内容。详见 + + + quality + 录音质量。详见 。 + 该参数仅适用于 AAC 文件。 + + + + recordingChannel + + 实际录制的音频声道与采集的音频声道有关: +
    +
  • 如果采集的是单声道,且 recordingChannel 为 2,则录制的音频是从单声道复制的双声道数据,而非真正的立体声;
  • +
  • 如果采集的是双声道,且 recordingChannel 为 1,则录制的音频是由双声道混合而成的单声道数据。
  • +
集成方案也会影响最终录制的音频声道。如果需要录制立体声,请[联系技术支持](https://ticket.shengwang.cn/)。
录音的音频声道数。支持以下取值: +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audiospectrumdata.dita b/dita/RTC-AIDOC/API/class_audiospectrumdata.dita new file mode 100644 index 00000000000..d48838d7d95 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audiospectrumdata.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="AudioSpectrumData"/> + 表示音频频谱数据。用于获取音频频谱数据。 + +
+

+ struct AudioSpectrumData { + const float* audioSpectrumData; + int dataLength; +}; + public class AudioSpectrumInfo { + private float[] audioSpectrumData; + private int dataLength; +} +

+
+
+ 属性 + + + audioSpectrumData + 音频频谱数据。声网将音频频率划分为 256 个频域,并通过该参数上报每个频域的能量值。每个能量值的取值范围为 [-300, 1],单位为 dBFS。 + + + dataLength + 音频频谱数据的长度为 256。 + + + audioSpectrumData + 音频频谱数据。声网将音频频率划分为 256 个频率域,并通过该参数报告每个频率域的能量值。每个能量值的取值范围为 [-300, 1],单位为 dBFS。 + + + dataLength + 音频频谱数据的长度,固定为 256。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audiotrackconfig.dita b/dita/RTC-AIDOC/API/class_audiotrackconfig.dita new file mode 100644 index 00000000000..3ac3c668db8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audiotrackconfig.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="AudioTrackConfig"/> + 用于配置自定义音频轨道参数。用于配置自定义音频轨道。用于配置自定义音频轨道。用于配置自定义音频轨道。 + +
+

+ struct AudioTrackConfig { + bool enableLocalPlayback; + bool enableAudioProcessing; +}; + public class AudioTrackConfig { + public boolean enableLocalPlayback; + public boolean enableAudioProcessing; +} + NS_SWIFT_NAME(AgoraAudioTrackConfig) __attribute__((visibility("default"))) @interface AgoraAudioTrackConfig : NSObject +@property (assign, nonatomic) BOOL enableLocalPlayback NS_SWIFT_NAME(enableLocalPlayback); +@property (assign, nonatomic) BOOL enableAudioProcessing NS_SWIFT_NAME(enableAudioProcessing); +@end + NS_SWIFT_NAME(AgoraAudioTrackConfig) __attribute__((visibility("default"))) @interface AgoraAudioTrackConfig : NSObject +@property (assign, nonatomic) BOOL enableLocalPlayback NS_SWIFT_NAME(enableLocalPlayback); +@property (assign, nonatomic) BOOL enableAudioProcessing NS_SWIFT_NAME(enableAudioProcessing); +@end +

+
+
+ 属性 + + + enableLocalPlayback + 是否启用本地音频播放设备: +
    +
  • :(默认)启用本地音频播放设备。
  • +
  • :不启用本地音频播放设备。
  • +
+
+
+ + enableAudioProcessing + + 该参数仅在自定义音频采集中的 AUDIO_TRACK_DIRECT 模式下生效。是否启用音频处理模块: +
    +
  • :启用音频处理模块,应用回声消除(AEC)、噪声抑制(ANS)和自动增益控制(AGC)效果。
  • +
  • :(默认)不启用音频处理模块。
  • +
+
+
+ + enableLocalPlayback + 是否启用本地音频播放设备: +
    +
  • :(默认)启用本地音频播放设备。
  • +
  • :不启用本地音频播放设备。
  • +
+
+
+ + enableAudioProcessing + + 该参数仅对自定义音频采集中的 AUDIO_TRACK_DIRECT 类型生效。是否启用音频处理模块: +
    +
  • :启用音频处理模块,应用回声消除(AEC)、噪声抑制(ANS)和自动增益控制(AGC)效果。
  • +
  • :(默认)不启用音频处理模块。
  • +
+
+
+ + enableLocalPlayback + 是否启用本地音频播放设备: +
    +
  • :(默认)启用本地音频播放设备。
  • +
  • :不启用本地音频播放设备。
  • +
+
+
+ + enableAudioProcessing + + 该参数仅在自定义音频采集中使用 AgoraAudioTrackTypeDirect 时生效。是否启用音频处理模块: +
    +
  • :启用音频处理模块,以应用回声消除(AEC)、噪声抑制(ANS)和自动增益控制(AGC)效果。
  • +
  • :(默认)不启用音频处理模块。
  • +
+
+
+ + enableLocalPlayback + 是否启用本地音频播放设备: +
    +
  • :(默认)启用本地音频播放设备。
  • +
  • :不启用本地音频播放设备。
  • +
+
+
+ + enableAudioProcessing + + 该参数仅在自定义音频采集中使用 AgoraAudioTrackTypeDirect 时生效。是否启用音频处理模块: +
    +
  • :启用音频处理模块,以应用回声消除(AEC)、噪声抑制(ANS)和自动增益控制(AGC)效果。
  • +
  • :(默认)不启用音频处理模块。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_audiovolumeinfo.dita b/dita/RTC-AIDOC/API/class_audiovolumeinfo.dita new file mode 100644 index 00000000000..8ff6a8a9f34 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_audiovolumeinfo.dita @@ -0,0 +1,186 @@ + + + + <ph keyref="AudioVolumeInfo"/> + 用于获取用户音量信息。表示用户的音量信息。用户音量信息。用户音量信息。 + +
+

+ struct AudioVolumeInfo { + uid_t uid; + unsigned int volume; + unsigned int vad; + double voicePitch; +}; + public static class AudioVolumeInfo { + public int uid; + public int volume; + public int vad; + public double voicePitch; +} + __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 + __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 为瞬时音量最大的远端用户的用户 ID。
  • +
+
+
+ + volume + 用户的音量,取值范围为 0(最低音量)到 255(最高音量)。 +
    +
  • 如果本地用户开启了音频采集并调用 进行静音,则该值表示本地采集的音频信号音量。
  • +
  • 如果用户调用了 startAudioMixing,则该值表示混音后的音量。
  • +
+
+
+ + vad + + +
    +
  • vad 参数不会报告远端用户的语音活动状态。在远端用户的回调中,该值始终为 1。
  • +
  • 若要使用该参数,调用 时必须将 reportVad 设置为
  • +
+
本地用户的语音活动状态。 +
    +
  • 0:本地用户未说话。
  • +
  • 1:本地用户正在说话。
  • +
+
+
+ + voicePitch + 本地用户的语音音高,取值范围为 0.0 到 4000.0。 + voicePitch 参数不会报告远端用户的语音音高。在远端用户的回调中,该值始终为 0.0。 + + + + uid + 用户 ID。 +
    +
  • 在本地用户的回调中,uid 为 0。
  • +
  • 在远端用户的回调中,uid 为瞬时音量最大的远端用户 ID。
  • +
+
+
+ + volume + 用户的音量,取值范围为 0(最低)到 255(最高)。如果本地用户开启了音频采集并调用 进行静音,则该值表示本地采集音频信号的音量值。调用 startAudioMixing 后,该值表示混音后的音量值。 + + + vad + + +
    +
  • vad 参数不会上报远端用户的语音活动状态。在远端用户的回调中,该值始终为 1。
  • +
  • 使用该参数时,必须在调用 时将 reportVad 设置为
  • +
+
本地用户的语音活动状态: +
    +
  • 0:未说话;
  • +
  • 1:正在说话。
  • +
+
+
+ + voicePitch + 本地用户的语音音高,取值范围为 0.0 到 4000.0。 + voicePitch 参数不会上报远端用户的语音音高。在远端用户回调中,该值始终为 0.0。 + + + + uid + 用户 ID。 +
    +
  • 在本地用户的回调中,uid 为 0。
  • +
  • 在远端用户的回调中,uid 为音量瞬时值最大的远端用户的用户 ID。
  • +
+
+
+ + volume + 用户的音量,取值范围为 0(最低)到 255(最高)。如果本地用户开启了音频采集并调用 muteLocalAudioStream 设置为 以静音,则该值表示本地采集的音频信号的音量。如果用户调用了 startAudioMixing,则该值表示混音后的音量。 + + + vad + + +
    +
  • vad 参数不会报告远端用户的语音活动状态。在远端用户的回调中,该值始终为 1。
  • +
  • 若要使用该参数,调用 enableAudioVolumeIndication 时需将 reportVad 设置为
  • +
+
本地用户的语音活动状态。 +
    +
  • 0:本地用户未说话。
  • +
  • 1:本地用户正在说话。
  • +
+
+
+ + voicePitch + 本地用户的音高,取值范围为 0.0 到 4000.0。 + voicePitch 参数不会报告远端用户的音高。在远端用户的回调中,该值始终为 0.0。 + + + + uid + 用户 ID。 +
    +
  • 在本地用户的回调中,uid 为 0。
  • +
  • 在远端用户的回调中,uid 为音量瞬时值最大的远端用户的用户 ID。
  • +
+
+
+ + volume + 用户的音量,取值范围为 0(最低)到 255(最高)。如果本地用户开启了音频采集并调用 muteLocalAudioStream 设置为 以静音,则该值表示本地采集的音频信号的音量。如果用户调用了 startAudioMixing,则该值表示混音后的音量。 + + + vad + + +
    +
  • vad 参数不会报告远端用户的语音活动状态。在远端用户的回调中,该值始终为 1。
  • +
  • 若要使用该参数,调用 enableAudioVolumeIndication 时需将 reportVad 设置为
  • +
+
本地用户的语音活动状态。 +
    +
  • 0:本地用户未说话。
  • +
  • 1:本地用户正在说话。
  • +
+
+
+ + voicePitch + 本地用户的音高,取值范围为 0.0 到 4000.0。 + voicePitch 参数不会报告远端用户的音高。在远端用户的回调中,该值始终为 0.0。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_beautyoptions.dita b/dita/RTC-AIDOC/API/class_beautyoptions.dita new file mode 100644 index 00000000000..fa68e1482d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_beautyoptions.dita @@ -0,0 +1,146 @@ + + + + <ph keyref="BeautyOptions"/> + 图像增强设置参数。图像增强选项设置。图像增强选项。图像增强选项。 + +
+

+ struct BeautyOptions { + LIGHTENING_CONTRAST_LEVEL lighteningContrastLevel; + float lighteningLevel; + float smoothnessLevel; + float rednessLevel; + float sharpnessLevel; +}; + public class BeautyOptions { + public static final int LIGHTENING_CONTRAST_LOW = 0; + public static final int LIGHTENING_CONTRAST_NORMAL = 1; + public static final int LIGHTENING_CONTRAST_HIGH = 2; + public int lighteningContrastLevel; + public float lighteningLevel; + public float smoothnessLevel; + public float rednessLevel; + public float sharpnessLevel; +} + __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 + __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 参数配合使用。值越大,明暗对比越强。详见 + + + lighteningLevel + 美白等级,取值范围为 [0.0, 1.0]。0.0 表示原始亮度,默认值为 0.0。值越大,美白程度越高。 + + + smoothnessLevel + 磨皮等级,取值范围为 [0.0, 1.0]。0.0 表示原始平滑度,默认值为 0.0。值越大,磨皮程度越高。 + + + rednessLevel + 红润等级,取值范围为 [0.0, 1.0]。0.0 表示原始红润度,默认值为 0.0。值越大,红润程度越高。 + + + sharpnessLevel + 锐化等级,取值范围为 [0.0, 1.0]。0.0 表示原始锐度,默认值为 0.0。值越大,锐化程度越高。 + + + LIGHTENING_CONTRAST_LOW + (0):用于亮肤的低对比度。 + + + LIGHTENING_CONTRAST_NORMAL + (1):用于亮肤的标准对比度。 + + + LIGHTENING_CONTRAST_HIGH + (2):用于亮肤的高对比度。 + + + lighteningContrastLevel + lighteningLevel 参数配合使用,用于设置亮度对比度等级。值越大,明暗对比度越高。可选取值如下: +
    +
  • LIGHTENING_CONTRAST_LOW(0):低对比度。
  • +
  • LIGHTENING_CONTRAST_NORMAL(1):标准对比度。
  • +
  • LIGHTENING_CONTRAST_HIGH(2):高对比度。
  • +
+
+
+ + lighteningLevel + 亮肤等级,取值范围为 [0.0, 1.0],其中 0.0 表示原始亮度。默认值为 0.6。数值越大,亮肤效果越明显。 + + + smoothnessLevel + 磨皮等级,取值范围为 [0.0, 1.0],其中 0.0 表示原始光滑度。默认值为 0.5。数值越大,磨皮效果越强。 + + + rednessLevel + 红润等级,取值范围为 [0.0, 1.0],其中 0.0 表示原始红润程度。默认值为 0.1。数值越大,红润效果越明显。 + + + sharpnessLevel + 锐化等级,取值范围为 [0.0, 1.0],其中 0.0 表示原始锐度。默认值为 0.3。数值越大,图像越清晰。 + + + lighteningContrastLevel + 对比度等级,与 lighteningLevel 参数配合使用。值越大,明暗对比越强。详见 + + + lighteningLevel + 美白等级,取值范围为 [0.0, 1.0]。0.0 表示原始亮度,默认值为 0.7。值越大,美白程度越高。 + + + smoothnessLevel + 磨皮等级,取值范围为 [0.0, 1.0]。0.0 表示原始平滑度,默认值为 0.5。值越大,磨皮程度越高。 + + + rednessLevel + 红润等级,取值范围为 [0.0, 1.0]。0.0 表示原始红润度,默认值为 0.1。值越大,红润程度越高。 + + + sharpnessLevel + 锐化等级,取值范围为 [0.0, 1.0]。0.0 表示原始锐度,默认值为 0.1。值越大,锐化程度越高。 + + + lighteningContrastLevel + 对比度等级,与 lighteningLevel 参数配合使用。值越大,明暗对比越强。详见 + + + lighteningLevel + 美白等级,取值范围为 [0.0, 1.0]。0.0 表示原始亮度,默认值为 0.7。值越大,美白程度越高。 + + + smoothnessLevel + 磨皮等级,取值范围为 [0.0, 1.0]。0.0 表示原始平滑度,默认值为 0.5。值越大,磨皮程度越高。 + + + rednessLevel + 红润等级,取值范围为 [0.0, 1.0]。0.0 表示原始红润度,默认值为 0.1。值越大,红润程度越高。 + + + sharpnessLevel + 锐化等级,取值范围为 [0.0, 1.0]。0.0 表示原始锐度,默认值为 0.1。值越大,锐化程度越高。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_cachestatistics.dita b/dita/RTC-AIDOC/API/class_cachestatistics.dita new file mode 100644 index 00000000000..3144036f28a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_cachestatistics.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="CacheStatistics"/> + 用于统计缓存的媒体文件信息。用于统计被缓存媒体文件的相关信息。用于统计缓存媒体文件的信息。用于统计缓存媒体文件的信息。 + +
+

+ struct CacheStatistics { + int64_t fileSize; + int64_t cacheSize; + int64_t downloadSize; +}; + public class CacheStatistics { + private long fileSize; + private long cacheSize; + private long downloadSize; +} + __attribute__((visibility("default"))) @interface AgoraMediaPlayerCacheStatistics : NSObject +@property(assign, nonatomic) NSInteger fileSize; +@property(assign, nonatomic) NSInteger cacheSize; +@property(assign, nonatomic) NSInteger downloadSize; +@end + __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 + 已下载的媒体文件大小,单位为字节。 + + + fileSize + 正在播放的媒体文件大小,单位为字节。 + + + cacheSize + 待缓存的媒体文件大小,单位为字节。 + + + downloadSize + 已下载的媒体文件大小,单位为字节。 + + + fileSize + 正在播放的媒体文件的大小,单位为字节。 + + + cacheSize + 希望缓存的媒体文件的大小,单位为字节。 + + + downloadSize + 已下载的媒体文件的大小,单位为字节。 + + + fileSize + 正在播放的媒体文件的大小,单位为字节。 + + + cacheSize + 希望缓存的媒体文件的大小,单位为字节。 + + + downloadSize + 已下载的媒体文件的大小,单位为字节。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_cameracapturerconfiguration.dita b/dita/RTC-AIDOC/API/class_cameracapturerconfiguration.dita new file mode 100644 index 00000000000..2aa2713a630 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_cameracapturerconfiguration.dita @@ -0,0 +1,215 @@ + + + + <ph keyref="CameraCapturerConfiguration"/> + 配置摄像头采集偏好。用于设置摄像头采集偏好。设置摄像头采集偏好。设置摄像头采集偏好。 + +
+

+ struct CameraCapturerConfiguration { +#if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__) + Optional<CAMERA_DIRECTION> cameraDirection; + Optional<CAMERA_FOCAL_LENGTH_TYPE> cameraFocalLengthType; +#else + Optional<const char *> deviceId; +#endif +#if defined(__ANDROID__) + Optional<const char *> cameraId; +#endif + Optional<bool> followEncodeDimensionRatio; + VideoFormat format; +}; + public class CameraCapturerConfiguration { + public CAMERA_DIRECTION cameraDirection = null; + public String cameraId = null; + public CAMERA_FOCAL_LENGTH_TYPE cameraFocalLengthType = null; + public CaptureFormat captureFormat; + public Boolean followEncodeDimensionRatio = null; +} + __attribute__((visibility("default"))) @interface AgoraCameraCapturerConfiguration: NSObject +#if TARGET_OS_IOS +@property (assign, nonatomic) AgoraCameraDirection cameraDirection; +@property(assign, nonatomic) AgoraFocalLength cameraFocalLengthType; +#elif TARGET_OS_MAC +@property (copy, nonatomic) NSString * _Nullable deviceId; +#endif +@property(assign, nonatomic) CGSize dimensions; +@property(assign, nonatomic) int frameRate; +@property(assign, nonatomic) BOOL followEncodeDimensionRatio; +@end + __attribute__((visibility("default"))) @interface AgoraCameraCapturerConfiguration: NSObject +#if TARGET_OS_IOS +@property (assign, nonatomic) AgoraCameraDirection cameraDirection; +@property(assign, nonatomic) AgoraFocalLength cameraFocalLengthType; +#elif TARGET_OS_MAC +@property (copy, nonatomic) NSString * _Nullable deviceId; +#endif +@property(assign, nonatomic) CGSize dimensions; +@property(assign, nonatomic) int frameRate; +@property(assign, nonatomic) BOOL followEncodeDimensionRatio; +@end +

+
+
+ 属性 + + + cameraDirection + (可选)摄像头方向,详见 。 + 该参数仅适用于 Android 和 iOS 平台。 + + + + cameraFocalLengthType + (可选)摄像头焦距类型,详见 。 + 该参数仅适用于 Android 和 iOS 平台。 +
    +
  • 设置摄像头焦距类型时,仅支持通过 cameraDirection 指定摄像头,不支持通过 cameraId 指定。
  • +
  • 对于配备多镜头后置摄像头的 iOS 设备(如双摄:广角和超广角,或三摄:广角、超广角和长焦),可通过以下方式实现超广角视角的视频采集: +
      +
    • 方法一:将该参数设置为 CAMERA_FOCAL_LENGTH_ULTRA_WIDE(2)(超广角镜头)。
    • +
    • 方法二:将该参数设置为 CAMERA_FOCAL_LENGTH_DEFAULT(0)(标准镜头),然后调用 将摄像头变焦因子设置为小于 1.0 的值,最小为 0.5。
    • +
    +
  • +
两种方法的区别在于,方法一的超广角尺寸不可调节,而方法二支持自由调节变焦因子。
+
+
+ + deviceId + 摄像头 ID,最大长度为 。 + 该参数仅适用于 Windows 和 macOS 平台。 + + + + cameraId + (可选)摄像头 ID。 + 该参数仅适用于 Android 平台。 +
    +
  • 该参数与 cameraDirection 互斥,二者只能选其一。
  • +
  • 使用 cameraDirection 指定摄像头更为简便,仅需指定摄像头方向(前置或后置),SDK 会通过 Android 原生 API 获取并确认实际摄像头 ID。
  • +
  • 使用 cameraId 可更精确地指定某个摄像头,适用于多摄像头设备中 cameraDirection 无法识别或访问所有摄像头的场景,建议直接使用 cameraId 指定目标摄像头。
  • +
+
+
+
+ + followEncodeDimensionRatio + (可选)是否遵循 中设置的视频宽高比: +
    +
  • :(默认)遵循设置的视频宽高比。SDK 会根据设置的视频宽高比裁剪采集的视频,并同步更新本地预览画面以及 中的视频帧。
  • +
  • :不遵循设置的视频宽高比。SDK 不会更改采集视频帧的宽高比。
  • +
+
+
+ + format + (可选)视频帧的格式,详见 + + + cameraDirection + (可选)摄像头朝向。详见 + + + cameraId + (可选)摄像头 ID,默认值为前置摄像头的 ID。你可以通过 Android 原生系统 API 获取 camera ID。 + 此参数与 cameraDirection 在摄像头选择上互斥,你可以根据需要选择其中一个。 +
    +
  • 通过 cameraDirection 指定摄像头更加便捷。你只需指定摄像头朝向(前置或后置),不需要显式指定 camera ID;SDK 会通过 Android 原生 API 获取并确认实际的 camera ID。
  • +
  • 通过 cameraId 指定摄像头可以更精确定位某个摄像头。对于拥有多个摄像头的设备,当 cameraDirection 无法识别或访问全部摄像头时,建议使用 cameraId 明确指定所需的摄像头 ID。
  • +
+
+
+
+ + cameraFocalLengthType + (可选)摄像头焦距类型。详见 。 + 要设置摄像头焦距类型,仅支持通过 cameraDirection 来指定摄像头,不支持通过 cameraId 指定。 + + + + captureFormat + (可选)视频帧的格式。详见 + + + followEncodeDimensionRatio + (可选)是否遵循 中设置的视频宽高比。 +
    +
  • :(默认)遵循设置的视频宽高比。SDK 会根据设置的视频比例裁剪采集视频,并同步修改本地预览画面,以及 中的视频帧。
  • +
  • :不遵循设置的视频宽高比。SDK 不会修改采集的视频帧宽高比。
  • +
+
+
+ + cameraDirection + 摄像头方向,仅适用于 iOS。详见 + + + cameraFocalLengthType + 摄像头焦距类型,仅适用于 iOS。详见 。 + 对于配备多镜头后置摄像头的 iOS 设备(如双摄像头:广角和超广角,或三摄像头:广角、超广角和长焦),你可以使用以下任一方式以超广角视角采集视频: +
    +
  • 方法一:将该参数设置为 AgoraFocalLengthUltraWide(2)(超广角镜头)。
  • +
  • 方法二:将该参数设置为 AgoraFocalLengthDefault(0)(标准镜头),然后调用 将摄像头的缩放因子设置为小于 1.0 的值,最小值为 0.5。
  • +
两种方法的区别在于,方法一的超广角尺寸不可调节,而方法二支持自由调节摄像头的缩放因子。
+
+
+ + deviceId + 摄像头设备 ID,仅适用于 macOS。 + + + dimensions + 视频帧的尺寸(单位:像素)。默认值为 960 × 540。 + + + frameRate + 视频帧的帧率(单位:fps)。默认值为 15。 + + + followEncodeDimensionRatio + 是否遵循通过 setVideoEncoderConfiguration 设置的视频宽高比。 +
    +
  • :(默认)遵循设置的视频宽高比。SDK 会根据设置的视频宽高比裁剪采集的视频,并同步更新本地预览画面以及 onCaptureVideoFrameonPreEncodeVideoFrame 中的视频帧。
  • +
  • :不遵循设置的视频宽高比。SDK 不会更改采集视频帧的宽高比。
  • +
+
+
+ + cameraDirection + 摄像头方向,仅适用于 iOS。详见 AgoraCameraDirection + + + cameraFocalLengthType + 摄像头焦距类型,仅适用于 iOS。详见 AgoraFocalLength。 + 对于配备多镜头后置摄像头的 iOS 设备(如双摄像头:广角和超广角,或三摄像头:广角、超广角和长焦),你可以使用以下任一方式以超广角视角采集视频: +
    +
  • 方法一:将该参数设置为 AgoraFocalLengthUltraWide(2)(超广角镜头)。
  • +
  • 方法二:将该参数设置为 AgoraFocalLengthDefault(0)(标准镜头),然后调用 setCameraZoomFactor: 将摄像头的缩放因子设置为小于 1.0 的值,最小值为 0.5。
  • +
两种方法的区别在于,方法一的超广角尺寸不可调节,而方法二支持自由调节摄像头的缩放因子。
+
+
+ + deviceId + 摄像头设备 ID,仅适用于 macOS。 + + + dimensions + 视频帧的尺寸(单位:像素)。默认值为 960 × 540。 + + + frameRate + 视频帧的帧率(单位:fps)。默认值为 15。 + + + followEncodeDimensionRatio + 是否遵循通过 setVideoEncoderConfiguration 设置的视频宽高比。 +
    +
  • :(默认)遵循设置的视频宽高比。SDK 会根据设置的视频宽高比裁剪采集的视频,并同步更新本地预览画面以及 onCaptureVideoFrameonPreEncodeVideoFrame 中的视频帧。
  • +
  • :不遵循设置的视频宽高比。SDK 不会更改采集视频帧的宽高比。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_canvas.dita b/dita/RTC-AIDOC/API/class_canvas.dita new file mode 100644 index 00000000000..e05e1798a83 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_canvas.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="Canvas"/> + 类用于渲染视频流。用于设置视频渲染视图。用于设置视频渲染视图。用于设置视频渲染视图。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_canvasconfig.dita b/dita/RTC-AIDOC/API/class_canvasconfig.dita new file mode 100644 index 00000000000..f894baaae1c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_canvasconfig.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="CanvasConfig"/> + 用于配置播放器的视频渲染参数。用于配置播放器的视频渲染。 用于配置播放器的视频渲染。 用于配置播放器的视频渲染。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_channelmediainfo.dita b/dita/RTC-AIDOC/API/class_channelmediainfo.dita new file mode 100644 index 00000000000..99648dffb89 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_channelmediainfo.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="ChannelMediaInfo"/> + 频道的媒体信息。用于设置加入频道的媒体信息。:频道媒体信息。:频道媒体信息。 + +
+

+ struct ChannelMediaInfo { + uid_t uid; + const char* channelName; + const char* token; +}; + public class ChannelMediaInfo { + public String channelName = null; + public String token = null; + public int uid = 0; +} + __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayInfo: NSObject +@property (copy, nonatomic) NSString * _Nullable token; +@property (copy, nonatomic) NSString * _Nullable channelName; +@property (assign, nonatomic) NSUInteger uid; +@end + __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayInfo: NSObject +@property (copy, nonatomic) NSString * _Nullable token; +@property (copy, nonatomic) NSString * _Nullable channelName; +@property (assign, nonatomic) NSUInteger uid; +@end +

+
+
+ 属性 + + + uid + 用户 ID。 + + + channelName + 频道名。 + + + token + 用于用户加入频道的 Token。 + + + channelName + 频道名。 + + + token + 用于用户加入频道的 Token。 + + + uid + 用户 ID。 + + + token + 用于用户加入频道的临时 Token。 + + + channelName + 频道名。 + + + uid + 用户 ID。 + + + token + 用于用户加入频道的临时 Token。 + + + channelName + 频道名。 + + + uid + 用户 ID。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_channelmediaoptions.dita b/dita/RTC-AIDOC/API/class_channelmediaoptions.dita new file mode 100644 index 00000000000..b51eb905a6a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_channelmediaoptions.dita @@ -0,0 +1,1509 @@ + + + + <ph keyref="ChannelMediaOptions"/> + 用于设置频道媒体选项。配置频道中的媒体发布和订阅选项。频道媒体选项。频道媒体选项。 + +
+

+ struct ChannelMediaOptions { + Optional<bool> publishCameraTrack; + Optional<bool> publishSecondaryCameraTrack; + Optional<bool> publishThirdCameraTrack; + Optional<bool> publishFourthCameraTrack; + Optional<bool> publishMicrophoneTrack; +#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__) + Optional<bool> publishScreenCaptureVideo; + Optional<bool> publishScreenCaptureAudio; +#else + Optional<bool> publishScreenTrack; + Optional<bool> publishSecondaryScreenTrack; + Optional<bool> publishThirdScreenTrack; + Optional<bool> publishFourthScreenTrack; +#endif + Optional<bool> publishCustomAudioTrack; + Optional<int> publishCustomAudioTrackId; + Optional<bool> publishCustomVideoTrack; + Optional<bool> publishEncodedVideoTrack; + Optional<bool> publishMediaPlayerAudioTrack; + Optional<bool> publishMediaPlayerVideoTrack; + Optional<bool> publishTranscodedVideoTrack; + Optional<bool> publishMixedAudioTrack; + Optional<bool> publishLipSyncTrack; + Optional<bool> autoSubscribeAudio; + Optional<bool> autoSubscribeVideo; + Optional<bool> enableAudioRecordingOrPlayout; + Optional<int> publishMediaPlayerId; + Optional<CLIENT_ROLE_TYPE> clientRoleType; + Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel; + Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType; + Optional<CHANNEL_PROFILE_TYPE> channelProfile; + Optional<int> audioDelayMs; + Optional<int> mediaPlayerAudioDelayMs; + Optional<const char*> token; + Optional<bool> enableBuiltInMediaEncryption; + Optional<bool> publishRhythmPlayerTrack; + Optional<bool> isInteractiveAudience; + Optional<video_track_id_t> customVideoTrackId; + Optional<bool> isAudioFilterable; + Optional<const char*> parameters; + Optional<bool> enableMultipath; + Optional<MultipathMode> uplinkMultipathMode; + Optional<MultipathMode> downlinkMultipathMode; + Optional<MultipathType> preferMultipathType; +}; + public class ChannelMediaOptions { + public Boolean publishCameraTrack; + public Boolean publishSecondaryCameraTrack; + public Boolean publishThirdCameraTrack; + public Boolean publishFourthCameraTrack; + public Boolean publishMicrophoneTrack; + public Boolean publishScreenCaptureVideo; + public Boolean publishScreenCaptureAudio; + public Boolean publishCustomAudioTrack; + public Integer publishCustomAudioTrackId; + public Boolean publishCustomVideoTrack; + public Boolean publishEncodedVideoTrack; + public Boolean publishMediaPlayerAudioTrack; + public Boolean publishMediaPlayerVideoTrack; + public Boolean publishTranscodedVideoTrack; + public Boolean publishMixedAudioTrack; + public Boolean publishLipSyncTrack; + public Boolean autoSubscribeAudio; + public Boolean autoSubscribeVideo; + public Boolean enableAudioRecordingOrPlayout; + public Integer publishMediaPlayerId; + public Integer clientRoleType; + public Integer audienceLatencyLevel; + public Integer defaultVideoStreamType; + public Integer channelProfile; + public Integer audioDelayMs; + public Integer mediaPlayerAudioDelayMs; + public String token; + public Boolean enableBuiltInMediaEncryption; + public Boolean publishRhythmPlayerTrack; + public Boolean isInteractiveAudience; + public Integer customVideoTrackId; + public Boolean isAudioFilterable; + public Boolean startPreview; + public String parameters; + public Boolean enableMultipath; + public Integer uplinkMultipathMode; + public Integer downlinkMultipathMode; + public Integer preferMultipathType; +} + @interface AgoraRtcChannelMediaOptions : NSObject +@property(assign, nonatomic) BOOL publishCameraTrack; +@property(assign, nonatomic) BOOL publishSecondaryCameraTrack; +@property(assign, nonatomic) BOOL publishMicrophoneTrack; +@property(assign, nonatomic) BOOL publishScreenCaptureVideo; +@property(assign, nonatomic) BOOL publishScreenCaptureAudio; +@property(assign, nonatomic) BOOL publishThirdCameraTrack; +@property(assign, nonatomic) BOOL publishFourthCameraTrack; +@property(assign, nonatomic) BOOL publishScreenTrack; +@property(assign, nonatomic) BOOL publishSecondaryScreenTrack; +@property(assign, nonatomic) BOOL publishThirdScreenTrack; +@property(assign, nonatomic) BOOL publishFourthScreenTrack; +@property(assign, nonatomic) BOOL publishCustomAudioTrack; +@property(assign, nonatomic) NSInteger publishCustomAudioTrackId; +@property(assign, nonatomic) BOOL publishCustomVideoTrack; +@property(assign, nonatomic) BOOL publishEncodedVideoTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack; +@property(assign, nonatomic) BOOL publishTranscodedVideoTrack; +@property(assign, nonatomic) BOOL publishMixedAudioTrack; +@property(assign, nonatomic) BOOL publishLipSyncTrack; +@property(assign, nonatomic) BOOL autoSubscribeAudio; +@property(assign, nonatomic) BOOL autoSubscribeVideo; +@property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout; +@property(assign, nonatomic) NSInteger publishMediaPlayerId; +@property(assign, nonatomic) AgoraClientRole clientRoleType; +@property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; +@property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType; +@property(assign, nonatomic) AgoraChannelProfile channelProfile; +@property(assign, nonatomic) NSInteger audioDelayMs; +@property(assign, nonatomic) NSInteger mediaPlayerAudioDelayMs; +@property(copy, nonatomic) NSString * _Nullable token; +@property(assign, nonatomic) BOOL enableBuiltInMediaEncryption; +@property(assign, nonatomic) BOOL publishRhythmPlayerTrack; +@property(assign, nonatomic) BOOL isInteractiveAudience; +@property(assign, nonatomic) NSInteger customVideoTrackId; +@property(assign, nonatomic) BOOL isAudioFilterable; +@property(copy, nonatomic) NSString * _Nullable parameters; +@property(assign, nonatomic) BOOL enableMultipath; +@property(assign, nonatomic) AgoraMultipathMode uplinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathMode downlinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathType preferMultipathType; +@end + @interface AgoraRtcChannelMediaOptions : NSObject +@property(assign, nonatomic) BOOL publishCameraTrack; +@property(assign, nonatomic) BOOL publishSecondaryCameraTrack; +@property(assign, nonatomic) BOOL publishMicrophoneTrack; +@property(assign, nonatomic) BOOL publishScreenCaptureVideo; +@property(assign, nonatomic) BOOL publishScreenCaptureAudio; +@property(assign, nonatomic) BOOL publishThirdCameraTrack; +@property(assign, nonatomic) BOOL publishFourthCameraTrack; +@property(assign, nonatomic) BOOL publishScreenTrack; +@property(assign, nonatomic) BOOL publishSecondaryScreenTrack; +@property(assign, nonatomic) BOOL publishThirdScreenTrack; +@property(assign, nonatomic) BOOL publishFourthScreenTrack; +@property(assign, nonatomic) BOOL publishCustomAudioTrack; +@property(assign, nonatomic) NSInteger publishCustomAudioTrackId; +@property(assign, nonatomic) BOOL publishCustomVideoTrack; +@property(assign, nonatomic) BOOL publishEncodedVideoTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack; +@property(assign, nonatomic) BOOL publishTranscodedVideoTrack; +@property(assign, nonatomic) BOOL publishMixedAudioTrack; +@property(assign, nonatomic) BOOL publishLipSyncTrack; +@property(assign, nonatomic) BOOL autoSubscribeAudio; +@property(assign, nonatomic) BOOL autoSubscribeVideo; +@property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout; +@property(assign, nonatomic) NSInteger publishMediaPlayerId; +@property(assign, nonatomic) AgoraClientRole clientRoleType; +@property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; +@property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType; +@property(assign, nonatomic) AgoraChannelProfile channelProfile; +@property(assign, nonatomic) NSInteger audioDelayMs; +@property(assign, nonatomic) NSInteger mediaPlayerAudioDelayMs; +@property(copy, nonatomic) NSString * _Nullable token; +@property(assign, nonatomic) BOOL enableBuiltInMediaEncryption; +@property(assign, nonatomic) BOOL publishRhythmPlayerTrack; +@property(assign, nonatomic) BOOL isInteractiveAudience; +@property(assign, nonatomic) NSInteger customVideoTrackId; +@property(assign, nonatomic) BOOL isAudioFilterable; +@property(copy, nonatomic) NSString * _Nullable parameters; +@property(assign, nonatomic) BOOL enableMultipath; +@property(assign, nonatomic) AgoraMultipathMode uplinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathMode downlinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathType preferMultipathType; +@end +

+
+
+

支持在同一个 中同时发布多个音频流和一个视频流。例如,可以同时将 publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack 设置为 ,但 publishCameraTrackpublishScreenCaptureVideopublishScreenTrackpublishCustomVideoTrackpublishEncodedVideoTrack 中只能有一个设置为

+

支持在同一个 中同时发布多个音频流和一个视频流。例如,可以同时启用 publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack,但 publishCameraTrackpublishScreenCaptureVideopublishCustomVideoTrackpublishEncodedVideoTrack 中只能有一个设置为

+

支持在同一个 中同时发布多个音频流和一个视频流。例如,你可以同时将 publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack 设置为 ,但 publishCameraTrackpublishScreenCaptureVideo(iOS)/publishScreenTrack(macOS)、publishCustomVideoTrackpublishEncodedVideoTrack 中只能有一个设置为

+

支持在同一个 中同时发布多个音频流和一个视频流。例如,你可以同时将 publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack 设置为 ,但 publishCameraTrackpublishScreenCaptureVideo(iOS)/publishScreenTrack(macOS)、publishCustomVideoTrackpublishEncodedVideoTrack 中只能有一个设置为

+ 建议你根据业务场景自行设置成员参数的值,否则 SDK 会自动为其赋值。 + 建议你根据业务场景自行设置各成员参数值,否则 SDK 会自动分配默认值。 + 建议你根据业务场景自行设置各成员参数值,否则 SDK 会自动为其赋值。 + 建议你根据业务场景自行设置各成员参数值,否则 SDK 会自动为其赋值。 +
+
+ 属性 + + + publishCameraTrack + 是否发布摄像头采集的视频: +
    +
  • :发布摄像头采集的视频。
  • +
  • :不发布摄像头采集的视频。
  • +
+
+
+ + publishSecondaryCameraTrack + 是否发布第二路摄像头采集的视频: +
    +
  • :发布第二路摄像头采集的视频。
  • +
  • :不发布第二路摄像头采集的视频。
  • +
+
+
+ + publishThirdCameraTrack + + 该参数仅适用于 Android、Windows 和 macOS 平台。是否发布第三路摄像头采集的视频: +
    +
  • :发布第三路摄像头采集的视频。
  • +
  • :不发布第三路摄像头采集的视频。
  • +
+
+
+ + publishFourthCameraTrack + + 该参数仅适用于 Android、Windows 和 macOS 平台。是否发布第四路摄像头采集的视频: +
    +
  • :发布第四路摄像头采集的视频。
  • +
  • :不发布第四路摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 是否发布麦克风采集的音频: +
    +
  • :发布麦克风采集的音频。
  • +
  • :不发布麦克风采集的音频。
  • +
+
+
+ + publishScreenCaptureVideo + + 该参数仅适用于 Android 和 iOS 平台。是否发布屏幕采集的视频: +
    +
  • :发布屏幕采集的视频。
  • +
  • :不发布屏幕采集的视频。
  • +
+
+
+ + publishScreenCaptureAudio + + 该参数仅适用于 Android 和 iOS 平台。是否发布屏幕采集的音频: +
    +
  • :发布屏幕采集的音频。
  • +
  • :不发布屏幕采集的音频。
  • +
+
+
+ + publishScreenTrack + + 该参数仅适用于 Windows 和 macOS 平台。是否发布屏幕采集的视频: +
    +
  • :发布屏幕采集的视频。
  • +
  • :不发布屏幕采集的视频。
  • +
+
+
+ + publishSecondaryScreenTrack + 是否发布第二块屏幕采集的视频: +
    +
  • :发布第二块屏幕采集的视频。
  • +
  • :不发布第二块屏幕采集的视频。
  • +
+
+
+ + publishThirdScreenTrack + + 该参数仅适用于 Windows 和 macOS 平台。是否发布第三块屏幕采集的视频: +
    +
  • :发布第三块屏幕采集的视频。
  • +
  • :不发布第三块屏幕采集的视频。
  • +
+
+
+ + publishFourthScreenTrack + + 该参数仅适用于 Windows 和 macOS 平台。是否发布第四块屏幕采集的视频: +
    +
  • :发布第四块屏幕采集的视频。
  • +
  • :不发布第四块屏幕采集的视频。
  • +
+
+
+ + publishCustomAudioTrack + 是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • :不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomAudioTrackId + 要发布的自定义音频轨道的 ID。默认值为 0。你可以通过 createCustomAudioTrack 获取自定义音频轨道 ID。 + + + publishCustomVideoTrack + 是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • :不发布自定义视频源采集的视频。
  • +
+
+
+ + publishEncodedVideoTrack + 是否发布编码后的视频: +
    +
  • :发布编码后的视频。
  • +
  • :不发布编码后的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 是否发布媒体播放器的音频: +
    +
  • :发布媒体播放器的音频。
  • +
  • :不发布媒体播放器的音频。
  • +
+
+
+ + publishMediaPlayerVideoTrack + 是否发布媒体播放器的视频: +
    +
  • :发布媒体播放器的视频。
  • +
  • :不发布媒体播放器的视频。
  • +
+
+
+ + publishTranscodedVideoTrack + + 自 v4.2.0 起,参数名从 publishTrancodedVideoTrack 更正为 publishTranscodedVideoTrack。是否发布本地合图视频: +
    +
  • :发布本地合图视频。
  • +
  • :不发布本地合图视频。
  • +
+
+
+ + publishMixedAudioTrack + 是否发布混音音频轨道: +
    +
  • :发布混音音频轨道。
  • +
  • :不发布混音音频轨道。
  • +
+
+
+ + publishLipSyncTrack + 是否发布由语音驱动扩展处理后的视频轨道: +
    +
  • :发布由语音驱动扩展处理后的视频轨道。
  • +
  • :(默认)不发布由语音驱动扩展处理后的视频轨道。
  • +
+
+
+ + autoSubscribeAudio + 用户加入频道时,是否自动订阅所有远端音频流: +
    +
  • :订阅所有远端音频流。
  • +
  • :不自动订阅任何远端音频流。
  • +
+
+
+ + autoSubscribeVideo + 用户加入频道时,是否自动订阅所有远端视频流: +
    +
  • :订阅所有远端视频流。
  • +
  • :不自动订阅任何远端视频流。
  • +
+
+
+ + enableAudioRecordingOrPlayout + + 如果你需要发布麦克风采集的音频流,请确保该参数设置为 是否启用音频采集或播放: +
    +
  • :启用音频采集或播放。
  • +
  • :不启用音频采集或播放。
  • +
+
+
+ + publishMediaPlayerId + 要发布的媒体播放器 ID。默认值为 0。 + + + clientRoleType + 用户角色。详见 CLIENT_ROLE_TYPE。 + 如果将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + + + audienceLatencyLevel + 互动直播中观众的延迟等级。详见 AUDIENCE_LATENCY_LEVEL_TYPE。 + + + defaultVideoStreamType + 默认的视频流类型。详见 VIDEO_STREAM_TYPE。 + + + channelProfile + 频道场景。详见 CHANNEL_PROFILE_TYPE。 + + + audioDelayMs + 发送音频帧的延迟(单位为毫秒)。你可以使用该参数设置需要发送的音频帧的延迟,以确保音视频同步。要关闭延迟,请将该值设置为 0。 + + + mediaPlayerAudioDelayMs + 发送媒体播放器音频帧的延迟(单位为毫秒)。用于显式控制音视频同步。要关闭延迟,请将该值设置为 0。 + + + token + (可选)你在服务器上生成的用于鉴权的 Token。 + +
    +
  • 该参数仅在调用 updateChannelMediaOptions 或 updateChannelMediaOptionsEx 时生效。
  • +
  • 请确保用于生成 Token 的 App ID、频道名和用户名与用于初始化 RTC 引擎的 initialize 方法,以及用于加入频道的 joinChannel 和 joinChannelEx 方法中使用的参数一致。
  • +
+
+
+
+ + enableBuiltInMediaEncryption + + 调用 updateChannelMediaOptions 时该参数被忽略。是否启用媒体包加密: +
    +
  • :启用。
  • +
  • :(默认)不启用。
  • +
+
+
+ + publishRhythmPlayerTrack + 是否向远端用户发布节拍器的声音: +
    +
  • :发布处理后的音频帧,本地用户和远端用户都能听到节拍器。
  • +
  • :不发布节拍器的声音,只有本地用户能听到节拍器。
  • +
+
+
+ + isInteractiveAudience + + +
    +
  • 该参数仅适用于连麦直播场景。联合主播需调用 joinChannelEx 方法以观众身份加入其他主播频道,并将 isInteractiveAudience 设置为
  • +
  • 该参数仅在用户角色为 CLIENT_ROLE_AUDIENCE 时生效。
  • +
+
是否启用互动模式: +
    +
  • :启用互动模式。
  • +
  • :不启用互动模式。
  • +
+
+
+ + customVideoTrackId + 调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。 + + + isAudioFilterable + + 如需启用该功能,请[联系技术支持](https://ticket.shengwang.cn/)发布的音频流是否根据音量算法进行过滤: +
    +
  • :音频流被过滤。如果未启用音频流过滤器,该设置不生效。
  • +
  • :音频流不被过滤。
  • +
+
+
+ + parameters + 通过 JSON 字符串配置 SDK,实现技术预览功能或特殊定制功能的指针。 + + + enableMultipath + + 权限和系统要求: +
    +
  • Android:Android 7.0 或更高版本(API 级别 24 或更高),需要 ACCESS_NETWORK_STATE 和 CHANGE_NETWORK_STATE 权限。
  • +
  • iOS:iOS 12.0 或更高版本。
  • +
  • macOS:10.14 或更高版本。
  • +
  • Windows:Windows Vista 或更高版本。
  • +
+
是否启用多路径传输: +
    +
  • :启用多路径传输。
  • +
  • :禁用多路径传输。
  • +
+
+
+ + uplinkMultipathMode + 上行传输模式。详见 MultipathMode。 + 使用该参数时,请确保已将 enableMultipath 设置为 + + + + downlinkMultipathMode + 下行传输模式。详见 MultipathMode。 + 使用该参数时,请确保已将 enableMultipath 设置为 + + + + preferMultipathType + 首选的传输路径类型。详见 MultipathType。 + 使用该参数时,请确保已将 enableMultipath 设置为 + + + + publishCameraTrack + 是否发布摄像头采集的视频: +
    +
  • :发布摄像头采集的视频。
  • +
  • :不发布摄像头采集的视频。
  • +
+
+
+ + publishSecondaryCameraTrack + 是否发布第二路摄像头采集的视频轨道: +
    +
  • :发布第二路摄像头采集的视频轨道。
  • +
  • :(默认)不发布第二路摄像头采集的视频轨道。
  • +
+
+
+ + publishThirdCameraTrack + 是否发布第三路摄像头采集的视频: +
    +
  • :发布第三路摄像头采集的视频。
  • +
  • :不发布第三路摄像头采集的视频。
  • +
+
+
+ + publishFourthCameraTrack + 是否发布第四路摄像头采集的视频: +
    +
  • :发布第四路摄像头采集的视频。
  • +
  • :不发布第四路摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 是否发布麦克风采集的音频: +
    +
  • :发布麦克风采集的音频。
  • +
  • :不发布麦克风采集的音频。
  • +
+
+
+ + publishScreenCaptureVideo + + 从 v4.0.0 起,参数由 publishScreenTrack 重命名为 publishScreenCaptureVideo是否发布屏幕采集的视频: +
    +
  • :发布屏幕采集的视频。
  • +
  • :不发布屏幕采集的视频。
  • +
+
+
+ + publishScreenCaptureAudio + 是否发布屏幕采集的音频: +
    +
  • :发布屏幕采集的音频。
  • +
  • :不发布屏幕采集的音频。
  • +
+
+
+ + publishCustomAudioTrack + 是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • :不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomAudioTrackId + 要发布的自定义音频轨道的 ID。可通过 方法获取该 ID。 + + + publishCustomVideoTrack + 是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • :不发布自定义视频源采集的视频。
  • +
+
+
+ + publishEncodedVideoTrack + 是否发布编码后的视频: +
    +
  • :发布编码后的视频。
  • +
  • :不发布编码后的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 是否发布媒体播放器的音频: +
    +
  • :发布媒体播放器的音频。
  • +
  • :不发布媒体播放器的音频。
  • +
+
+
+ + publishMediaPlayerVideoTrack + 是否发布媒体播放器的视频: +
    +
  • :发布媒体播放器的视频。
  • +
  • :不发布媒体播放器的视频。
  • +
+
+
+ + publishTranscodedVideoTrack + 是否发布本地转码后的视频轨道: +
    +
  • :发布本地转码后的视频轨道。
  • +
  • :(默认)不发布本地转码后的视频轨道。
  • +
+
+
+ + publishMixedAudioTrack + 是否发布音频合流轨道: +
    +
  • :发布音频合流轨道。
  • +
  • :不发布音频合流轨道。
  • +
+
+
+ + publishLipSyncTrack + 是否发布由语音驱动扩展处理后的视频轨道: +
    +
  • :发布由语音驱动扩展处理后的视频轨道。
  • +
  • :(默认)不发布由语音驱动扩展处理后的视频轨道。
  • +
+
+
+ + autoSubscribeAudio + 用户加入频道时是否自动订阅所有远端音频流: +
    +
  • :订阅所有远端音频流。
  • +
  • :不自动订阅任何远端音频流。
  • +
+
+
+ + autoSubscribeVideo + 用户加入频道时是否自动订阅所有远端视频流: +
    +
  • :订阅所有远端视频流。
  • +
  • :不自动订阅任何远端视频流。
  • +
+
+
+ + enableAudioRecordingOrPlayout + + 如果需要发布麦克风采集的音频流,请确保该参数设置为 是否开启音频采集或播放功能: +
    +
  • :开启音频采集或播放功能。
  • +
  • :不开启音频采集或播放功能。
  • +
+
+
+ + publishMediaPlayerId + 要发布的媒体播放器的 ID。默认值为 0。 + + + clientRoleType + + 如果将用户角色设置为观众,则无法在频道中发布音视频流。若你希望在直播过程中发布媒体流,请确保将用户角色设置为主播。用户角色类型: +
    +
  • CLIENT_ROLE_BROADCASTER (1):主播。
  • +
  • CLIENT_ROLE_AUDIENCE (2):观众。
  • +
+
+
+ + audienceLatencyLevel + 互动直播场景下观众的延迟等级: +
    +
  • AUDIENCE_LATENCY_LEVEL_LOW_LATENCY (1):低延迟。
  • +
  • AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY (2):超低延迟(默认)。
  • +
+
+
+ + defaultVideoStreamType + 默认的视频流类型: +
    +
  • VIDEO_STREAM_HIGH (0):视频大流,即高分辨率高码率的视频流。
  • +
  • VIDEO_STREAM_LOW (1):视频小流,即低分辨率低码率的视频流。
  • +
+
+
+ + channelProfile + + 自 v4.x.x 版本废弃。请改用 CHANNEL_PROFILE_LIVE_BROADCASTING。频道场景: +
    +
  • CHANNEL_PROFILE_COMMUNICATION (0):通信场景。声网推荐使用直播场景以获得更佳的音视频体验。
  • +
  • CHANNEL_PROFILE_LIVE_BROADCASTING (1):直播场景(默认)。
  • +
  • CHANNEL_PROFILE_GAME (2):游戏场景。
  • +
  • CHANNEL_PROFILE_CLOUD_GAMING (3):互动场景。该场景对延迟进行了优化,适用于用户之间需要频繁互动的场景。
  • +
+
+
+ + audioDelayMs + 发送音频帧的延迟(单位:毫秒)。你可以使用该参数设置发送音频帧的延迟,以实现音视频同步。如需关闭延迟,设置该值为 0。 + + + mediaPlayerAudioDelayMs + 发送媒体播放器音频帧的延迟(单位:毫秒),用于显式控制音视频同步。如需关闭延迟,设置该值为 0。 + + + token + (可选)由你的服务器生成的用于鉴权的 Token。 + 该参数仅在调用 updateChannelMediaOptions 或 updateChannelMediaOptionsEx 时生效。请确保用于生成 token 的 App ID、频道名和用户名称与调用 create 初始化 RTC 引擎,以及调用 joinChannel 和 joinChannelEx 加入频道时使用的值一致。 + + + + enableBuiltInMediaEncryption + + 调用 updateChannelMediaOptions 方法时将忽略此设置。是否启用媒体包加密: +
    +
  • :启用媒体包加密。
  • +
  • :(默认)不启用媒体包加密。
  • +
+
+
+ + publishRhythmPlayerTrack + 是否向远端用户发布节拍器的声音: +
    +
  • :发布处理后的音频帧,本地用户和远端用户都能听到节拍器。
  • +
  • :不发布节拍器的声音,只有本地用户能听到节拍器。
  • +
+
+
+ + isInteractiveAudience + + 该参数仅适用于主播互通场景。联播主播需调用 joinChannelEx 方法以观众身份加入其他主播频道,并将 isInteractiveAudience 设置为 。 +该参数仅在用户角色为 CLIENT_ROLE_AUDIENCE 时生效。是否开启互动模式: +
    +
  • :开启互动模式。
  • +
  • :不开启互动模式。
  • +
+
+
+ + customVideoTrackId + 通过调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。 + + + isAudioFilterable + + 如需启用该功能,请[联系技术支持](https://ticket.shengwang.cn/)发布的音频流是否根据音量算法进行过滤: +
    +
  • :音频流会被过滤。
  • +
  • :音频流不会被过滤。
  • +
+
+
+ + startPreview + 在已设置画布时,加入频道时是否启动预览: +
    +
  • :(默认)加入频道时启动预览。
  • +
  • :不启动预览。
  • +
+
+
+ + parameters + 通过配置 JSON 选项以启用技术预览功能或特殊定制。 + + + enableMultipath + + 权限与系统要求:Android 7.0 或更高版本(API 等级 24 或更高),需要 ACCESS_NETWORK_STATECHANGE_NETWORK_STATE 权限。是否启用多传输路径: +
    +
  • :启用多传输路径。
  • +
  • :禁用多传输路径。
  • +
+
+
+ + uplinkMultipathMode + 上行传输模式。详见 。 + 使用该参数时,需确保 enableMultipath 设置为 + + + + downlinkMultipathMode + 下行传输模式。详见 。 + 使用该参数时,需确保 enableMultipath 设置为 + + + + preferMultipathType + 首选的传输路径类型。详见 。 + 使用该参数时,需确保 enableMultipath 设置为 + + + + publishCameraTrack + 是否发布由摄像头采集的视频: +
    +
  • YES:发布由摄像头采集的视频。
  • +
  • NO:不发布由摄像头采集的视频。
  • +
+
+
+ + publishSecondaryCameraTrack + 是否发布由第二路摄像头采集的视频: +
    +
  • YES:发布由第二路摄像头采集的视频。
  • +
  • NO:不发布由第二路摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 是否发布由麦克风采集的音频: +
    +
  • YES:发布由麦克风采集的音频。
  • +
  • NO:不发布由麦克风采集的音频。
  • +
+
+
+ + publishScreenCaptureVideo + + 自 v4.0.0 起,参数名由 publishScreenTrack 更名为 publishScreenCaptureVideo。是否发布来自屏幕的视频采集: +
    +
  • YES:发布来自屏幕的视频采集。
  • +
  • NO:不发布来自屏幕的视频采集。
  • +
+
+
+ + publishScreenCaptureAudio + 是否发布来自屏幕的音频采集: +
    +
  • YES:发布来自屏幕的音频采集。
  • +
  • NO:不发布来自屏幕的音频采集。
  • +
+
+
+ + publishThirdCameraTrack + 是否发布由第三路摄像头采集的视频: +
    +
  • YES:发布由第三路摄像头采集的视频。
  • +
  • NO:不发布由第三路摄像头采集的视频。
  • +
+
+
+ + publishFourthCameraTrack + 是否发布由第四路摄像头采集的视频: +
    +
  • YES:发布由第四路摄像头采集的视频。
  • +
  • NO:不发布由第四路摄像头采集的视频。
  • +
+
+
+ + publishScreenTrack + (仅适用于 macOS)是否发布从主屏幕采集的视频: +
    +
  • YES:发布从主屏幕采集的视频。
  • +
  • NO:不发布从主屏幕采集的视频。
  • +
+
+
+ + publishSecondaryScreenTrack + (仅适用于 macOS)是否发布从第二块屏幕采集的视频: +
    +
  • YES:发布从第二块屏幕采集的视频。
  • +
  • NO:不发布从第二块屏幕采集的视频。
  • +
+
+
+ + publishThirdScreenTrack + (仅适用于 macOS)是否发布从第三块屏幕采集的视频: +
    +
  • YES:发布从第三块屏幕采集的视频。
  • +
  • NO:不发布从第三块屏幕采集的视频。
  • +
+
+
+ + publishFourthScreenTrack + (仅适用于 macOS)是否发布从第四块屏幕采集的视频: +
    +
  • YES:发布从第四块屏幕采集的视频。
  • +
  • NO:不发布从第四块屏幕采集的视频。
  • +
+
+
+ + publishCustomAudioTrack + 是否发布从自定义音频源采集的音频: +
    +
  • YES:发布从自定义音频源采集的音频。
  • +
  • NO:不发布从自定义音频源采集的音频。
  • +
+
+
+ + publishCustomAudioTrackId + 要发布的自定义音频轨道的 ID。默认值为 0。你可以通过 createCustomAudioTrack 方法获取自定义音频轨道 ID。 + + + publishCustomVideoTrack + 是否发布自定义视频源采集的视频: +
    +
  • YES:发布自定义视频源采集的视频。
  • +
  • NO:不发布自定义视频源采集的视频。
  • +
+
+
+ + publishEncodedVideoTrack + 是否发布编码后的视频: +
    +
  • YES:发布编码后的视频。
  • +
  • NO:不发布编码后的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 是否发布媒体播放器的音频: +
    +
  • YES:发布媒体播放器的音频。
  • +
  • NO:不发布媒体播放器的音频。
  • +
+
+
+ + publishMediaPlayerVideoTrack + 是否发布媒体播放器的视频: +
    +
  • YES:发布媒体播放器的视频。
  • +
  • NO:不发布媒体播放器的视频。
  • +
+
+
+ + publishTranscodedVideoTrack + 是否发布本地合图视频轨道: +
    +
  • YES:发布本地合图视频轨道。
  • +
  • NO:(默认)不发布本地合图视频轨道。
  • +
+
+
+ + publishLipSyncTrack + 是否发布由语音驱动扩展处理后的视频轨道: +
    +
  • YES:发布由语音驱动扩展处理后的视频轨道。
  • +
  • NO:(默认)不发布由语音驱动扩展处理后的视频轨道。
  • +
+
+
+ + autoSubscribeAudio + 用户加入频道时,是否自动订阅所有远端音频流: +
    +
  • YES:自动订阅所有远端音频流。
  • +
  • NO:不自动订阅任何远端音频流。
  • +
+
+
+ + autoSubscribeVideo + 用户加入频道时,是否自动订阅所有远端视频流: +
    +
  • YES:自动订阅所有远端视频流。
  • +
  • NO:不自动订阅任何远端视频流。
  • +
+
+
+ + enableAudioRecordingOrPlayout + + 如果你需要发布麦克风采集的音频流,请确保该参数设置为 YES。是否启用音频采集或播放功能: +
    +
  • YES:启用音频采集或播放功能。
  • +
  • NO:不启用音频采集或播放功能。
  • +
+
+
+ + publishMediaPlayerId + 要发布的媒体播放器 ID。默认值为 0。 + + + clientRoleType + 用户角色,详见 AgoraClientRole。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + + + audienceLatencyLevel + 互动直播中观众的延迟等级,详见 AgoraAudienceLatencyLevelType。 + + + defaultVideoStreamType + 默认的视频流类型,详见 AgoraVideoStreamType。 + + + channelProfile + 频道场景,详见 AgoraChannelProfile。 + + + publishMixedAudioTrack + 是否发布混音音频轨道: +
    +
  • YES:发布混音音频轨道。
  • +
  • NO:不发布混音音频轨道。
  • +
+
+
+ + audioDelayMs + 发送音频帧的延迟(单位为毫秒)。你可以使用该参数设置需要发送的音频帧的延迟,以确保音视频同步。若要关闭延迟,将该值设为 0。 + + + mediaPlayerAudioDelayMs + 发送媒体播放器音频帧的延迟(单位为毫秒)。用于显式控制音视频同步。若要关闭延迟,将该值设为 0。 + + + token + 你在服务器上生成的用于鉴权的 Token。 + +
    +
  • 该参数仅在调用 updateChannelWithMediaOptions 或 updateChannelExWithMediaOptions 方法时生效。
  • +
  • 请确保用于生成 Token 的 App ID、频道名和用户名与用于初始化 RTC 引擎的 sharedEngineWithConfig:delegate: 方法,以及用于加入频道的 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: 和 joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: 方法中使用的参数一致。
  • +
+
+
+
+ + enableBuiltInMediaEncryption + + 调用 updateChannelMediaOptions 方法时该参数将被忽略。是否启用媒体包加密: +
    +
  • YES:启用媒体包加密。
  • +
  • NO:(默认)不启用媒体包加密。
  • +
+
+
+ + publishRhythmPlayerTrack + 是否向远端用户发布节拍器的声音: +
    +
  • YES:发布处理后的音频帧,本地用户和远端用户都能听到节拍器。
  • +
  • NO:不发布节拍器的声音,只有本地用户能听到节拍器。
  • +
+
+
+ + isInteractiveAudience + + +
    +
  • 该参数仅适用于连麦直播场景。联播主播需调用 joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: 方法以观众身份加入其他主播的频道,并将 isInteractiveAudience 设置为 YES。
  • +
  • 该参数仅在用户角色为 AgoraClientRoleAudience 时生效。
  • +
+
是否启用互动模式: +
    +
  • YES:启用互动模式。启用后,若用户角色为观众,则可以低延迟接收远端视频流。
  • +
  • NO:不启用互动模式。禁用后,用户将以默认设置接收远端视频流。
  • +
+
+
+ + customVideoTrackId + 调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。 + + + isAudioFilterable + + 如需启用该功能,请[联系技术支持](https://ticket.shengwang.cn/)。是否根据音量算法过滤正在发布的音频流: +
    +
  • YES:音频流会被过滤。
  • +
  • NO:音频流不会被过滤。
  • +
+
+
+ + parameters + 通过配置 JSON 选项为 SDK 提供技术预览功能或特殊定制功能。 + + + enableMultipath + + 权限和系统要求: +
    +
  • iOS:iOS 12.0 或更高版本。
  • +
  • macOS:10.14 或更高版本。
  • +
+
是否启用多路径传输: +
    +
  • :启用多路径传输。
  • +
  • :禁用多路径传输。
  • +
+
+
+ + uplinkMultipathMode + 上行传输模式。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + + + downlinkMultipathMode + 下行传输模式。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + + + preferMultipathType + 首选的传输路径类型。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + + + publishCameraTrack + 是否发布由摄像头采集的视频: +
    +
  • YES:发布由摄像头采集的视频。
  • +
  • NO:不发布由摄像头采集的视频。
  • +
+
+
+ + publishSecondaryCameraTrack + 是否发布由第二路摄像头采集的视频: +
    +
  • YES:发布由第二路摄像头采集的视频。
  • +
  • NO:不发布由第二路摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 是否发布由麦克风采集的音频: +
    +
  • YES:发布由麦克风采集的音频。
  • +
  • NO:不发布由麦克风采集的音频。
  • +
+
+
+ + publishScreenCaptureVideo + + 自 v4.0.0 起,参数名由 publishScreenTrack 更名为 publishScreenCaptureVideo。是否发布来自屏幕的视频采集: +
    +
  • YES:发布来自屏幕的视频采集。
  • +
  • NO:不发布来自屏幕的视频采集。
  • +
+
+
+ + publishScreenCaptureAudio + 是否发布来自屏幕的音频采集: +
    +
  • YES:发布来自屏幕的音频采集。
  • +
  • NO:不发布来自屏幕的音频采集。
  • +
+
+
+ + publishThirdCameraTrack + 是否发布由第三路摄像头采集的视频: +
    +
  • YES:发布由第三路摄像头采集的视频。
  • +
  • NO:不发布由第三路摄像头采集的视频。
  • +
+
+
+ + publishFourthCameraTrack + 是否发布由第四路摄像头采集的视频: +
    +
  • YES:发布由第四路摄像头采集的视频。
  • +
  • NO:不发布由第四路摄像头采集的视频。
  • +
+
+
+ + publishScreenTrack + (仅适用于 macOS)是否发布从主屏幕采集的视频: +
    +
  • YES:发布从主屏幕采集的视频。
  • +
  • NO:不发布从主屏幕采集的视频。
  • +
+
+
+ + publishSecondaryScreenTrack + (仅适用于 macOS)是否发布从第二块屏幕采集的视频: +
    +
  • YES:发布从第二块屏幕采集的视频。
  • +
  • NO:不发布从第二块屏幕采集的视频。
  • +
+
+
+ + publishThirdScreenTrack + (仅适用于 macOS)是否发布从第三块屏幕采集的视频: +
    +
  • YES:发布从第三块屏幕采集的视频。
  • +
  • NO:不发布从第三块屏幕采集的视频。
  • +
+
+
+ + publishFourthScreenTrack + (仅适用于 macOS)是否发布从第四块屏幕采集的视频: +
    +
  • YES:发布从第四块屏幕采集的视频。
  • +
  • NO:不发布从第四块屏幕采集的视频。
  • +
+
+
+ + publishCustomAudioTrack + 是否发布从自定义音频源采集的音频: +
    +
  • YES:发布从自定义音频源采集的音频。
  • +
  • NO:不发布从自定义音频源采集的音频。
  • +
+
+
+ + publishCustomAudioTrackId + 要发布的自定义音频轨道的 ID。默认值为 0。你可以通过 createCustomAudioTrack 方法获取自定义音频轨道 ID。 + + + publishCustomVideoTrack + 是否发布自定义视频源采集的视频: +
    +
  • YES:发布自定义视频源采集的视频。
  • +
  • NO:不发布自定义视频源采集的视频。
  • +
+
+
+ + publishEncodedVideoTrack + 是否发布编码后的视频: +
    +
  • YES:发布编码后的视频。
  • +
  • NO:不发布编码后的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 是否发布媒体播放器的音频: +
    +
  • YES:发布媒体播放器的音频。
  • +
  • NO:不发布媒体播放器的音频。
  • +
+
+
+ + publishMediaPlayerVideoTrack + 是否发布媒体播放器的视频: +
    +
  • YES:发布媒体播放器的视频。
  • +
  • NO:不发布媒体播放器的视频。
  • +
+
+
+ + publishTranscodedVideoTrack + 是否发布本地合图视频轨道: +
    +
  • YES:发布本地合图视频轨道。
  • +
  • NO:(默认)不发布本地合图视频轨道。
  • +
+
+
+ + publishLipSyncTrack + 是否发布由语音驱动扩展处理后的视频轨道: +
    +
  • YES:发布由语音驱动扩展处理后的视频轨道。
  • +
  • NO:(默认)不发布由语音驱动扩展处理后的视频轨道。
  • +
+
+
+ + autoSubscribeAudio + 用户加入频道时,是否自动订阅所有远端音频流: +
    +
  • YES:自动订阅所有远端音频流。
  • +
  • NO:不自动订阅任何远端音频流。
  • +
+
+
+ + autoSubscribeVideo + 用户加入频道时,是否自动订阅所有远端视频流: +
    +
  • YES:自动订阅所有远端视频流。
  • +
  • NO:不自动订阅任何远端视频流。
  • +
+
+
+ + enableAudioRecordingOrPlayout + + 如果你需要发布麦克风采集的音频流,请确保该参数设置为 YES。是否启用音频采集或播放功能: +
    +
  • YES:启用音频采集或播放功能。
  • +
  • NO:不启用音频采集或播放功能。
  • +
+
+
+ + publishMediaPlayerId + 要发布的媒体播放器 ID。默认值为 0。 + + + clientRoleType + 用户角色,详见 AgoraClientRole。 + 如果你将用户角色设置为观众,则无法在频道中发布音视频流。如果你希望在直播中发布媒体流,请确保将用户角色设置为主播。 + + + + audienceLatencyLevel + 互动直播中观众的延迟等级,详见 AgoraAudienceLatencyLevelType。 + + + defaultVideoStreamType + 默认的视频流类型,详见 AgoraVideoStreamType。 + + + channelProfile + 频道场景,详见 AgoraChannelProfile。 + + + publishMixedAudioTrack + 是否发布混音音频轨道: +
    +
  • YES:发布混音音频轨道。
  • +
  • NO:不发布混音音频轨道。
  • +
+
+
+ + audioDelayMs + 发送音频帧的延迟(单位为毫秒)。你可以使用该参数设置需要发送的音频帧的延迟,以确保音视频同步。若要关闭延迟,将该值设为 0。 + + + mediaPlayerAudioDelayMs + 发送媒体播放器音频帧的延迟(单位为毫秒)。用于显式控制音视频同步。若要关闭延迟,将该值设为 0。 + + + token + 你在服务器上生成的用于鉴权的 Token。 + +
    +
  • 该参数仅在调用 updateChannelWithMediaOptions 或 updateChannelExWithMediaOptions 方法时生效。
  • +
  • 请确保用于生成 Token 的 App ID、频道名和用户名与用于初始化 RTC 引擎的 sharedEngineWithConfig:delegate: 方法,以及用于加入频道的 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: 和 joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: 方法中使用的参数一致。
  • +
+
+
+
+ + enableBuiltInMediaEncryption + + 调用 updateChannelMediaOptions 方法时该参数将被忽略。是否启用媒体包加密: +
    +
  • YES:启用媒体包加密。
  • +
  • NO:(默认)不启用媒体包加密。
  • +
+
+
+ + publishRhythmPlayerTrack + 是否向远端用户发布节拍器的声音: +
    +
  • YES:发布处理后的音频帧,本地用户和远端用户都能听到节拍器。
  • +
  • NO:不发布节拍器的声音,只有本地用户能听到节拍器。
  • +
+
+
+ + isInteractiveAudience + + +
    +
  • 该参数仅适用于连麦直播场景。联播主播需调用 joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: 方法以观众身份加入其他主播的频道,并将 isInteractiveAudience 设置为 YES。
  • +
  • 该参数仅在用户角色为 AgoraClientRoleAudience 时生效。
  • +
+
是否启用互动模式: +
    +
  • YES:启用互动模式。启用后,若用户角色为观众,则可以低延迟接收远端视频流。
  • +
  • NO:不启用互动模式。禁用后,用户将以默认设置接收远端视频流。
  • +
+
+
+ + customVideoTrackId + 调用 createCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。 + + + isAudioFilterable + + 如需启用该功能,请[联系技术支持](https://ticket.shengwang.cn/)。是否根据音量算法过滤正在发布的音频流: +
    +
  • YES:音频流会被过滤。
  • +
  • NO:音频流不会被过滤。
  • +
+
+
+ + parameters + 通过配置 JSON 选项为 SDK 提供技术预览功能或特殊定制功能。 + + + enableMultipath + + 权限和系统要求: +
    +
  • iOS:iOS 12.0 或更高版本。
  • +
  • macOS:10.14 或更高版本。
  • +
+
是否启用多路径传输: +
    +
  • :启用多路径传输。
  • +
  • :禁用多路径传输。
  • +
+
+
+ + uplinkMultipathMode + 上行传输模式。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + + + downlinkMultipathMode + 下行传输模式。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + + + preferMultipathType + 首选的传输路径类型。详见 。 + 使用该参数时,请确保 enableMultipath 设置为 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_channelmediarelayconfiguration.dita b/dita/RTC-AIDOC/API/class_channelmediarelayconfiguration.dita new file mode 100644 index 00000000000..7fd7ef2690c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_channelmediarelayconfiguration.dita @@ -0,0 +1,135 @@ + + + + <ph keyref="ChannelMediaRelayConfiguration"/> + 用于配置跨频道媒体流转发。用于配置跨频道媒体流转发。配置跨频道媒体流转发。配置跨频道媒体流转发。 + +
+

+ struct ChannelMediaRelayConfiguration { + ChannelMediaInfo* srcInfo; + ChannelMediaInfo* destInfos; + int destCount; +}; + public class ChannelMediaRelayConfiguration { + private ChannelMediaInfo srcInfo = null; + private Map<String, ChannelMediaInfo> destInfos = null; +} + __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayConfiguration: NSObject +@property (strong, nonatomic, readonly) NSDictionary<NSString *, AgoraChannelMediaRelayInfo *> *_Nullable destinationInfos; +@property (strong, nonatomic) AgoraChannelMediaRelayInfo *_Nonnull sourceInfo; +@end + __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayConfiguration: NSObject +@property (strong, nonatomic, readonly) NSDictionary<NSString *, AgoraChannelMediaRelayInfo *> *_Nullable destinationInfos; +@property (strong, nonatomic) AgoraChannelMediaRelayInfo *_Nonnull sourceInfo; +@end +

+
+
+ 属性 + + + srcInfo + 源频道的信息,详见 。该结构体包含以下成员: +
    +
  • channelName:源频道的名称。默认值为 ,表示 SDK 使用当前频道的名称。
  • +
  • token:用于加入源频道的 Token,由 channelNameuid 生成。 +
      +
    • 如果你未启用 App Certificate,请将该参数设置为默认值 ,表示 SDK 使用 App ID。
    • +
    • 如果你已启用 App Certificate,必须使用由 channelNameuid 生成的 Token,且 uid 必须设置为 0。
    • +
    +
  • +
  • uid:用于标识源频道中转发流的唯一用户 ID。建议保持默认值 0 不变。
  • +
+
+
+ + destInfos + + 如果任一目标频道的 Token 过期,整个媒体流转发将停止。建议你为所有目标频道设置相同的 Token 过期时间。目标频道的信息,详见 。该结构体包含以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • token:用于加入目标频道的 Token,由 channelNameuid 生成。 +
      +
    • 如果你未启用 App Certificate,请将该参数设置为默认值 ,表示 SDK 使用 App ID。
    • +
    • 如果你已启用 App Certificate,必须使用由 channelNameuid 生成的 Token。
    • +
    +
  • +
  • uid:用于标识目标频道中转发流的唯一用户 ID,取值范围为 0 到 (2^32 - 1)。为避免用户 ID 冲突,该 ID 必须不同于目标频道中其他用户的 ID。默认值为 0,表示 SDK 会生成一个随机 UID。详见
  • +
+
+
+ + destCount + 目标频道的数量。默认值为 0,取值范围为 0 到 6。请确保该参数的值与 destInfos 中定义的 结构体数量一致。 + + + srcInfo + 源频道的媒体信息。详见 + + + destInfos + 目标频道的媒体信息集合,键为频道名,值为对应的媒体信息。详见 + + + destinationInfos + + 如果任一目标频道的 Token 过期,整个媒体流转发将停止。建议为所有目标频道设置相同的 Token 过期时间。目标频道信息。包含以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • token:加入目标频道所需的 Token。该 Token 是使用你在 destinationInfos 中设置的 channelNameuid 生成的。 +
      +
    • 如果未启用 App 证书,将该参数设置为 ,表示 SDK 使用 App ID。
    • +
    • 如果启用了 App 证书,必须使用基于 channelNameuid 生成的 Token。
    • +
    +
  • +
  • uid:用于标识目标频道中转发流的唯一用户 ID,取值范围为 0 到 (2^32 - 1)。为避免用户 ID 冲突,该 ID 必须与目标频道中其他用户的 ID 不同。默认值为 0,表示 SDK 自动生成随机 UID。
  • +
详见
+
+ + sourceInfo + 源频道信息。包含以下成员: +
    +
  • channelName:源频道的名称。默认值为 ,表示 SDK 使用当前频道名称。
  • +
  • token:加入源频道所需的 Token。该 Token 是使用你在 sourceInfo 中设置的 channelNameuid 生成的。 +
      +
    • 如果未启用 App 证书,将该参数设置为 ,表示 SDK 使用 App ID。
    • +
    • 如果启用了 App 证书,必须使用基于 channelNameuid 生成的 Token,且 uid 必须设置为 0。
    • +
    +
  • +
  • uid:用于标识源频道中转发流的唯一用户 ID。建议保持默认值 0 不变。
  • +
详见
+
+ + destinationInfos + + 如果任一目标频道的 Token 过期,整个媒体流转发将停止。建议为所有目标频道设置相同的 Token 过期时间。目标频道信息。包含以下成员: +
    +
  • channelName:目标频道的名称。
  • +
  • token:加入目标频道所需的 Token。该 Token 是使用你在 destinationInfos 中设置的 channelNameuid 生成的。 +
      +
    • 如果未启用 App 证书,将该参数设置为 ,表示 SDK 使用 App ID。
    • +
    • 如果启用了 App 证书,必须使用基于 channelNameuid 生成的 Token。
    • +
    +
  • +
  • uid:用于标识目标频道中转发流的唯一用户 ID,取值范围为 0 到 (2^32 - 1)。为避免用户 ID 冲突,该 ID 必须与目标频道中其他用户的 ID 不同。默认值为 0,表示 SDK 自动生成随机 UID。
  • +
详见
+
+ + sourceInfo + 源频道信息。包含以下成员: +
    +
  • channelName:源频道的名称。默认值为 ,表示 SDK 使用当前频道名称。
  • +
  • token:加入源频道所需的 Token。该 Token 是使用你在 sourceInfo 中设置的 channelNameuid 生成的。 +
      +
    • 如果未启用 App 证书,将该参数设置为 ,表示 SDK 使用 App ID。
    • +
    • 如果启用了 App 证书,必须使用基于 channelNameuid 生成的 Token,且 uid 必须设置为 0。
    • +
    +
  • +
  • uid:用于标识源频道中转发流的唯一用户 ID。建议保持默认值 0 不变。
  • +
详见
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_clientroleoptions.dita b/dita/RTC-AIDOC/API/class_clientroleoptions.dita new file mode 100644 index 00000000000..f9e4c90e73b --- /dev/null +++ b/dita/RTC-AIDOC/API/class_clientroleoptions.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="ClientRoleOptions"/> + 设置用户角色属性。用于设置用户角色的相关属性。设置用户角色属性。设置用户角色属性。 + +
+

+ struct ClientRoleOptions { + AUDIENCE_LATENCY_LEVEL_TYPE audienceLatencyLevel; +}; + public class ClientRoleOptions { + public int audienceLatencyLevel; +} + __attribute__((visibility("default"))) @interface AgoraClientRoleOptions: NSObject +@property (assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; +@end + __attribute__((visibility("default"))) @interface AgoraClientRoleOptions: NSObject +@property (assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; +@end +

+
+
+
+ +
自从
+
自 v3.4.200 版本新增。
+
+
+
+
+ 属性 + + + audienceLatencyLevel + 观众在互动直播中的延迟级别。详见 + + + audienceLatencyLevel + 互动直播中观众的延迟等级: +
    +
  • AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(1):低延迟。
  • +
  • AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY(2):超低延迟(默认值)。
  • +
+
+
+ + audienceLatencyLevel + 互动直播中观众的延迟级别。详见 + + + audienceLatencyLevel + 互动直播中观众的延迟级别。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_climaxsegment.dita b/dita/RTC-AIDOC/API/class_climaxsegment.dita new file mode 100644 index 00000000000..6aa0c4adf88 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_climaxsegment.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="ClimaxSegment"/> + 表示音乐高潮的时间段。表示音乐的高潮部分。用于描述音乐高潮部分的起止时间。 + +
+

+ struct ClimaxSegment +{ + int32_t startTimeMs; + int32_t endTimeMs; +}; + __attribute__((visibility("default"))) @interface AgoraClimaxSegment : NSObject +@property(nonatomic, assign) NSInteger startTimeMs; +@property(nonatomic, assign) NSInteger endTimeMs; +@end + public class ClimaxSegment { + public int startTimeMs; + public int endTimeMs; +} +

+
+
+ 属性 + + + startTimeMs + 高潮部分开始的时间,单位为毫秒。 + + + endTimeMs + 高潮部分结束的时间,单位为毫秒。 + + + startTimeMs + 高潮部分开始的时间(毫秒)。 + + + endTimeMs + 高潮部分结束的时间(毫秒)。 + + + startTimeMs + 高潮部分开始的时间,单位为毫秒。 + + + endTimeMs + 高潮部分结束的时间,单位为毫秒。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_codeccapinfo.dita b/dita/RTC-AIDOC/API/class_codeccapinfo.dita new file mode 100644 index 00000000000..3729f127464 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_codeccapinfo.dita @@ -0,0 +1,99 @@ + + + + <ph keyref="CodecCapInfo"/> + 用于描述 SDK 的编解码能力。表示 SDK 的编解码能力。SDK 的编解码能力信息。SDK 的编解码能力信息。 + +
+

+ struct CodecCapInfo { + VIDEO_CODEC_TYPE codecType; + int codecCapMask; + CodecCapLevels codecLevels; +}; + public class CodecCapInfo { + public int codecType; + public int codecCapMask; + public CodecCapLevels codecLevels; +} + __attribute__((visibility("default"))) @interface AgoraVideoCodecCapInfo : NSObject +@property(assign, nonatomic) AgoraVideoCodecType codecType; +@property(assign, nonatomic) NSUInteger codecCapMask; +@property(strong, nonatomic) AgoraVideoCodecCapLevels *_Nonnull codecCapLevels; +@end + __attribute__((visibility("default"))) @interface AgoraVideoCodecCapInfo : NSObject +@property(assign, nonatomic) AgoraVideoCodecType codecType; +@property(assign, nonatomic) NSUInteger codecCapMask; +@property(strong, nonatomic) AgoraVideoCodecCapLevels *_Nonnull codecCapLevels; +@end +

+
+
+ 属性 + + + codecType + 视频编解码器类型,详见 + + + codecCapMask + SDK 中编解码器类型的位掩码,详见 + + + codecLevels + 编解码能力,详见 + + + codecType + 视频编解码类型: +
    +
  • 1:VP8。
  • +
  • 2:H.264。
  • +
  • 3:(默认)H.265。
  • +
+
+
+ + codecCapMask + 编解码类型的位掩码: +
    +
  • (0):设备不支持编码或解码。
  • +
  • (1 << 0):设备支持硬件解码。
  • +
  • (1 << 1):设备支持硬件编码。
  • +
  • (1 << 2):设备支持软件解码。
  • +
  • (1 << 3):设备支持软件编码。
  • +
+
+
+ + codecLevels + 编解码能力。详见 + + + codecType + 视频编解码器类型,详见 + + + codecCapMask + SDK 中编解码器类型的位掩码。 + + + codecCapLevels + 编解码能力,详见 + + + codecType + 视频编解码器类型,详见 + + + codecCapMask + SDK 中编解码器类型的位掩码。 + + + codecCapLevels + 编解码能力,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_codeccaplevels.dita b/dita/RTC-AIDOC/API/class_codeccaplevels.dita new file mode 100644 index 00000000000..24accdc23be --- /dev/null +++ b/dita/RTC-AIDOC/API/class_codeccaplevels.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="CodecCapLevels"/> + 表示编解码能力等级。表示编解码能力等级。表示编解码能力等级的类。表示编解码能力等级的类。 + +
+

+ struct CodecCapLevels { + VIDEO_CODEC_CAPABILITY_LEVEL hwDecodingLevel; + VIDEO_CODEC_CAPABILITY_LEVEL swDecodingLevel; +}; + public class CodecCapLevels { + public int hwDecodingLevel; + public int swDecodingLevel; +}; + __attribute__((visibility("default"))) @interface AgoraVideoCodecCapLevels : NSObject +@property(assign, nonatomic) AgoraVideoCodecCapabilityLevel hwDecodingLevel; +@property(assign, nonatomic) AgoraVideoCodecCapabilityLevel swDecodingLevel; +@end + __attribute__((visibility("default"))) @interface AgoraVideoCodecCapLevels : NSObject +@property(assign, nonatomic) AgoraVideoCodecCapabilityLevel hwDecodingLevel; +@property(assign, nonatomic) AgoraVideoCodecCapabilityLevel swDecodingLevel; +@end +

+
+
+

用于表示设备在不同视频质量下的硬件和软件解码能力等级。

+

用于表示设备在不同视频质量下的硬件和软件解码能力等级。

+
+
+ 属性 + + + hwDecodingLevel + 硬件解码能力等级,表示设备对不同质量视频的硬件解码能力。详见 + + + swDecodingLevel + 软件解码能力等级,表示设备对不同质量视频的软件解码能力。详见 + + + hwDecodingLevel + 硬件解码能力等级,表示设备对不同画质的视频进行硬件解码的能力。 + + + swDecodingLevel + 软件解码能力等级,表示设备对不同画质的视频进行软件解码的能力。 + + + hwDecodingLevel + 硬件解码能力等级。详见 + + + swDecodingLevel + 软件解码能力等级。详见 + + + hwDecodingLevel + 硬件解码能力等级。详见 + + + swDecodingLevel + 软件解码能力等级。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_colorenhanceoptions.dita b/dita/RTC-AIDOC/API/class_colorenhanceoptions.dita new file mode 100644 index 00000000000..bb788933851 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_colorenhanceoptions.dita @@ -0,0 +1,119 @@ + + + + <ph keyref="ColorEnhanceOptions"/> + 色彩增强配置选项。用于配置色彩增强效果。设置色彩增强效果的选项。设置色彩增强效果的选项。 + +
+

+ struct ColorEnhanceOptions { + float strengthLevel; + float skinProtectLevel; +}; + public class ColorEnhanceOptions { + public float strengthLevel; + public float skinProtectLevel; +} + __attribute__((visibility("default"))) @interface AgoraColorEnhanceOptions : NSObject +@property(nonatomic, assign) float strengthLevel; +@property(nonatomic, assign) float skinProtectLevel; +@end + __attribute__((visibility("default"))) @interface AgoraColorEnhanceOptions : NSObject +@property(nonatomic, assign) float strengthLevel; +@property(nonatomic, assign) float skinProtectLevel; +@end +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+
+
+
+ 属性 + + + strengthLevel + 色彩增强等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:默认值,不对视频进行色彩增强。
  • +
  • 值越大,色彩增强效果越明显。
  • +
默认值为 0.5
+
+ + skinProtectLevel + 肤色保护等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:不启用肤色保护。
  • +
  • 值越大,肤色保护效果越强。
  • +
默认值为 1.0 +
    +
  • 当色彩增强等级较高时,人像肤色可能会出现明显失真,因此建议设置合适的肤色保护等级。
  • +
  • 当肤色保护等级较高时,色彩增强效果可能会略有降低。
  • +
为获得最佳效果,建议根据实际情况调整 strengthLevelskinProtectLevel 的值。
+
+ + strengthLevel + 色彩增强的强度级别。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:默认值,表示不对视频应用色彩增强。
  • +
  • 数值越大,色彩增强效果越明显。
  • +
默认值为 0.5
+
+ + skinProtectLevel + 肤色保护的强度级别。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:表示不启用肤色保护。
  • +
  • 数值越大,肤色保护效果越强。
  • +
默认值为 1.0 +
    +
  • 当色彩增强强度较高时,人物肤色可能出现明显偏色,因此建议设置合适的肤色保护级别。
  • +
  • 肤色保护级别越高,色彩增强效果可能略有下降。
  • +
为获得最佳效果,建议你根据实际情况调整 strengthLevelskinProtectLevel
+
+ + strengthLevel + 色彩增强等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:不对视频进行色彩增强。
  • +
  • 1.0:色彩增强效果最强。
  • +
默认值为 0.5。
+
+ + skinProtectLevel + + 当色彩增强等级较高时,人像肤色可能会出现明显失真,因此需要设置肤色保护等级。肤色保护等级越高,色彩增强效果可能会略有降低。为获得最佳色彩增强效果,声网建议你同时调整 strengthLevelskinProtectLevel,以获得最合适的取值。肤色保护等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:不进行肤色保护。
  • +
  • 1.0:肤色保护效果最强。
  • +
默认值为 1.0。
+
+ + strengthLevel + 色彩增强等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:不对视频进行色彩增强。
  • +
  • 1.0:色彩增强效果最强。
  • +
默认值为 0.5。
+
+ + skinProtectLevel + + 当色彩增强等级较高时,人像肤色可能会出现明显失真,因此需要设置肤色保护等级。肤色保护等级越高,色彩增强效果可能会略有降低。为获得最佳色彩增强效果,声网建议你同时调整 strengthLevelskinProtectLevel,以获得最合适的取值。肤色保护等级。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:不进行肤色保护。
  • +
  • 1.0:肤色保护效果最强。
  • +
默认值为 1.0。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_config.dita b/dita/RTC-AIDOC/API/class_config.dita new file mode 100644 index 00000000000..367eb72c8a6 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_config.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="Config"/> + 用于配置 RTE 对象。RTE 对象的配置类。RTE 对象的配置类。RTE 对象的配置类。 + +
+

+ class Config { + public: + RteConfigSetAppId(&c_rte_config, str.get_underlying_impl(), err != nullptr ? err->get_underlying_impl() : nullptr); + RteConfigSetLogFolder(&c_rte_config, str.get_underlying_impl(), err != nullptr ? err->get_underlying_impl() : nullptr); + RteConfigSetCloudProxy(&c_rte_config, str.get_underlying_impl(), err != nullptr ? err->get_underlying_impl() : nullptr); + RteConfigSetJsonParameter(&c_rte_config, str.get_underlying_impl(), err != nullptr ? err->get_underlying_impl() : nullptr); + + private: + ::RteConfig* get_underlying_impl() { return &c_rte_config; } + + private: + friend class Rte; + ::RteConfig c_rte_config; +}; + public class Config { + private long mNativeHandle = 0; +} + __attribute__((visibility("default"))) @interface AgoraRteConfig : NSObject +@end + __attribute__((visibility("default"))) @interface AgoraRteConfig : NSObject +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + RteConfigSetAppId + 设置 App ID,用于标识应用。 + + + RteConfigSetLogFolder + 设置日志文件的存储目录。 + + + RteConfigSetCloudProxy + 设置云代理地址。 + + + RteConfigSetJsonParameter + 设置 JSON 格式的自定义参数。 + + + mNativeHandle + 原生层句柄,用于与底层 RTE 实现进行交互。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_contentinspectconfig.dita b/dita/RTC-AIDOC/API/class_contentinspectconfig.dita new file mode 100644 index 00000000000..c9e63481547 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_contentinspectconfig.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="ContentInspectConfig"/> + 配置视频截图和上传功能。用于配置截图和上传功能。截图和上传配置。截图和上传配置。 + +
+

+ struct ContentInspectConfig { + const char* extraInfo; + const char* serverConfig; + ContentInspectModule modules[MAX_CONTENT_INSPECT_MODULE_COUNT]; + int moduleCount; +}; + public class ContentInspectConfig { + public final static int CONTENT_INSPECT_TYPE_INVALID = 0; + @Deprecated public final static int CONTENT_INSPECT_TYPE_MODERATION = 1; + public final static int CONTENT_INSPECT_TYPE_SUPERVISE = 2; + public final static int CONTENT_INSPECT_TYPE_IMAGE_MODERATION = 3; + public static final int MAX_CONTENT_INSPECT_MODULE_COUNT = 32; + public String extraInfo; + public String serverConfig; + public ContentInspectModule[] modules; + public int moduleCount; +} + __attribute__((visibility("default"))) @interface AgoraContentInspectConfig: NSObject +@property (nonatomic, copy) NSString* _Nullable extraInfo; +@property (nonatomic, copy) NSString* _Nullable serverConfig; +@property(copy, nonatomic) NSArray<AgoraContentInspectModule*>* _Nullable modules; +@end + __attribute__((visibility("default"))) @interface AgoraContentInspectConfig: NSObject +@property (nonatomic, copy) NSString* _Nullable extraInfo; +@property (nonatomic, copy) NSString* _Nullable serverConfig; +@property(copy, nonatomic) NSArray<AgoraContentInspectModule*>* _Nullable modules; +@end +

+
+
+
+ +
自从
+
自 v3.4.2 版本新增。
+
+
+

SDK 会将视频截图和附加信息上传至声网服务器。上传完成后,声网服务器会将回调通知和附加信息发送至你的服务器。

+

用于设置截图和上传的相关参数。

+

用于配置本地截图上传功能。上传完成后,声网服务器会将附加信息和回调通知发送至你的服务器。

+

用于配置本地截图上传功能。上传完成后,声网服务器会将附加信息和回调通知发送至你的服务器。

+ 一个功能模块最多只能配置一个实例。目前仅支持本地截图上传功能。 +
+
+ 属性 + + + extraInfo + 视频内容的附加信息(最大长度为 1024 字节)。 + + + serverConfig + (可选)通过声网 Extensions Marketplace 上传视频截图的服务器配置。仅当 中的 type 设置为 CONTENT_INSPECT_IMAGE_MODERATION 时该参数才生效。如需使用,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + modules + 功能模块。最多可配置 32 个 实例。详见 。 + 一个功能模块最多只能配置一个实例。目前仅支持本地截图上传功能。 + + + + moduleCount + 功能模块的数量,即配置的 实例数量,必须与 modules 中配置的实例数量一致。最大数量为 32。 + + + CONTENT_INSPECT_TYPE_INVALID + 0:(默认)无实际功能。不要将 type 设置为该值。 + + + CONTENT_INSPECT_TYPE_MODERATION + 已废弃的视频内容审核类型。 + + + CONTENT_INSPECT_TYPE_SUPERVISE + 2:通过声网自研扩展进行视频截图并上传。SDK 会对本地用户发送的视频进行截图并上传。 + + + CONTENT_INSPECT_TYPE_IMAGE_MODERATION + 3:通过声网扩展市场中的扩展插件进行视频截图并上传。SDK 使用扩展插件对频道中的视频流进行截图并上传。 + + + MAX_CONTENT_INSPECT_MODULE_COUNT + 功能模块的最大配置数量为 32。 + + + extraInfo + 视频内容的附加信息(最大长度为 1024 字节)。SDK 会将截图和附加信息一并发送到声网服务器。完成上传后,声网服务器会将附加信息和回调通知发送到你的服务器。 + + + serverConfig + (可选)通过声网扩展市场中的扩展上传视频截图时的服务器配置。仅当 type 设置为 CONTENT_INSPECT_TYPE_IMAGE_MODERATION 时该参数才生效。如需使用该功能,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + modules + 功能模块。最多支持配置 32 个实例,取值范围为 [1, 32]。详见 。 + 每个功能模块最多只能配置一个实例。目前仅支持本地截图上传功能。 + + + + moduleCount + 功能模块的数量,即配置的 实例数量。必须与 modules 中配置的实例数量一致,最大值为 32。 + + + extraInfo + 视频内容的附加信息(最大长度为 1024 字节)。SDK 会将截图和视频内容的附加信息上传至声网服务器。上传完成后,声网服务器会将附加信息和回调通知发送至你的服务器。 + + + serverConfig + 通过声网 Extensions Marketplace 上传视频截图的扩展相关的服务器配置。仅当 中的 type 设置为 AgoraContentInspectTypeImageModeration 时该参数才生效。如需使用该功能,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + modules + 功能模块。最多可配置 32 个 实例,MAX_CONTENT_INSPECT_MODULE_COUNT 的取值范围为 [1, 32] 的整数。详见 。 + 每个功能模块最多只能配置一个实例。目前仅支持本地截图上传功能。 + + + + extraInfo + 视频内容的附加信息(最大长度为 1024 字节)。SDK 会将截图和视频内容的附加信息上传至声网服务器。上传完成后,声网服务器会将附加信息和回调通知发送至你的服务器。 + + + serverConfig + 通过声网 Extensions Marketplace 上传视频截图的扩展相关的服务器配置。仅当 中的 type 设置为 AgoraContentInspectTypeImageModeration 时该参数才生效。如需使用该功能,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + modules + 功能模块。最多可配置 32 个 实例,MAX_CONTENT_INSPECT_MODULE_COUNT 的取值范围为 [1, 32] 的整数。详见 。 + 每个功能模块最多只能配置一个实例。目前仅支持本地截图上传功能。 + + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_contentinspectmodule.dita b/dita/RTC-AIDOC/API/class_contentinspectmodule.dita new file mode 100644 index 00000000000..9b98bb3ff05 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_contentinspectmodule.dita @@ -0,0 +1,94 @@ + + + + <ph keyref="ContentInspectModule"/> + 用于设置本地截图上传的频率。用于配置本地截图上传的频率。用于配置视频截图和上传频率的结构体。用于配置视频截图和上传频率的结构体。 + +
+

+ struct ContentInspectModule { + CONTENT_INSPECT_TYPE type; + unsigned int interval; + base::VIDEO_MODULE_POSITION position; +}; + public static class ContentInspectModule { + public int type; + public int interval; + public Constants.VideoModulePosition position; + } + @interface AgoraContentInspectModule: NSObject +@property (assign, nonatomic) AgoraContentInspectType type; +@property (assign, nonatomic) NSInteger interval; +@property (assign, nonatomic) AgoraVideoModulePosition position; +@end + @interface AgoraContentInspectModule: NSObject +@property (assign, nonatomic) AgoraContentInspectType type; +@property (assign, nonatomic) NSInteger interval; +@property (assign, nonatomic) AgoraVideoModulePosition position; +@end +

+
+
+

用于配置本地截图上传模块的功能类型和视频观察器的位置。

+
+
+ 属性 + + + type + 功能模块的类型。详见 + + + interval + 本地截图上传的频率,单位为秒。该值必须大于 0。默认值为 0,表示 SDK 不进行截图。声网建议设置为 10 秒,可根据业务需求进行调整。 + + + position + 视频观察器的位置。详见 + + + type + 功能模块的类型: +
    +
  • CONTENT_INSPECT_TYPE_INVALID (0):(默认)该模块无实际功能。请勿设置为此值。
  • +
  • CONTENT_INSPECT_TYPE_SUPERVISE (2):通过声网自研扩展进行本地截图上传,SDK 将对频道中的视频流进行截图并上传。
  • +
  • CONTENT_INSPECT_TYPE_IMAGE_MODERATION (3):通过声网扩展市场中的扩展进行本地截图上传,SDK 使用声网扩展市场中的视频审核扩展对频道中的视频流进行截图并上传。
  • +
+
+
+ + interval + 视频截图和上传的时间间隔(单位为秒)。取值应大于 0。默认值为 0,表示 SDK 不进行截图。声网建议设为 10,亦可根据业务需求进行调整。 + + + position + 视频观察器的位置,详见 + + + type + 功能模块的类型,详见 + + + interval + 视频截图和上传的频率(单位为秒)。该值必须大于 0。默认值为 0,表示 SDK 不进行截图。建议设置为 10 秒,可根据业务需求进行调整。 + + + position + 视频观察者的位置,详见 + + + type + 功能模块的类型,详见 + + + interval + 视频截图和上传的频率(单位为秒)。该值必须大于 0。默认值为 0,表示 SDK 不进行截图。建议设置为 10 秒,可根据业务需求进行调整。 + + + position + 视频观察者的位置,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_datastreamconfig.dita b/dita/RTC-AIDOC/API/class_datastreamconfig.dita new file mode 100644 index 00000000000..f1ae42bafec --- /dev/null +++ b/dita/RTC-AIDOC/API/class_datastreamconfig.dita @@ -0,0 +1,219 @@ + + + + <ph keyref="DataStreamConfig"/> + 用于配置数据流行为的结构体。用于设置数据流的同步与顺序行为。配置数据流参数。配置数据流参数。 + +
+

+ struct DataStreamConfig { + bool syncWithAudio; + bool ordered; +}; + public class DataStreamConfig { + public boolean syncWithAudio = false; + public boolean ordered = false; +} + @interface AgoraDataStreamConfig: NSObject +@property (assign, nonatomic) BOOL ordered; +@property (assign, nonatomic) BOOL syncWithAudio; +@end + @interface AgoraDataStreamConfig: NSObject +@property (assign, nonatomic) BOOL ordered; +@property (assign, nonatomic) BOOL syncWithAudio; +@end +

+
+
+

下表展示了在不同参数组合下 SDK 的行为: + + + syncWithAudio + ordered + SDK 行为 + + + + + 接收端接收到数据包后,SDK 立即触发 回调。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会在同步的音频包播放时触发 回调;如果数据包延迟超过音频延迟,SDK 会在接收到数据包后立即触发回调。 + + + + + 如果数据包延迟小于 5 秒,SDK 会对数据包进行顺序校正;如果延迟超过 5 秒,SDK 会丢弃该数据包。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会对数据包进行顺序校正;如果延迟超过音频延迟,SDK 会丢弃该数据包。 + + +

+

下表展示了在不同参数组合下 SDK 的行为: + + + syncWithAudio + ordered + SDK 行为 + + + + + 接收端接收到数据包后,SDK 会立即触发 回调。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会在同步的音频播放时触发回调;否则立即触发回调。 + + + + + 如果数据包延迟小于 5 秒,SDK 会纠正其顺序;否则丢弃该数据包。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会纠正其顺序;否则丢弃该数据包。 + + +

+

下表展示了在不同参数设置下 SDK 的行为: + + + syncWithAudio + ordered + SDK 行为 + + + + + 接收端接收到数据包后,SDK 会立即触发 回调。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会在同步的音频包播放时触发回调;如果数据包延迟超过音频延迟,SDK 会在接收到数据包时立即触发回调。 + + + + + 如果数据包延迟小于 5 秒,SDK 会对数据包进行顺序校正;如果延迟超过 5 秒,SDK 会丢弃该数据包。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会对数据包进行顺序校正;如果延迟超过音频延迟,SDK 会丢弃该数据包。 + + +

+

下表展示了在不同参数设置下 SDK 的行为: + + + syncWithAudio + ordered + SDK 行为 + + + + + 接收端接收到数据包后,SDK 会立即触发 回调。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会在同步的音频包播放时触发回调;如果数据包延迟超过音频延迟,SDK 会在接收到数据包时立即触发回调。 + + + + + 如果数据包延迟小于 5 秒,SDK 会对数据包进行顺序校正;如果延迟超过 5 秒,SDK 会丢弃该数据包。 + + + + + 如果数据包延迟在音频延迟范围内,SDK 会对数据包进行顺序校正;如果延迟超过音频延迟,SDK 会丢弃该数据包。 + + +

+
+
+ 属性 + + + syncWithAudio + 是否将数据包与已发布的音频包同步。 +
    +
  • :将数据包与音频包同步,适用于歌词同步等场景。
  • +
  • :不与音频包同步,适用于需要数据包立即到达接收端的场景。
  • +
当设置为同步时,如果数据包延迟在音频延迟范围内,SDK 会在对应音频播放时触发 回调。
+
+ + ordered + 是否保证接收端按发送顺序接收数据。 +
    +
  • :保证接收端按发送顺序接收数据。
  • +
  • :不保证接收端按发送顺序接收数据。
  • +
如果希望接收端立即接收数据包,请不要将此参数设置为
+
+ + syncWithAudio + 是否将数据包与发布的音频包同步。 +
    +
  • :数据包与音频包同步,适用于歌词同步等特殊场景。
  • +
  • :数据包不与音频包同步,适用于需要数据包立即送达接收端的场景。
  • +
+
+
+ + ordered + 是否确保接收端按发送顺序接收数据。 +
    +
  • :接收端按发送顺序接收数据。
  • +
  • :不保证接收顺序。
  • +
+
+
+ + ordered + 是否保证接收端按发送顺序接收数据。 +
    +
  • :保证接收端按发送顺序接收数据。
  • +
  • :不保证接收端按发送顺序接收数据。
  • +
如果你希望接收端立即接收数据包,请不要将该参数设置为
+
+ + syncWithAudio + 是否将数据包与发布的音频包同步。 +
    +
  • :将数据包与音频包同步,适用于歌词同步等特殊场景。
  • +
  • :不与音频包同步,适用于需要数据包立即到达接收端的场景。
  • +
+
+
+ + ordered + 是否保证接收端按发送顺序接收数据。 +
    +
  • :保证接收端按发送顺序接收数据。
  • +
  • :不保证接收端按发送顺序接收数据。
  • +
如果你希望接收端立即接收数据包,请不要将该参数设置为
+
+ + syncWithAudio + 是否将数据包与发布的音频包同步。 +
    +
  • :将数据包与音频包同步,适用于歌词同步等特殊场景。
  • +
  • :不与音频包同步,适用于需要数据包立即到达接收端的场景。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_deviceinfo.dita b/dita/RTC-AIDOC/API/class_deviceinfo.dita new file mode 100644 index 00000000000..56270976894 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_deviceinfo.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="DeviceInfo"/> + 用于获取音频设备信息。表示音频设备是否支持超低延迟采集和播放。 + +
+

+ struct DeviceInfo { + bool isLowLatencyAudioSupported; +}; + public class DeviceInfo { + public boolean isLowLatencyAudioSupported; +} +

+
+
+ 该类仅适用于 Android 平台。 +
+
+ 属性 + + + isLowLatencyAudioSupported + 音频设备是否支持超低延迟采集和播放: +
    +
  • :设备支持超低延迟采集和播放。
  • +
  • :设备不支持超低延迟采集和播放。
  • +
+
+
+ + isLowLatencyAudioSupported + 是否支持超低延迟音频采集和播放: +
    +
  • :设备支持超低延迟音频采集和播放。
  • +
  • :设备不支持超低延迟音频采集和播放。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_directcdnstreamingmediaoptions.dita b/dita/RTC-AIDOC/API/class_directcdnstreamingmediaoptions.dita new file mode 100644 index 00000000000..6316807cfb5 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_directcdnstreamingmediaoptions.dita @@ -0,0 +1,285 @@ + + + + <ph keyref="DirectCdnStreamingMediaOptions"/> + 用于配置媒体推流选项。用于设置主播端的媒体发布选项。用于设置旁路推流的媒体选项。用于设置旁路推流的媒体选项。 + +
+

+ struct DirectCdnStreamingMediaOptions { + Optional<bool> publishCameraTrack; + Optional<bool> publishMicrophoneTrack; + Optional<bool> publishCustomAudioTrack; + Optional<bool> publishCustomVideoTrack; + Optional<bool> publishMediaPlayerAudioTrack; + Optional<int> publishMediaPlayerId; + Optional<video_track_id_t> customVideoTrackId; +} + public class DirectCdnStreamingMediaOptions { + public Boolean publishCameraTrack; + public Boolean publishMicrophoneTrack; + public Boolean publishCustomAudioTrack; + public Boolean publishCustomVideoTrack; + public Boolean publishMediaPlayerAudioTrack; + public Integer publishMediaPlayerId; + public Integer customVideoTrackId; +} + __attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingMediaOptions : NSObject +@property(assign, nonatomic) BOOL publishCameraTrack; +@property(assign, nonatomic) BOOL publishMicrophoneTrack; +@property(assign, nonatomic) BOOL publishCustomAudioTrack; +@property(assign, nonatomic) BOOL publishCustomVideoTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack; +@property(assign, nonatomic) NSInteger publishMediaPlayerId; +@property(assign, nonatomic) NSInteger customVideoTrackId; +@end + __attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingMediaOptions : NSObject +@property(assign, nonatomic) BOOL publishCameraTrack; +@property(assign, nonatomic) BOOL publishMicrophoneTrack; +@property(assign, nonatomic) BOOL publishCustomAudioTrack; +@property(assign, nonatomic) BOOL publishCustomVideoTrack; +@property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack; +@property(assign, nonatomic) NSInteger publishMediaPlayerId; +@property(assign, nonatomic) NSInteger customVideoTrackId; +@end +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+ 属性 + + + publishCameraTrack + 设置是否发布摄像头采集的视频: +
    +
  • :发布摄像头采集的视频。
  • +
  • :(默认)不发布摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 设置是否发布麦克风采集的音频: +
    +
  • :发布麦克风采集的音频。
  • +
  • :(默认)不发布麦克风采集的音频。
  • +
+
+
+ + publishCustomAudioTrack + 设置是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • :(默认)不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomVideoTrack + 设置是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • :(默认)不发布自定义视频源采集的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 设置是否发布媒体播放器音频轨道: +
    +
  • :发布媒体播放器音频轨道。
  • +
  • :(默认)不发布媒体播放器音频轨道。
  • +
+
+
+ + publishMediaPlayerId + 设置要发布的媒体播放器源。你可以在调用 方法后获取媒体播放器 ID。 + + + customVideoTrackId + 调用 方法后返回的视频轨道 ID。默认值为 0。 + + + publishCameraTrack + 设置是否发布通过摄像头采集的视频: +
    +
  • :发布通过摄像头采集的视频。
  • +
  • (默认):不发布通过摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 设置是否发布通过麦克风采集的音频: +
    +
  • :发布通过麦克风采集的音频。
  • +
  • (默认):不发布通过麦克风采集的音频。
  • +
+
+
+ + publishCustomAudioTrack + 设置是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • (默认):不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomVideoTrack + 设置是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • (默认):不发布自定义视频源采集的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 设置是否发布媒体播放器源的音频轨道: +
    +
  • :发布媒体播放器源的音频轨道。
  • +
  • (默认):不发布媒体播放器源的音频轨道。
  • +
+
+
+ + publishMediaPlayerId + 设置要发布的媒体播放器源 ID。该值通过调用 方法获取。 + + + customVideoTrackId + 调用 方法返回的视频轨道 ID。默认值为 0。 + + + publishCameraTrack + 设置是否发布摄像头采集的视频: +
    +
  • :发布摄像头采集的视频。
  • +
  • :(默认)不发布摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 设置是否发布麦克风采集的音频: +
    +
  • :发布麦克风采集的音频。
  • +
  • :(默认)不发布麦克风采集的音频。
  • +
+
+
+ + publishCustomAudioTrack + 设置是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • :(默认)不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomVideoTrack + 设置是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • :(默认)不发布自定义视频源采集的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 设置是否发布媒体播放器音频轨道: +
    +
  • :发布媒体播放器的音频轨道。
  • +
  • :(默认)不发布媒体播放器的音频轨道。
  • +
+
+
+ + publishMediaPlayerId + 设置要发布的媒体播放器实例 ID。该参数通过 方法获取。 + + + customVideoTrackId + 通过调用 方法返回的视频轨道 ID。默认值为 0。 + + + publishCameraTrack + 设置是否发布摄像头采集的视频: +
    +
  • :发布摄像头采集的视频。
  • +
  • :(默认)不发布摄像头采集的视频。
  • +
+
+
+ + publishMicrophoneTrack + 设置是否发布麦克风采集的音频: +
    +
  • :发布麦克风采集的音频。
  • +
  • :(默认)不发布麦克风采集的音频。
  • +
+
+
+ + publishCustomAudioTrack + 设置是否发布自定义音频源采集的音频: +
    +
  • :发布自定义音频源采集的音频。
  • +
  • :(默认)不发布自定义音频源采集的音频。
  • +
+
+
+ + publishCustomVideoTrack + 设置是否发布自定义视频源采集的视频: +
    +
  • :发布自定义视频源采集的视频。
  • +
  • :(默认)不发布自定义视频源采集的视频。
  • +
+
+
+ + publishMediaPlayerAudioTrack + 设置是否发布媒体播放器音频轨道: +
    +
  • :发布媒体播放器的音频轨道。
  • +
  • :(默认)不发布媒体播放器的音频轨道。
  • +
+
+
+ + publishMediaPlayerId + 设置要发布的媒体播放器实例 ID。该参数通过 方法获取。 + + + customVideoTrackId + 通过调用 方法返回的视频轨道 ID。默认值为 0。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_directcdnstreamingstats.dita b/dita/RTC-AIDOC/API/class_directcdnstreamingstats.dita new file mode 100644 index 00000000000..3884ff1b9a1 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_directcdnstreamingstats.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="DirectCdnStreamingStats"/> + 用于获取当前 CDN 推流的统计信息。当前 CDN 推流的统计信息。当前 CDN 推流的统计信息。当前 CDN 推流的统计信息。 + +
+

+ struct DirectCdnStreamingStats { + int videoWidth; + int videoHeight; + int fps; + int videoBitrate; + int audioBitrate; +}; + public class DirectCdnStreamingStats { + public int videoWidth; + public int videoHeight; + public int fps; + public int videoBitrate; + public int audioBitrate; +} + __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 + __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 +

+
+
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+ 属性 + + + videoWidth + 视频帧的宽度,单位为像素。 + + + videoHeight + 视频帧的高度,单位为像素。 + + + fps + 当前视频帧的帧率,单位为 fps。 + + + videoBitrate + 当前视频帧的码率,单位为 bps。 + + + audioBitrate + 当前音频帧的码率,单位为 bps。 + + + videoWidth + 视频帧的宽度(单位:px)。 + + + videoHeight + 视频帧的高度(单位:px)。 + + + fps + 当前视频帧的帧率(单位:fps)。 + + + videoBitrate + 当前视频帧的码率(单位:bps)。 + + + audioBitrate + 当前音频帧的码率(单位:bps)。 + + + videoWidth + 视频帧的宽度(像素)。 + + + videoHeight + 视频帧的高度(像素)。 + + + fps + 当前视频帧的帧率(fps)。 + + + videoBitrate + 当前视频帧的码率(bps)。 + + + audioBitrate + 当前音频帧的码率(bps)。 + + + videoWidth + 视频帧的宽度(像素)。 + + + videoHeight + 视频帧的高度(像素)。 + + + fps + 当前视频帧的帧率(fps)。 + + + videoBitrate + 当前视频帧的码率(bps)。 + + + audioBitrate + 当前音频帧的码率(bps)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_echotestconfiguration.dita b/dita/RTC-AIDOC/API/class_echotestconfiguration.dita new file mode 100644 index 00000000000..74b3eb470bb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_echotestconfiguration.dita @@ -0,0 +1,205 @@ + + + + <ph keyref="EchoTestConfiguration"/> + 用于配置音视频通话回路测试。用于配置音视频通话回路测试。配置音视频通话回路测试。配置音视频通话回路测试。 + +
+

+ struct EchoTestConfiguration { + view_t view; + bool enableAudio; + bool enableVideo; + const char* token; + const char* channelId; + int intervalInSeconds; +}; + public class EchoTestConfiguration { + public SurfaceView view = null; + public boolean enableAudio = true; + public boolean enableVideo = true; + public String token = null; + public String channelId = null; + public int intervalInSeconds = 2; +} + __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); +@property(assign, nonatomic) NSInteger intervalInSeconds NS_SWIFT_NAME(intervalInSeconds); +@end + __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); +@property(assign, nonatomic) NSInteger intervalInSeconds NS_SWIFT_NAME(intervalInSeconds); +@end +

+
+
+ 属性 + + + view + 用于渲染本地用户视频的视图。该参数仅在 时生效。 + + + enableAudio + 是否启用音频设备进行回路测试: +
    +
  • :(默认)启用音频设备。若需测试音频设备,请将该参数设置为
  • +
  • :不启用音频设备。
  • +
+
+
+ + enableVideo + 是否启用视频设备进行回路测试: +
    +
  • :(默认)启用视频设备。若需测试视频设备,请将该参数设置为
  • +
  • :不启用视频设备。
  • +
+
+
+ + token + 用于保障音视频通话回路测试安全的动态密钥 Token。如果你未在声网控制台启用 App Certificate,则无需传入该参数;如果已启用 App Certificate,则必须传入 Token。生成 Token 时使用的 uid 必须为 0xFFFFFFFF,频道名必须为用于标识每次音视频通话回路测试的频道名。 + + + channelId + 用于标识每次音视频通话回路测试的频道名。为确保回路测试功能正常,同一项目(App ID)下的用户在不同设备上进行音视频通话回路测试时,传入的频道名不能相同。 + + + intervalInSeconds + 设置返回音视频回路测试结果的时间间隔或延迟,单位为秒,取值范围为 [2, 10],默认值为 2 秒。 +
    +
  • 对于音频回路测试,测试结果将按照设置的时间间隔返回。
  • +
  • 对于视频回路测试,视频会在短时间内显示,之后延迟会逐渐增加,直到达到设置的延迟时间。
  • +
+
+
+ + view + 用于渲染本地用户视频的视图。该参数仅适用于测试视频设备的场景,即当 时有效。详见 SurfaceView + + + enableAudio + 是否启用音频设备进行回路测试: +
    +
  • :(默认)启用音频设备。要测试音频设备,请将此参数设置为
  • +
  • :不启用音频设备。
  • +
+
+
+ + enableVideo + 是否启用视频设备进行回路测试: +
    +
  • :(默认)启用视频设备。要测试视频设备,请将此参数设置为
  • +
  • :不启用视频设备。
  • +
+
+
+ + token + 用于保障音视频通话回路测试安全的动态密钥(Token)。如果你未在声网控制台启用 App Certificate,可不传此参数;如果你已启用 App Certificate,必须传入 Token。生成 Token 时使用的 uid 必须为 0xFFFFFFFF,使用的频道名必须与用于识别各回路测试的频道名一致。 + + + channelId + 用于标识每次音视频通话回路测试的频道名。为确保回路测试正常运行,当同一个项目(App ID)的用户在不同设备上进行音视频通话回路测试时,所传入的频道名不能相同。 + + + intervalInSeconds + 设置返回音视频回路测试结果的时间间隔或延迟,单位为秒。取值范围为 [2, 10],默认值为 2。 +
    +
  • 对于音频回路测试,根据设置的时间间隔返回测试结果。
  • +
  • 对于视频回路测试,视频会短时间内显示,之后延迟逐步增加,直到达到你设定的值。
  • +
+
+
+ + view + 用于渲染本地用户视频的视图。该参数仅适用于测试视频设备的场景,即当 时。 + + + enableAudio + 是否启用音频设备进行回路测试: +
    +
  • :(默认)启用音频设备。若需测试音频设备,请将此参数设置为
  • +
  • :不启用音频设备。
  • +
+
+
+ + enableVideo + 是否启用视频设备进行回路测试: +
    +
  • :(默认)启用视频设备。若需测试视频设备,请将此参数设置为
  • +
  • :不启用视频设备。
  • +
+
+
+ + token + 用于保障音视频通话回路测试安全的 Token。如果你未在声网控制台启用 App Certificate,则无需传入该参数;如果已启用 App Certificate,则必须传入 Token。生成 Token 时使用的 uid 必须为 0xFFFFFFFF,频道名必须为用于标识每次音视频通话回路测试的频道名。 + + + channelId + 用于标识每次音视频通话回路测试的频道名。为确保回路测试功能正常,同一项目(App ID)下的用户在不同设备上进行音视频通话回路测试时,传入的频道名不能相同。 + + + intervalInSeconds + 设置返回音视频回路测试结果的时间间隔或延迟,单位为秒,取值范围为 [2, 10],默认值为 2 秒。 +
    +
  • 对于音频回路测试,测试结果将按照设置的时间间隔返回。
  • +
  • 对于视频回路测试,视频将在短时间内显示,之后延迟将逐渐增加,直到达到设置的延迟时间。
  • +
+
+
+ + view + 用于渲染本地用户视频的视图。该参数仅适用于测试视频设备的场景,即当 时。 + + + enableAudio + 是否启用音频设备进行回路测试: +
    +
  • :(默认)启用音频设备。若需测试音频设备,请将此参数设置为
  • +
  • :不启用音频设备。
  • +
+
+
+ + enableVideo + 是否启用视频设备进行回路测试: +
    +
  • :(默认)启用视频设备。若需测试视频设备,请将此参数设置为
  • +
  • :不启用视频设备。
  • +
+
+
+ + token + 用于保障音视频通话回路测试安全的 Token。如果你未在声网控制台启用 App Certificate,则无需传入该参数;如果已启用 App Certificate,则必须传入 Token。生成 Token 时使用的 uid 必须为 0xFFFFFFFF,频道名必须为用于标识每次音视频通话回路测试的频道名。 + + + channelId + 用于标识每次音视频通话回路测试的频道名。为确保回路测试功能正常,同一项目(App ID)下的用户在不同设备上进行音视频通话回路测试时,传入的频道名不能相同。 + + + intervalInSeconds + 设置返回音视频回路测试结果的时间间隔或延迟,单位为秒,取值范围为 [2, 10],默认值为 2 秒。 +
    +
  • 对于音频回路测试,测试结果将按照设置的时间间隔返回。
  • +
  • 对于视频回路测试,视频将在短时间内显示,之后延迟将逐渐增加,直到达到设置的延迟时间。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_encodedaudioframeinfo.dita b/dita/RTC-AIDOC/API/class_encodedaudioframeinfo.dita new file mode 100644 index 00000000000..8fd5b4a47b5 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_encodedaudioframeinfo.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="EncodedAudioFrameInfo"/> + 编码后音频帧的信息。编码后的音频帧信息。编码后的音频帧信息。 + +
+

+ struct EncodedAudioFrameInfo { + AUDIO_CODEC_TYPE codec; + int sampleRateHz; + int samplesPerChannel; + int numberOfChannels; + EncodedAudioFrameAdvancedSettings advancedSettings; + int64_t captureTimeMs; +}; + __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 + __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 +

+
+
+ 属性 + + + codec + 音频编解码器类型。详见 + + + sampleRateHz + 音频采样率,单位为 Hz。 + + + samplesPerChannel + 每个声道的音频采样点数量。 + + + numberOfChannels + 音频的声道数。 + + + advancedSettings + 高级设置,当前暂不支持。详见 EncodedAudioFrameAdvancedSettings + + + captureTimeMs + 采集音频帧的时间戳,单位为毫秒。 + + + samplesPerChannel + 每个声道的音频采样数。 + + + channels + 音频声道数。 + + + samplesPerSec + 音频采样率(Hz)。 + + + codecType + 音频编解码器类型。详见 + + + samplesPerChannel + 每个声道的音频采样数。 + + + channels + 音频声道数。 + + + samplesPerSec + 音频采样率(Hz)。 + + + codecType + 音频编解码器类型。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_encodedvideoframeinfo.dita b/dita/RTC-AIDOC/API/class_encodedvideoframeinfo.dita new file mode 100644 index 00000000000..b8e2f9f0d31 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_encodedvideoframeinfo.dita @@ -0,0 +1,248 @@ + + + + <ph keyref="EncodedVideoFrameInfo"/> + 描述外部编码视频帧的信息。包含外部编码视频帧的相关信息。描述外部编码视频帧的信息。描述外部编码视频帧的信息。 + +
+

+ struct EncodedVideoFrameInfo { + VIDEO_CODEC_TYPE codecType; + int width; + int height; + int framesPerSecond; + VIDEO_FRAME_TYPE frameType; + VIDEO_ORIENTATION rotation; + int trackId; + int64_t captureTimeMs; + int64_t decodeTimeMs; + VIDEO_STREAM_TYPE streamType; + int64_t presentationMs; +}; + public class EncodedVideoFrameInfo { + public int codecType; + public int width; + public int height; + public int framesPerSecond; + public int frameType; + public int rotation; + public int trackId; + public long captureTimeMs; + public long decodeTimeMs; + public int streamType; +} + __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 decodeTimeMs; +@property (assign, nonatomic) AgoraVideoStreamType streamType; +@end + __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 decodeTimeMs; +@property (assign, nonatomic) AgoraVideoStreamType streamType; +@end +

+
+
+ 属性 + + + codecType + 本地视频流的编解码器类型。详见 + + + width + 视频帧的宽度(单位为像素)。 + + + height + 视频帧的高度(单位为像素)。 + + + framesPerSecond + 视频帧的每秒帧数。当该参数不为 0 时,可用于计算外部编码视频帧的 Unix 时间戳。 + + + frameType + 视频帧的类型。详见 + + + rotation + 视频帧的旋转信息。详见 + + + trackId + 预留参数,用于未来支持多个视频轨道。 + + + captureTimeMs + 外部编码视频帧的采集时间戳(单位为毫秒,Unix 时间戳)。 + + + decodeTimeMs + 外部编码视频帧的解码时间戳(单位为毫秒,Unix 时间戳)。 + + + streamType + 视频流的类型。详见 + + + codecType + + 在某些场景下,例如采集的视频流分辨率较低或设备性能受限,SDK 会自动调整为 H.264 编码格式。视频的编解码器类型: +
    +
  • 1VIDEO_CODEC_VP8,VP8。
  • +
  • 2VIDEO_CODEC_H264,H.264。
  • +
  • 3:(默认)VIDEO_CODEC_H265,H.265。
  • +
+
+
+ + width + 视频帧的宽度(单位:像素)。 + + + height + 视频帧的高度(单位:像素)。 + + + framesPerSecond + 视频帧的每秒帧数。当该参数不为 0 时,你可以使用它来计算外部编码视频帧的 Unix 时间戳。 + + + frameType + 视频帧类型: +
    +
  • 0:(默认)VIDEO_FRAME_TYPE_BLANK_FRAME,空白帧。
  • +
  • 3VIDEO_FRAME_TYPE_KEY_FRAME,关键帧。
  • +
  • 4VIDEO_FRAME_TYPE_DELTA_FRAME,Delta 帧。
  • +
  • 5VIDEO_FRAME_TYPE_B_FRAME,B 帧。
  • +
  • 6VIDEO_FRAME_TYPE_UNKNOW,未知帧。
  • +
+
+
+ + rotation + 视频帧的旋转角度: +
    +
  • 0:(默认)0 度。
  • +
  • 90:90 度。
  • +
  • 180:180 度。
  • +
  • 270:270 度。
  • +
+
+
+ + trackId + 保留参数,用于未来扩展。 + + + captureTimeMs + 外部编码视频帧采集时的 Unix 时间戳(单位:毫秒)。 + + + decodeTimeMs + 输出参数,表示解码该视频帧的时间戳(单位:毫秒)。 + + + streamType + 视频流的类型。 + + + codecType + 本地视频流的编解码器类型,详见 + + + width + 视频帧的宽度(像素)。 + + + height + 视频帧的高度(像素)。 + + + framesPerSecond + 视频帧的每秒帧数。当该参数不为 0 时,可用于计算外部编码视频帧的 Unix 时间戳。 + + + frameType + 视频帧的类型,详见 + + + rotation + 视频帧的旋转信息。 + + + trackId + 预留参数,用于未来支持多个视频轨道。 + + + captureTimeMs + 外部编码视频帧的采集时间戳(毫秒)。 + + + decodeTimeMs + 输出参数,表示用于解码视频帧的时间戳(毫秒)。 + + + streamType + 视频流的类型,详见 + + + codecType + 本地视频流的编解码器类型,详见 + + + width + 视频帧的宽度(像素)。 + + + height + 视频帧的高度(像素)。 + + + framesPerSecond + 视频帧的每秒帧数。当该参数不为 0 时,可用于计算外部编码视频帧的 Unix 时间戳。 + + + frameType + 视频帧的类型,详见 + + + rotation + 视频帧的旋转信息。 + + + trackId + 预留参数,用于未来支持多个视频轨道。 + + + captureTimeMs + 外部编码视频帧的采集时间戳(毫秒)。 + + + decodeTimeMs + 输出参数,表示用于解码视频帧的时间戳(毫秒)。 + + + streamType + 视频流的类型,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_encryptionconfig.dita b/dita/RTC-AIDOC/API/class_encryptionconfig.dita new file mode 100644 index 00000000000..79488cdf433 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_encryptionconfig.dita @@ -0,0 +1,146 @@ + + + + <ph keyref="EncryptionConfig"/> + 用于配置内置加密参数。用于配置内置加密。内置加密配置。内置加密配置。 + +
+

+ struct EncryptionConfig { + ENCRYPTION_MODE encryptionMode; + const char* encryptionKey; + uint8_t encryptionKdfSalt[32]; + bool datastreamEncryptionEnabled; + const char* getEncryptionString() const; +}; + public class EncryptionConfig { + public EncryptionMode encryptionMode; + public String encryptionKey; + public final byte[] encryptionKdfSalt = new byte[32]; + public boolean datastreamEncryptionEnabled; +} + __attribute__((visibility("default"))) @interface AgoraEncryptionConfig: NSObject +@property (assign, nonatomic) AgoraEncryptionMode encryptionMode; +@property (copy, nonatomic) NSString * _Nullable encryptionKey; +@property (strong, nonatomic) NSData * _Nullable encryptionKdfSalt; +@property (assign, nonatomic) BOOL datastreamEncryptionEnabled; +@end + __attribute__((visibility("default"))) @interface AgoraEncryptionConfig: NSObject +@property (assign, nonatomic) AgoraEncryptionMode encryptionMode; +@property (copy, nonatomic) NSString * _Nullable encryptionKey; +@property (strong, nonatomic) NSData * _Nullable encryptionKdfSalt; +@property (assign, nonatomic) BOOL datastreamEncryptionEnabled; +@end +

+
+
+

用于配置内置加密的参数。

+

用于配置内置加密的参数。

+
+
+ 属性 + + + encryptionMode + 内置加密模式,详见 。声网建议使用 AES_128_GCM2AES_256_GCM2 模式,这两种模式支持使用加密盐以提升安全性。 + + + encryptionKey + 字符串类型的加密密钥,长度不受限制。声网建议使用 32 字节的密钥。 + 如果未设置加密密钥或将其设置为 ,则无法使用内置加密,SDK 会返回 -2 + + + + encryptionKdfSalt + 用于加密的盐值,长度为 32 字节。 + 该参数仅在 AES_128_GCM2AES_256_GCM2 加密模式下生效。在此情况下,请确保该参数不为 0 + + + + datastreamEncryptionEnabled + 是否启用数据流加密: +
    +
  • :启用数据流加密。
  • +
  • :(默认)禁用数据流加密。
  • +
+
+
+ + encryptionMode + 内置加密模式。声网建议使用 AES_128_GCM2AES_256_GCM2 加密模式,这两种模式支持使用加密盐值以提升安全性。详见 + + + encryptionKey + 加密密钥,类型为字符串,长度无限制。声网建议使用 32 字节长度的密钥。 + 如果未设置加密密钥或将其设置为 null,则无法使用内置加密,且 SDK 返回值为 -2 + + + + encryptionKdfSalt + 用于加密的盐值,长度为 32 字节。声网建议在服务器端使用 OpenSSL 生成该盐值。详见 Media Stream Encryption。 + 该参数仅在 AES_128_GCM2AES_256_GCM2 加密模式下生效。在此情况下,请确保该参数值不为 0。 + + + + datastreamEncryptionEnabled + 是否启用数据流加密: +
    +
  • :启用数据流加密。
  • +
  • :(默认)不启用数据流加密。
  • +
+
+
+ + encryptionMode + 内置加密模式,详见 。声网推荐使用 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式。 + + + encryptionKey + 字符串类型的加密密钥,长度不受限制。声网推荐使用 32 字节的密钥。 + 如果未设置加密密钥或将其设置为 ,则无法使用内置加密,SDK 会返回 -2 + + + + encryptionKdfSalt + 用于加密的盐值,长度为 32 字节。声网推荐在服务器端使用 OpenSSL 生成该盐值。 + 该参数仅在 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式下生效。在此情况下,请确保该参数不为 0 + + + + datastreamEncryptionEnabled + 是否启用数据流加密: +
    +
  • :启用数据流加密。
  • +
  • :(默认)不启用数据流加密。
  • +
+
+
+ + encryptionMode + 内置加密模式,详见 。声网推荐使用 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式。 + + + encryptionKey + 字符串类型的加密密钥,长度不受限制。声网推荐使用 32 字节的密钥。 + 如果未设置加密密钥或将其设置为 ,则无法使用内置加密,SDK 会返回 -2 + + + + encryptionKdfSalt + 用于加密的盐值,长度为 32 字节。声网推荐在服务器端使用 OpenSSL 生成该盐值。 + 该参数仅在 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式下生效。在此情况下,请确保该参数不为 0 + + + + datastreamEncryptionEnabled + 是否启用数据流加密: +
    +
  • :启用数据流加密。
  • +
  • :(默认)不启用数据流加密。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_error.dita b/dita/RTC-AIDOC/API/class_error.dita new file mode 100644 index 00000000000..84094f02184 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_error.dita @@ -0,0 +1,87 @@ + + + + <ph keyref="Error"/> + 用于获取错误码和错误信息。用于获取错误码和错误信息。用于获取错误码和错误信息。用于获取错误码和错误信息。 + +
+

+ class Error { + public: + + + } + return ""; + } + + ::RteError *get_underlying_impl() const { return c_error; } + + private: + + ::RteError *c_error; + bool c_error_owned = true; +}; + public class Error { + + private long mNativeHandle = 0; + private boolean mIsNativeOwner = true; +} + __attribute__((visibility("default"))) @interface AgoraRteError : NSObject +@end + __attribute__((visibility("default"))) @interface AgoraRteError : NSObject +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + c_error + 错误信息指针,详见 RteError + + + c_error_owned + 是否拥有 c_error 的所有权。 +
    +
  • :当前对象拥有 c_error 的所有权,负责其生命周期管理。
  • +
  • :当前对象不拥有 c_error 的所有权。
  • +
+
+
+ + mNativeHandle + 用于记录原生对象的句柄。 + + + mIsNativeOwner + 指示当前实例是否拥有原生资源的所有权。 +
    +
  • :当前实例拥有原生资源的所有权。
  • +
  • :当前实例不拥有原生资源的所有权。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_extensioncontext.dita b/dita/RTC-AIDOC/API/class_extensioncontext.dita new file mode 100644 index 00000000000..dde88f5c809 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_extensioncontext.dita @@ -0,0 +1,125 @@ + + + + <ph keyref="ExtensionContext"/> + 扩展的上下文信息。扩展的上下文信息。扩展的上下文信息。扩展的上下文信息。 + +
+

+ struct ExtensionContext { + bool isValid; + uid_t uid; + const char *providerName; + const char *extensionName; +}; + public class ExtensionContext { + public boolean isValid; + public int uid; + public String providerName; + public String extensionName; +} + @interface AgoraExtensionContext : NSObject +@property (assign, nonatomic) BOOL isValid; +@property (assign, nonatomic) NSUInteger uid; +@property (copy, nonatomic) NSString * _Nullable providerName; +@property (copy, nonatomic) NSString * _Nullable extensionName; +@end + @interface AgoraExtensionContext : NSObject +@property (assign, nonatomic) BOOL isValid; +@property (assign, nonatomic) NSUInteger uid; +@property (copy, nonatomic) NSString * _Nullable providerName; +@property (copy, nonatomic) NSString * _Nullable extensionName; +@end +

+
+
+ 属性 + + + isValid + uid 是否有效: +
    +
  • uid 有效。
  • +
  • uid 无效。
  • +
+
+
+ + uid + 用户 ID。0 表示本地用户,大于 0 表示远端用户。 + + + providerName + 扩展提供方名称。 + + + extensionName + 扩展名称。 + + + isValid + uid 是否有效: +
    +
  • uid 有效。
  • +
  • uid 无效。
  • +
+
+
+ + uid + 用户 ID。0 表示本地用户,大于 0 表示远端用户。 + + + providerName + 扩展提供方的名称。 + + + extensionName + 扩展的名称。 + + + isValid + uid 是否有效: +
    +
  • uid 有效。
  • +
  • uid 无效。
  • +
+
+
+ + uid + 用户 ID。0 表示本地用户,大于 0 表示远端用户。 + + + providerName + 扩展提供方的名称。 + + + extensionName + 扩展的名称。 + + + isValid + uid 是否有效: +
    +
  • uid 有效。
  • +
  • uid 无效。
  • +
+
+
+ + uid + 用户 ID。0 表示本地用户,大于 0 表示远端用户。 + + + providerName + 扩展提供方的名称。 + + + extensionName + 扩展的名称。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_externalvideoframe.dita b/dita/RTC-AIDOC/API/class_externalvideoframe.dita new file mode 100644 index 00000000000..a374f46508d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_externalvideoframe.dita @@ -0,0 +1,504 @@ + + + + <ph keyref="ExternalVideoFrame"/> + 表示外部视频帧。用于描述外部视频帧。外部视频帧。外部视频帧。 + +
+

+ struct ExternalVideoFrame { + VIDEO_BUFFER_TYPE type; + VIDEO_PIXEL_FORMAT format; + void* buffer; + int stride; + int height; + int cropLeft; + int cropTop; + int cropRight; + int cropBottom; + int rotation; + long long timestamp; + void* eglContext; + EGL_CONTEXT_TYPE eglType; + int textureId; + long long fenceObject; + float matrix[16]; + uint8_t* metadataBuffer; + int metadataSize; + uint8_t* alphaBuffer; + bool fillAlphaBuffer; + ALPHA_STITCH_MODE alphaStitchMode; + void *d3d11Texture2d; + int textureSliceIndex; + Hdr10MetadataInfo hdr10MetadataInfo; + ColorSpace colorSpace; +}; + public class AgoraVideoFrame { + public static final int FORMAT_NONE = -1; + public static final int FORMAT_TEXTURE_2D = 10; + public static final int FORMAT_TEXTURE_OES = 11; + public static final int FORMAT_I420 = 1; + public static final int FORMAT_BGRA = 2; + public static final int FORMAT_NV21 = 3; + public static final int FORMAT_RGBA = 4; + public static final int FORMAT_I422 = 16; + public static final int BUFFER_TYPE_NONE = -1; + public static final int BUFFER_TYPE_BUFFER = 1; + public static final int BUFFER_TYPE_ARRAY = 2; + public static final int BUFFER_TYPE_TEXTURE = 3; + public int format; + public long timeStamp; + public int stride; + public int height; + public int textureID; + public boolean syncMode; + public float[] transform; + public javax.microedition.khronos.egl.EGLContext eglContext10; + public android.opengl.EGLContext eglContext14; + public byte[] buf; + public int cropLeft; + public int cropTop; + public int cropRight; + public int cropBottom; + public int rotation; + public AlphaStitchMode alphaStitchMode; +} + __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) IMAGE_CLASS * _Nullable image; +@property(strong, nonatomic) NSData *_Nullable dataBuf; +@property(strong, nonatomic) NSData *_Nullable alphaBuf; +@property(assign, nonatomic) AgoraAlphaStitchMode alphaStitchMode; +@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; +@property(strong, nonatomic) AgoraColorSpace *_Nullable colorSpace; +@end + __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) IMAGE_CLASS * _Nullable image; +@property(strong, nonatomic) NSData *_Nullable dataBuf; +@property(strong, nonatomic) NSData *_Nullable alphaBuf; +@property(assign, nonatomic) AgoraAlphaStitchMode alphaStitchMode; +@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; +@property(strong, nonatomic) AgoraColorSpace *_Nullable colorSpace; +@end +

+
+
+ +
    +
  1. stride 的单位为像素(pixel),而非字节(byte)。
  2. +
  3. 帧宽和高可通过以下方式推导: +
      +
    • 裁剪后宽度:croppedWidth = strideInPixels - cropLeft - cropRight
    • +
    • 裁剪后高度:croppedHeight = height - cropTop - cropBottom
    • +
    +
  4. +
  5. 关于裁剪: +
      +
    • 如果缓冲区中存在冗余数据,可通过裁剪去除。例如帧大小为 360 × 640,但缓冲区的 stride 为 368,多出的 8 像素用于填充,此时可设置:stride = 368height = 640cropRight = 8,其余 cropXXX 默认为 0。
    • +
    +
  6. +
+
+ +
    +
  1. strideInPixels:步幅单位为像素,而非字节。
  2. +
  3. 关于帧的宽度和高度:未定义 width 字段,但可以通过以下方式推导:
  4. +
croppedWidth = (strideInPixels - cropLeft - cropRight) croppedHeight = (height - cropTop - cropBottom) +
    +
  1. 关于裁剪:如果缓冲区包含无效数据,可以通过裁剪去除。例如,帧大小为 360 x 640,缓冲区步幅为 368,即右侧多出 8 像素用于填充,此时可以设置:
  2. +
strideInPixels = 368; height = 640; cropRight = 8; // cropLeft、cropTop、cropBottom 默认为 0。
+ +
    +
  1. strideInPixels:步幅单位为像素,而非字节。
  2. +
  3. 关于帧的宽度和高度:未定义 width 字段,但可以通过以下方式推导:
  4. +
croppedWidth = (strideInPixels - cropLeft - cropRight) croppedHeight = (height - cropTop - cropBottom) +
    +
  1. 关于裁剪:如果缓冲区包含无效数据,可以通过裁剪去除。例如,帧大小为 360 x 640,缓冲区步幅为 368,即右侧多出 8 像素用于填充,此时可以设置:
  2. +
strideInPixels = 368; height = 640; cropRight = 8; // cropLeft、cropTop、cropBottom 默认为 0。
+
+
+ 属性 + + + type + 视频类型。详见 + + + format + 像素格式。详见 + + + buffer + 视频帧缓冲区。 + + + stride + 输入视频帧的行间距,单位为像素而非字节。对于纹理数据,该值为纹理的宽度。 + + + height + 输入视频帧的高度。 + + + cropLeft + 从左侧裁剪的像素数。默认值为 0。 + + + cropTop + 从顶部裁剪的像素数。默认值为 0。 + + + cropRight + 从右侧裁剪的像素数。默认值为 0。 + + + cropBottom + 从底部裁剪的像素数。默认值为 0。 + + + rotation + 视频帧的顺时针旋转角度。可设置为 0、90、180 或 270。默认值为 0。 + + + timestamp + 输入视频帧的时间戳(毫秒)。时间戳错误会导致帧丢失或音视频不同步。 + + + eglContext + 仅适用于 Texture 格式的视频数据。 +
    +
  • 使用 Khronos 定义的 OpenGL 接口(javax.microedition.khronos.egl.*)时,将该字段设置为 eglContext
  • +
  • 使用 Android 定义的 OpenGL 接口(android.opengl.*)时,也将该字段设置为 eglContext
  • +
+
+
+ + eglType + 仅适用于 Texture 格式的视频数据。纹理上下文类型。 + + + textureId + 仅适用于 Texture 格式的视频数据。视频帧的纹理 ID。 + + + fenceObject + 仅适用于 Texture 格式的视频数据。与 textureId 参数相关的 fence 对象,表示纹理数据的同步状态。默认值为 0。 + + + matrix + 仅适用于 Texture 格式的视频数据。输入的 4×4 变换矩阵。典型值为单位矩阵。 + + + metadataBuffer + 仅适用于 Texture 格式的视频数据。MetaData 缓冲区。默认值为 + + + metadataSize + 仅适用于 Texture 格式的视频数据。MetaData 大小。默认值为 0。 + + + alphaBuffer + 输出参数,通过人像分割算法输出的 Alpha 通道数据。该数据与视频帧大小一致,每个像素值范围为 [0, 255],其中 0 表示背景,255 表示前景(人像)。通过设置该参数,可以将视频背景渲染为透明、纯色、图像、视频等多种效果。 + + + fillAlphaBuffer + + 对于 BGRA 或 RGBA 格式的视频数据,可以通过以下任一方式设置 Alpha 通道数据: +
    +
  • 将该参数设置为 ,自动提取。
  • +
  • 通过 alphaBuffer 参数手动设置。
  • +
+
仅适用于 BGRA 或 RGBA 格式的视频数据。是否从视频帧中提取 Alpha 通道数据并自动填充到 alphaBuffer +
    +
  • :提取并填充 Alpha 通道数据。
  • +
  • :不提取和填充 Alpha 通道数据。
  • +
+
+
+ + alphaStitchMode + 当视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置。详见 + + + d3d11Texture2d + 仅适用于 Windows Texture 格式的视频数据。指向 ID3D11Texture2D 类型对象的指针,该对象由视频帧使用。 + + + textureSliceIndex + 仅适用于 Windows Texture 格式的视频数据。表示视频帧在 ID3D11Texture2D 数组中使用的纹理对象的索引。 + + + hdr10MetadataInfo + HDR 视频数据的元数据信息。 + + + colorSpace + 视频帧的色彩空间属性,默认采用 Full Range 和 BT.709 标准配置。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + + + format + 视频数据的格式: +
    +
  • 10:TEXTURE_2D
  • +
  • 11:TEXTURE_OES,通常为摄像头采集的数据格式。
  • +
  • 1:I420
  • +
  • 3:NV21
  • +
  • 4:RGBA
  • +
  • 16:I422
  • +
+
+
+ + timeStamp + 视频帧的时间戳,单位为毫秒。设置错误可能导致视频帧丢失或音视频不同步。 + + + stride + 视频帧的行跨度,单位为像素。对于纹理类型的视频数据,该字段表示纹理的宽度。 + + + height + 视频帧的高度。 + + + textureID + 纹理 ID,仅适用于纹理格式的视频数据。 + + + syncMode + 是否启用同步模式,仅适用于纹理格式的视频数据: +
    +
  • :启用同步模式,SDK 会等待纹理处理完成。
  • +
  • :关闭同步模式。
  • +
+
+
+ + transform + 纹理帧的附加变换参数,仅适用于纹理格式的视频数据。 + + + eglContext10 + EGLContext10,仅适用于纹理格式的视频数据。 + + + eglContext14 + EGLContext14,仅适用于纹理格式的视频数据。详见 EGLContext + + + buf + 视频帧的数据缓冲区。 + + + cropLeft + 左侧裁剪的像素数,默认值为 0。 + + + cropTop + 顶部裁剪的像素数,默认值为 0。 + + + cropRight + 右侧裁剪的像素数,默认值为 0。 + + + cropBottom + 底部裁剪的像素数,默认值为 0。 + + + rotation + 顺时针旋转角度,可设置为 0、90、180 或 270,默认值为 0。 + + + alphaStitchMode + 视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置,详见 AlphaStitchMode: +
    +
  • ALPHA_NO_STITCH (0):默认,仅包含视频帧,alphaBuffer 未拼接。
  • +
  • ALPHA_STITCH_UP (1)alphaBuffer 在视频帧上方。
  • +
  • ALPHA_STITCH_BELOW (2)alphaBuffer 在视频帧下方。
  • +
  • ALPHA_STITCH_LEFT (3)alphaBuffer 在视频帧左侧。
  • +
  • ALPHA_STITCH_RIGHT (4)alphaBuffer 在视频帧右侧。
  • +
+
+
+ + format + 输入视频帧的格式。该参数必须指定为以下值之一:1:I420;2:BGRA;3:NV21;4:RGBA;5:IMC2;7:ARGB;8:NV12;12:iOS 纹理(CVPixelBufferRef);16:I422。 + + + time + 输入视频帧的时间戳(毫秒)。时间戳错误会导致帧丢失或音视频不同步。 + + + stride + 帧的行跨度,即相邻两行视频帧之间的像素数。单位为像素,而非字节。处理视频数据时,需根据此参数处理每行像素数据之间的偏移,否则可能导致图像失真。 + +
    +
  • 如果视频为纹理格式,请将此参数设置为纹理的宽度。
  • +
  • 如果视频帧格式为 12,请勿使用此字段。
  • +
+
+
+
+ + strideInPixels + 输入视频帧的行间距,单位为像素而非字节。对于纹理格式,该值为纹理的宽度。 + 不适用于 iOS 纹理。 + + + + height + 输入视频帧的高度(像素行数)。 + 不适用于 iOS 纹理。 + + + + textureBuf + iOS 纹理的缓冲区。 + + + image + 静态图像(iPhone 上为 UIImage,macOS 上为 NSImage)。 + + + dataBuf + 原始数据缓冲区。 + 不适用于 iOS 纹理。 + + + + alphaBuf + 当前帧的 Alpha 通道,与视频帧的尺寸一致。每个像素的取值范围为 [0, 255],其中 0 表示背景,255 表示前景。默认值为 + + + alphaStitchMode + Alpha 通道拼接模式,表示 alphaBuf 与视频帧的相对位置。详见 + + + cropLeft + 左侧裁剪的像素数。默认值为 0。 + + + cropTop + 顶部裁剪的像素数。默认值为 0。 + + + cropRight + 右侧裁剪的像素数。默认值为 0。 + + + cropBottom + 底部裁剪的像素数。默认值为 0。 + + + rotation + 视频帧的顺时针旋转角度。可设置为 0、90、180 或 270。默认值为 0。 + 详见文档中关于旋转的计算方式。 + + + + colorSpace + 视频帧的色彩空间配置。默认采用 Full Range 和 BT.709 标准。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + + + format + 输入视频帧的格式。该参数必须指定为以下值之一:1:I420;2:BGRA;3:NV21;4:RGBA;5:IMC2;7:ARGB;8:NV12;12:iOS 纹理(CVPixelBufferRef);16:I422。 + + + time + 输入视频帧的时间戳(毫秒)。时间戳错误会导致帧丢失或音视频不同步。 + + + stride + 帧的行跨度,即相邻两行视频帧之间的像素数。单位为像素,而非字节。处理视频数据时,需根据此参数处理每行像素数据之间的偏移,否则可能导致图像失真。 + +
    +
  • 如果视频为纹理格式,请将此参数设置为纹理的宽度。
  • +
  • 如果视频帧格式为 12,请勿使用此字段。
  • +
+
+
+
+ + strideInPixels + 输入视频帧的行间距,单位为像素而非字节。对于纹理格式,该值为纹理的宽度。 + 不适用于 iOS 纹理。 + + + + height + 输入视频帧的高度(像素行数)。 + 不适用于 iOS 纹理。 + + + + textureBuf + iOS 纹理的缓冲区。 + + + image + 静态图像(iPhone 上为 UIImage,macOS 上为 NSImage)。 + + + dataBuf + 原始数据缓冲区。 + 不适用于 iOS 纹理。 + + + + alphaBuf + 当前帧的 Alpha 通道,与视频帧的尺寸一致。每个像素的取值范围为 [0, 255],其中 0 表示背景,255 表示前景。默认值为 + + + alphaStitchMode + Alpha 通道拼接模式,表示 alphaBuf 与视频帧的相对位置。详见 + + + cropLeft + 左侧裁剪的像素数。默认值为 0。 + + + cropTop + 顶部裁剪的像素数。默认值为 0。 + + + cropRight + 右侧裁剪的像素数。默认值为 0。 + + + cropBottom + 底部裁剪的像素数。默认值为 0。 + + + rotation + 视频帧的顺时针旋转角度。可设置为 0、90、180 或 270。默认值为 0。 + 详见文档中关于旋转的计算方式。 + + + + colorSpace + 视频帧的色彩空间配置。默认采用 Full Range 和 BT.709 标准。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_faceshapeareaoptions.dita b/dita/RTC-AIDOC/API/class_faceshapeareaoptions.dita new file mode 100644 index 00000000000..208ceae4a1e --- /dev/null +++ b/dita/RTC-AIDOC/API/class_faceshapeareaoptions.dita @@ -0,0 +1,140 @@ + + + + <ph keyref="FaceShapeAreaOptions"/> + 用于设置滤镜特效的美型增强参数。设置面部美型特效区域及强度。美型滤镜选项。美型滤镜选项。 + +
+

+ struct FaceShapeAreaOptions { + FACE_SHAPE_AREA shapeArea; + int shapeIntensity; +}; + public class FaceShapeAreaOptions { + public static final int FACE_SHAPE_AREA_NONE = -1; + public static final int FACE_SHAPE_AREA_HEADSCALE = 100; + public static final int FACE_SHAPE_AREA_FOREHEAD = 101; + public static final int FACE_SHAPE_AREA_FACECONTOUR = 102; + public static final int FACE_SHAPE_AREA_FACELENGTH = 103; + public static final int FACE_SHAPE_AREA_FACEWIDTH = 104; + public static final int FACE_SHAPE_AREA_CHEEKBONE = 105; + public static final int FACE_SHAPE_AREA_CHEEK = 106; + public static final int FACE_SHAPE_AREA_MANDIBLE = 107; + public static final int FACE_SHAPE_AREA_CHIN = 108; + public static final int FACE_SHAPE_AREA_EYESCALE = 200; + public static final int FACE_SHAPE_AREA_EYEDISTANCE = 201; + public static final int FACE_SHAPE_AREA_EYEPOSITION = 202; + public static final int FACE_SHAPE_AREA_EYELID = 203; + public static final int FACE_SHAPE_AREA_EYEPUPILS = 204; + public static final int FACE_SHAPE_AREA_EYEINNERCORNER = 205; + public static final int FACE_SHAPE_AREA_EYEOUTERCORNER = 206; + public static final int FACE_SHAPE_AREA_NOSELENGTH = 300; + public static final int FACE_SHAPE_AREA_NOSEWIDTH = 301; + public static final int FACE_SHAPE_AREA_NOSEWING = 302; + public static final int FACE_SHAPE_AREA_NOSEROOT = 303; + public static final int FACE_SHAPE_AREA_NOSEBRIDGE = 304; + public static final int FACE_SHAPE_AREA_NOSETIP = 305; + public static final int FACE_SHAPE_AREA_NOSEGENERAL = 306; + public static final int FACE_SHAPE_AREA_MOUTHSCALE = 400; + public static final int FACE_SHAPE_AREA_MOUTHPOSITION = 401; + public static final int FACE_SHAPE_AREA_MOUTHSMILE = 402; + public static final int FACE_SHAPE_AREA_MOUTHLIP = 403; + public static final int FACE_SHAPE_AREA_EYEBROWPOSITION = 500; + public static final int FACE_SHAPE_AREA_EYEBROWTHICKNESS = 501; + public int shapeArea; + public int shapeIntensity; +} + __attribute__((visibility("default"))) @interface AgoraFaceShapeAreaOptions : NSObject +@property(nonatomic, assign) AgoraFaceShapeArea shapeArea; +@property(nonatomic, assign) int shapeIntensity; +@end + __attribute__((visibility("default"))) @interface AgoraFaceShapeAreaOptions : NSObject +@property(nonatomic, assign) AgoraFaceShapeArea shapeArea; +@property(nonatomic, assign) int shapeIntensity; +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + shapeArea + 美型增强区域。详见 + + + shapeIntensity + 增强强度。不同面部区域的增强强度定义不同,例如方向、范围和预设值。 + + + shapeArea + 美型区域。不同区域对应不同的面部调节效果,例如头部缩放、五官比例等。可设置的取值包括: +
    +
  • FACE_SHAPE_AREA_NONE(-1):无效区域。
  • +
  • FACE_SHAPE_AREA_HEADSCALE(100):头部缩放。
  • +
  • FACE_SHAPE_AREA_FOREHEAD(101):额头调整。
  • +
  • FACE_SHAPE_AREA_FACECONTOUR(102):脸部轮廓。
  • +
  • FACE_SHAPE_AREA_FACELENGTH(103):脸长调整。
  • +
  • FACE_SHAPE_AREA_FACEWIDTH(104):脸宽调整。
  • +
  • FACE_SHAPE_AREA_CHEEKBONE(105):颧骨调整。
  • +
  • FACE_SHAPE_AREA_CHEEK(106):面颊调整。
  • +
  • FACE_SHAPE_AREA_MANDIBLE(107):下颌调整。
  • +
  • FACE_SHAPE_AREA_CHIN(108):下巴调整。
  • +
  • FACE_SHAPE_AREA_EYESCALE(200):眼睛大小。
  • +
  • FACE_SHAPE_AREA_EYEDISTANCE(201):眼距调整。
  • +
  • FACE_SHAPE_AREA_EYEPOSITION(202):眼睛上下位置。
  • +
  • FACE_SHAPE_AREA_EYELID(203):下眼睑调整。
  • +
  • FACE_SHAPE_AREA_EYEPUPILS(204):瞳孔大小。
  • +
  • FACE_SHAPE_AREA_EYEINNERCORNER(205):眼内角调整。
  • +
  • FACE_SHAPE_AREA_EYEOUTERCORNER(206):眼外角调整。
  • +
  • FACE_SHAPE_AREA_NOSELENGTH(300):鼻子长度。
  • +
  • FACE_SHAPE_AREA_NOSEWIDTH(301):鼻子宽度。
  • +
  • FACE_SHAPE_AREA_NOSEWING(302):鼻翼大小。
  • +
  • FACE_SHAPE_AREA_NOSEROOT(303):鼻根大小。
  • +
  • FACE_SHAPE_AREA_NOSEBRIDGE(304):鼻梁大小。
  • +
  • FACE_SHAPE_AREA_NOSETIP(305):鼻尖大小。
  • +
  • FACE_SHAPE_AREA_NOSEGENERAL(306):整体鼻型。
  • +
  • FACE_SHAPE_AREA_MOUTHSCALE(400):嘴巴大小。
  • +
  • FACE_SHAPE_AREA_MOUTHPOSITION(401):嘴巴位置。
  • +
  • FACE_SHAPE_AREA_MOUTHSMILE(402):嘴角弧度。
  • +
  • FACE_SHAPE_AREA_MOUTHLIP(403):嘴唇大小。
  • +
  • FACE_SHAPE_AREA_EYEBROWPOSITION(500):眉毛位置。
  • +
  • FACE_SHAPE_AREA_EYEBROWTHICKNESS(501):眉毛粗细。
  • +
+
+
+ + shapeIntensity + 美型强度。不同区域的强度定义包括方向、范围和默认值等。 + + + shapeArea + 美型增强区域。详见 + + + shapeIntensity + 增强强度。增强强度的定义因不同的美型区域而异,例如方向、范围和预设值。 + + + shapeArea + 美型增强区域。详见 + + + shapeIntensity + 增强强度。增强强度的定义因不同的美型区域而异,例如方向、范围和预设值。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_faceshapebeautyoptions.dita b/dita/RTC-AIDOC/API/class_faceshapebeautyoptions.dita new file mode 100644 index 00000000000..c8623a77314 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_faceshapebeautyoptions.dita @@ -0,0 +1,103 @@ + + + + <ph keyref="FaceShapeBeautyOptions"/> + 用于设置美型风格特效参数。用于设置美型风格。设置美型风格特效的选项。设置美型风格特效的选项。 + +
+

+ struct FaceShapeBeautyOptions { + FACE_SHAPE_BEAUTY_STYLE shapeStyle; + int styleIntensity; +}; + public class FaceShapeBeautyOptions { + public static final int FACE_SHAPE_BEAUTY_STYLE_FEMALE = 0; + public static final int FACE_SHAPE_BEAUTY_STYLE_MALE = 1; + public static final int FACE_SHAPE_BEAUTY_STYLE_NATURAL = 2; + public int shapeStyle; + public int styleIntensity; +} + __attribute__((visibility("default"))) @interface AgoraFaceShapeBeautyOptions: NSObject +@property(nonatomic, assign) AgoraFaceShapeStyle shapeStyle; +@property(nonatomic, assign) int styleIntensity; +@end + __attribute__((visibility("default"))) @interface AgoraFaceShapeBeautyOptions: NSObject +@property(nonatomic, assign) AgoraFaceShapeStyle shapeStyle; +@property(nonatomic, assign) int styleIntensity; +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + shapeStyle + 美型风格特效选项。详见 + + + styleIntensity + 美型风格特效的强度,取值范围为 [0.0, 1.0]。默认值为 0.0,表示无美型效果。值越大,美型效果越明显。 + + + FACE_SHAPE_BEAUTY_STYLE_FEMALE + 0:(默认)女性美型风格。 + + + FACE_SHAPE_BEAUTY_STYLE_MALE + 1:男性美型风格。 + + + FACE_SHAPE_BEAUTY_STYLE_NATURAL + 2:自然风格,仅对面部特征进行最小调整。 + + + shapeStyle + 美型风格选项: +
    +
  • FACE_SHAPE_BEAUTY_STYLE_FEMALE(0):(默认)女性风格。
  • +
  • FACE_SHAPE_BEAUTY_STYLE_MALE(1):男性风格。
  • +
  • FACE_SHAPE_BEAUTY_STYLE_NATURAL(2):自然风格,仅对面部特征进行最小调整。
  • +
+
+
+ + styleIntensity + 美型风格的强度,取值范围为 [0.0, 1.0]。 +
    +
  • 默认值为 0.0,表示不进行美型处理。
  • +
  • 值越大,美型效果越明显。
  • +
+
+
+ + shapeStyle + 美型风格特效选项。详见 + + + styleIntensity + 美型风格特效的强度,取值范围为 [0.0, 1.0]。默认值为 0.0,表示无美型效果。值越大,美型效果越明显。 + + + shapeStyle + 美型风格特效选项。详见 + + + styleIntensity + 美型风格特效的强度,取值范围为 [0.0, 1.0]。默认值为 0.0,表示无美型效果。值越大,美型效果越明显。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_filtereffectoptions.dita b/dita/RTC-AIDOC/API/class_filtereffectoptions.dita new file mode 100644 index 00000000000..31cb6d00e5d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_filtereffectoptions.dita @@ -0,0 +1,91 @@ + + + + <ph keyref="FilterEffectOptions"/> + 用于配置滤镜特效参数。用于配置滤镜特效。用于设置滤镜特效参数。用于设置滤镜特效参数。 + +
+

+ struct FilterEffectOptions { + const char * path; + float strength; +}; + public class FilterEffectOptions { + public String path = null; + public float strength; +} + __attribute__((visibility("default"))) @interface AgoraFilterEffectOptions: NSObject +@property(nonatomic, copy) NSString* _Nullable path NS_SWIFT_NAME(path); +@property(nonatomic, assign) float strength; +@end + __attribute__((visibility("default"))) @interface AgoraFilterEffectOptions: NSObject +@property(nonatomic, copy) NSString* _Nullable path NS_SWIFT_NAME(path); +@property(nonatomic, assign) float strength; +@end +

+
+
+
+ +
自从
+
自 v4.4.1 版本新增。
+
+
+
+
+ 属性 + + + path + 本地立方体贴图纹理文件的绝对路径,用于自定义滤镜特效。指定的 .cube 文件必须严格遵循 Cube LUT 格式规范,否则滤镜选项无效。 + +
    +
  • 立方体贴图文件第一行的标识符 LUT_3D_SIZE 表示三维查找表的大小。滤镜特效的 LUT 大小只能设置为 32。
  • +
  • SDK 提供了内置的 built_in_whiten_filter.cube 文件。你可以传入该文件的绝对路径以获得美白滤镜效果。
  • +
+
+
+
+ + strength + 滤镜特效的强度,取值范围为 [0.0, 1.0]。0.0 表示无滤镜效果,默认值为 0.5。数值越大,滤镜效果越强。 + + + path + 本地立方体贴图纹理文件的绝对路径,可用于自定义滤镜特效。指定的 .cube 文件需严格遵循 Cube LUT 格式规范,否则滤镜参数不生效。 + +
    +
  • .cube 文件第一行的标识符 LUT_3D_SIZE 表示三维查找表的尺寸,滤镜特效的 LUT 大小只能设置为 32。
  • +
  • 声网 SDK 提供内置的 built_in_whiten_filter.cube 文件,你可以传入该文件的绝对路径以使用美白滤镜效果。
  • +
+
+
+
+ + strength + 滤镜特效的强度,取值范围为 [0.0, 1.0]。0.0 表示无滤镜效果,默认值为 0.5。值越大,滤镜效果越强。 + + + path + 本地立方体贴图纹理文件的绝对路径,可用于自定义滤镜特效。指定的 .cube 文件必须严格遵循 Cube LUT 格式规范,否则滤镜选项无效。 + 立方体贴图文件第一行的标识符 LUT_3D_SIZE 表示三维查找表的大小。滤镜特效的 LUT 大小只能设置为 32。SDK 提供了内置的 built_in_whiten_filter.cube 文件,你可以传入该文件的绝对路径以获得美白滤镜效果。 + + + + strength + 滤镜特效的强度,取值范围为 [0.0, 1.0]。0.0 表示无滤镜效果,默认值为 0.5,数值越大,滤镜效果越强。 + + + path + 本地立方体贴图纹理文件的绝对路径,可用于自定义滤镜特效。指定的 .cube 文件必须严格遵循 Cube LUT 格式规范,否则滤镜选项无效。 + 立方体贴图文件第一行的标识符 LUT_3D_SIZE 表示三维查找表的大小。滤镜特效的 LUT 大小只能设置为 32。SDK 提供了内置的 built_in_whiten_filter.cube 文件,你可以传入该文件的绝对路径以获得美白滤镜效果。 + + + + strength + 滤镜特效的强度,取值范围为 [0.0, 1.0]。0.0 表示无滤镜效果,默认值为 0.5,数值越大,滤镜效果越强。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_focallengthinfo.dita b/dita/RTC-AIDOC/API/class_focallengthinfo.dita new file mode 100644 index 00000000000..c5fd5b8362c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_focallengthinfo.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="FocalLengthInfo"/> + 表示摄像头支持的焦距信息。摄像头支持的焦距信息,包括摄像头方向和焦距类型。包含相机方向和焦距类型的焦距信息。 + +
+

+ struct FocalLengthInfo { + int cameraDirection; + CAMERA_FOCAL_LENGTH_TYPE focalLengthType; +}; + __attribute__((visibility("default"))) @interface AgoraFocalLengthInfo : NSObject +@property(assign, nonatomic) int cameraDirection; +@property(assign, nonatomic) AgoraFocalLength focalLengthType; +@end + public class AgoraFocalLengthInfo { + public int cameraDirection; + public int focalLengthType; +} +

+
+
+ 该结构体仅适用于 Android 和 iOS 平台。 +
+
+ 属性 + + + cameraDirection + 摄像头方向,详见 + + + focalLengthType + 焦距类型,详见 + + + cameraDirection + 摄像头方向。详见 + + + focalLengthType + 焦距类型。详见 + + + cameraDirection + 相机的朝向,详见 + + + focalLengthType + 焦距类型,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudiodevicecollection.dita b/dita/RTC-AIDOC/API/class_iaudiodevicecollection.dita new file mode 100644 index 00000000000..8ce6ce8c16c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudiodevicecollection.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IAudioDeviceCollection"/> + 用于管理音频设备的集合。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudiodevicemanager.dita b/dita/RTC-AIDOC/API/class_iaudiodevicemanager.dita new file mode 100644 index 00000000000..1946fde7163 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudiodevicemanager.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IAudioDeviceManager"/> + 用于音频设备的管理。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudioencodedframeobserver.dita b/dita/RTC-AIDOC/API/class_iaudioencodedframeobserver.dita new file mode 100644 index 00000000000..dd3b0d59720 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudioencodedframeobserver.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IAudioEncodedFrameObserver"/> + 用于监听编码后音频帧的回调接口。用于监听音频编码帧的接口。编码后音频帧事件的代理。编码后音频帧事件的代理。 + +
+

该接口用于接收编码后的音频帧事件回调。

+

该接口用于接收编码后的音频帧事件回调。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudioframeobserver.dita b/dita/RTC-AIDOC/API/class_iaudioframeobserver.dita new file mode 100644 index 00000000000..ecec35b0ea0 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudioframeobserver.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IAudioFrameObserver"/> + 用于实现音频帧观察功能。用于观测和处理音频帧的接口。启用音频帧回调事件通知。启用音频帧回调事件通知。 + +
+

将音频帧数据传递给你的应用程序。

+

将音频帧数据传递给你的应用程序。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudioframeobserverbase.dita b/dita/RTC-AIDOC/API/class_iaudioframeobserverbase.dita new file mode 100644 index 00000000000..4aae59230e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudioframeobserverbase.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IAudioFrameObserverBase"/> + 用于音频帧观察的基类。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudiopcmframesink.dita b/dita/RTC-AIDOC/API/class_iaudiopcmframesink.dita new file mode 100644 index 00000000000..82205512105 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudiopcmframesink.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IAudioPcmFrameSink"/> + 用于监听音频 PCM 帧。用于处理媒体播放器音频帧的代理协议。用于处理媒体播放器音频帧的代理协议。 + +
+

该协议用于接收和处理来自媒体播放器的音频帧数据回调。

+

该协议用于接收和处理来自媒体播放器的音频帧数据回调。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iaudiospectrumobserver.dita b/dita/RTC-AIDOC/API/class_iaudiospectrumobserver.dita new file mode 100644 index 00000000000..b2fd0ca0cd4 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iaudiospectrumobserver.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IAudioSpectrumObserver"/> + 用于观察和处理音频频谱数据。用于音频频谱观测的接口。处理音频频谱事件的代理。处理音频频谱事件的代理。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ibasespatialaudioengine.dita b/dita/RTC-AIDOC/API/class_ibasespatialaudioengine.dita new file mode 100644 index 00000000000..2c68bcea5d3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ibasespatialaudioengine.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IBaseSpatialAudioEngine"/> + 空间音效功能的基础类。:基础空间音效引擎接口。空间音效功能的基础类。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_idirectcdnstreamingeventhandler.dita b/dita/RTC-AIDOC/API/class_idirectcdnstreamingeventhandler.dita new file mode 100644 index 00000000000..f7ad21bdf29 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_idirectcdnstreamingeventhandler.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="IDirectCdnStreamingEventHandler"/> + 用于处理与 CDN 推流相关的事件回调。用于处理 CDN 推流相关事件的接口。CDN 推流的事件处理器。CDN 推流的事件处理器。 + +
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ilocalspatialaudioengine.dita b/dita/RTC-AIDOC/API/class_ilocalspatialaudioengine.dita new file mode 100644 index 00000000000..d84672ca4a0 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ilocalspatialaudioengine.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="ILocalSpatialAudioEngine"/> + 用于实现基础空间音效引擎接口功能。 是本地空间音效引擎接口。用于实现本地空间音效功能的引擎类。用于实现本地空间音效功能的引擎类。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imagetrackoptions.dita b/dita/RTC-AIDOC/API/class_imagetrackoptions.dita new file mode 100644 index 00000000000..c953d769021 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imagetrackoptions.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="ImageTrackOptions"/> + 用于图像配置。图像配置参数。图像配置。图像配置。 + +
+

+ struct ImageTrackOptions { + const char* imageUrl; + int fps; + VIDEO_MIRROR_MODE_TYPE mirrorMode; +}; + public class ImageTrackOptions { + private String imageUrl; + private int fps; + private VideoEncoderConfiguration.MIRROR_MODE_TYPE mirrorMode; +} + __attribute__((visibility("default"))) @interface AgoraImageTrackOptions : NSObject +@property(copy, nonatomic) NSString *_Nullable imageUrl; +@property(assign, nonatomic) int fps; +@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; +@end + __attribute__((visibility("default"))) @interface AgoraImageTrackOptions : NSObject +@property(copy, nonatomic) NSString *_Nullable imageUrl; +@property(assign, nonatomic) int fps; +@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; +@end +

+
+
+ 属性 + + + imageUrl + 图像的 URL。支持的图像格式包括 JPEG、JPG、PNG 和 GIF。支持从本地的绝对路径或相对路径添加图像。 + 在 Android 平台上,不支持从 /assets/ 添加图像。 + + + + fps + 发布的视频流的帧率,取值范围为 [1, 30],默认值为 1。 + + + mirrorMode + 镜像模式,详见 + + + imageUrl + 图像的 URL。支持的图像格式包括 JPEG、JPG、PNG 和 GIF。支持通过本地绝对路径或相对路径添加图像。 + 在 Android 平台上,不支持从 /assets/ 添加图像。 + + + + fps + 当前发布的视频流的帧率。取值范围为 [1, 30],默认值为 1。 + + + mirrorMode + 镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):SDK 决定是否启用镜像模式,默认关闭。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):开启远端镜像。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭远端镜像。
  • +
+
+
+ + imageUrl + 图像的 URL。支持的图像格式包括 JPEG、JPG、PNG 和 GIF。支持从本地的绝对路径或相对路径添加图像。 + + + fps + 发布视频流的帧率。取值范围为 [1, 30],默认值为 1。 + + + mirrorMode + 镜像模式。详见 + + + imageUrl + 图像的 URL。支持的图像格式包括 JPEG、JPG、PNG 和 GIF。支持从本地的绝对路径或相对路径添加图像。 + + + fps + 发布视频流的帧率。取值范围为 [1, 30],默认值为 1。 + + + mirrorMode + 镜像模式。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaengine.dita b/dita/RTC-AIDOC/API/class_imediaengine.dita new file mode 100644 index 00000000000..fa8a57a7164 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaengine.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMediaEngine"/> + 用于实现媒体引擎相关功能。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaextensionobserver.dita b/dita/RTC-AIDOC/API/class_imediaextensionobserver.dita new file mode 100644 index 00000000000..2478a8fbfd7 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaextensionobserver.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMediaExtensionObserver"/> + 媒体滤镜事件代理协议。 接口用于监听媒体扩展相关的事件。媒体滤镜事件代理协议。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayer.dita b/dita/RTC-AIDOC/API/class_imediaplayer.dita index 323e35dff38..7fa86d65e72 100644 --- a/dita/RTC-AIDOC/API/class_imediaplayer.dita +++ b/dita/RTC-AIDOC/API/class_imediaplayer.dita @@ -1,15 +1,11 @@ - - <ph keyref="IMediaPlayer"/> - - - 用于访问媒体播放器实体的接口。 - + <ph keyref="IMediaPlayer"/> + 用于访问媒体播放器实体。 接口用于实现媒体播放功能。媒体播放器的代理协议。媒体播放器的代理协议。 -
-

如果你想同时播放多个媒体源,请创建多个媒体播放器源对象。

+
+

如果你想同时播放多个媒体源,可以创建多个媒体播放器源对象。

\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayeraudioframeobserver.dita b/dita/RTC-AIDOC/API/class_imediaplayeraudioframeobserver.dita new file mode 100644 index 00000000000..5c2f4c292d1 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaplayeraudioframeobserver.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMediaPlayerAudioFrameObserver"/> + 用于观测媒体播放器的音频帧。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayercachemanager.dita b/dita/RTC-AIDOC/API/class_imediaplayercachemanager.dita new file mode 100644 index 00000000000..dd99facdf7b --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaplayercachemanager.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IMediaPlayerCacheManager"/> + 用于管理和设置播放器缓存。用于管理媒体播放器的缓存。用于管理媒体播放器缓存文件的协议。用于管理媒体播放器缓存文件的协议。 + +
+

你可以使用该协议提供的方法设置缓存参数、删除缓存文件以及获取缓存信息。

+

你可以使用该协议提供的方法设置缓存参数、删除缓存文件以及获取缓存信息。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayercustomdataprovider.dita b/dita/RTC-AIDOC/API/class_imediaplayercustomdataprovider.dita new file mode 100644 index 00000000000..ede6da70dcd --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaplayercustomdataprovider.dita @@ -0,0 +1,11 @@ + + + + <ph keyref="IMediaPlayerCustomDataProvider"/> + 用于提供自定义数据源的接口回调接口。 接口用于为媒体播放器提供自定义数据源。 + +
+

播放器会持续调用该接口,请求你填充需要播放的数据流。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayersourceobserver.dita b/dita/RTC-AIDOC/API/class_imediaplayersourceobserver.dita index 6e7a57f1ad3..7a7547506e7 100644 --- a/dita/RTC-AIDOC/API/class_imediaplayersourceobserver.dita +++ b/dita/RTC-AIDOC/API/class_imediaplayersourceobserver.dita @@ -1,11 +1,12 @@ - - <ph keyref="IMediaPlayerSourceObserver"/> - - - 用于向应用上报运行时事件。 - - + <ph keyref="IMediaPlayerSourceObserver"/> + 用于向应用报告媒体播放器的运行时事件。用于监听媒体播放器状态变化的接口。 协议,用于接收媒体播放器的回调事件。 协议,用于接收媒体播放器的回调事件。 + +
+

你可以通过实现 协议中的方法,处理媒体播放过程中的相关事件。

+

你可以通过实现 协议中的方法,处理媒体播放过程中的相关事件。

+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediaplayervideoframeobserver.dita b/dita/RTC-AIDOC/API/class_imediaplayervideoframeobserver.dita new file mode 100644 index 00000000000..ed4c6360220 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediaplayervideoframeobserver.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMediaPlayerVideoFrameObserver"/> + 用于观测媒体播放器的视频帧。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediarecorder.dita b/dita/RTC-AIDOC/API/class_imediarecorder.dita new file mode 100644 index 00000000000..00dd89a112e --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediarecorder.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="IMediaRecorder"/> + 用于实现媒体录制功能的接口。用于录制客户端的音频和视频。 类用于音视频流录制。 类用于音视频流录制。 + +
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+

可录制以下内容: +

    +
  • 本地麦克风采集并由 SDK 编码为 AAC 格式的音频。
  • +
  • 本地摄像头采集并由 SDK 编码的视频。
  • +
+

+

你可以使用 开始和停止录制、设置录制配置,并注册录制观察者以监听录制相关的回调。

+

你可以使用 开始和停止录制、设置录制配置,并注册录制观察者以监听录制相关的回调。

+ COMMUNICATION 频道场景下,当频道中存在使用 v3.0.0 之前版本 SDK 的用户时,该功能不可用。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imediarecorderobserver.dita b/dita/RTC-AIDOC/API/class_imediarecorderobserver.dita new file mode 100644 index 00000000000..0bd8181d404 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imediarecorderobserver.dita @@ -0,0 +1,18 @@ + + + + <ph keyref="IMediaRecorderObserver"/> + 用于实现媒体录制的观察器接口。用于设置媒体录制的回调方法。音视频录制的回调协议。音视频录制的回调协议。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+

你可以通过实现该协议,在音频或视频录制过程中接收录制状态更新和相关信息。

+

你可以通过实现该协议,在音频或视频录制过程中接收录制状态更新和相关信息。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imetadataobserver.dita b/dita/RTC-AIDOC/API/class_imetadataobserver.dita new file mode 100644 index 00000000000..5a0d4f90407 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imetadataobserver.dita @@ -0,0 +1,13 @@ + + + + <ph keyref="IMetadataObserver"/> + 接口,用于处理与元数据相关的回调。用于实现元数据观察功能。 协议,用于在关键线程中处理回调。 协议,用于在关键线程中处理回调。 + +
+

建议避免在关键线程中执行耗时操作。

+

建议避免在关键线程中执行耗时操作。

+ 请在关键线程中实现该类中的所有回调方法。建议避免在关键线程中执行任何耗时操作。 +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imusiccontentcenter.dita b/dita/RTC-AIDOC/API/class_imusiccontentcenter.dita new file mode 100644 index 00000000000..d6c50caff62 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imusiccontentcenter.dita @@ -0,0 +1,11 @@ + + + + <ph keyref="IMusicContentCenter"/> + 用于管理音乐内容中心。管理音乐内容的中心类。 提供用于管理和访问音乐内容中心的接口。 + +
+

该类用于管理声网提供的音乐内容资源,支持音乐内容的搜索、加载、播放等功能。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imusiccontentcentereventhandler.dita b/dita/RTC-AIDOC/API/class_imusiccontentcentereventhandler.dita new file mode 100644 index 00000000000..5e26c1664f5 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imusiccontentcentereventhandler.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMusicContentCenterEventHandler"/> + 用于处理音乐内容中心相关事件。音乐内容中心事件代理。用于处理音乐内容中心相关事件的接口。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_imusicplayer.dita b/dita/RTC-AIDOC/API/class_imusicplayer.dita new file mode 100644 index 00000000000..9833b7b073f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_imusicplayer.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IMusicPlayer"/> + 用于播放音乐的接口。音乐播放器协议。扩展 接口,支持更多音乐播放功能。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ipacketobserver.dita b/dita/RTC-AIDOC/API/class_ipacketobserver.dita new file mode 100644 index 00000000000..799099ce675 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ipacketobserver.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IPacketObserver"/> + 类用于实现自定义数据包的观察和处理。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_irtcengine.dita b/dita/RTC-AIDOC/API/class_irtcengine.dita new file mode 100644 index 00000000000..a7b0ece059c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_irtcengine.dita @@ -0,0 +1,13 @@ + + + + <ph keyref="IRtcEngine"/> + 实现声网实时通信核心功能的基础接口类。调用该类的方法以使用声网 SDK 的全部功能。提供所有可供应用调用的方法。提供所有可供应用调用的方法。 + +
+

声网建议在同一线程中调用 的 API 方法,避免在多个线程中调用。该类在早期版本中名为 AgoraAudio,从 1.0 版本起更名为

+

是声网 Native SDK 的基础类。你可以通过创建 对象并调用其方法,使用声网提供的实时音视频通信功能。声网通过专为实时 Web 和移动端应用优化的虚拟全球网络,保障全球范围内基于互联网的音视频通信体验质量(QoE)。

+

是声网 Native SDK 的基础类。你可以通过创建 对象并调用其方法,使用声网提供的实时音视频通信功能。声网通过专为实时 Web 和移动端应用优化的虚拟全球网络,保障全球范围内基于互联网的音视频通信体验质量(QoE)。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_irtcengineeventhandler.dita b/dita/RTC-AIDOC/API/class_irtcengineeventhandler.dita new file mode 100644 index 00000000000..3cce9ba8c1a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_irtcengineeventhandler.dita @@ -0,0 +1,24 @@ + + + + <ph keyref="IRtcEngineEventHandler"/> + 用于接收 SDK 回调事件通知。封装 SDK 向应用层发送事件回调的方法。启用应用程序的回调事件通知。启用应用程序的回调事件通知。 + +
+
+ +
自从
+
自 v1.1 版本新增。
+
+ +
自从
+
自 v1.1 版本新增。
+
+
+

SDK 通过该类向 App 发送回调事件通知。你可以继承该类中的方法来获取所需的事件通知。该类中的所有方法均提供默认(空)实现,你可以按需选择性地继承部分方法。在回调方法中,应避免执行耗时操作或调用阻塞 API,否则可能影响 SDK 的正常运行。

+

是 SDK 用于向应用层发送事件回调的接口类。你可以继承该类以接收所需的事件通知。该接口中的所有方法均为默认空实现,你可以根据需要选择性地重写部分方法。为确保 SDK 正常运行,建议在回调方法中避免执行耗时操作或调用阻塞 API,例如 SendMessage

+

SDK 通过 协议中的代理回调向应用报告运行时事件。从 v1.1 版本起,SDK 中部分 block 回调被代理回调替代。旧的 block 回调虽已废弃,但当前版本仍支持使用。声网建议你将 block 回调替换为代理回调。如果同时定义了 block 和代理回调,SDK 将优先调用 block 回调。

+

SDK 通过 协议中的代理回调向应用报告运行时事件。从 v1.1 版本起,SDK 中部分 block 回调被代理回调替代。旧的 block 回调虽已废弃,但当前版本仍支持使用。声网建议你将 block 回调替换为代理回调。如果同时定义了 block 和代理回调,SDK 将优先调用 block 回调。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_irtcengineeventhandlerex.dita b/dita/RTC-AIDOC/API/class_irtcengineeventhandlerex.dita new file mode 100644 index 00000000000..6da67c7f993 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_irtcengineeventhandlerex.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IRtcEngineEventHandlerEx"/> + 扩展 功能的类。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_irtcengineex.dita b/dita/RTC-AIDOC/API/class_irtcengineex.dita new file mode 100644 index 00000000000..5262936b105 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_irtcengineex.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IRtcEngineEx"/> + 扩展 的功能。扩展 接口的功能。AgoraRtcEngineKitEx 接口,扩展了 的功能。AgoraRtcEngineKitEx 接口,扩展了 的功能。 + +
+

扩展了 的功能。

+

扩展了 的功能。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_irtcenginereleasecallback.dita b/dita/RTC-AIDOC/API/class_irtcenginereleasecallback.dita new file mode 100644 index 00000000000..d6784f3f18d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_irtcenginereleasecallback.dita @@ -0,0 +1,16 @@ + + + + <ph keyref="IRtcEngineReleaseCallback"/> + 用于异步销毁引擎。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_iscreencapturesourcelist.dita b/dita/RTC-AIDOC/API/class_iscreencapturesourcelist.dita new file mode 100644 index 00000000000..98fd30627c8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_iscreencapturesourcelist.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IScreenCaptureSourceList"/> + 用于获取屏幕共享源的列表。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ivideodevicecollection.dita b/dita/RTC-AIDOC/API/class_ivideodevicecollection.dita new file mode 100644 index 00000000000..3f0a3b81f9f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ivideodevicecollection.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IVideoDeviceCollection"/> + 用于获取视频设备信息。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ivideodevicemanager.dita b/dita/RTC-AIDOC/API/class_ivideodevicemanager.dita new file mode 100644 index 00000000000..0f920f07e4a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ivideodevicemanager.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="IVideoDeviceManager"/> + 用于管理视频设备。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ivideoeffectobject.dita b/dita/RTC-AIDOC/API/class_ivideoeffectobject.dita new file mode 100644 index 00000000000..6e21afcdc8f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ivideoeffectobject.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="IVideoEffectObject"/> + 用于管理和配置视频特效,例如美颜、风格妆容和滤镜。用于管理和配置视频特效功能,例如美颜、风格妆容和滤镜。用于视频特效操作的协议。用于视频特效操作的协议。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ivideoencodedframeobserver.dita b/dita/RTC-AIDOC/API/class_ivideoencodedframeobserver.dita new file mode 100644 index 00000000000..934d78d8287 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ivideoencodedframeobserver.dita @@ -0,0 +1,12 @@ + + + + <ph keyref="IVideoEncodedFrameObserver"/> + 用于处理编码后的视频帧。用于监听编码后的视频帧。用于接收远端编码后视频帧的回调协议。用于接收远端编码后视频帧的回调协议。 + +
+

你可以实现该协议中的方法以按需处理接收到的编码后视频帧。

+

你可以实现该协议中的方法以按需处理接收到的编码后视频帧。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_ivideoframeobserver.dita b/dita/RTC-AIDOC/API/class_ivideoframeobserver.dita new file mode 100644 index 00000000000..e8c82ea04d2 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_ivideoframeobserver.dita @@ -0,0 +1,13 @@ + + + + <ph keyref="IVideoFrameObserver"/> + 用于观察和处理视频帧。用于处理视频帧的回调。处理视频帧的回调协议。处理视频帧的回调协议。 + +
+

你可以通过实现 接口中的方法,接收并处理本地设备采集或远端用户发送的视频帧。

+

你可以通过实现该协议中的方法,接收并处理本地设备采集或远端用户发送的视频帧。

+

你可以通过实现该协议中的方法,接收并处理本地设备采集或远端用户发送的视频帧。

+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_lastmileprobeconfig.dita b/dita/RTC-AIDOC/API/class_lastmileprobeconfig.dita new file mode 100644 index 00000000000..cfc507e8b78 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_lastmileprobeconfig.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="LastmileProbeConfig"/> + 用于配置 Last-mile 网络测试。用于配置 Last-mile 网络测试。配置 Last-mile 网络测试。配置 Last-mile 网络测试。 + +
+

+ struct LastmileProbeConfig { + bool probeUplink; + bool probeDownlink; + unsigned int expectedUplinkBitrate; + unsigned int expectedDownlinkBitrate; +}; + public class LastmileProbeConfig { + public boolean probeUplink; + public boolean probeDownlink; + public int expectedUplinkBitrate; + public int expectedDownlinkBitrate; +} + __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 + __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 + 设置是否测试上行网络: +
    +
  • :测试上行网络。例如,在频道场景为 LIVE_BROADCASTING 时,观众用户不需要进行此测试。
  • +
  • :不测试上行网络。
  • +
+
+
+ + probeDownlink + 设置是否测试下行网络: +
    +
  • :测试下行网络。
  • +
  • :不测试下行网络。
  • +
+
+
+ + expectedUplinkBitrate + 本地用户期望的最大上行码率(bps),取值范围为 [100000, 5000000]。建议参考 设置该值。 + + + expectedDownlinkBitrate + 本地用户期望的最大下行码率(bps),取值范围为 [100000, 5000000]。 + + + probeUplink + 是否测试上行网络。 +
    +
  • :测试上行网络。
  • +
  • :不测试上行网络。例如,在 LIVE_BROADCASTING 频道场景中,观众通常无需测试上行网络。
  • +
+
+
+ + probeDownlink + 是否测试下行网络。 +
    +
  • :测试下行网络。
  • +
  • :不测试下行网络。
  • +
+
+
+ + expectedUplinkBitrate + 本地用户期望的最大上行码率(bps)。取值范围为 [100000, 5000000]。建议参考 设置该值。 + + + expectedDownlinkBitrate + 本地用户期望的最大下行码率(bps)。取值范围为 [100000, 5000000]。 + + + probeUplink + 是否测试上行网络: +
    +
  • :测试上行网络。
  • +
  • :不测试上行网络。例如,在 LIVE_BROADCASTING 频道场景中,观众用户无需进行此测试。
  • +
+
+
+ + probeDownlink + 是否测试下行网络: +
    +
  • :测试下行网络。
  • +
  • :不测试下行网络。
  • +
+
+
+ + expectedUplinkBitrate + 本地用户期望的最大上行码率(bps)。取值范围为 [100000, 5000000]。声网建议参考 setVideoEncoderConfiguration 设置该值。 + + + expectedDownlinkBitrate + 本地用户期望的最大下行码率(bps)。取值范围为 [100000, 5000000]。 + + + probeUplink + 是否测试上行网络: +
    +
  • :测试上行网络。
  • +
  • :不测试上行网络。例如,在 LIVE_BROADCASTING 频道场景中,观众用户无需进行此测试。
  • +
+
+
+ + probeDownlink + 是否测试下行网络: +
    +
  • :测试下行网络。
  • +
  • :不测试下行网络。
  • +
+
+
+ + expectedUplinkBitrate + 本地用户期望的最大上行码率(bps)。取值范围为 [100000, 5000000]。声网建议参考 setVideoEncoderConfiguration 设置该值。 + + + expectedDownlinkBitrate + 本地用户期望的最大下行码率(bps)。取值范围为 [100000, 5000000]。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_lastmileprobeonewayresult.dita b/dita/RTC-AIDOC/API/class_lastmileprobeonewayresult.dita new file mode 100644 index 00000000000..0141d6f0cdf --- /dev/null +++ b/dita/RTC-AIDOC/API/class_lastmileprobeonewayresult.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="LastmileProbeOneWayResult"/> + 获取上行或下行 Last-mile 网络质量测试结果。上行或下行 Last-mile 网络测试结果。上行或下行 Last-mile 网络测试的结果。上行或下行 Last-mile 网络测试的结果。 + +
+

+ struct LastmileProbeOneWayResult { + unsigned int packetLossRate; + unsigned int jitter; + unsigned int availableBandwidth; +}; + public static class LastmileProbeOneWayResult { + public int packetLossRate; + public int jitter; + public int availableBandwidth; +} + __attribute__((visibility("default"))) @interface AgoraLastmileProbeOneWayResult : NSObject +@property (assign, nonatomic) NSUInteger packetLossRate; +@property (assign, nonatomic) NSUInteger jitter; +@property (assign, nonatomic) NSUInteger availableBandwidth; +@end + __attribute__((visibility("default"))) @interface AgoraLastmileProbeOneWayResult : NSObject +@property (assign, nonatomic) NSUInteger packetLossRate; +@property (assign, nonatomic) NSUInteger jitter; +@property (assign, nonatomic) NSUInteger availableBandwidth; +@end +

+
+
+ 属性 + + + packetLossRate + 丢包率(%)。 + + + jitter + 网络抖动(毫秒)。 + + + availableBandwidth + 估算的可用带宽(bps)。 + + + packetLossRate + 丢包率(%)。 + + + jitter + 网络抖动(毫秒)。 + + + availableBandwidth + 预估的可用带宽(bps)。 + + + packetLossRate + 丢包率(%)。 + + + jitter + 网络抖动(毫秒)。 + + + availableBandwidth + 估算的可用带宽(bps)。 + + + packetLossRate + 丢包率(%)。 + + + jitter + 网络抖动(毫秒)。 + + + availableBandwidth + 估算的可用带宽(bps)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_lastmileproberesult.dita b/dita/RTC-AIDOC/API/class_lastmileproberesult.dita new file mode 100644 index 00000000000..4900673e886 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_lastmileproberesult.dita @@ -0,0 +1,116 @@ + + + + <ph keyref="LastmileProbeResult"/> + 表示上下行 Last-mile 网络探测的结果。表示上下行 Last-mile 网络探测的结果。表示上下行 Last-mile 网络测试的结果。表示上下行 Last-mile 网络测试的结果。 + +
+

+ struct LastmileProbeResult { + LASTMILE_PROBE_RESULT_STATE state; + LastmileProbeOneWayResult uplinkReport; + LastmileProbeOneWayResult downlinkReport; + unsigned int rtt; +}; + public static class LastmileProbeResult { + public static class LastmileProbeOneWayResult { + public int packetLossRate; + public int jitter; + public int availableBandwidth; + } + public short state; + public int rtt; + public LastmileProbeOneWayResult uplinkReport = new LastmileProbeOneWayResult(); + public LastmileProbeOneWayResult downlinkReport = new LastmileProbeOneWayResult(); +} + __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 + __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 网络探测的状态。详见 + + + uplinkReport + 上行 Last-mile 网络探测的结果。详见 + + + downlinkReport + 下行 Last-mile 网络探测的结果。详见 + + + rtt + 往返时延(毫秒)。 + + + state + Last-mile 网络探测的状态,包括: +
    +
  • LASTMILE_PROBE_RESULT_COMPLETE (1):探测完成。
  • +
  • LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE (2):探测未完成,因未进行带宽预测,可能是测试资源暂时受限。
  • +
  • LASTMILE_PROBE_RESULT_UNAVAILABLE (3):未进行探测,可能由于网络状况较差。
  • +
+
+
+ + rtt + 往返时延,单位为毫秒。 + + + uplinkReport + 上行 Last-mile 网络探测结果,详见 + + + downlinkReport + 下行 Last-mile 网络探测结果,详见 + + + state + Last-mile 网络测试的状态,详见 + + + rtt + 往返时延,单位为毫秒。 + + + uplinkReport + 上行 Last-mile 网络测试的结果,详见 + + + downlinkReport + 下行 Last-mile 网络测试的结果,详见 + + + state + Last-mile 网络测试的状态,详见 + + + rtt + 往返时延,单位为毫秒。 + + + uplinkReport + 上行 Last-mile 网络测试的结果,详见 + + + downlinkReport + 下行 Last-mile 网络测试的结果,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_leavechanneloptions.dita b/dita/RTC-AIDOC/API/class_leavechanneloptions.dita new file mode 100644 index 00000000000..f0aef4c2bda --- /dev/null +++ b/dita/RTC-AIDOC/API/class_leavechanneloptions.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="LeaveChannelOptions"/> + 用于设置离开频道时的行为选项。用于设置离开频道时的相关选项。离开频道时的控制选项。离开频道时的控制选项。 + +
+

+ struct LeaveChannelOptions { + bool stopAudioMixing; + bool stopAllEffect; + bool stopMicrophoneRecording; +}; + public class LeaveChannelOptions { + public boolean stopAudioMixing; + public boolean stopAllEffect; + public boolean stopMicrophoneRecording; +} + __attribute__((visibility("default"))) @interface AgoraLeaveChannelOptions : NSObject +@property(nonatomic, assign) BOOL stopAudioMixing; +@property(nonatomic, assign) BOOL stopAllEffect; +@property(nonatomic, assign) BOOL stopMicrophoneRecording; +@end + __attribute__((visibility("default"))) @interface AgoraLeaveChannelOptions : NSObject +@property(nonatomic, assign) BOOL stopAudioMixing; +@property(nonatomic, assign) BOOL stopAllEffect; +@property(nonatomic, assign) BOOL stopMicrophoneRecording; +@end +

+
+
+ 属性 + + + stopAudioMixing + 离开频道时是否停止播放和混音音乐文件: +
    +
  • :(默认)停止播放和混音音乐文件。
  • +
  • :不停止播放和混音音乐文件。
  • +
+
+
+ + stopAllEffect + 离开频道时是否停止播放所有音效: +
    +
  • :(默认)停止播放所有音效。
  • +
  • :不停止播放任何音效。
  • +
+
+
+ + stopMicrophoneRecording + 离开频道时是否停止麦克风录制: +
    +
  • :(默认)停止麦克风录制。
  • +
  • :不停止麦克风录制。
  • +
+
+
+ + stopAudioMixing + 离开频道时是否停止播放和混音音乐文件。 +
    +
  • :(默认)停止播放和混音音乐文件。
  • +
  • :不停止播放和混音音乐文件。
  • +
+
+
+ + stopAllEffect + 离开频道时是否停止播放所有音效。 +
    +
  • :(默认)停止播放所有音效。
  • +
  • :不停止播放任何音效。
  • +
+
+
+ + stopMicrophoneRecording + 离开频道时是否停止麦克风录制。 +
    +
  • :(默认)停止麦克风录制。
  • +
  • :不停止麦克风录制。
  • +
+
+
+ + stopAudioMixing + 用户离开频道时是否停止播放和混音音乐文件。 +
    +
  • :(默认)停止播放和混音音乐文件。
  • +
  • :不停止播放和混音音乐文件。
  • +
+
+
+ + stopAllEffect + 用户离开频道时是否停止播放所有音效。 +
    +
  • :(默认)停止播放所有音效。
  • +
  • :不停止播放任何音效。
  • +
+
+
+ + stopMicrophoneRecording + 用户离开频道时是否停止麦克风录制。 +
    +
  • :(默认)停止麦克风录制。
  • +
  • :不停止麦克风录制。
  • +
+
+
+ + stopAudioMixing + 用户离开频道时是否停止播放和混音音乐文件。 +
    +
  • :(默认)停止播放和混音音乐文件。
  • +
  • :不停止播放和混音音乐文件。
  • +
+
+
+ + stopAllEffect + 用户离开频道时是否停止播放所有音效。 +
    +
  • :(默认)停止播放所有音效。
  • +
  • :不停止播放任何音效。
  • +
+
+
+ + stopMicrophoneRecording + 用户离开频道时是否停止麦克风录制。 +
    +
  • :(默认)停止麦克风录制。
  • +
  • :不停止麦克风录制。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_livestreamadvancedfeature.dita b/dita/RTC-AIDOC/API/class_livestreamadvancedfeature.dita new file mode 100644 index 00000000000..9fd22bfef68 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_livestreamadvancedfeature.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="LiveStreamAdvancedFeature"/> + 配置带转码 RTMP 或 RTMPS 推流的高级功能。配置带转码的 RTMP 或 RTMPS 推流的高级功能。配置带转码的 RTMP 或 RTMPS 推流的高级功能。 + +
+

+ struct LiveStreamAdvancedFeature { + const char* featureName; + bool opened; +}; + __attribute__((visibility("default"))) @interface AgoraLiveStreamAdvancedFeature : NSObject +@property(copy, nonatomic) NSString* _Nullable featureName; +@property(assign, nonatomic) BOOL opened; +@end + __attribute__((visibility("default"))) @interface AgoraLiveStreamAdvancedFeature : NSObject +@property(copy, nonatomic) NSString* _Nullable featureName; +@property(assign, nonatomic) BOOL opened; +@end +

+
+
+

如需启用带转码推流的高级功能,请[联系技术支持](https://ticket.shengwang.cn/)。

+

如果你希望启用带转码推流的高级功能,请[联系技术支持](https://ticket.shengwang.cn/)。

+

如果你希望启用带转码推流的高级功能,请[联系技术支持](https://ticket.shengwang.cn/)。

+
+
+ 属性 + + + featureName + 功能名称,包括 LBHQ(低码率高画质)和 VEO(优化的视频编码器)。 + + + opened + 是否启用带转码推流的高级功能: +
    +
  • :启用高级功能。
  • +
  • :(默认)不启用高级功能。
  • +
+
+
+ + featureName + 功能名称,包括 LBHQ(低码率高画质)和 VEO(视频编码器优化)。 + + + opened + 是否启用带转码推流的高级功能: +
    +
  • :启用高级功能。
  • +
  • :(默认)不启用高级功能。
  • +
+
+
+ + featureName + 功能名称,包括 LBHQ(低码率高画质)和 VEO(视频编码器优化)。 + + + opened + 是否启用带转码推流的高级功能: +
    +
  • :启用高级功能。
  • +
  • :(默认)不启用高级功能。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_livetranscoding.dita b/dita/RTC-AIDOC/API/class_livetranscoding.dita new file mode 100644 index 00000000000..779ad5cb886 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_livetranscoding.dita @@ -0,0 +1,518 @@ + + + + <ph keyref="LiveTranscoding"/> + 用于配置媒体推流的转码参数。用于配置媒体推流的转码参数。媒体推流的转码配置。媒体推流的转码配置。 + +
+

+ struct LiveTranscoding { + int width; + int height; + int videoBitrate; + int videoFramerate; + bool lowLatency; + int videoGop; + VIDEO_CODEC_PROFILE_TYPE videoCodecProfile; + unsigned int backgroundColor; + VIDEO_CODEC_TYPE_FOR_STREAM videoCodecType; + unsigned int userCount; + TranscodingUser* transcodingUsers; + const char* transcodingExtraInfo; + const char* metadata; + RtcImage* watermark; + unsigned int watermarkCount; + RtcImage* backgroundImage; + unsigned int backgroundImageCount; + AUDIO_SAMPLE_RATE_TYPE audioSampleRate; + int audioBitrate; + int audioChannels; + AUDIO_CODEC_PROFILE_TYPE audioCodecProfile; + LiveStreamAdvancedFeature* advancedFeatures; + unsigned int advancedFeatureCount; +}; + public class LiveTranscoding { + public int width; + public int height; + public int videoBitrate; + public int videoFramerate; + @Deprecated public boolean lowLatency; + public int videoGop; + private ArrayList<AgoraImage> watermarkList; + private ArrayList<AgoraImage> backgroundImageList; + public AudioSampleRateType audioSampleRate; + public int audioBitrate; + public int audioChannels; + public AudioCodecProfileType audioCodecProfile; + public VideoCodecProfileType videoCodecProfile; + public VideoCodecType videoCodecType; + @Deprecated public int userCount; + @Deprecated public int backgroundColor; + public String userConfigExtraInfo; + @Deprecated public String metadata; + private Map<Integer, TranscodingUser> transcodingUsers; + private Map<String, Boolean> advancedFeatures; +} + __attribute__((visibility("default"))) @interface AgoraLiveTranscoding : NSObject +@property(copy, nonatomic) NSArray<AgoraLiveTranscodingUser*>* _Nullable transcodingUsers; +@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) NSString* _Nullable transcodingExtraInfo; +@property(copy, nonatomic) NSArray<AgoraImage*>* _Nullable watermarkArray; +@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; +@end + __attribute__((visibility("default"))) @interface AgoraLiveTranscoding : NSObject +@property(copy, nonatomic) NSArray<AgoraLiveTranscodingUser*>* _Nullable transcodingUsers; +@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) NSString* _Nullable transcodingExtraInfo; +@property(copy, nonatomic) NSArray<AgoraImage*>* _Nullable watermarkArray; +@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; +@end +

+
+
+ 属性 + + + width + 视频宽度,单位为像素。默认值为 360。 +
    +
  • 当向 CDN 推送视频流时,width 的取值范围为 [64,1920]。如果小于 64,声网服务器会自动调整为 64;如果大于 1920,会自动调整为 1920。
  • +
  • 当向 CDN 推送音频流时,请将 widthheight 设置为 0。
  • +
+
+
+ + height + 视频高度,单位为像素。默认值为 640。 +
    +
  • 当向 CDN 推送视频流时,height 的取值范围为 [64,1080]。如果小于 64,声网服务器会自动调整为 64;如果大于 1080,会自动调整为 1080。
  • +
  • 当向 CDN 推送音频流时,请将 widthheight 设置为 0。
  • +
+
+
+ + videoBitrate + 视频编码码率(Kbps)。无需设置该参数,保持默认值 即可。SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。有关视频分辨率与帧率的对应关系,详见 Video profile + + + videoFramerate + 媒体推流输出视频流的帧率(fps)。默认值为 15,取值范围为 (0,30]。 + 声网服务器会将超过 30 的值自动调整为 30。 + + + + lowLatency + 已废弃。 +延迟模式: +
    +
  • :低延迟但画质不保证。
  • +
  • :(默认)高延迟但画质有保证。
  • +
+
+
+ + videoGop + 媒体推流视频帧的 GOP(图像组)帧率,单位为 fps。默认值为 30。 + + + videoCodecProfile + 媒体推流的视频编码器配置文件类型。可设置为 66、77 或 100(默认)。详见 。 + 如果设置为其他值,声网会自动调整为默认值。 + + + + backgroundColor + 背景颜色的 RGB 十六进制值,仅值,不包含前缀 #。例如,0xFFB6C1 表示浅粉色。默认值为 0x000000(黑色)。 + + + videoCodecType + 媒体推流使用的视频编码器类型。详见 + + + userCount + 媒体推流中的用户数量。取值范围为 [0,17]。 + + + transcodingUsers + 媒体推流中的用户布局配置。最多支持添加 17 个转码用户。详见 + + + transcodingExtraInfo + 保留参数。用于向 CDN 客户端发送 H.264/H.265 视频流 SEI 中的用户自定义信息。最大长度为 4096 字节。 + + + metadata + 已废弃。不推荐使用。发送给 CDN 客户端的元数据。 + + + watermark + 直播视频中的水印。图片格式需为 PNG。你可以添加一个水印,或使用数组添加多个水印。该参数与 watermarkCount 配合使用。详见 + + + watermarkCount + 直播视频中的水印数量。水印和背景图像的总数范围为 0 到 10。该参数与 watermark 配合使用。 + + + backgroundImage + 直播视频中的背景图像。图片格式需为 PNG。你可以添加一个背景图像,或使用数组添加多个背景图像。该参数与 backgroundImageCount 配合使用。详见 + + + backgroundImageCount + 直播视频中的背景图像数量。水印和背景图像的总数范围为 0 到 10。该参数与 backgroundImage 配合使用。 + + + audioSampleRate + 输出媒体流的音频采样率(Hz)。详见 + + + audioBitrate + 媒体推流的音频输出码率(Kbps)。默认值为 48,最大值为 128。 + + + audioChannels + 媒体推流的音频声道数。 +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
  • 3:三声道。
  • +
  • 4:四声道。
  • +
  • 5:五声道。
  • +
声网推荐选择 1 或 2。如果选择 3、4 或 5,需要特殊播放器支持。
+
+ + audioCodecProfile + 媒体推流的音频编码器配置文件类型。详见 + + + advancedFeatures + 带转码的媒体推流的高级功能。详见 + + + advancedFeatureCount + 启用的高级功能数量。默认值为 0。 + + + width + 视频宽度,单位为像素,默认值为 360。 +
    +
  • 当推送视频流至 CDN 时,width 的取值范围为 [64,1920]。若该值小于 64,声网服务器会自动调整为 64;若该值大于 1920,则自动调整为 1920。
  • +
  • 当推送音频流至 CDN 时,请将 widthheight 设置为 0。
  • +
+
+
+ + height + 视频高度,单位为像素,默认值为 640。 +
    +
  • 当推送视频流至 CDN 时,height 的取值范围为 [64,1080]。若该值小于 64,声网服务器会自动调整为 64;若该值大于 1080,则自动调整为 1080。
  • +
  • 当推送音频流至 CDN 时,请将 widthheight 设置为 0。
  • +
+
+
+ + videoBitrate + 视频编码码率(Kbps)。无需设置该参数,仅保留默认值 即可。SDK 会根据已设置的视频分辨率和帧率自动匹配最合适的码率。关于视频分辨率与帧率的对应关系,详见 Video profile + + + videoFramerate + 媒体推流设置的视频输出帧率(fps),默认值为 15。该值的取值范围为 (0,30]。 + 声网服务器会将大于 30 的值调整为 30。 + + + + lowLatency + 延迟模式: +
    +
  • :低延迟模式,但无法保证画质。
  • +
  • :默认值,高延迟但可保证画质。
  • +
+
+
+ + videoGop + 媒体推流中视频帧的 GOP(图像组)设置,单位为帧,默认值为 30。 + + + watermarkList + 水印列表。详见 + + + backgroundImageList + 背景图列表。详见 + + + audioSampleRate + 媒体输出流的音频采样率(Hz)。详见 + + + audioBitrate + 音频输出流的编码码率,单位为 Kbps,默认值为 48,最大值为 128。 + + + audioChannels + 媒体推流使用的音频声道数。声网建议选择 1(单声道)或 2(立体声)。若选择 3、4 或 5,则需要特定播放器支持。 +
    +
  • 1:默认值,单声道。
  • +
  • 2:立体声。
  • +
  • 3:三声道。
  • +
  • 4:四声道。
  • +
  • 5:五声道。
  • +
+
+
+ + audioCodecProfile + 媒体推流使用的音频编码器配置类型。详见 + + + videoCodecProfile + 媒体推流使用的视频编码器配置类型。可设置为 66、77 或默认值 100。详见 。 + 如果设置为其他值,声网会自动使用默认值。 + + + + videoCodecType + 媒体推流使用的视频编码器类型。详见 + + + userCount + 媒体推流中用户数量,取值范围为 [0,17]。 + + + userConfigExtraInfo + 保留字段。用于将用户自定义的信息以 SEI 的形式随 H.264/H.265 视频流发送至 CDN 侧播放端,最大字节长度为 4096。 + + + metadata + 发送至 CDN 客户端的元数据内容。 + + + transcodingUsers + 管理媒体推流中的用户画面布局配置。声网最多支持 17 位用户进行转码推流。详见 + + + advancedFeatures + 高级特性配置项: +
    +
  • "lbhq":低码率高画质。
  • +
  • "veo":视频编码器最优化。
  • +
值为 ,表示是否启用该特性。
+
+ + transcodingUsers + 媒体推流中的用户布局配置。最多支持添加 17 个转码用户。详见 + + + size + 视频的尺寸(单位为像素)。 +
    +
  • 推送视频流到 CDN 时: +
      +
    • 宽度范围为 [64,1920],小于 64 会被自动调整为 64,大于 1920 会被自动调整为 1920。
    • +
    • 高度范围为 [64,1080],小于 64 会被自动调整为 64,大于 1080 会被自动调整为 1080。
    • +
    +
  • +
  • 推送音频流到 CDN 时,请将宽度和高度设置为 0。
  • +
+
+
+ + videoBitrate + 视频的编码码率(Kbps)。无需设置该参数,保持默认值 即可。SDK 会根据你设置的视频分辨率和帧率自动匹配最合适的码率。分辨率与帧率的对应关系详见 Video profile + + + videoFramerate + 媒体推流的视频输出帧率(fps)。默认值为 15,取值范围为 (0,30]。 + 声网服务器会将超过 30 的值自动调整为 30。 + + + + lowLatency + 延迟模式: +
    +
  • :低延迟但画质无法保证。
  • +
  • :(默认)高延迟但画质有保障。
  • +
+
+
+ + videoGop + 媒体推流的视频帧的 GOP(图像组)帧率,单位为 fps。默认值为 30。 + + + videoCodecProfile + 媒体推流的视频编解码器配置文件类型。可设置为 66、77 或 100(默认)。详见 。 + 如果设置为其他值,声网会自动调整为默认值。 + + + + videoCodecType + 媒体推流的视频编解码器类型。详见 + + + transcodingExtraInfo + 保留字段。用于通过 SEI 将用户自定义的额外信息发送到 CDN 直播客户端,适用于 H.264/H.265 视频流。最大长度为 4096 字节。 + + + watermarkArray + 直播视频中的水印数组。你可以使用该属性添加一个或多个 PNG 格式的水印。直播视频中的水印和背景图总数必须在 0 到 10 之间。详见 + + + backgroundImageArray + 直播视频中的背景图数组。你可以使用该属性添加一个或多个 PNG 格式的背景图。直播视频中的水印和背景图总数必须在 0 到 10 之间。详见 + + + backgroundColor + 媒体推流的背景颜色。颜色格式为 RGB 十六进制整数,不带 # 符号,例如浅粉色为 0xFFB6C1,默认值为 0x000000(黑色)。COLOR_CLASS 是通用类型名: +
    +
  • iOS:UIColor
  • +
  • macOS:NSColor
  • +
+
+
+ + audioSampleRate + 输出媒体流的音频采样率(Hz)。详见 + + + audioBitrate + 媒体推流的音频输出码率(Kbps)。默认值为 48,最大值为 128。 + + + audioChannels + 媒体推流的音频声道数。推荐设置为 1(单声道)或 2(立体声)。如设置为 3、4 或 5,则需使用支持的播放器。 +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
  • 3:三声道。
  • +
  • 4:四声道。
  • +
  • 5:五声道。
  • +
+
+
+ + audioCodecProfile + 媒体推流的音频编解码器配置文件类型。详见 + + + transcodingUsers + 媒体推流中的用户布局配置。最多支持添加 17 个转码用户。详见 + + + size + 视频的尺寸(单位为像素)。 +
    +
  • 推送视频流到 CDN 时: +
      +
    • 宽度范围为 [64,1920],小于 64 会被自动调整为 64,大于 1920 会被自动调整为 1920。
    • +
    • 高度范围为 [64,1080],小于 64 会被自动调整为 64,大于 1080 会被自动调整为 1080。
    • +
    +
  • +
  • 推送音频流到 CDN 时,请将宽度和高度设置为 0。
  • +
+
+
+ + videoBitrate + 视频的编码码率(Kbps)。无需设置该参数,保持默认值 即可。SDK 会根据你设置的视频分辨率和帧率自动匹配最合适的码率。分辨率与帧率的对应关系详见 Video profile + + + videoFramerate + 媒体推流的视频输出帧率(fps)。默认值为 15,取值范围为 (0,30]。 + 声网服务器会将超过 30 的值自动调整为 30。 + + + + lowLatency + 延迟模式: +
    +
  • :低延迟但画质无法保证。
  • +
  • :(默认)高延迟但画质有保障。
  • +
+
+
+ + videoGop + 媒体推流的视频帧的 GOP(图像组)帧率,单位为 fps。默认值为 30。 + + + videoCodecProfile + 媒体推流的视频编解码器配置文件类型。可设置为 66、77 或 100(默认)。详见 。 + 如果设置为其他值,声网会自动调整为默认值。 + + + + videoCodecType + 媒体推流的视频编解码器类型。详见 + + + transcodingExtraInfo + 保留字段。用于通过 SEI 将用户自定义的额外信息发送到 CDN 直播客户端,适用于 H.264/H.265 视频流。最大长度为 4096 字节。 + + + watermarkArray + 直播视频中的水印数组。你可以使用该属性添加一个或多个 PNG 格式的水印。直播视频中的水印和背景图总数必须在 0 到 10 之间。详见 + + + backgroundImageArray + 直播视频中的背景图数组。你可以使用该属性添加一个或多个 PNG 格式的背景图。直播视频中的水印和背景图总数必须在 0 到 10 之间。详见 + + + backgroundColor + 媒体推流的背景颜色。颜色格式为 RGB 十六进制整数,不带 # 符号,例如浅粉色为 0xFFB6C1,默认值为 0x000000(黑色)。COLOR_CLASS 是通用类型名: +
    +
  • iOS:UIColor
  • +
  • macOS:NSColor
  • +
+
+
+ + audioSampleRate + 输出媒体流的音频采样率(Hz)。详见 + + + audioBitrate + 媒体推流的音频输出码率(Kbps)。默认值为 48,最大值为 128。 + + + audioChannels + 媒体推流的音频声道数。推荐设置为 1(单声道)或 2(立体声)。如设置为 3、4 或 5,则需使用支持的播放器。 +
    +
  • 1:(默认)单声道。
  • +
  • 2:立体声。
  • +
  • 3:三声道。
  • +
  • 4:四声道。
  • +
  • 5:五声道。
  • +
+
+
+ + audioCodecProfile + 媒体推流的音频编解码器配置文件类型。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localaccesspointconfiguration.dita b/dita/RTC-AIDOC/API/class_localaccesspointconfiguration.dita new file mode 100644 index 00000000000..96997af8e7c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localaccesspointconfiguration.dita @@ -0,0 +1,180 @@ + + + + <ph keyref="LocalAccessPointConfiguration"/> + 用于配置本地接入点。用于配置本地接入点。本地接入点配置。本地接入点配置。 + +
+

+ struct LocalAccessPointConfiguration { + const char** ipList; + int ipListSize; + const char** domainList; + int domainListSize; + const char* verifyDomainName; + LOCAL_PROXY_MODE mode; + AdvancedConfigInfo advancedConfig; + bool disableAut; +}; + public class LocalAccessPointConfiguration { + public ArrayList<String> ipList = null; + public ArrayList<String> domainList = null; + public String verifyDomainName = null; + public int mode = Constants.LOCAL_RPOXY_CONNECTIVITY_FIRST; + public boolean disableAut = true; + public AdvancedConfigInfo advancedConfig = null; +} + 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); +@property(strong, nonatomic) AdvancedConfigInfo* _Nullable advancedConfig NS_SWIFT_NAME(advancedConfig); +@property(assign, nonatomic) BOOL disableAut; +@end + 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); +@property(strong, nonatomic) AdvancedConfigInfo* _Nullable advancedConfig NS_SWIFT_NAME(advancedConfig); +@property(assign, nonatomic) BOOL disableAut; +@end +

+
+
+ 属性 + + + ipList + 本地接入点的内网 IP 地址列表。你必须在 ipListdomainList 中至少指定一个。 + + + ipListSize + 本地接入点的内网 IP 地址数量。该值必须与你提供的 IP 地址数量一致。 + + + domainList + 本地接入点的域名列表。SDK 会根据你提供的域名解析本地接入点的 IP 地址,DNS 解析超时时间为 10 秒。你必须在 ipListdomainList 中至少指定一个。如果同时指定了 IP 地址和域名,SDK 会合并并去重解析出的 IP 地址和指定的 IP 地址,然后随机选择一个用于负载均衡。 + + + domainListSize + 本地接入点的域名数量。该值必须与你提供的域名数量一致。 + + + verifyDomainName + 用于内部证书校验的域名。如果为空,SDK 使用默认域名 secure-edge.local 进行证书校验。 + + + mode + 连接模式,详见 + + + advancedConfig + 本地接入点的高级配置选项。详见 + + + disableAut + 是否禁用 vos-aut: +
    +
  • :(默认)禁用 vos-aut。
  • +
  • :不禁用 vos-aut。
  • +
+
+
+ + ipList + 本地接入点的内网 IP 地址列表。ipListdomainList 至少需提供一个。 + + + domainList + 本地接入点的域名列表。SDK 会根据你提供的域名解析本地接入点的 IP 地址,解析超时时间为 10 秒。ipListdomainList 至少需提供一个。如果同时指定了 IP 地址和域名,SDK 会合并并去重解析得到的 IP 地址和指定的 IP 地址,然后随机连接一个 IP 地址以实现负载均衡。 + + + verifyDomainName + 内网证书校验域名。如果该值为 null,SDK 默认使用 secure-edge.local 作为证书校验域名。 + + + mode + 连接模式: +
    +
  • LOCAL_RPOXY_CONNECTIVITY_FIRST(0):SDK 优先尝试连接指定的声网私有媒体服务器;如果连接失败,则连接声网 SD-RTN™。
  • +
  • LOCAL_RPOXY_LOCAL_ONLY(1):SDK 只连接指定的声网私有媒体服务器。
  • +
+
+
+ + disableAut + 是否禁用 vos-aut: +
    +
  • :(默认)禁用 vos-aut。
  • +
  • :不禁用 vos-aut。
  • +
+
+
+ + advancedConfig + 本地接入点的高级配置项。详见 + + + ipList + 本地接入点的内网 IP 地址列表。你必须至少提供 ipListdomainList 中的一个。 + + + domainList + 本地接入点的域名列表。SDK 会根据你提供的域名解析本地接入点的 IP 地址,解析超时时间为 10 秒。你必须至少指定 ipListdomainList 中的一个。如果同时指定了 IP 地址和域名,SDK 会合并并去重解析出的 IP 地址和你提供的 IP 地址,然后随机连接一个 IP 地址以实现负载均衡。 + + + verifyDomainName + 内网证书验证域名。如果该值为 ,SDK 使用默认的证书验证域名 secure-edge.local + + + mode + 连接模式。详见 + + + advancedConfig + 本地接入点的高级配置项。详见 + + + disableAut + 是否禁用 vos-aut: +
    +
  • :(默认)禁用 vos-aut。
  • +
  • :不禁用 vos-aut。
  • +
+
+
+ + ipList + 本地接入点的内网 IP 地址列表。你必须至少提供 ipListdomainList 中的一个。 + + + domainList + 本地接入点的域名列表。SDK 会根据你提供的域名解析本地接入点的 IP 地址,解析超时时间为 10 秒。你必须至少指定 ipListdomainList 中的一个。如果同时指定了 IP 地址和域名,SDK 会合并并去重解析出的 IP 地址和你提供的 IP 地址,然后随机连接一个 IP 地址以实现负载均衡。 + + + verifyDomainName + 内网证书验证域名。如果该值为 ,SDK 使用默认的证书验证域名 secure-edge.local + + + mode + 连接模式。详见 + + + advancedConfig + 本地接入点的高级配置项。详见 + + + disableAut + 是否禁用 vos-aut: +
    +
  • :(默认)禁用 vos-aut。
  • +
  • :不禁用 vos-aut。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localaudiomixerconfiguration.dita b/dita/RTC-AIDOC/API/class_localaudiomixerconfiguration.dita new file mode 100644 index 00000000000..2aebd23cd61 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localaudiomixerconfiguration.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="LocalAudioMixerConfiguration"/> + 配置本地音频混音。用于配置本地音频混音。配置本地音频混音。配置本地音频混音。 + +
+

+ struct LocalAudioMixerConfiguration { + unsigned int streamCount; + MixedAudioStream* audioInputStreams; + bool syncWithLocalMic; +}; + public class LocalAudioMixerConfiguration { + public ArrayList<MixedAudioStream> audioInputStreams; + public boolean syncWithLocalMic; +} + __attribute__((visibility("default"))) @interface AgoraLocalAudioMixerConfiguration: NSObject +@property(copy, nonatomic) NSArray<AgoraMixedAudioStream *> *_Nullable audioInputStreams; +@property(assign, nonatomic) BOOL syncWithLocalMic; +@end + __attribute__((visibility("default"))) @interface AgoraLocalAudioMixerConfiguration: NSObject +@property(copy, nonatomic) NSArray<AgoraMixedAudioStream *> *_Nullable audioInputStreams; +@property(assign, nonatomic) BOOL syncWithLocalMic; +@end +

+
+
+ 属性 + + + streamCount + 本地混音的音频流数量。 + + + audioInputStreams + 本地混音的音频流来源。详见 + + + syncWithLocalMic + 混音后的音频流是否使用本地麦克风采集的音频帧的时间戳。 +
    +
  • :(默认)使用本地麦克风采集的音频帧时间戳。如果希望所有本地采集的音频流同步,请设置为该值。
  • +
  • :使用混音时音频帧的时间戳。
  • +
+
+
+ + audioInputStreams + 本地混音的音频流来源,详见 + + + syncWithLocalMic + 混音后音频流是否使用本地麦克风采集音频帧的时间戳。 +
    +
  • :(默认)是。若希望所有本地采集的音频流同步处理,建议设置为该值。
  • +
  • :否。SDK 使用混音时生成的音频帧时间戳。
  • +
+
+
+ + audioInputStreams + 本地混音的音频流来源,详见 + + + syncWithLocalMic + 混音后的音频流是否使用本地麦克风采集的音频帧的时间戳。 +
    +
  • :(默认)使用本地麦克风采集的音频帧时间戳,可实现所有本地采集音频流的同步。
  • +
  • :使用混音时音频帧的时间戳。
  • +
+
+
+ + audioInputStreams + 本地混音的音频流来源,详见 + + + syncWithLocalMic + 混音后的音频流是否使用本地麦克风采集的音频帧的时间戳。 +
    +
  • :(默认)使用本地麦克风采集的音频帧时间戳,可实现所有本地采集音频流的同步。
  • +
  • :使用混音时音频帧的时间戳。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localaudiostats.dita b/dita/RTC-AIDOC/API/class_localaudiostats.dita new file mode 100644 index 00000000000..7c74ad4a489 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localaudiostats.dita @@ -0,0 +1,205 @@ + + + + <ph keyref="LocalAudioStats"/> + 本地音频统计信息结构体。 提供本地音频的统计信息。本地音频统计信息。本地音频统计信息。 + +
+

+ struct LocalAudioStats { + int numChannels; + int sentSampleRate; + int sentBitrate; + int internalCodec; + unsigned short txPacketLossRate; + int audioDeviceDelay; + int audioPlayoutDelay; + int earMonitorDelay; + int aecEstimatedDelay; +}; + public static class LocalAudioStats { + public int numChannels; + public int sentSampleRate; + public int sentBitrate; + public int internalCodec; + public int txPacketLossRate; + public int audioDeviceDelay; + public int audioPlayoutDelay; + public int earMonitorDelay; + public int aecEstimatedDelay; +} + __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; +@property(assign, nonatomic) NSUInteger audioPlayoutDelay; +@property(assign, nonatomic) NSUInteger earMonitorDelay; +@property(assign, nonatomic) NSUInteger aecEstimatedDelay; +@end + __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; +@property(assign, nonatomic) NSUInteger audioPlayoutDelay; +@property(assign, nonatomic) NSUInteger earMonitorDelay; +@property(assign, nonatomic) NSUInteger aecEstimatedDelay; +@end +

+
+
+ 属性 + + + numChannels + 音频通道数。 + + + sentSampleRate + 本地用户音频流的发送采样率,单位为 Hz。 + + + sentBitrate + 本地用户音频流的平均发送码率,单位为 Kbps。 + + + internalCodec + 内部使用的负载编解码器。 + + + txPacketLossRate + 应用抗丢包策略前,从本地客户端到声网服务器的音频丢包率,单位为百分比(%)。 + + + audioDeviceDelay + 播放或录制音频时,音频设备模块的延迟,单位为毫秒。 + + + audioPlayoutDelay + 设备的播放延迟,单位为毫秒。 + + + earMonitorDelay + 耳返延迟,单位为毫秒,即从麦克风输入到耳机输出的延迟。 + + + aecEstimatedDelay + 声学回声消除(AEC)模块估算的延迟,单位为毫秒,即本地播放音频到本地采集之间的信号延迟。 + + + numChannels + 音频通道数。 + + + sentSampleRate + 本地用户发送音频流的采样率,单位为 Hz。 + + + sentBitrate + 本地用户发送音频流的平均码率,单位为 Kbps。 + + + internalCodec + 内部使用的负载编解码器。 + + + txPacketLossRate + 应用抗丢包策略前,从本地客户端到声网服务器的音频丢包率(%)。 + + + audioDeviceDelay + 音频设备模块在播放或采集音频时的延迟,单位为毫秒。 + + + audioPlayoutDelay + 设备播放音频的延迟,单位为毫秒。 + + + earMonitorDelay + 耳返延迟,单位为毫秒,指从麦克风输入到耳机输出的延迟。 + + + aecEstimatedDelay + 回声消除(AEC)模块估算的延迟,单位为毫秒,指本地播放音频到被本地采集之间的信号延迟。 + + + numChannels + 音频通道数。 + + + sentSampleRate + 本地用户发送音频流的采样率(Hz)。 + + + sentBitrate + 本地用户发送音频流的平均码率(Kbps)。 + + + internalCodec + 内部负载编解码器。 + + + txPacketLossRate + 应用抗丢包策略前,从本地客户端到声网服务器的音频丢包率(%)。 + + + audioDeviceDelay + 播放或录制音频时的音频设备模块延迟(毫秒)。 + + + audioPlayoutDelay + 设备的音频播放延迟(毫秒)。 + + + earMonitorDelay + 耳返延迟(毫秒),即从麦克风输入到耳机输出的延迟。 + + + aecEstimatedDelay + 声学回声消除(AEC)模块估算的延迟(毫秒),即本地播放音频到本地采集之间的信号延迟。 + + + numChannels + 音频通道数。 + + + sentSampleRate + 本地用户发送音频流的采样率(Hz)。 + + + sentBitrate + 本地用户发送音频流的平均码率(Kbps)。 + + + internalCodec + 内部负载编解码器。 + + + txPacketLossRate + 应用抗丢包策略前,从本地客户端到声网服务器的音频丢包率(%)。 + + + audioDeviceDelay + 播放或录制音频时的音频设备模块延迟(毫秒)。 + + + audioPlayoutDelay + 设备的音频播放延迟(毫秒)。 + + + earMonitorDelay + 耳返延迟(毫秒),即从麦克风输入到耳机输出的延迟。 + + + aecEstimatedDelay + 声学回声消除(AEC)模块估算的延迟(毫秒),即本地播放音频到本地采集之间的信号延迟。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localspatialaudioconfig.dita b/dita/RTC-AIDOC/API/class_localspatialaudioconfig.dita new file mode 100644 index 00000000000..172282dc029 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localspatialaudioconfig.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="LocalSpatialAudioConfig"/> + 用于配置 的结构体。用于配置本地空间音频引擎。 的配置类。 的配置类。 + +
+

+ struct LocalSpatialAudioConfig { + agora::rtc::IRtcEngine* rtcEngine; +}; + public class LocalSpatialAudioConfig { + public RtcEngine mRtcEngine; +} + __attribute__((visibility("default"))) @interface AgoraLocalSpatialAudioConfig : NSObject +@property(assign, nonatomic) AgoraRtcEngineKit* _Nullable rtcEngine; +@end + __attribute__((visibility("default"))) @interface AgoraLocalSpatialAudioConfig : NSObject +@property(assign, nonatomic) AgoraRtcEngineKit* _Nullable rtcEngine; +@end +

+
+
+ 属性 + + + rtcEngine + 实例。详见 + + + mRtcEngine + 声网引擎实例。详见 + + + rtcEngine + 声网引擎实例。详见 + + + rtcEngine + 声网引擎实例。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localtranscoderconfiguration.dita b/dita/RTC-AIDOC/API/class_localtranscoderconfiguration.dita new file mode 100644 index 00000000000..9a30f1cc4a3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localtranscoderconfiguration.dita @@ -0,0 +1,114 @@ + + + + <ph keyref="LocalTranscoderConfiguration"/> + 用于配置本地客户端的视频合图功能。用于配置本地客户端的视频合图。本地视频合图配置。本地视频合图配置。 + +
+

+ struct LocalTranscoderConfiguration { + unsigned int streamCount; + TranscodingVideoStream* videoInputStreams; + VideoEncoderConfiguration videoOutputConfiguration; + bool syncWithPrimaryCamera; +}; + public class LocalTranscoderConfiguration { + public ArrayList<TranscodingVideoStream> transcodingVideoStreams; + public boolean syncWithPrimaryCamera; + public VideoEncoderConfiguration videoOutputConfiguration; +} + __attribute__((visibility("default"))) @interface AgoraLocalTranscoderConfiguration: NSObject +@property(copy, nonatomic) NSArray<AgoraTranscodingVideoStream *> *_Nullable videoInputStreams; +@property (strong, nonatomic) AgoraVideoEncoderConfiguration *_Nonnull videoOutputConfiguration; +@property(assign, nonatomic) BOOL syncWithPrimaryCamera; +@end + __attribute__((visibility("default"))) @interface AgoraLocalTranscoderConfiguration: NSObject +@property(copy, nonatomic) NSArray<AgoraTranscodingVideoStream *> *_Nullable videoInputStreams; +@property (strong, nonatomic) AgoraVideoEncoderConfiguration *_Nonnull videoOutputConfiguration; +@property(assign, nonatomic) BOOL syncWithPrimaryCamera; +@end +

+
+
+

用于设置本地客户端的视频合图参数。

+

用于设置本地客户端的视频合图参数。

+
+
+ 属性 + + + streamCount + 本地客户端进行视频合图的视频流数量。 + + + videoInputStreams + 用于本地视频合图的视频流。详见 + + + videoOutputConfiguration + 合图后合图视频的编码配置。详见 + + + syncWithPrimaryCamera + 是否使用主摄像头采集的视频帧的时间戳作为合图视频的时间戳。 +
    +
  • :(默认)使用采集的视频帧的时间戳作为合图视频帧的时间戳。
  • +
  • :不使用采集的视频帧的时间戳作为合图视频的时间戳,而是使用构建视频合图时的时间戳。
  • +
+
+
+ + transcodingVideoStreams + 本地视频合图所用的视频流。详见 + + + syncWithPrimaryCamera + 是否使用主摄像头采集的视频帧的时间戳作为合图后视频帧的时间戳。 +
    +
  • :(默认)使用采集帧的时间戳作为合图帧的时间戳。
  • +
  • :不使用采集帧的时间戳,而是使用构建合图帧的时间戳。
  • +
+
+
+ + videoOutputConfiguration + 本地视频合图后输出的视频流的编码参数配置。详见 + + + videoInputStreams + 用于本地合图的视频流。详见 + + + videoOutputConfiguration + 本地合图后合图视频的编码配置。详见 + + + syncWithPrimaryCamera + 是否使用主摄像头采集的视频帧的时间戳作为合图视频的时间戳。 +
    +
  • :(默认)使用采集视频帧的时间戳作为合图视频的时间戳。
  • +
  • :不使用采集视频帧的时间戳,而使用构建合图视频时的时间戳。
  • +
+
+
+ + videoInputStreams + 用于本地合图的视频流。详见 + + + videoOutputConfiguration + 本地合图后合图视频的编码配置。详见 + + + syncWithPrimaryCamera + 是否使用主摄像头采集的视频帧的时间戳作为合图视频的时间戳。 +
    +
  • :(默认)使用采集视频帧的时间戳作为合图视频的时间戳。
  • +
  • :不使用采集视频帧的时间戳,而使用构建合图视频时的时间戳。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_localvideostats.dita b/dita/RTC-AIDOC/API/class_localvideostats.dita new file mode 100644 index 00000000000..57678c2f5fb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_localvideostats.dita @@ -0,0 +1,589 @@ + + + + <ph keyref="LocalVideoStats"/> + 用于统计本地视频流的相关统计信息。本地视频流的统计信息。本地视频流的统计信息。本地视频流的统计信息。 + +
+

+ struct LocalVideoStats { + uid_t uid; + int sentBitrate; + int sentFrameRate; + int captureFrameRate; + int captureFrameWidth; + int captureFrameHeight; + int regulatedCaptureFrameRate; + int regulatedCaptureFrameWidth; + int regulatedCaptureFrameHeight; + int encoderOutputFrameRate; + int encodedFrameWidth; + int encodedFrameHeight; + int rendererOutputFrameRate; + int targetBitrate; + int targetFrameRate; + QUALITY_ADAPT_INDICATION qualityAdaptIndication; + int encodedBitrate; + int encodedFrameCount; + VIDEO_CODEC_TYPE codecType; + unsigned short txPacketLossRate; + CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel; + bool dualStreamEnabled; + int hwEncoderAccelerating; + VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX]; + int encodedFrameDepth; +}; + public static class LocalVideoStats { + public int uid; + public int sentBitrate; + public int sentFrameRate; + public int captureFrameRate; + public int captureFrameWidth; + public int captureFrameHeight; + public int regulatedCaptureFrameRate; + public int regulatedCaptureFrameWidth; + public int regulatedCaptureFrameHeight; + public int encoderOutputFrameRate; + public int rendererOutputFrameRate; + public int targetBitrate; + public int targetFrameRate; + public int qualityAdaptIndication; + public int encodedBitrate; + public int encodedFrameWidth; + public int encodedFrameHeight; + public int encodedFrameCount; + public int codecType; + public int txPacketLossRate; + public int captureBrightnessLevel; + public boolean dualStreamEnabled; + public int hwEncoderAccelerating; + public int encodedFrameDepth; + } + __attribute__((visibility("default"))) @interface AgoraRtcLocalVideoStats : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger sentBitrate; +@property(assign, nonatomic) NSUInteger sentFrameRate; +@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) AgoraVideoEncodedFrameDepth encodedFrameDepth; +@property(assign, nonatomic) AgoraVideoHwEncoderAccelerating hwEncoderAccelerating; +@property(assign, nonatomic) NSInteger txPacketLossRate; +@property(assign, nonatomic) AgoraCaptureBrightnessLevelType captureBrightnessLevel NS_SWIFT_NAME(captureBrightnessLevel); +@property(assign, nonatomic) BOOL dualStreamEnabled; +@end + __attribute__((visibility("default"))) @interface AgoraRtcLocalVideoStats : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger sentBitrate; +@property(assign, nonatomic) NSUInteger sentFrameRate; +@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) AgoraVideoEncodedFrameDepth encodedFrameDepth; +@property(assign, nonatomic) AgoraVideoHwEncoderAccelerating hwEncoderAccelerating; +@property(assign, nonatomic) NSInteger txPacketLossRate; +@property(assign, nonatomic) AgoraCaptureBrightnessLevelType captureBrightnessLevel NS_SWIFT_NAME(captureBrightnessLevel); +@property(assign, nonatomic) BOOL dualStreamEnabled; +@end +

+
+
+ 属性 + + + uid + 本地用户的用户 ID。 + + + sentBitrate + 发送本地视频流的实际码率(Kbps)。 + + + sentFrameRate + 发送本地视频流的实际帧率(fps)。 + + + captureFrameRate + 采集本地视频流的帧率(fps)。 + + + captureFrameWidth + 采集本地视频流的宽度(px)。 + + + captureFrameHeight + 采集本地视频流的高度(px)。 + + + regulatedCaptureFrameRate + SDK 内置视频采集调节器调节后的本地视频采集帧率(fps)。 + + + regulatedCaptureFrameWidth + SDK 内置视频采集调节器调节后的本地视频采集宽度(px)。 + + + regulatedCaptureFrameHeight + SDK 内置视频采集调节器调节后的本地视频采集高度(px)。 + + + encoderOutputFrameRate + 本地视频编码器的输出帧率(fps)。 + + + encodedFrameWidth + 编码后视频的宽度(px)。 + + + encodedFrameHeight + 编码后视频的高度(px)。 + + + rendererOutputFrameRate + 本地视频渲染器的输出帧率(fps)。 + + + targetBitrate + 当前编码器的目标码率(Kbps),由 SDK 根据当前网络状况估算得出。 + + + targetFrameRate + 当前编码器的目标帧率(fps)。 + + + qualityAdaptIndication + 本地视频流在上报时间间隔内的质量自适应情况(基于目标帧率和目标码率)。详见 + + + encodedBitrate + 编码本地视频流时的码率(Kbps)。 + + + encodedFrameCount + 发送的视频帧总数(聚合值)。 + + + codecType + 本地视频的编解码器类型。详见 + + + txPacketLossRate + 在应用抗丢包策略前,从本地客户端到声网服务器的视频丢包率(%)。 + + + captureBrightnessLevel + 本地摄像头采集的视频图像的亮度等级。详见 + + + dualStreamEnabled + 是否启用了双流模式。 +
    +
  • :启用双流模式。
  • +
  • :未启用双流模式。
  • +
+
+
+ + hwEncoderAccelerating + 本地视频编码加速类型: +
    +
  • 0:使用软件编码,无加速。
  • +
  • 1:使用硬件编码进行加速。
  • +
+
+
+ + simulcastDimensions + 不同质量层级的视频流的编码帧尺寸。详见 + + + encodedFrameDepth + 本地视频的编码帧深度: +
    +
  • SDR = 8。
  • +
  • HDR = 10。
  • +
+
+
+ + uid + 本地用户的用户 ID。 + + + sentBitrate + 本地视频流在发送过程中的实际码率(Kbps)。 + 该值不包括由于丢包引起的重传码率。 + + + + sentFrameRate + 本地视频流在发送过程中的实际帧率(fps)。 + 该值不包括由于丢包引起的重传帧率。 + + + + captureFrameRate + 采集本地视频流时的帧率(fps)。 + + + captureFrameWidth + 采集本地视频流时的宽度(px)。 + + + captureFrameHeight + 采集本地视频流时的高度(px)。 + + + regulatedCaptureFrameRate + 声网 SDK 内建的视频采集调节器根据编码配置调整后的本地视频帧率(fps)。 + + + regulatedCaptureFrameWidth + 声网 SDK 内建的视频采集调节器根据编码配置调整后的本地视频宽度(px)。 + + + regulatedCaptureFrameHeight + 声网 SDK 内建的视频采集调节器根据编码配置调整后的本地视频高度(px)。 + + + encoderOutputFrameRate + 本地视频编码器的输出帧率(fps)。 + + + rendererOutputFrameRate + 本地视频渲染器的输出帧率(fps)。 + + + targetBitrate + 当前编码器的目标码率(Kbps)。 + 该值由 SDK 根据当前网络状况估算得出。 + + + + targetFrameRate + 当前编码器的目标帧率(fps)。 + + + qualityAdaptIndication + 本地视频流在统计周期内的画质自适应状态: +
    +
  • ADAPT_NONE (0):本地视频质量维持不变。
  • +
  • ADAPT_UP_BANDWIDTH (1):由于网络带宽增加,本地视频质量上升。
  • +
  • ADAPT_DOWN_BANDWIDTH (2):由于网络带宽下降,本地视频质量下降。
  • +
+
+
+ + encodedBitrate + 对本地视频流编码时的码率(Kbps)。 + 该值不包括由于丢包引起的重传码率。 + + + + encodedFrameWidth + 编码后视频的宽度(px)。 + + + encodedFrameHeight + 编码后视频的高度(px)。 + + + encodedFrameCount + 发送的视频帧总数,表示为聚合值。 + + + codecType + + 在某些场景下(如采集分辨率较低或设备性能有限),SDK 会自动切换为 H.264 编码格式。本地视频使用的编码器类型。可选值如下,详见 +
    +
  • VIDEO_CODEC_VP8 (1):VP8。
  • +
  • VIDEO_CODEC_H264 (2):H.264。
  • +
  • VIDEO_CODEC_H265 (3):H.265(默认)。
  • +
+
+
+ + txPacketLossRate + 应用抗丢包策略前,本地客户端到声网服务器的视频丢包率(%)。 + + + captureBrightnessLevel + + 等待几秒后,可从下一次回调中的 captureBrightnessLevel 获取亮度等级。本地摄像头采集的视频画面的亮度等级: +
    +
  • CAPTURE_BRIGHTNESS_LEVEL_INVALID (-1):SDK 未检测到画面亮度。
  • +
  • CAPTURE_BRIGHTNESS_LEVEL_NORMAL (0):画面亮度正常。
  • +
  • CAPTURE_BRIGHTNESS_LEVEL_BRIGHT (1):画面亮度过亮。
  • +
  • CAPTURE_BRIGHTNESS_LEVEL_DARK (2):画面亮度过暗。
  • +
+
+
+ + dualStreamEnabled + 是否启用了双流功能: +
    +
  • :启用双流功能。
  • +
  • :未启用双流功能。
  • +
+
+
+ + hwEncoderAccelerating + 本地视频编码加速类型: +
    +
  • 0:使用软件编码,无加速。
  • +
  • 1:使用硬件编码进行加速。
  • +
+
+
+ + encodedFrameDepth + 编码帧的类型: +
    +
  • 8:SDR。
  • +
  • 10:HDR。
  • +
+
+
+ + uid + 本地用户的用户 ID。 + + + sentBitrate + 发送本地视频流的实际码率(Kbps)。该值不包括因丢包重传而产生的视频码率。 + + + sentFrameRate + 发送本地视频流的实际帧率(fps)。该值不包括因丢包重传而产生的视频帧率。 + + + captureFrameRate + 采集本地视频流的帧率(fps)。 + + + captureFrameWidth + 采集本地视频流的宽度(px)。 + + + captureFrameHeight + 采集本地视频流的高度(px)。 + + + regulatedCaptureFrameRate + SDK 内置视频采集调节器调节后的本地视频采集帧率(fps)。 + + + regulatedCaptureFrameWidth + SDK 内置视频采集调节器调节后的本地视频采集宽度(px)。 + + + regulatedCaptureFrameHeight + SDK 内置视频采集调节器调节后的本地视频采集高度(px)。 + + + encoderOutputFrameRate + 本地视频编码器的输出帧率(fps)。 + + + rendererOutputFrameRate + 本地视频渲染器的输出帧率(fps)。 + + + targetFrameRate + 当前编码器的目标帧率(fps)。 + + + qualityAdaptIndication + 本地视频流在统计周期内的质量自适应情况(基于目标帧率和目标码率)。详见 + + + targetBitrate + 当前编码器的目标码率(Kbps)。 + + + encodedBitrate + 本地视频流编码时的码率(Kbps)。该值不包括因丢包重传而产生的视频码率。 + + + encodedFrameWidth + 编码后视频的宽度(px)。 + + + encodedFrameHeight + 编码后视频的高度(px)。 + + + encodedFrameCount + 发送的视频帧总数。 + + + codecType + 本地视频的编码格式。详见 + + + encodedFrameDepth + 本地视频的编码帧深度: +
    +
  • AgoraVideoEncodedFrameOfSDR = 8
  • +
  • AgoraVideoEncodedFrameOfHDR = 10
  • +
+
+
+ + hwEncoderAccelerating + 本地视频编码加速类型。详见 + + + txPacketLossRate + 从本地客户端到声网服务器的视频丢包率(%),该值为应用抗丢包策略前的统计值。 + + + captureBrightnessLevel + 本地摄像头采集的视频图像的亮度等级。详见 + + + dualStreamEnabled + 是否启用了双流模式: +
    +
  • :启用双流模式。
  • +
  • :未启用双流模式。
  • +
+
+
+ + uid + 本地用户的用户 ID。 + + + sentBitrate + 发送本地视频流的实际码率(Kbps)。该值不包括因丢包重传而产生的视频码率。 + + + sentFrameRate + 发送本地视频流的实际帧率(fps)。该值不包括因丢包重传而产生的视频帧率。 + + + captureFrameRate + 采集本地视频流的帧率(fps)。 + + + captureFrameWidth + 采集本地视频流的宽度(px)。 + + + captureFrameHeight + 采集本地视频流的高度(px)。 + + + regulatedCaptureFrameRate + SDK 内置视频采集调节器调节后的本地视频采集帧率(fps)。 + + + regulatedCaptureFrameWidth + SDK 内置视频采集调节器调节后的本地视频采集宽度(px)。 + + + regulatedCaptureFrameHeight + SDK 内置视频采集调节器调节后的本地视频采集高度(px)。 + + + encoderOutputFrameRate + 本地视频编码器的输出帧率(fps)。 + + + rendererOutputFrameRate + 本地视频渲染器的输出帧率(fps)。 + + + targetFrameRate + 当前编码器的目标帧率(fps)。 + + + qualityAdaptIndication + 本地视频流在统计周期内的质量自适应情况(基于目标帧率和目标码率)。详见 + + + targetBitrate + 当前编码器的目标码率(Kbps)。 + + + encodedBitrate + 本地视频流编码时的码率(Kbps)。该值不包括因丢包重传而产生的视频码率。 + + + encodedFrameWidth + 编码后视频的宽度(px)。 + + + encodedFrameHeight + 编码后视频的高度(px)。 + + + encodedFrameCount + 发送的视频帧总数。 + + + codecType + 本地视频的编码格式。详见 + + + encodedFrameDepth + 本地视频的编码帧深度: +
    +
  • AgoraVideoEncodedFrameOfSDR = 8
  • +
  • AgoraVideoEncodedFrameOfHDR = 10
  • +
+
+
+ + hwEncoderAccelerating + 本地视频编码加速类型。详见 + + + txPacketLossRate + 从本地客户端到声网服务器的视频丢包率(%),该值为应用抗丢包策略前的统计值。 + + + captureBrightnessLevel + 本地摄像头采集的视频图像的亮度等级。详见 + + + dualStreamEnabled + 是否启用了双流模式: +
    +
  • :启用双流模式。
  • +
  • :未启用双流模式。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_logconfig.dita b/dita/RTC-AIDOC/API/class_logconfig.dita new file mode 100644 index 00000000000..44f271727e2 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_logconfig.dita @@ -0,0 +1,126 @@ + + + + <ph keyref="LogConfig"/> + 用于配置声网 SDK 的日志文件。用于配置声网 SDK 的日志文件。配置声网 SDK 日志文件的路径、大小和日志级别。配置声网 SDK 日志文件的路径、大小和日志级别。 + +
+

+ struct LogConfig { + const char* filePath; + uint32_t fileSizeInKB; + LOG_LEVEL level; +}; + public static class LogConfig { + public String filePath; + public int fileSizeInKB; + public int level = Constants.LogLevel.getValue(Constants.LogLevel.LOG_LEVEL_INFO); + } + __attribute__((visibility("default"))) @interface AgoraLogConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property (assign, nonatomic) NSInteger fileSizeInKB; +@property (assign, nonatomic) AgoraLogLevel level; +@end + __attribute__((visibility("default"))) @interface AgoraLogConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property (assign, nonatomic) NSInteger fileSizeInKB; +@property (assign, nonatomic) AgoraLogLevel level; +@end +

+
+
+ 属性 + + + filePath + 日志文件的完整路径。声网建议使用默认的日志目录。如果你需要修改默认目录,请确保指定的目录存在且可写。默认日志目录如下: +
    +
  • Android:/storage/emulated/0/Android/data/<packagename>/files/agorasdk.log。
  • +
  • iOS:App Sandbox/Library/caches/agorasdk.log。
  • +
  • macOS: +
      +
    • 启用 Sandbox 时:App Sandbox/Library/Logs/agorasdk.log,例如 /Users/<username>/Library/Containers/<AppBundleIdentifier>/Data/Library/Logs/agorasdk.log。
    • +
    • 未启用 Sandbox 时:~/Library/Logs/agorasdk.log。
    • +
    +
  • +
  • Windows:C:\Users\<user_name>\AppData\Local\Agora\<process_name>\agorasdk.log。
  • +
+
+
+ + fileSizeInKB + agorasdk.log 文件的大小,单位为 KB。取值范围为 [128, 20480],默认值为 2048 KB。如果设置值小于 128 KB,SDK 会自动调整为 128 KB;如果设置值大于 20480 KB,SDK 会自动调整为 20480 KB。 + + + level + 日志输出级别,详见 。例如,如果设置为 WARN,SDK 会输出 FATALERRORWARN 级别的日志。 + + + filePath + 日志文件的完整路径。声网建议使用默认日志目录。如果你需要修改默认目录,请确保你指定的目录已存在且具有写入权限。默认路径为 /storage/emulated/0/Android/data/<packagename>/files/agorasdk.log。 + + + fileSizeInKB + agorasdk.log 文件的大小,单位为 KB。取值范围为 [128, 20480],默认值为 2048。 +
    +
  • 当设置值小于 128 时,SDK 会自动调整为 128。
  • +
  • 当设置值大于 20480 时,SDK 会自动调整为 20480。
  • +
+
+
+ + level + SDK 日志文件的输出级别,详见 。 +
    +
  • 设置为 WARN 时,SDK 会输出 FATALERRORWARN 级别的日志。
  • +
+
+
+ + filePath + 日志文件的完整路径。声网建议使用默认的日志目录。如果你需要修改默认目录,请确保指定的目录存在且可写。默认日志目录如下: +
    +
  • iOS:AppSandbox/Library/Logs/agorasdk.log
  • +
  • macOS: +
      +
    • 启用 Sandbox 时:AppSandbox/Library/Logs/agorasdk.log
    • +
    • 未启用 Sandbox 时:~/Library/Logs/agorasdk.log。
    • +
    +
  • +
+
+
+ + fileSizeInKB + agorasdk.log 文件的大小(单位:KB)。取值范围为 [128, 20480]。默认值为 2048 KB。如果设置的值小于 128 KB,SDK 会自动调整为 128 KB;如果设置的值大于 20480 KB,SDK 会自动调整为 20480 KB。 + + + level + 日志输出级别,详见 + + + filePath + 日志文件的完整路径。声网建议使用默认的日志目录。如果你需要修改默认目录,请确保指定的目录存在且可写。默认日志目录如下: +
    +
  • iOS:AppSandbox/Library/Logs/agorasdk.log
  • +
  • macOS: +
      +
    • 启用 Sandbox 时:AppSandbox/Library/Logs/agorasdk.log
    • +
    • 未启用 Sandbox 时:~/Library/Logs/agorasdk.log。
    • +
    +
  • +
+
+
+ + fileSizeInKB + agorasdk.log 文件的大小(单位:KB)。取值范围为 [128, 20480]。默认值为 2048 KB。如果设置的值小于 128 KB,SDK 会自动调整为 128 KB;如果设置的值大于 20480 KB,SDK 会自动调整为 20480 KB。 + + + level + 日志输出级别,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_loguploadserverinfo.dita b/dita/RTC-AIDOC/API/class_loguploadserverinfo.dita new file mode 100644 index 00000000000..b6e9cf2e161 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_loguploadserverinfo.dita @@ -0,0 +1,125 @@ + + + + <ph keyref="LogUploadServerInfo"/> + 用于配置日志服务器的信息。日志服务器配置信息。日志服务器的配置信息。日志服务器的配置信息。 + +
+

+ struct LogUploadServerInfo { + const char* serverDomain; + const char* serverPath; + int serverPort; + bool serverHttps; +}; + public static class LogUploadServerInfo { + public String serverDomain = null; + public String serverPath = null; + public int serverPort = 0; + public boolean serverHttps = true; + }; + NS_SWIFT_NAME(LogUploadServerInfo) __attribute__((visibility("default"))) @interface LogUploadServerInfo : NSObject +@property(copy, nonatomic) NSString* _Nullable serverDomain; +@property(copy, nonatomic) NSString* _Nullable serverPath; +@property(assign, nonatomic) NSInteger serverPort; +@property(assign, nonatomic) BOOL serverHttps; +@end + NS_SWIFT_NAME(LogUploadServerInfo) __attribute__((visibility("default"))) @interface LogUploadServerInfo : NSObject +@property(copy, nonatomic) NSString* _Nullable serverDomain; +@property(copy, nonatomic) NSString* _Nullable serverPath; +@property(assign, nonatomic) NSInteger serverPort; +@property(assign, nonatomic) BOOL serverHttps; +@end +

+
+
+ 属性 + + + serverDomain + 日志服务器的域名。 + + + serverPath + 日志在服务器上的存储路径。 + + + serverPort + 日志服务器的端口号。 + + + serverHttps + 日志服务器是否使用 HTTPS 协议: +
    +
  • :使用 HTTPS 协议。
  • +
  • :使用 HTTP 协议。
  • +
+
+
+ + serverDomain + 日志服务器的域名。 + + + serverPath + 日志在服务器上的存储路径。 + + + serverPort + 日志服务器的端口号。 + + + serverHttps + 日志服务器是否使用 HTTPS 协议: +
    +
  • :使用 HTTPS 协议。
  • +
  • :使用 HTTP 协议。
  • +
+
+
+ + serverDomain + 日志服务器的域名。 + + + serverPath + 日志在服务器上的存储路径。 + + + serverPort + 日志服务器的端口号。 + + + serverHttps + 日志服务器是否使用 HTTPS 协议: +
    +
  • :使用 HTTPS 协议。
  • +
  • :使用 HTTP 协议。
  • +
+
+
+ + serverDomain + 日志服务器的域名。 + + + serverPath + 日志在服务器上的存储路径。 + + + serverPort + 日志服务器的端口号。 + + + serverHttps + 日志服务器是否使用 HTTPS 协议: +
    +
  • :使用 HTTPS 协议。
  • +
  • :使用 HTTP 协议。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_lowlightenhanceoptions.dita b/dita/RTC-AIDOC/API/class_lowlightenhanceoptions.dita new file mode 100644 index 00000000000..2fb49c00ae6 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_lowlightenhanceoptions.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="LowlightEnhanceOptions"/> + 用于配置低光增强选项。用于配置弱光增强功能。低光增强选项。低光增强选项。 + +
+

+ struct LowlightEnhanceOptions { + LOW_LIGHT_ENHANCE_MODE mode; + LOW_LIGHT_ENHANCE_LEVEL level; +}; + public class LowLightEnhanceOptions { + public static final int LOW_LIGHT_ENHANCE_AUTO = 0; + public static final int LOW_LIGHT_ENHANCE_MANUAL = 1; + public static final int LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY = 0; + public static final int LOW_LIGHT_ENHANCE_LEVEL_FAST = 1; + public int lowlightEnhanceMode; + public int lowlightEnhanceLevel; +} + __attribute__((visibility("default"))) @interface AgoraLowlightEnhanceOptions : NSObject +@property(nonatomic, assign) AgoraLowlightEnhanceMode mode; +@property(nonatomic, assign) AgoraLowlightEnhanceLevel level; +@end + __attribute__((visibility("default"))) @interface AgoraLowlightEnhanceOptions : NSObject +@property(nonatomic, assign) AgoraLowlightEnhanceMode mode; +@property(nonatomic, assign) AgoraLowlightEnhanceLevel level; +@end +

+
+
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+
+

用于设置低光增强的模式和强度等级。

+

用于设置低光增强的模式和强度等级。

+
+
+ 属性 + + + mode + 低光增强模式。详见 + + + level + 低光增强等级。详见 + + + LOW_LIGHT_ENHANCE_AUTO + 0:(默认)自动模式。SDK 会根据环境光线自动启用或关闭弱光增强功能,以补偿亮度或防止过曝。 + + + LOW_LIGHT_ENHANCE_MANUAL + 1:手动模式。你需要手动启用或关闭弱光增强功能。 + + + LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY + 0:(默认)优先保证弱光增强期间的视频质量。处理图像的亮度、细节和噪声,性能开销适中,处理速度适中,整体画质最佳。 + + + LOW_LIGHT_ENHANCE_LEVEL_FAST + 1:优先保证弱光增强期间的性能。处理图像的亮度和细节,处理速度更快。 + + + lowlightEnhanceMode + 弱光增强的工作模式。 +
    +
  • LOW_LIGHT_ENHANCE_AUTO (0):(默认)自动模式。SDK 会根据环境光线自动启用或关闭弱光增强功能,以补偿亮度或防止过曝。
  • +
  • LOW_LIGHT_ENHANCE_MANUAL (1):手动模式。你需要手动启用或关闭弱光增强功能。
  • +
+
+
+ + lowlightEnhanceLevel + 弱光增强的强度等级。 +
    +
  • LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY (0):(默认)优先保证弱光增强期间的视频质量。处理亮度、细节及噪声,性能开销适中,处理速度适中,整体画质最佳。
  • +
  • LOW_LIGHT_ENHANCE_LEVEL_FAST (1):优先保证弱光增强期间的性能。处理亮度和细节,处理速度更快。
  • +
+
+
+ + mode + 低光增强模式,详见 + + + level + 低光增强等级,详见 + + + mode + 低光增强模式,详见 + + + level + 低光增强等级,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_mediarecorderconfiguration.dita b/dita/RTC-AIDOC/API/class_mediarecorderconfiguration.dita new file mode 100644 index 00000000000..626db02bac4 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_mediarecorderconfiguration.dita @@ -0,0 +1,322 @@ + + + + <ph keyref="MediaRecorderConfiguration"/> + 用于配置音视频流的录制参数。用于配置音视频流的录制参数。音视频录制参数配置。音视频录制参数配置。 + +
+

+ struct MediaRecorderConfiguration { + const char* storagePath; + MediaRecorderContainerFormat containerFormat; + MediaRecorderStreamType streamType; + int maxDurationMs; + int recorderInfoUpdateInterval; + int width; + int height; + int fps; + int sample_rate; + int channel_num; + agora::rtc::VIDEO_SOURCE_TYPE videoSourceType; +}; + public static class MediaRecorderConfiguration { + public String storagePath; + public int containerFormat = CONTAINER_MP4; + public int streamType = STREAM_TYPE_BOTH; + public int maxDurationMs = 120000; + public int recorderInfoUpdateInterval = 0; + public int width; + public int height; + public int fps; + public int sample_rate; + public int channel_num; + public int videoSourceType; +} + __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; +@property(assign, nonatomic) NSUInteger width; +@property(assign, nonatomic) NSUInteger height; +@property(assign, nonatomic) NSUInteger fps; +@property(assign, nonatomic) NSUInteger sample_rate; +@property(assign, nonatomic) NSUInteger channel_num; +@property(assign, nonatomic) AgoraVideoSourceType videoSourceType; +@end + __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; +@property(assign, nonatomic) NSUInteger width; +@property(assign, nonatomic) NSUInteger height; +@property(assign, nonatomic) NSUInteger fps; +@property(assign, nonatomic) NSUInteger sample_rate; +@property(assign, nonatomic) NSUInteger channel_num; +@property(assign, nonatomic) AgoraVideoSourceType videoSourceType; +@end +

+
+
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 属性 + + + 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
  • +
+
+
+ + containerFormat + 录制文件的格式。详见 + + + streamType + 录制的内容类型。详见 + + + maxDurationMs + 最大录制时长,单位为毫秒。默认值为 120000。 + + + recorderInfoUpdateInterval + 录制信息更新的时间间隔,单位为毫秒。有效范围为 [1000, 10000]。SDK 会根据该值触发 回调以报告录制信息更新。 + + + width + 录制视频的宽度(像素)。宽度 × 高度的最大值不能超过 3840 × 2160。仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。 + + + height + 录制视频的高度(像素)。宽度 × 高度的最大值不能超过 3840 × 2160。仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。 + + + fps + 录制视频的帧率。最大值为 30,例如:5、10、15、24、30。仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。 + + + sample_rate + 录制音频的采样率(Hz)。支持的值包括:16000、32000、44100 或 48000。仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。 + + + channel_num + 录制音频的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。
+
+ + videoSourceType + 录制的视频源类型。详见 。仅当调用 且在 中将 type 设置为 PREVIEW 时需要设置该参数。 + + + storagePath + (必填)本地保存录制文件的绝对路径,路径需包含文件名及扩展名。例如:Android: /storage/emulated/0/Android/data/<package name>/files/example.mp4。 + 请确保指定路径存在且可写。 + + + + containerFormat + 录制文件的封装格式。目前仅支持: +
    +
  • CONTAINER_MP4:MP4 格式。
  • +
+
+
+ + streamType + 录制内容类型: +
    +
  • STREAM_TYPE_AUDIO:仅录制音频。
  • +
  • STREAM_TYPE_VIDEO:仅录制视频。
  • +
  • STREAM_TYPE_BOTH:(默认)同时录制音频和视频。
  • +
+
+
+ + maxDurationMs + 录制的最⼤时长,单位为毫秒。默认值为 120000。 + + + recorderInfoUpdateInterval + 录制信息的更新间隔,单位为毫秒。有效范围为 [1000, 10000]。SDK 会根据该值触发 回调以更新录制信息。 + + + width + (必填)录制视频的宽度(像素)。宽高乘积的最大值不得超过 3840 × 2160。 + + + height + (必填)录制视频的高度(像素)。宽高乘积的最大值不得超过 3840 × 2160。 + + + fps + (必填)录制视频的帧率。最大帧率不能超过 30,例如:5、10、15、24、30 等。 + + + sample_rate + (必填)录制音频的采样率(Hz)。可设置为 16000、32000、44100、48000。 + + + channel_num + (必填)录制音频的声道数: +
    +
  • 1:单声道。
  • +
  • 2:立体声。
  • +
+
+
+ + videoSourceType + (必填)录制使用的视频源类型。详见 + + + storagePath + 本地录制文件的绝对路径。路径必须包含文件名和扩展名。例如:iOS:/App Sandbox/Library/Caches/example.mp4,macOS:/Library/Logs/example.mp4。 + 请确保指定路径存在且可写。 + + + + containerFormat + 录制文件的封装格式。详见 + + + streamType + 录制内容类型。详见 + + + maxDurationMs + 录制的最大时长,单位为毫秒。默认值为 120000。 + + + recorderInfoUpdateInterval + 录制信息更新的时间间隔,单位为毫秒。取值范围为 [1000, 10000]。SDK 会根据该设置触发 回调以报告录制信息更新。 + + + width + 录制视频的宽度(单位:px)。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。宽度 × 高度的最大值不能超过 3840 × 2160。 + + + + height + 录制视频的高度(单位:px)。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。宽度 × 高度的最大值不能超过 3840 × 2160。 + + + + fps + 录制视频的帧率,最大值为 30。例如:5、10、15、24、30 等。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + + + sample_rate + 录制音频的采样率(单位:Hz)。可设置为 16000、32000、44100 或 48000。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + + + channel_num + + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。录制音频的声道数: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + videoSourceType + 录制使用的视频源类型。详见 。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + + + storagePath + 本地录制文件的绝对路径。路径必须包含文件名和扩展名。例如:iOS:/App Sandbox/Library/Caches/example.mp4,macOS:/Library/Logs/example.mp4。 + 请确保指定路径存在且可写。 + + + + containerFormat + 录制文件的封装格式。详见 + + + streamType + 录制内容类型。详见 + + + maxDurationMs + 录制的最大时长,单位为毫秒。默认值为 120000。 + + + recorderInfoUpdateInterval + 录制信息更新的时间间隔,单位为毫秒。取值范围为 [1000, 10000]。SDK 会根据该设置触发 回调以报告录制信息更新。 + + + width + 录制视频的宽度(单位:px)。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。宽度 × 高度的最大值不能超过 3840 × 2160。 + + + + height + 录制视频的高度(单位:px)。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。宽度 × 高度的最大值不能超过 3840 × 2160。 + + + + fps + 录制视频的帧率,最大值为 30。例如:5、10、15、24、30 等。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + + + sample_rate + 录制音频的采样率(单位:Hz)。可设置为 16000、32000、44100 或 48000。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + + + channel_num + + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。录制音频的声道数: +
    +
  • 1:单声道。
  • +
  • 2:双声道。
  • +
+
+
+ + videoSourceType + 录制使用的视频源类型。详见 。 + 仅在调用 createMediaRecorder 且在 中将 type 设置为 AgoraRecorderStreamTypePreview 时需要设置该参数。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_mediasource.dita b/dita/RTC-AIDOC/API/class_mediasource.dita new file mode 100644 index 00000000000..1af5e8b27a3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_mediasource.dita @@ -0,0 +1,355 @@ + + + + <ph keyref="MediaSource"/> + 用于配置要播放的媒体文件及播放场景。用于配置要播放的媒体文件及其播放场景。配置要播放的媒体文件及播放场景。配置要播放的媒体文件及播放场景。 + +
+

+ struct MediaSource { + const char* url; + const char* uri; + int64_t startPos; + bool autoPlay; + bool enableCache; + bool enableMultiAudioTrack; + Optional<bool> isAgoraSource; + Optional<bool> isLiveSource; + IMediaPlayerCustomDataProvider* provider; +}; + public class MediaPlayerSource { + String url; + String uri; + long startPos; + boolean autoPlay; + boolean enableCache; + boolean enableMultiAudioTrack; + Boolean isAgoraSource; + Boolean isLiveSource; + IMediaPlayerCustomDataProvider provider; +} + __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 autoPlay; +@property(assign, nonatomic) BOOL enableCache; +@property(assign, nonatomic) BOOL enableMultiAudioTrack; +@property(assign, nonatomic) BOOL isAgoraSource; +@property(assign, nonatomic) BOOL isLiveSource; +@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnReadCallback _Nonnull playerOnReadCallback; +@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnSeekCallback _Nonnull playerOnSeekCallback; +@end + __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 autoPlay; +@property(assign, nonatomic) BOOL enableCache; +@property(assign, nonatomic) BOOL enableMultiAudioTrack; +@property(assign, nonatomic) BOOL isAgoraSource; +@property(assign, nonatomic) BOOL isLiveSource; +@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnReadCallback _Nonnull playerOnReadCallback; +@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnSeekCallback _Nonnull playerOnSeekCallback; +@end +

+
+
+ 属性 + + + url + 要播放的媒体文件的 URL。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 provider。声网建议不要在一次调用中同时传入这两个参数,否则调用可能失败。 + + + + uri + 媒体文件的 URI(统一资源标识符)。 + + + startPos + 播放的起始位置(单位为毫秒)。默认值为 0。 + + + autoPlay + + 如果禁用了自动播放,需要在打开媒体文件后调用 方法播放。打开媒体文件后是否自动播放: +
    +
  • :(默认)自动播放。
  • +
  • :不自动播放。
  • +
+
+
+ + enableCache + + 声网仅支持缓存非 HLS 协议传输的点播音视频流。若需启用缓存,请传入 uri,否则缓存基于媒体文件的 url。启用该功能后,媒体播放器会将播放中的部分媒体文件缓存在本地设备上,即使无网络连接也可播放缓存的媒体文件。缓存的媒体文件统计信息会在播放后每秒更新一次,详见 播放媒体文件时是否启用缓存: +
    +
  • :启用缓存。
  • +
  • :(默认)不启用缓存。
  • +
+
+
+ + enableMultiAudioTrack + + 如果需要为本地播放和发布到频道设置不同的音轨,需将该参数设置为 ,然后调用 方法选择音轨。播放该媒体文件时是否允许选择不同的音轨: +
    +
  • :允许选择不同音轨。
  • +
  • :(默认)不允许选择不同音轨。
  • +
+
+
+ + isAgoraSource + + 如果需要打开通过极速直播服务分发的直播流或点播视频,请将媒体资源的 URL 传入 url,并将 isAgoraSource 设置为 ;否则无需设置该参数。要打开的媒体资源是否为通过极速直播服务分发的直播流或点播视频: +
    +
  • :媒体资源为通过极速直播服务分发的直播或点播视频。
  • +
  • :(默认)媒体资源不是通过极速直播服务分发的直播或点播视频。
  • +
+
+
+ + isLiveSource + + 如果要打开的媒体资源是直播流,声网建议将该参数设置为 ,以加快直播流加载速度。若打开的媒体资源不是直播流但设置了 isLiveSource,则不会加快加载速度。要打开的媒体资源是否为直播流: +
    +
  • :媒体资源为直播流。
  • +
  • :(默认)媒体资源不是直播流。
  • +
+
+
+ + provider + 自定义媒体资源文件的回调。详见 。 + 如果打开的是自定义媒体资源,请传入 provider。如果打开的是普通媒体资源,请传入 url。声网建议不要在一次调用中同时传入 urlprovider,否则调用可能失败。 + + + + url + 要播放的媒体文件的 URL。 + 如果打开的是普通媒体资源,请传入 url 的值;如果打开的是自定义媒体资源,请传入 provider 的值。声网建议不要在一次调用中同时传入这两个参数的值,否则调用可能失败。 + + + + uri + 媒体文件的 URI(统一资源标识符)。 + + + startPos + 从该位置(单位为毫秒)开始播放。默认值为 0。 + + + autoPlay + + 如果关闭自动播放,在打开媒体文件后需手动调用 方法播放。是否在媒体文件打开后自动播放: +
    +
  • :(默认)自动播放。
  • +
  • :不自动播放。
  • +
+
+
+ + enableCache + + 声网仅支持缓存非 HLS 协议传输的点播音视频流。如果需要启用缓存功能,请为 uri 赋值;否则,默认基于 url 进行缓存。启用该功能后,Media Player 会将正在播放的部分音视频文件缓存于本地设备,可在无网络的情况下播放。缓存统计信息会在播放后每秒更新一次,详见 播放过程中是否缓存媒体文件: +
    +
  • :开启缓存。
  • +
  • :(默认)关闭缓存。
  • +
+
+
+ + enableMultiAudioTrack + + 如果需要为本地播放和发布到频道分别设置音轨,需设置此参数为 ,然后调用 方法选择音轨。是否允许在播放媒体资源时选择不同的音轨: +
    +
  • :允许选择不同音轨。
  • +
  • :(默认)不允许选择不同音轨。
  • +
+
+
+ + isAgoraSource + + 如果需要播放通过极速直播服务分发的直播或点播视频,请将媒体资源的 URL 传入 url,并将 isAgoraSource 设置为 ;否则无需设置该参数。是否为通过 Media Broadcast 服务分发的直播或点播视频资源: +
    +
  • :是。
  • +
  • :(默认)否。
  • +
+
+
+ + isLiveSource + + 如果打开的是直播流,声网建议将该参数设为 ,以便更快加载直播流。若打开的媒体资源并非直播流,但设置了 isLiveSource=true,也不会提升加载速度。是否为直播流媒体资源: +
    +
  • :是直播流。
  • +
  • :(默认)不是直播流。
  • +
+
+
+ + provider + 自定义媒体资源文件的数据提供回调,详见 。 + 如果打开的是自定义媒体资源,请传入 provider 的值;如果打开的是普通媒体资源,请传入 url 的值。声网建议不要在一次调用中同时传入 urlprovider 的值,否则调用可能失败。 + + + + url + 要播放的媒体文件的 URL。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + + + uri + 媒体文件的 URI(统一资源标识符)。 + + + startPos + 播放的起始位置,单位为毫秒。默认值为 0。 + + + autoPlay + + 如果禁用了自动播放,需要在打开媒体文件后调用 方法播放。打开媒体文件后是否自动播放: +
    +
  • :(默认)自动播放。
  • +
  • :不自动播放。
  • +
+
+
+ + enableCache + + 声网仅支持对非 HLS 协议传输的点播音视频流进行缓存。如果需要启用缓存,请传入 uri,否则缓存基于媒体文件的 url。启用该功能后,媒体播放器会将播放中的部分媒体文件缓存在本地设备上,即使在无网络连接的情况下也可播放缓存的媒体文件。缓存的媒体文件统计信息会在播放后每秒更新一次。详见 播放媒体文件时是否启用缓存: +
    +
  • :启用缓存。
  • +
  • :(默认)不启用缓存。
  • +
+
+
+ + enableMultiAudioTrack + + 如果需要为本地播放和发布到频道设置不同的音轨,需将该参数设置为 ,然后调用 方法选择音轨。播放该媒体文件时是否允许选择不同的音轨: +
    +
  • :允许选择不同音轨。
  • +
  • :(默认)不允许选择不同音轨。
  • +
+
+
+ + isAgoraSource + + 如果需要打开通过 Broadcast Streaming 服务分发的直播或点播视频,请将媒体资源的 URL 传入 url,并将 isAgoraSource 设置为 ;否则无需设置该参数。要打开的媒体资源是否为通过媒体广播服务分发的直播或点播视频: +
    +
  • :是。
  • +
  • :(默认)否。
  • +
+
+
+ + isLiveSource + + 如果要打开的媒体资源是直播流,声网建议将该参数设置为 ,以加快直播流的加载速度。如果打开的媒体资源不是直播流,但将 isLiveSource 设置为 ,则不会加快加载速度。要打开的媒体资源是否为直播流: +
    +
  • :是直播流。
  • +
  • :(默认)不是直播流。
  • +
+
+
+ + playerOnReadCallback + 当 SDK 读取媒体资源数据时触发。详见 AgoraRtcMediaPlayerCustomSourceOnReadCallback。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + + + playerOnSeekCallback + 当 SDK 定位媒体资源数据时触发。详见 AgoraRtcMediaPlayerCustomSourceOnSeekCallback。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + + + url + 要播放的媒体文件的 URL。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + + + uri + 媒体文件的 URI(统一资源标识符)。 + + + startPos + 播放的起始位置,单位为毫秒。默认值为 0。 + + + autoPlay + + 如果禁用了自动播放,需要在打开媒体文件后调用 方法播放。打开媒体文件后是否自动播放: +
    +
  • :(默认)自动播放。
  • +
  • :不自动播放。
  • +
+
+
+ + enableCache + + 声网仅支持对非 HLS 协议传输的点播音视频流进行缓存。如果需要启用缓存,请传入 uri,否则缓存基于媒体文件的 url。启用该功能后,媒体播放器会将播放中的部分媒体文件缓存在本地设备上,即使在无网络连接的情况下也可播放缓存的媒体文件。缓存的媒体文件统计信息会在播放后每秒更新一次。详见 播放媒体文件时是否启用缓存: +
    +
  • :启用缓存。
  • +
  • :(默认)不启用缓存。
  • +
+
+
+ + enableMultiAudioTrack + + 如果需要为本地播放和发布到频道设置不同的音轨,需将该参数设置为 ,然后调用 方法选择音轨。播放该媒体文件时是否允许选择不同的音轨: +
    +
  • :允许选择不同音轨。
  • +
  • :(默认)不允许选择不同音轨。
  • +
+
+
+ + isAgoraSource + + 如果需要打开通过 Broadcast Streaming 服务分发的直播或点播视频,请将媒体资源的 URL 传入 url,并将 isAgoraSource 设置为 ;否则无需设置该参数。要打开的媒体资源是否为通过媒体广播服务分发的直播或点播视频: +
    +
  • :是。
  • +
  • :(默认)否。
  • +
+
+
+ + isLiveSource + + 如果要打开的媒体资源是直播流,声网建议将该参数设置为 ,以加快直播流的加载速度。如果打开的媒体资源不是直播流,但将 isLiveSource 设置为 ,则不会加快加载速度。要打开的媒体资源是否为直播流: +
    +
  • :是直播流。
  • +
  • :(默认)不是直播流。
  • +
+
+
+ + playerOnReadCallback + 当 SDK 读取媒体资源数据时触发。详见 AgoraRtcMediaPlayerCustomSourceOnReadCallback。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + + + playerOnSeekCallback + 当 SDK 定位媒体资源数据时触发。详见 AgoraRtcMediaPlayerCustomSourceOnSeekCallback。 + 如果打开的是普通媒体资源,请传入 url。如果打开的是自定义媒体资源,请传入 playerOnReadCallbackplayerOnSeekCallback。声网建议不要在一次调用中同时传入这些参数,否则该调用可能失败。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_metadata.dita b/dita/RTC-AIDOC/API/class_metadata.dita new file mode 100644 index 00000000000..17e8a930536 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_metadata.dita @@ -0,0 +1,130 @@ + + + + <ph keyref="Metadata"/> + 用于表示媒体元数据。媒体元数据。 表示媒体元数据。 表示媒体元数据。 + +
+

+ struct Metadata { + const char* channelId; + unsigned int uid; + unsigned int size; + unsigned char *buffer; + long long timeStampMs; +}; + public class AgoraMetadata { + public String channelId; + public int uid; + public byte[] data; + public long timeStampMs; +} + NS_SWIFT_NAME(AgoraMetadata) __attribute__((visibility("default"))) @interface AgoraMetadata : NSObject +@property (copy, nonatomic) NSString* _Nonnull channelId NS_SWIFT_NAME(channelId); +@property (assign, nonatomic) NSInteger uid NS_SWIFT_NAME(uid); +@property (strong, nonatomic) NSData* _Nonnull data NS_SWIFT_NAME(data); +@property (assign, nonatomic) NSTimeInterval timestamp NS_SWIFT_NAME(timestamp); +@end + NS_SWIFT_NAME(AgoraMetadata) __attribute__((visibility("default"))) @interface AgoraMetadata : NSObject +@property (copy, nonatomic) NSString* _Nonnull channelId NS_SWIFT_NAME(channelId); +@property (assign, nonatomic) NSInteger uid NS_SWIFT_NAME(uid); +@property (strong, nonatomic) NSData* _Nonnull data NS_SWIFT_NAME(data); +@property (assign, nonatomic) NSTimeInterval timestamp NS_SWIFT_NAME(timestamp); +@end +

+
+
+ 属性 + + + channelId + 频道名。 + + + uid + 用户 ID。 +
    +
  • 对于接收方:发送该 的远端用户 ID。
  • +
  • 对于发送方:忽略该字段。
  • +
+
+
+ + size + 的缓冲区大小。 + + + buffer + 输出参数,表示接收的 缓冲区地址。 + + + timeStampMs + 发送 时的时间戳(单位为毫秒)。 + + + channelId + 频道名。 + + + uid + 用户 ID。 +
    +
  • 对于接收方:表示发送该 的远端用户 ID。
  • +
  • 对于发送方:该值无效。
  • +
+
+
+ + data + 接收到的 的缓冲区地址。 + + + timeStampMs + 发送时的时间戳(单位为毫秒)。 + + + channelId + 频道名。 + + + uid + 用户 ID。 +
    +
  • 对于接收方:发送该 的远端用户 ID。
  • +
  • 对于发送方:忽略该字段。
  • +
+
+
+ + data + 接收到的元数据。 + + + timestamp + 发送该 时的时间戳(毫秒)。 + + + channelId + 频道名。 + + + uid + 用户 ID。 +
    +
  • 对于接收方:发送该 的远端用户 ID。
  • +
  • 对于发送方:忽略该字段。
  • +
+
+
+ + data + 接收到的元数据。 + + + timestamp + 发送该 时的时间戳(毫秒)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_mixedaudiostream.dita b/dita/RTC-AIDOC/API/class_mixedaudiostream.dita new file mode 100644 index 00000000000..87e7bf0ccb9 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_mixedaudiostream.dita @@ -0,0 +1,147 @@ + + + + <ph keyref="MixedAudioStream"/> + 用于设置本地混音音频流的来源。用于设置本地混音的音频流来源。表示本地混音的音频流来源。表示本地混音的音频流来源。 + +
+

+ struct MixedAudioStream { + AUDIO_SOURCE_TYPE sourceType; + uid_t remoteUserUid; + const char* channelId; + track_id_t trackId; +}; + public static class MixedAudioStream { + public int remoteUserUid; + public String channelId; + public Constants.AudioSourceType sourceType; + public int trackId; +} + __attribute__((visibility("default"))) @interface AgoraMixedAudioStream: NSObject +@property (assign, nonatomic) AgoraAudioSourceType sourceType; +@property (assign, nonatomic) NSUInteger remoteUserUid; +@property (copy, nonatomic) NSString * _Nullable channelId; +@property (assign, nonatomic) NSUInteger trackId; +@end + __attribute__((visibility("default"))) @interface AgoraMixedAudioStream: NSObject +@property (assign, nonatomic) AgoraAudioSourceType sourceType; +@property (assign, nonatomic) NSUInteger remoteUserUid; +@property (copy, nonatomic) NSString * _Nullable channelId; +@property (assign, nonatomic) NSUInteger trackId; +@end +

+
+
+ 属性 + + + sourceType + 音频源类型。详见 + + + remoteUserUid + 远端用户 ID。 + 当本地混音音频流的来源类型为 AUDIO_SOURCE_REMOTE_USER 时,需设置该参数。 + + + + channelId + + 当本地混音音频流的来源类型为 AUDIO_SOURCE_REMOTE_CHANNELAUDIO_SOURCE_REMOTE_USER 时,需设置该参数。频道名。该参数表示用户进行实时音视频互动的频道。在相同 App ID 下,填写相同频道名的用户会进入同一个频道进行音视频互动。字符串长度不得超过 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 特殊字符:"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + trackId + 音频轨道 ID。设置为 返回的自定义音频轨道 ID。 + 当本地混音音频流的来源类型为 AUDIO_SOURCE_CUSTOM 时,需设置该参数。 + + + + remoteUserUid + 远端用户 ID。 + 仅当本地混音音频流的来源类型为 AUDIO_SOURCE_REMOTE_USER 时需要设置该参数。 + + + + channelId + 频道名。该字符串长度不得超过 64 字节。支持的字符共 89 个:小写英文字母 a 到 z、大写英文字母 A 到 Z、数字 0 到 9,以及以下符号:!、#、$、% 、&、(、)、+、-、:、;、<、=、.、>、?、@、[、]、^、_、{、}、|、~、,。 + 仅当本地混音音频流的来源类型为 AUDIO_SOURCE_REMOTE_CHANNELAUDIO_SOURCE_REMOTE_USER 时需要设置该参数。 + + + + sourceType + 音频源类型,详见 + + + trackId + 音频轨道 ID。 + 仅当本地混音音频流的来源类型为 AUDIO_SOURCE_CUSTOM 时需要设置该参数。请设置为 返回的自定义音频轨道 ID。 + + + + sourceType + 音频源的类型,详见 + + + remoteUserUid + 远端用户 ID。 + 当本地混音的音频源类型为 AgoraAudioSourceRemoteUser 时,需设置该参数。 + + + + channelId + + 当本地混音的音频源类型为 AgoraAudioSourceRemoteChannelAgoraAudioSourceRemoteUser 时,需设置该参数。频道名。字符串长度不得超过 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 特殊字符:"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + trackId + 音频轨道 ID。 + 当本地混音的音频源类型为 AgoraAudioSourceCustom 时,需设置该参数。 + + + + sourceType + 音频源的类型,详见 + + + remoteUserUid + 远端用户 ID。 + 当本地混音的音频源类型为 AgoraAudioSourceRemoteUser 时,需设置该参数。 + + + + channelId + + 当本地混音的音频源类型为 AgoraAudioSourceRemoteChannelAgoraAudioSourceRemoteUser 时,需设置该参数。频道名。字符串长度不得超过 64 字节。支持的字符(共 89 个): +
    +
  • 所有小写英文字母:a 到 z。
  • +
  • 所有大写英文字母:A 到 Z。
  • +
  • 所有数字字符:0 到 9。
  • +
  • 特殊字符:"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
  • +
+
+
+ + trackId + 音频轨道 ID。 + 当本地混音的音频源类型为 AgoraAudioSourceCustom 时,需设置该参数。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_multipathstats.dita b/dita/RTC-AIDOC/API/class_multipathstats.dita new file mode 100644 index 00000000000..de48c37a273 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_multipathstats.dita @@ -0,0 +1,205 @@ + + + + <ph keyref="MultipathStats"/> + 用于汇总多路径传输中各网络路径的统计数据。用于汇总多路径传输中各网络路径的统计信息。聚合多路径传输中各网络路径的统计信息。聚合多路径传输中各网络路径的统计信息。 + +
+

+ struct MultipathStats { + uint32_t lanTxBytes; + uint32_t lanRxBytes; + uint32_t wifiTxBytes; + uint32_t wifiRxBytes; + uint32_t mobileTxBytes; + uint32_t mobileRxBytes; + int activePathNum; + const PathStats* pathStats; +}; + public static class MultipathStats { + public int lanTxBytes; + public int lanRxBytes; + public int wifiTxBytes; + public int wifiRxBytes; + public int mobileTxBytes; + public int mobileRxBytes; + public int activePathNum; + public PathStats[] pathStats; +} + __attribute__((visibility("default"))) @interface AgoraMultipathStats : NSObject +@property (assign, nonatomic) NSUInteger lanRxBytes; +@property (assign, nonatomic) NSUInteger lanTxBytes; +@property (assign, nonatomic) NSUInteger wifiRxBytes; +@property (assign, nonatomic) NSUInteger wifiTxBytes; +@property (assign, nonatomic) NSUInteger mobileRxBytes; +@property (assign, nonatomic) NSUInteger mobileTxBytes; +@property (assign, nonatomic) NSUInteger activePathNum; +@property (copy, nonatomic) NSArray<AgoraPathStats *> *_Nullable pathStats NS_SWIFT_NAME(pathStats); +@end + __attribute__((visibility("default"))) @interface AgoraMultipathStats : NSObject +@property (assign, nonatomic) NSUInteger lanRxBytes; +@property (assign, nonatomic) NSUInteger lanTxBytes; +@property (assign, nonatomic) NSUInteger wifiRxBytes; +@property (assign, nonatomic) NSUInteger wifiTxBytes; +@property (assign, nonatomic) NSUInteger mobileRxBytes; +@property (assign, nonatomic) NSUInteger mobileTxBytes; +@property (assign, nonatomic) NSUInteger activePathNum; +@property (copy, nonatomic) NSArray<AgoraPathStats *> *_Nullable pathStats NS_SWIFT_NAME(pathStats); +@end +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 属性 + + + lanTxBytes + 通过 LAN 路径发送的字节总数。 + + + lanRxBytes + 通过 LAN 路径接收的字节总数。 + + + wifiTxBytes + 通过 Wi-Fi 路径发送的字节总数。 + + + wifiRxBytes + 通过 Wi-Fi 路径接收的字节总数。 + + + mobileTxBytes + 通过移动网络路径发送的字节总数。 + + + mobileRxBytes + 通过移动网络路径接收的字节总数。 + + + activePathNum + 当前活跃的传输路径数量。 + + + pathStats + 每个活跃传输路径的统计信息数组。详见 + + + lanTxBytes + 通过局域网发送的字节总数。 + + + lanRxBytes + 通过局域网接收的字节总数。 + + + wifiTxBytes + 通过 Wi-Fi 发送的字节总数。 + + + wifiRxBytes + 通过 Wi-Fi 接收的字节总数。 + + + mobileTxBytes + 通过移动网络发送的字节总数。 + + + mobileRxBytes + 通过移动网络接收的字节总数。 + + + activePathNum + 当前活跃的传输路径数量。 + + + pathStats + 每条活跃传输路径的统计信息数组。详见 + + + lanRxBytes + 通过 LAN 路径接收的字节总数。 + + + lanTxBytes + 通过 LAN 路径发送的字节总数。 + + + wifiRxBytes + 通过 Wi-Fi 路径接收的字节总数。 + + + wifiTxBytes + 通过 Wi-Fi 路径发送的字节总数。 + + + mobileRxBytes + 通过移动网络路径接收的字节总数。 + + + mobileTxBytes + 通过移动网络路径发送的字节总数。 + + + activePathNum + 当前活跃的传输路径数量。 + + + pathStats + 每条活跃传输路径的统计信息。详见 + + + lanRxBytes + 通过 LAN 路径接收的字节总数。 + + + lanTxBytes + 通过 LAN 路径发送的字节总数。 + + + wifiRxBytes + 通过 Wi-Fi 路径接收的字节总数。 + + + wifiTxBytes + 通过 Wi-Fi 路径发送的字节总数。 + + + mobileRxBytes + 通过移动网络路径接收的字节总数。 + + + mobileTxBytes + 通过移动网络路径发送的字节总数。 + + + activePathNum + 当前活跃的传输路径数量。 + + + pathStats + 每条活跃传输路径的统计信息。详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_music.dita b/dita/RTC-AIDOC/API/class_music.dita new file mode 100644 index 00000000000..a76ec21b8c3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_music.dita @@ -0,0 +1,254 @@ + + + + <ph keyref="Music"/> + 描述音乐资源的详细信息。提供音乐资源的详细信息。用于表示音乐资源的详细信息。 + +
+

+ struct Music { + int64_t songCode; + const char* name; + const char* singer; + const char* poster; + const char* releaseTime; + int32_t durationS; + int32_t type; + int32_t pitchType; + int32_t lyricCount; + int32_t* lyricList; + int32_t climaxSegmentCount; + ClimaxSegment* climaxSegmentList; + int32_t mvPropertyCount; + MvProperty* mvPropertyList; +}; + __attribute__((visibility("default"))) @interface AgoraMusic : NSObject +@property(nonatomic, assign) NSInteger songCode; +@property(nonatomic, assign) NSInteger type; +@property(nonatomic, assign) NSInteger pitchType; +@property(nonatomic, copy) NSString* name; +@property(nonatomic, copy) NSString* singer; +@property(nonatomic, copy) NSString* poster; +@property(nonatomic, copy) NSString* releaseTime; +@property(nonatomic, assign) NSInteger durationS; +@property(nonatomic, strong) NSArray<NSNumber *>* lyricList; +@property(nonatomic, strong) NSArray<AgoraMvProperty *>* mvPropertyList; +@property(nonatomic, strong) NSArray<AgoraClimaxSegment *>* climaxSegmentList; +@end + public class Music { + public long songCode; + public String name; + public String singer; + public String poster; + public String releaseTime; + public int type; + public int pitchType; + public int durationS; + public int[] lyricTypes; + public MvProperty[] mvProperties; + public ClimaxSegment[] climaxSegments; +} +

+
+
+ 属性 + + + songCode + 音乐资源的 ID,用于标识一个音乐条目。 + + + name + 音乐资源的名称。 + + + singer + 歌手名称。 + + + poster + 音乐海报的下载链接。 + + + releaseTime + 音乐资源的发布时间。 + + + durationS + 音乐资源的总时长(单位为秒)。 + + + type + 音乐资源的类型: +
    +
  • 1:单轨道,左声道为伴奏,右声道为原唱。
  • +
  • 2:单轨道,仅包含伴奏。
  • +
  • 3:单轨道,仅包含原唱。
  • +
  • 4:多轨音频。
  • +
+
+
+ + pitchType + 歌曲是否支持音高评分: +
    +
  • 1:支持音高评分。
  • +
  • 2:不支持音高评分。
  • +
+
+
+ + lyricCount + 该歌曲可用的歌词数量。 + + + lyricList + 支持的歌词格式: +
    +
  • 0:XML 格式。
  • +
  • 1:LRC 格式。
  • +
+
+
+ + climaxSegmentCount + 高潮片段的数量。 + + + climaxSegmentList + 高潮片段列表。详见 + + + mvPropertyCount + MV 的数量。如果该值大于 0,表示当前音乐存在 MV 资源。 + + + mvPropertyList + MV 属性列表。 + + + songCode + 音乐资源的 ID,用于标识一个音乐资源。 + + + type + 音乐资源的类型: +
    +
  • 1:单流模式音频,左声道为伴奏,右声道为原唱。
  • +
  • 2:单流模式音频,仅包含伴奏。
  • +
  • 3:单流模式音频,仅包含原唱。
  • +
  • 4:多轨音频资源。
  • +
+
+
+ + pitchType + 歌曲是否支持评分功能: +
    +
  • 1:支持评分功能。
  • +
  • 2:不支持评分功能。
  • +
+
+
+ + name + 音乐资源的名称。 + + + singer + 歌手名称。 + + + poster + 音乐资源封面的下载地址。 + + + releaseTime + 音乐资源的发布时间。 + + + durationS + 音乐资源的总时长(单位为秒)。 + + + lyricList + 支持的歌词类型: +
    +
  • 0:XML 格式。
  • +
  • 1:LRC 格式。
  • +
+
+
+ + mvPropertyList + MV 属性列表。 + + + climaxSegmentList + 高潮片段列表。详见 + + + songCode + 音乐资源的唯一标识符,用于识别某个音乐资源。 + + + name + 音乐资源的名称。 + + + singer + 歌手名称。 + + + poster + 音乐资源海报的下载地址。 + + + releaseTime + 音乐资源的发行时间。 + + + type + 音乐资源的类型: +
    +
  • 1:单轨音频,左声道为伴奏,右声道为原唱。
  • +
  • 2:单轨音频,仅伴奏。
  • +
  • 3:单轨音频,仅原唱。
  • +
  • 4:多轨音频。
  • +
+
+
+ + pitchType + 歌曲是否支持评分功能: +
    +
  • 1:支持评分功能。
  • +
  • 2:不支持评分功能。
  • +
+
+
+ + durationS + 音乐资源的总时长(单位为秒)。 + + + lyricTypes + 支持的歌词类型: +
    +
  • 0:xml 格式。
  • +
  • 1:lrc 格式。
  • +
+
+
+ + mvProperties + MV 属性列表,表示该音乐资源包含的 MV 信息。 + + + climaxSegments + 音乐高潮片段列表。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musiccacheinfo.dita b/dita/RTC-AIDOC/API/class_musiccacheinfo.dita new file mode 100644 index 00000000000..62152794a66 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musiccacheinfo.dita @@ -0,0 +1,58 @@ + + + + <ph keyref="MusicCacheInfo"/> + 用于描述音乐资源的缓存信息。缓存的版权音乐资源信息。用于描述缓存的音乐资源信息。 + +
+

+ struct MusicCacheInfo { + int64_t songCode; + MUSIC_CACHE_STATUS_TYPE status; +}; + __attribute__((visibility("default"))) @interface AgoraMusicCacheInfo : NSObject +@property(nonatomic, assign) NSInteger songCode; +@property(nonatomic, assign) AgoraMusicCacheStatusType statusType; +@end + public class MusicCacheInfo { + public long songCode; + public int status; +} +

+
+
+ 属性 + + + songCode + 音乐资源的 ID,用于标识该资源。 + + + status + 音乐资源的缓存状态。详见 + + + songCode + 音乐资源的 ID,用于标识该音乐资源。 + + + statusType + 音乐资源的缓存状态,详见 + + + songCode + 音乐资源的标识符,用于标识音乐资源。 + + + status + 音乐资源的缓存状态: +
    +
  • MUSIC_CACHE_STATUS_TYPE_CACHED (0):音乐资源已缓存。
  • +
  • MUSIC_CACHE_STATUS_TYPE_CACHING (1):音乐资源正在缓存中。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musiccachestatustype.dita b/dita/RTC-AIDOC/API/class_musiccachestatustype.dita new file mode 100644 index 00000000000..d31da834740 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musiccachestatustype.dita @@ -0,0 +1,29 @@ + + + + <ph keyref="MusicCacheStatusType"/> + 表示音乐资源的缓存状态。 + +
+

+ class MusicCacheStatusType { + public static final int MUSIC_CACHE_STATUS_TYPE_CACHED = 0; + public static final int MUSIC_CACHE_STATUS_TYPE_CACHING = 1; +} +

+
+
+ 属性 + + + MUSIC_CACHE_STATUS_TYPE_CACHED + (0):音乐资源已缓存。 + + + MUSIC_CACHE_STATUS_TYPE_CACHING + (1):音乐资源正在缓存。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musicchartcollection.dita b/dita/RTC-AIDOC/API/class_musicchartcollection.dita new file mode 100644 index 00000000000..9f4736d87b4 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musicchartcollection.dita @@ -0,0 +1,7 @@ + + + + <ph keyref="MusicChartCollection"/> + 用于获取音乐排行榜的详细信息。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musicchartinfo.dita b/dita/RTC-AIDOC/API/class_musicchartinfo.dita new file mode 100644 index 00000000000..e0e7eb8484d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musicchartinfo.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="MusicChartInfo"/> + 用于获取音乐榜单的详细信息。表示音乐排行榜的详细信息。包含音乐排行榜的详细信息。 + +
+

+ typedef struct +{ + const char* chartName; + int32_t id; +} MusicChartInfo; + __attribute__((visibility("default"))) @interface AgoraMusicChartInfo : NSObject +@property (nonatomic, copy) NSString *chartName; +@property (nonatomic, assign) NSInteger identify; +@end + public class MusicChartInfo { + public String name; + public int type; +} +

+
+
+ 属性 + + + chartName + 榜单名称。 + + + id + 音乐榜单的 ID。 + + + chartName + 排行榜的名称。 + + + identify + 音乐排行榜的 ID。 + + + name + 排行榜的名称。 + + + type + 音乐排行榜的 ID。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musiccollection.dita b/dita/RTC-AIDOC/API/class_musiccollection.dita new file mode 100644 index 00000000000..6eda8153730 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musiccollection.dita @@ -0,0 +1,52 @@ + + + + <ph keyref="MusicCollection"/> + 用于获取音乐资源列表的详细信息。音乐资源列表的详细信息。 + +
+

+ class MusicCollection : public RefCountInterface { +public: +protected: + virtual ~MusicCollection() = default; +}; + __attribute__((visibility("default"))) @interface AgoraMusicCollection : NSObject +@property(nonatomic, assign) NSInteger count; +@property(nonatomic, assign) NSInteger total; +@property(nonatomic, assign) NSInteger page; +@property(nonatomic, assign) NSInteger pageSize; +@property(nonatomic, strong) NSArray<AgoraMusic *>* musicList; +@end +

+
+
+

用于描述当前请求中的音乐资源列表信息,包括资源数量、分页信息和当前页的音乐资源详情。

+
+
+ 属性 + + + count + 当前请求中音乐资源列表的音乐项数量。 + + + total + 音乐资源列表中的音乐资源总数。 + + + page + 当前页码,默认从 1 开始。 + + + pageSize + 当前音乐资源列表的总页数。最大值为 50。 + + + musicList + 当前页音乐资源的详细信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musiccontentcenterconfiguration.dita b/dita/RTC-AIDOC/API/class_musiccontentcenterconfiguration.dita new file mode 100644 index 00000000000..7aabc53b983 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musiccontentcenterconfiguration.dita @@ -0,0 +1,112 @@ + + + + <ph keyref="MusicContentCenterConfiguration"/> + 用于配置音乐内容中心。配置版权音乐内容中心。配置音乐内容中心。 + +
+

+ struct MusicContentCenterConfiguration { + const char *appId; + const char *token; + int64_t mccUid; + int32_t maxCacheSize; + const char* mccDomain; + IMusicContentCenterEventHandler* eventHandler; +}; + __attribute__((visibility("default"))) @interface AgoraMusicContentCenterConfig : NSObject +@property(assign, nonatomic) AgoraRtcEngineKit* _Nullable rtcEngine; +@property (nonatomic, copy) NSString *appId; +@property (nonatomic, copy) NSString *token; +@property (nonatomic, assign) NSInteger mccUid; +@property (nonatomic, assign) NSUInteger maxCacheSize; +@property(nonatomic, copy) NSString* mccDomain; +@property(nonatomic, weak) id<AgoraMusicContentCenterEventDelegate> eventDelegate; +@end + public class MusicContentCenterConfiguration { + public String appId; + public String token; + public long mccUid; + public int maxCacheSize; + public IMusicContentCenterEventHandler eventHandler; + public String mccDomain; +} +

+
+
+ 属性 + + + appId + 启用音乐内容中心的项目的 App ID。 + + + token + 用于音乐内容中心鉴权的 Token。 + 声网推荐使用 AccessToken2 进行鉴权。详见 Deploy Token Server。生成 Token 时,将 String 类型的 mccUid 传入 uid。当 Token 即将过期时,可以调用 传入新的 Token。 + + + + mccUid + 用于音乐内容中心的用户 ID。该 ID 可与加入 RTC 频道时使用的 uid 相同,但不能为 0。 + + + maxCacheSize + 可缓存的音乐资源数量,最大值为 50。 + + + eventHandler + 用于接收回调的事件处理器。详见 + + + rtcEngine + 声网 实例。详见 + + + appId + 启用内容中心的项目的 App ID。 + + + token + 用于在使用版权音乐内容中心时进行鉴权的 Token。 + 声网建议使用 AccessToken2 进行鉴权。详见 Deploy Token Server。生成 Token 时,将 NSString 类型的 mccUid 传入 uid 参数。当 Token 即将过期时,可调用 传入新的 Token。 + + + + mccUid + 用于版权音乐内容中心的用户 ID。该 ID 可以与加入 RTC 频道时使用的 uid 相同,但不能为 0。 + + + maxCacheSize + 可缓存的音乐资源数量不能超过 50 个。 + + + eventDelegate + 事件回调处理器。详见 + + + appId + 启用音乐内容中心的项目的 App ID。 + + + token + 使用音乐内容中心时用于鉴权的 Token。 + 声网建议使用 AccessToken2 作为鉴权方式。详见 Deploying the Token Server。生成 Token 时,将 String 类型的 mccUid 作为 uid 参数传入。当 Token 即将过期时,可以调用 提供新的 Token。 + + + + mccUid + 使用音乐内容中心的用户 ID。可以与加入 RTC 频道时使用的 uid 相同,但不能为 0。 + + + maxCacheSize + 可缓存的音乐资源数量不得超过 50 个。 + + + eventHandler + 事件回调接口,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_musiccontentcenterstatereason.dita b/dita/RTC-AIDOC/API/class_musiccontentcenterstatereason.dita new file mode 100644 index 00000000000..9cb6febe354 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_musiccontentcenterstatereason.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="MusicContentCenterStateReason"/> + 音乐内容中心的请求状态码。 + +
+

+ class MusicContentCenterStateReason { + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_OK = 0; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_ERROR = 1; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY = 2; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE = 3; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE = 4; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING = 5; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION = 6; + public static final int MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL = 7; + } +

+
+
+ 属性 + + + MUSIC_CONTENT_CENTER_STATE_REASON_OK + 0:请求成功。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_ERROR + 1:通用错误,无具体原因归属。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY + 2:网关错误。可能原因包括: +
    +
  • 当前临时 Token 已过期,请重新生成临时 Token;
  • +
  • 所提供的临时 Token 无效,请确保使用的是 RTM 临时 Token;
  • +
  • 网络错误,请检查你的网络连接。
  • +
+
+
+ + MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE + 3:权限错误或音乐资源不存在。请确保你的项目已开通声网版权音乐内容中心权限。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE + 4:内部数据解析错误。请[联系技术支持](https://ticket.shengwang.cn/)。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING + 5:加载音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION + 6:解密音乐资源时发生错误。请[联系技术支持](https://ticket.shengwang.cn/)。 + + + MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL + 7:发生内部 HTTP 错误,请稍后重试。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_packet.dita b/dita/RTC-AIDOC/API/class_packet.dita new file mode 100644 index 00000000000..8196a0fc2d9 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_packet.dita @@ -0,0 +1,31 @@ + + + + <ph keyref="Packet"/> + 用于配置 实例。 + +
+

+ struct Packet { + const unsigned char* buffer; + unsigned int size; +}; +

+
+
+ 属性 + + + buffer + 发送或接收数据的缓冲区地址。 + 声网建议将 buffer 设置为大于 2048 字节的值。否则,可能会遇到未定义行为(如崩溃)。 + + + + size + 发送或接收数据的缓冲区大小。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_pathstats.dita b/dita/RTC-AIDOC/API/class_pathstats.dita new file mode 100644 index 00000000000..5c8f961bf2a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_pathstats.dita @@ -0,0 +1,111 @@ + + + + <ph keyref="PathStats"/> + 用于获取特定网络路径的统计数据。用于统计特定网络路径的相关信息。特定网络路径的统计信息。特定网络路径的统计信息。 + +
+

+ struct PathStats { + MultipathType type; + int txKBitRate; + int rxKBitRate; +}; + public static class PathStats { + public int pathType; + public int txKBitRate; + public int rxKBitRate; +} + __attribute__((visibility("default"))) @interface AgoraPathStats : NSObject +@property (assign, nonatomic) AgoraMultipathType pathType; +@property (assign, nonatomic) NSUInteger txKBitRate; +@property (assign, nonatomic) NSUInteger rxKBitRate; +@end + __attribute__((visibility("default"))) @interface AgoraPathStats : NSObject +@property (assign, nonatomic) AgoraMultipathType pathType; +@property (assign, nonatomic) NSUInteger txKBitRate; +@property (assign, nonatomic) NSUInteger rxKBitRate; +@end +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 属性 + + + type + 网络路径的类型。详见 + + + txKBitRate + 该路径的传输码率,单位为 Kbps。 + + + rxKBitRate + 该路径的接收码率,单位为 Kbps。 + + + pathType + 网络路径的类型: +
    +
  • LAN:局域网。
  • +
  • WiFi:无线局域网。
  • +
  • Mobile:移动网络。
  • +
+
+
+ + txKBitRate + 该路径的传输码率,单位为 Kbps。 + + + rxKBitRate + 该路径的接收码率,单位为 Kbps。 + + + pathType + 网络路径的类型,详见 + + + txKBitRate + 该路径的传输码率,单位为 Kbps。 + + + rxKBitRate + 该路径的接收码率,单位为 Kbps。 + + + pathType + 网络路径的类型,详见 + + + txKBitRate + 该路径的传输码率,单位为 Kbps。 + + + rxKBitRate + 该路径的接收码率,单位为 Kbps。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_player.dita b/dita/RTC-AIDOC/API/class_player.dita new file mode 100644 index 00000000000..ff7d66018bb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_player.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="Player"/> + 类用于播放 URL 资源。用于播放 URL 资源。 类用于播放 URL 资源。 类用于播放 URL 资源。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playerconfig.dita b/dita/RTC-AIDOC/API/class_playerconfig.dita new file mode 100644 index 00000000000..1069cef0755 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_playerconfig.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="PlayerConfig"/> + 用于设置播放器配置。用于配置媒体播放器选项。提供媒体播放器选项相关的方法。提供媒体播放器选项相关的方法。 + +
+

+ class PlayerConfig { + public: + RtePlayerConfigSetJsonParameter(&c_player_config, str.get_underlying_impl(), + err != nullptr ? err->get_underlying_impl() : nullptr); + + ::RtePlayerConfig* get_underlying_impl() { return &c_player_config; } + + private: + friend class Player; + + ::RtePlayerConfig c_player_config; +}; + public class PlayerConfig { + + private long mNativeHandle = 0; +} + __attribute__((visibility("default"))) @interface AgoraRtePlayerConfig : NSObject +@end + __attribute__((visibility("default"))) @interface AgoraRtePlayerConfig : NSObject +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + c_player_config + 播放器配置的底层实现。详见 RtePlayerConfig + + + mNativeHandle + 本地层句柄。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playergetstatscallback.dita b/dita/RTC-AIDOC/API/class_playergetstatscallback.dita new file mode 100644 index 00000000000..08afd39c904 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_playergetstatscallback.dita @@ -0,0 +1,16 @@ + + + + <ph keyref="PlayerGetStatsCallback"/> + 用于获取播放统计信息的回调接口。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playerobserver.dita b/dita/RTC-AIDOC/API/class_playerobserver.dita new file mode 100644 index 00000000000..cbcc4c32ca9 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_playerobserver.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="PlayerObserver"/> + 用于监听 对象的事件。 用于接收播放器的事件回调。接收播放器事件回调的接口。接收播放器事件回调的接口。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playerplaybackstats.dita b/dita/RTC-AIDOC/API/class_playerplaybackstats.dita index c7fa5c9d91f..6fe83fd3448 100644 --- a/dita/RTC-AIDOC/API/class_playerplaybackstats.dita +++ b/dita/RTC-AIDOC/API/class_playerplaybackstats.dita @@ -1,11 +1,105 @@ - - <ph keyref="PlayerPlaybackStats"/> - - - 获取当前播放媒体文件的播放统计信息。 - - + <ph keyref="PlayerPlaybackStats"/> + 用于获取当前播放媒体文件的播放信息。用于描述当前播放媒体文件的相关信息。正在播放的媒体文件的信息。正在播放的媒体文件的信息。 + +
+

+ struct PlayerPlaybackStats { + int videoFps; + int videoBitrateInKbps; + int audioBitrateInKbps; + int totalBitrateInKbps; +}; + public class PlayerPlaybackStats { + private long videoFps; + private long videoBitrateInKbps; + private long audioBitrateInKbps; + private long totalBitrateInKbps; +} + __attribute__((visibility("default"))) @interface AgoraMediaPlayerPlaybackStats : NSObject +@property(assign, nonatomic) NSInteger videoFps; +@property(assign, nonatomic) NSInteger videoBitrateInKbps; +@property(assign, nonatomic) NSInteger audioBitrateInKbps; +@property(assign, nonatomic) NSInteger totalBitrateInKbps; +@end + __attribute__((visibility("default"))) @interface AgoraMediaPlayerPlaybackStats : NSObject +@property(assign, nonatomic) NSInteger videoFps; +@property(assign, nonatomic) NSInteger videoBitrateInKbps; +@property(assign, nonatomic) NSInteger audioBitrateInKbps; +@property(assign, nonatomic) NSInteger totalBitrateInKbps; +@end +

+
+
+ 属性 + + + videoFps + 视频的帧率(fps)。 + + + videoBitrateInKbps + 视频的码率(kbps)。 + + + audioBitrateInKbps + 音频的码率(kbps)。 + + + totalBitrateInKbps + 媒体流的总码率(kbps)。 + + + videoFps + 视频的帧率(fps)。 + + + videoBitrateInKbps + 视频的码率(kbps)。 + + + audioBitrateInKbps + 音频的码率(kbps)。 + + + totalBitrateInKbps + 媒体流的总码率(kbps)。 + + + videoFps + 视频帧率(fps)。 + + + videoBitrateInKbps + 视频码率(kbps)。 + + + audioBitrateInKbps + 音频码率(kbps)。 + + + totalBitrateInKbps + 媒体流的总码率(kbps)。 + + + videoFps + 视频帧率(fps)。 + + + videoBitrateInKbps + 视频码率(kbps)。 + + + audioBitrateInKbps + 音频码率(kbps)。 + + + totalBitrateInKbps + 媒体流的总码率(kbps)。 + + +
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playerstreaminfo.dita b/dita/RTC-AIDOC/API/class_playerstreaminfo.dita new file mode 100644 index 00000000000..f0ab0e07006 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_playerstreaminfo.dita @@ -0,0 +1,282 @@ + + + + <ph keyref="PlayerStreamInfo"/> + 用于获取媒体流的详细信息。用于描述媒体流的详细信息。媒体流的详细信息。媒体流的详细信息。 + +
+

+ struct PlayerStreamInfo { + int streamIndex; + MEDIA_STREAM_TYPE streamType; + char codecName[kMaxCharBufferLength]; + char language[kMaxCharBufferLength]; + int videoFrameRate; + int videoBitRate; + int videoWidth; + int videoHeight; + int videoRotation; + int audioSampleRate; + int audioChannels; + int audioBitsPerSample; + int64_t duration; +}; + public class MediaStreamInfo { + private int streamIndex; + private int mediaStreamType; + private String codecName; + private String language; + private int videoFrameRate; + private int videoBitRate; + private int videoWidth; + private int videoHeight; + private int videoRotation; + private int audioSampleRate; + private int audioChannels; + private int audioBytesPerSample; + private long duration; +} + __attribute__((visibility("default"))) @interface AgoraRtcMediaStreamInfo : 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 + __attribute__((visibility("default"))) @interface AgoraRtcMediaStreamInfo : 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 + 媒体流的类型。详见 + + + codecName + 媒体流的编解码器名称。 + + + language + 媒体流的语言。 + + + videoFrameRate + 仅对视频流生效,表示视频帧率(fps)。 + + + videoBitRate + 仅对视频流生效,表示视频码率(bps)。 + + + videoWidth + 仅对视频流生效,表示视频宽度(像素)。 + + + videoHeight + 仅对视频流生效,表示视频高度(像素)。 + + + videoRotation + 仅对视频流生效,表示视频旋转角度。 + + + audioSampleRate + 仅对音频流生效,表示音频采样率(Hz)。 + + + audioChannels + 仅对音频流生效,表示音频声道数。 + + + audioBitsPerSample + 仅对音频流生效,表示每个音频采样的位数。 + + + duration + 媒体流的总时长(毫秒)。 + + + streamIndex + 媒体流的索引。 + + + mediaStreamType + 媒体流的类型。 +
    +
  • STREAM_TYPE_UNKNOWN(0):类型未知。
  • +
  • STREAM_TYPE_VIDEO(1):视频流。
  • +
  • STREAM_TYPE_AUDIO(2):音频流。
  • +
  • STREAM_TYPE_SUBTITLE(3):字幕流。
  • +
+
+
+ + codecName + 媒体流的编解码器名称。 + + + language + 媒体流的语言。 + + + videoFrameRate + 仅对视频流生效,表示视频帧率(fps)。 + + + videoBitRate + 仅对视频流生效,表示视频码率(bps)。 + + + videoWidth + 仅对视频流生效,表示视频宽度(像素)。 + + + videoHeight + 仅对视频流生效,表示视频高度(像素)。 + + + videoRotation + 仅对视频流生效,表示视频旋转角度。 + + + audioSampleRate + 仅对音频流生效,表示音频采样率(Hz)。 + + + audioChannels + 仅对音频流生效,表示音频声道数。 + + + audioBytesPerSample + 仅对音频流生效,表示每个音频采样的位数。 + + + duration + 媒体流的总时长(毫秒)。 + + + streamIndex + 媒体流的索引。 + + + streamType + 媒体流的类型。详见 + + + codecName + 媒体流使用的编解码器名称。 + + + language + 媒体流的语言。 + + + videoFrameRate + 仅对视频流生效,表示视频帧率(fps)。 + + + videoBitRate + 仅对视频流生效,表示视频码率(bps)。 + + + videoWidth + 仅对视频流生效,表示视频宽度(像素)。 + + + videoHeight + 仅对视频流生效,表示视频高度(像素)。 + + + audioSampleRate + 仅对音频流生效,表示音频采样率(Hz)。 + + + audioChannels + 仅对音频流生效,表示音频声道数。 + + + duration + 媒体流的总时长(毫秒)。 + + + rotation + 仅对视频流生效,表示视频的旋转角度。 + + + streamIndex + 媒体流的索引。 + + + streamType + 媒体流的类型。详见 + + + codecName + 媒体流使用的编解码器名称。 + + + language + 媒体流的语言。 + + + videoFrameRate + 仅对视频流生效,表示视频帧率(fps)。 + + + videoBitRate + 仅对视频流生效,表示视频码率(bps)。 + + + videoWidth + 仅对视频流生效,表示视频宽度(像素)。 + + + videoHeight + 仅对视频流生效,表示视频高度(像素)。 + + + audioSampleRate + 仅对音频流生效,表示音频采样率(Hz)。 + + + audioChannels + 仅对音频流生效,表示音频声道数。 + + + duration + 媒体流的总时长(毫秒)。 + + + rotation + 仅对视频流生效,表示视频的旋转角度。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_playerupdatedinfo.dita b/dita/RTC-AIDOC/API/class_playerupdatedinfo.dita new file mode 100644 index 00000000000..2e7f70f32e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_playerupdatedinfo.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="PlayerUpdatedInfo"/> + 包含媒体播放器相关信息。封装媒体播放器的相关信息。媒体播放器的相关信息。媒体播放器的相关信息。 + +
+

+ struct PlayerUpdatedInfo { + const char* internalPlayerUuid; + const char* deviceId; + int videoHeight; + int videoWidth; + int audioSampleRate; + int audioChannels; + int audioBitsPerSample; +}; + public class PlayerUpdatedInfo { + public String internalPlayerUuid; + public String deviceId; + public long videoHeight; + public long videoWidth; + public long audioSampleRate; + public long audioChannels; + public long audioBitsPerSample; +} + __attribute__((visibility("default"))) @interface AgoraMediaPlayerUpdatedInfo : NSObject +@property(copy, nonatomic) NSString *_Nullable internalPlayerUuid; +@property(copy, nonatomic) NSString *_Nullable deviceId; +@property(assign, nonatomic) NSInteger videoHeight; +@property(assign, nonatomic) NSInteger videoWidth; +@property(assign, nonatomic) NSInteger audioSampleRate; +@property(assign, nonatomic) NSInteger audioChannels; +@property(assign, nonatomic) NSInteger audioBitsPerSample; +@end + __attribute__((visibility("default"))) @interface AgoraMediaPlayerUpdatedInfo : NSObject +@property(copy, nonatomic) NSString *_Nullable internalPlayerUuid; +@property(copy, nonatomic) NSString *_Nullable deviceId; +@property(assign, nonatomic) NSInteger videoHeight; +@property(assign, nonatomic) NSInteger videoWidth; +@property(assign, nonatomic) NSInteger audioSampleRate; +@property(assign, nonatomic) NSInteger audioChannels; +@property(assign, nonatomic) NSInteger audioBitsPerSample; +@end +

+
+
+ 属性 + + + internalPlayerUuid + 内部播放器的唯一标识符。 + + + deviceId + 设备 ID。 + + + videoHeight + 视频高度(单位:像素)。 + + + videoWidth + 视频宽度(单位:像素)。 + + + audioSampleRate + 音频采样率(单位:Hz)。 + + + audioChannels + 音频通道数。 + + + audioBitsPerSample + 每个音频采样点的位数。 + + + internalPlayerUuid + 内部播放器的唯一标识符。 + + + deviceId + 设备 ID。 + + + videoHeight + 视频高度,单位为像素。 + + + videoWidth + 视频宽度,单位为像素。 + + + audioSampleRate + 音频采样率,单位为 Hz。 + + + audioChannels + 音频通道数。 + + + audioBitsPerSample + 每个音频采样点的位数。 + + + internalPlayerUuid + 内部播放器的唯一标识符。 + + + deviceId + 设备的 ID。 + + + videoHeight + 视频的高度(像素)。 + + + videoWidth + 视频的宽度(像素)。 + + + audioSampleRate + 音频采样率(Hz)。 + + + audioChannels + 音频通道数。 + + + audioBitsPerSample + 每个音频采样点的位数。 + + + internalPlayerUuid + 内部播放器的唯一标识符。 + + + deviceId + 设备的 ID。 + + + videoHeight + 视频的高度(像素)。 + + + videoWidth + 视频的宽度(像素)。 + + + audioSampleRate + 音频采样率(Hz)。 + + + audioChannels + 音频通道数。 + + + audioBitsPerSample + 每个音频采样点的位数。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_preloadstate_android.dita b/dita/RTC-AIDOC/API/class_preloadstate_android.dita new file mode 100644 index 00000000000..e634e60b6fb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_preloadstate_android.dita @@ -0,0 +1,39 @@ + + + + <ph keyref="PreloadState_android"/> + 表示音乐资源的加载状态。 + +
+

+ class PreloadState { + public static final int PRELOAD_STATE_COMPLETED = 0; + public static final int PRELOAD_STATE_FAILED = 1; + public static final int PRELOAD_STATE_PRELOADING = 2; + public static final int PRELOAD_STATE_REMOVED = 3; + } +

+
+
+ 属性 + + + PRELOAD_STATE_COMPLETED + 0:音乐资源加载完成。 + + + PRELOAD_STATE_FAILED + 1:音乐资源加载失败。 + + + PRELOAD_STATE_PRELOADING + 2:音乐资源加载中。 + + + PRELOAD_STATE_REMOVED + 3:已移除缓存的音乐资源。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_recorderinfo.dita b/dita/RTC-AIDOC/API/class_recorderinfo.dita new file mode 100644 index 00000000000..ed22fcde9f6 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_recorderinfo.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="RecorderInfo"/> + 包含录制文件相关信息的结构体。用于记录录制文件的信息。录制文件信息。录制文件信息。 + +
+

+ struct RecorderInfo { + const char* fileName; + unsigned int durationMs; + unsigned int fileSize; +}; + public class RecorderInfo { + public String fileName; + public int durationMs; + public int fileSize; +} + __attribute__((visibility("default"))) @interface AgoraMediaRecorderInfo : NSObject +@property(copy, nonatomic) NSString* _Nonnull recorderFileName; +@property(assign, nonatomic) NSUInteger durationMs; +@property(assign, nonatomic) NSUInteger fileSize; +@end + __attribute__((visibility("default"))) @interface AgoraMediaRecorderInfo : NSObject +@property(copy, nonatomic) NSString* _Nonnull recorderFileName; +@property(assign, nonatomic) NSUInteger durationMs; +@property(assign, nonatomic) NSUInteger fileSize; +@end +

+
+
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 属性 + + + fileName + 录制文件的绝对路径。 + + + durationMs + 录制文件的时长,单位为毫秒。 + + + fileSize + 录制文件的大小,单位为字节。 + + + fileName + 录制文件的绝对存储路径。 + + + durationMs + 录制文件的时长,单位为毫秒。 + + + fileSize + 录制文件的大小,单位为字节。 + + + recorderFileName + 录制文件的绝对存储路径。 + + + durationMs + 录制文件的时长,单位为毫秒。 + + + fileSize + 录制文件的大小,单位为字节。 + + + recorderFileName + 录制文件的绝对存储路径。 + + + durationMs + 录制文件的时长,单位为毫秒。 + + + fileSize + 录制文件的大小,单位为字节。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_recorderstreaminfo.dita b/dita/RTC-AIDOC/API/class_recorderstreaminfo.dita new file mode 100644 index 00000000000..012880797b0 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_recorderstreaminfo.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="RecorderStreamInfo"/> + 用于描述待录制媒体流的信息。用于指定待录制的音视频流信息。待录制音视频流的信息。待录制音视频流的信息。 + +
+

+ struct RecorderStreamInfo { + const char* channelId; + uid_t uid; + RecorderStreamType type; +}; + public class RecorderStreamInfo { + public int uid; + public String channelId; + public int recorderStreamType; +} + __attribute__((visibility("default"))) @interface AgoraRecorderStreamInfo: NSObject +@property (nonatomic, nonatomic) NSUInteger uid; +@property (nonatomic, copy) NSString *_Nonnull channelId; +@property (assign, nonatomic) AgoraRecorderStreamType type; +@end + __attribute__((visibility("default"))) @interface AgoraRecorderStreamInfo: NSObject +@property (nonatomic, nonatomic) NSUInteger uid; +@property (nonatomic, copy) NSString *_Nonnull channelId; +@property (assign, nonatomic) AgoraRecorderStreamType type; +@end +

+
+
+ 属性 + + + channelId + 发布媒体流的频道名。 + + + uid + 需要录制其媒体流的用户 ID。 + + + type + 录制器流类型,详见 + + + uid + 要录制的远端用户 ID。 + + + channelId + 要录制的频道名。 + + + recorderStreamType + 录制的视频流类型: +
    +
  • 0:频道内的远端视频流。
  • +
  • 1:加入频道前的本地预览视频流。
  • +
+
+
+ + uid + 待录制的远端用户 ID。 + + + channelId + 待录制的目标频道名。 + + + type + 待录制的视频流类型,详见 + + + uid + 待录制的远端用户 ID。 + + + channelId + 待录制的目标频道名。 + + + type + 待录制的视频流类型,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rectangle.dita b/dita/RTC-AIDOC/API/class_rectangle.dita new file mode 100644 index 00000000000..a379391e534 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rectangle.dita @@ -0,0 +1,70 @@ + + + + <ph keyref="Rectangle"/> + 用于设置目标区域相对于屏幕或窗口的位置。用于设置目标区域相对于屏幕或窗口的位置。 + +
+

+ struct Rectangle { + int x; + int y; + int width; + int height; +}; + public static class Rectangle { + public int x = 0; + public int y = 0; + public int width = 0; + public int height = 0; +} +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

如果不设置该参数,SDK 默认选择整个屏幕或窗口作为目标区域。

+
+
+ 属性 + + + x + 距左上角的水平偏移量。 + + + y + 距左上角的垂直偏移量。 + + + width + 目标区域的宽度。 + + + height + 目标区域的高度。 + + + x + 距左上角的水平偏移量。 + + + y + 距左上角的垂直偏移量。 + + + width + 目标区域的宽度。 + + + height + 目标区域的高度。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_remoteaudiostats.dita b/dita/RTC-AIDOC/API/class_remoteaudiostats.dita new file mode 100644 index 00000000000..3bedc8a85ce --- /dev/null +++ b/dita/RTC-AIDOC/API/class_remoteaudiostats.dita @@ -0,0 +1,519 @@ + + + + <ph keyref="RemoteAudioStats"/> + 用于描述远端用户的音频统计信息。获取远端用户的音频统计信息。远端用户的音频统计信息。远端用户的音频统计信息。 + +
+

+ struct RemoteAudioStats +{ + uid_t uid; + int quality; + int networkTransportDelay; + int jitterBufferDelay; + int audioLossRate; + int numChannels; + int receivedSampleRate; + int receivedBitrate; + int totalFrozenTime; + int frozenRate; + int mosValue; + uint32_t frozenRateByCustomPlcCount; + uint32_t plcCount; + uint32_t frozenCntByCustom; + uint32_t frozenTimeByCustom; + int totalActiveTime; + int publishDuration; + int qoeQuality; + int qualityChangedReason; + unsigned int rxAudioBytes; + int e2eDelay; +}; + public static class RemoteAudioStats { + public int uid; + public int quality; + public int networkTransportDelay; + public int jitterBufferDelay; + public int audioLossRate; + public int numChannels; + public int receivedSampleRate; + public int receivedBitrate; + public int totalFrozenTime; + public int frozenRate; + public int mosValue; + public int frozenRateByCustomPlcCount; + public int plcCount; + public int frozenCntByCustom; + public int frozenTimeByCustom; + public long totalActiveTime; + public long publishDuration; + public int qoeQuality; + public int qualityChangedReason; + public int rxAudioBytes; + public int e2eDelay; + } + __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) NSUInteger frozenRateByCustomPlcCount; +@property(assign, nonatomic) NSUInteger plcCount; +@property(assign, nonatomic) NSUInteger frozenCntByCustom; +@property(assign, nonatomic) NSUInteger frozenTimeByCustom; +@property(assign, nonatomic) AgoraExperienceQuality qoeQuality; +@property(assign, nonatomic) AgoraExperiencePoorReason qualityChangedReason; +@property(assign, nonatomic) NSUInteger rxAudioBytes; +@property(assign, nonatomic) NSInteger e2eDelay; +@end + __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) NSUInteger frozenRateByCustomPlcCount; +@property(assign, nonatomic) NSUInteger plcCount; +@property(assign, nonatomic) NSUInteger frozenCntByCustom; +@property(assign, nonatomic) NSUInteger frozenTimeByCustom; +@property(assign, nonatomic) AgoraExperienceQuality qoeQuality; +@property(assign, nonatomic) AgoraExperiencePoorReason qualityChangedReason; +@property(assign, nonatomic) NSUInteger rxAudioBytes; +@property(assign, nonatomic) NSInteger e2eDelay; +@end +

+
+
+

用于汇报远端用户加入频道后的音频统计信息。

+
+
+ 属性 + + + uid + 远端用户的用户 ID。 + + + quality + 音频流质量。详见 + + + networkTransportDelay + 从发送端到接收端的网络传输延迟(毫秒)。 + + + jitterBufferDelay + 从音频接收端到抖动缓冲区的网络延迟(毫秒)。 + 当接收端为观众且 中的 audienceLatencyLevel 为 1 时,该参数不生效。 + + + + audioLossRate + 在统计周期内远端音频流的丢帧率(%)。 + + + numChannels + 音频通道数。 + + + receivedSampleRate + 在统计周期内接收到的音频流的采样率。 + + + receivedBitrate + 在统计周期内接收到的音频流的平均码率(Kbps)。 + + + totalFrozenTime + 远端用户加入频道后音频流的总卡顿时长(毫秒)。当音频帧丢失率达到 4% 时视为音频卡顿。 + + + frozenRate + 远端音频流的总卡顿时长占音频可用总时长的百分比(%)。当远端用户加入频道后既未停止发送音频流,也未关闭音频模块时,音频被视为可用。 + + + mosValue + 在统计周期内远端音频流的质量。该质量由声网实时音频 MOS(主观意见评分)测量方法确定。返回值范围为 [0, 500],除以 100 后为 MOS 分数,范围为 0 到 5,分数越高表示音频质量越好。声网实时音频 MOS 评分对应的主观音质感受如下: +
    +
  • 大于 4 分,音频质量佳,清晰流畅。
  • +
  • 3.5 - 4 分,音频质量较好,偶有音质损伤,但依然清晰。
  • +
  • 3 - 3.5 分,音频质量一般,偶有卡顿,不是非常流畅,需要一点注意力才能听清。
  • +
  • 2.5 - 3 分,音频质量较差,卡顿频繁,需要集中精力才能听清。
  • +
  • 2 - 2.5 分,音频质量很差,偶有杂音,部分语义丢失,难以交流。
  • +
  • 小于 2 分,音频质量非常差,杂音频现,大量语义丢失,完全无法交流。
  • +
+
+
+ + frozenRateByCustomPlcCount + 当丢包隐藏(PLC)连续发生 N 次时,认为发生了一次卡顿;卡顿次数 = (n_plc - n) / m。 + + + plcCount + 音频丢包隐藏(PLC)发生的次数。 + + + frozenCntByCustom + 远端音频流发生卡顿的次数。 + + + frozenTimeByCustom + 远端音频流处于卡顿状态的总时长(毫秒)。 + + + totalActiveTime + 从音频通话开始到远端用户回调之间的总活跃时长(毫秒)。活跃时长指远端用户未处于静音状态的总时长。 + + + publishDuration + 远端音频流的总持续时长(毫秒)。 + + + qoeQuality + 本地用户接收远端音频流时的体验质量(QoE)。详见 + + + qualityChangedReason + 本地用户接收远端音频流时体验质量较差的原因。详见 + + + rxAudioBytes + 接收到的音频字节总数(字节),包括 FEC 字节,表示为聚合值。 + + + e2eDelay + 端到端音频延迟(毫秒),指从远端用户采集音频到本地用户播放音频的时间。 + + + uid + 远端用户的用户 ID。 + + + quality + 远端用户发送音频流的质量。 +
    +
  • 0:未知质量。
  • +
  • 1:音质极佳。
  • +
  • 2:网络质量看起来极好,但码率略低于极佳。
  • +
  • 3:通信略受影响。
  • +
  • 4:无法流畅通信。
  • +
  • 5:通信困难。
  • +
  • 6:网络连接已中断,无法通信。
  • +
  • 8:正在进行 Last-mile 网络探测。
  • +
+
+
+ + networkTransportDelay + 从发送端到接收端的网络传输延时(毫秒)。 + + + jitterBufferDelay + 从音频接收端到抖动缓冲区的网络延时(毫秒)。 + 当接收端是观众,且 中的 audienceLatencyLevel 为 1 时,该参数无效。 + + + + audioLossRate + 汇报周期内远端音频流的音频帧丢包率(%)。 + + + numChannels + 音频声道数。 + + + receivedSampleRate + 汇报周期内接收音频流的采样率。 + + + receivedBitrate + 汇报周期内接收音频流的平均码率(Kbps)。 + + + totalFrozenTime + 远端用户加入频道后音频卡顿的总时长(毫秒)。在通话过程中,当音频帧丢包率达到 4% 时视为卡顿。 + + + frozenRate + 音频可用时段内音频卡顿的总时间占比(%)。当远端用户加入频道后未停止发送音频流,且未关闭音频模块时,视为音频可用。 + + + mosValue + 汇报周期内远端音频流的质量,基于声网实时音频 MOS(Mean Opinion Score)评估方法。 +取值范围为 [0, 500],除以 100 后为 MOS 得分,范围为 0 到 5,数值越大音质越好。 +MOS 分数与主观听感的对应关系如下: +
    +
  • 大于 4:音质优秀,清晰流畅。
  • +
  • 3.5 到 4:音质良好,有轻微感知损伤但清晰。
  • +
  • 3 到 3.5:尚可,音频偶尔卡顿,需要注意聆听。
  • +
  • 2.5 到 3:较差,音频断断续续,理解困难。
  • +
  • 2 到 2.5:很差,偶发杂音和连续掉帧,通信困难。
  • +
  • 小于 2:极差,持续杂音,大量掉帧,通信基本无法实现。
  • +
+
+
+ + frozenRateByCustomPlcCount + 当连续出现 N 次音频丢包隐藏(PLC)时,视为一次卡顿。卡顿次数 = (n_plc - n) / m。 + + + plcCount + 音频丢包隐藏(PLC)的次数。 + + + frozenCntByCustom + 远端音频流发生卡顿的次数。 + + + frozenTimeByCustom + 远端音频流处于卡顿状态的总时长(毫秒)。 + + + totalActiveTime + 从开始通话到远端用户回调期间的总活跃时长(毫秒)。活跃时长指远端用户非静音状态的累计时间。 + + + publishDuration + 该远端音频流的总持续时长(毫秒)。 + + + qoeQuality + 本地用户接收远端音频流时的服务质量(QoE)。 +
    +
  • 0:本地用户体验良好。
  • +
  • 1:本地用户体验较差。
  • +
+
+
+ + qualityChangedReason + 本地用户接收远端音频流体验较差的原因。 +
    +
  • 0:无,表示本地用户体验良好。
  • +
  • 1:远端用户网络质量差。
  • +
  • 2:本地用户网络质量差。
  • +
  • 4:本地 Wi-Fi 或蜂窝网络信号差。
  • +
  • 8:本地用户同时开启 Wi-Fi 和蓝牙,导致信号互相干扰,影响音频传输质量。
  • +
+
+
+ + rxAudioBytes + 网络处理前已接收的总音频字节数(字节),为累计值。 + + + e2eDelay + 端到端音频延迟(毫秒),即从远端用户采集音频到本地用户播放音频的时间。 + + + uid + 远端用户的用户 ID。 + + + quality + 远端用户发送的音频流质量。详见 + + + networkTransportDelay + 从发送端到接收端的网络延迟(毫秒)。 + + + jitterBufferDelay + 从音频接收端到抖动缓冲区的网络延迟(毫秒)。 + 当接收端为观众且 audienceLatencyLevel 为 1 时,该参数不生效。 + + + + audioLossRate + 在统计周期内远端音频流的丢帧率(%)。 + + + numChannels + 音频通道数。 + + + receivedSampleRate + 在统计周期内接收到的音频流的采样率。 + + + receivedBitrate + 在统计周期内接收到的音频流的平均码率(Kbps)。 + + + totalFrozenTime + 远端用户加入频道后远端音频流的总卡顿时长(毫秒)。在通话过程中,当音频帧丢失率达到 4% 时视为音频卡顿。 + + + totalActiveTime + 从音频通话开始到远端用户回调之间的总活跃时长(毫秒)。活跃时长指远端用户未处于静音状态的总时长。 + + + publishDuration + 远端音频流的总时长(毫秒)。 + + + frozenRate + 远端音频可用时段内的总卡顿时间占比(%)。当远端用户加入频道后未停止发送音频流或未禁用音频模块时,音频被视为可用。 + + + mosValue + 在统计周期内远端音频流的质量。该值由声网实时音频 MOS(主观意见评分)算法计算,取值范围为 [0, 500],除以 100 后为 MOS 分数,范围为 0 到 5,分数越高表示音频质量越好。声网实时音频 MOS 评分对应的主观音质感受如下: +
    +
  • 大于 4 分,音频质量佳,清晰流畅。
  • +
  • 3.5 - 4 分,音频质量较好,偶有音质损伤,但依然清晰。
  • +
  • 3 - 3.5 分,音频质量一般,偶有卡顿,不是非常流畅,需要一点注意力才能听清。
  • +
  • 2.5 - 3 分,音频质量较差,卡顿频繁,需要集中精力才能听清。
  • +
  • 2 - 2.5 分,音频质量很差,偶有杂音,部分语义丢失,难以交流。
  • +
  • 小于 2 分,音频质量非常差,杂音频现,大量语义丢失,完全无法交流。
  • +
+
+
+ + frozenRateByCustomPlcCount + 当丢包隐藏(PLC)连续发生 N 次时,认为发生一次卡顿;卡顿次数 = (n_plc - n) / m。 + + + plcCount + 音频丢包隐藏的次数。 + + + frozenCntByCustom + 远端音频流发生卡顿的次数。 + + + frozenTimeByCustom + 远端音频流处于卡顿状态的总时长(毫秒)。 + + + qoeQuality + 本地用户接收远端音频流时的体验质量。详见 + + + qualityChangedReason + 本地用户接收远端音频流时体验质量差的原因。详见 + + + rxAudioBytes + 网络抗丢包机制前接收到的音频字节总数(字节),为累计值。 + + + e2eDelay + 端到端音频延迟(毫秒),指从远端用户采集音频到本地用户播放音频的时间。 + + + uid + 远端用户的用户 ID。 + + + quality + 远端用户发送的音频流质量。详见 + + + networkTransportDelay + 从发送端到接收端的网络延迟(毫秒)。 + + + jitterBufferDelay + 从音频接收端到抖动缓冲区的网络延迟(毫秒)。 + 当接收端为观众且 audienceLatencyLevel 为 1 时,该参数不生效。 + + + + audioLossRate + 在统计周期内远端音频流的丢帧率(%)。 + + + numChannels + 音频通道数。 + + + receivedSampleRate + 在统计周期内接收到的音频流的采样率。 + + + receivedBitrate + 在统计周期内接收到的音频流的平均码率(Kbps)。 + + + totalFrozenTime + 远端用户加入频道后远端音频流的总卡顿时长(毫秒)。在通话过程中,当音频帧丢失率达到 4% 时视为音频卡顿。 + + + totalActiveTime + 从音频通话开始到远端用户回调之间的总活跃时长(毫秒)。活跃时长指远端用户未处于静音状态的总时长。 + + + publishDuration + 远端音频流的总时长(毫秒)。 + + + frozenRate + 远端音频可用时段内的总卡顿时间占比(%)。当远端用户加入频道后未停止发送音频流或未禁用音频模块时,音频被视为可用。 + + + mosValue + 在统计周期内远端音频流的质量。该值由声网实时音频 MOS(主观意见评分)算法计算,取值范围为 [0, 500],除以 100 后为 MOS 分数,范围为 0 到 5,分数越高表示音频质量越好。声网实时音频 MOS 评分对应的主观音质感受如下: +
    +
  • 大于 4 分,音频质量佳,清晰流畅。
  • +
  • 3.5 - 4 分,音频质量较好,偶有音质损伤,但依然清晰。
  • +
  • 3 - 3.5 分,音频质量一般,偶有卡顿,不是非常流畅,需要一点注意力才能听清。
  • +
  • 2.5 - 3 分,音频质量较差,卡顿频繁,需要集中精力才能听清。
  • +
  • 2 - 2.5 分,音频质量很差,偶有杂音,部分语义丢失,难以交流。
  • +
  • 小于 2 分,音频质量非常差,杂音频现,大量语义丢失,完全无法交流。
  • +
+
+
+ + frozenRateByCustomPlcCount + 当丢包隐藏(PLC)连续发生 N 次时,认为发生一次卡顿;卡顿次数 = (n_plc - n) / m。 + + + plcCount + 音频丢包隐藏的次数。 + + + frozenCntByCustom + 远端音频流发生卡顿的次数。 + + + frozenTimeByCustom + 远端音频流处于卡顿状态的总时长(毫秒)。 + + + qoeQuality + 本地用户接收远端音频流时的体验质量。详见 + + + qualityChangedReason + 本地用户接收远端音频流时体验质量差的原因。详见 + + + rxAudioBytes + 网络抗丢包机制前接收到的音频字节总数(字节),为累计值。 + + + e2eDelay + 端到端音频延迟(毫秒),指从远端用户采集音频到本地用户播放音频的时间。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_remotevideostats.dita b/dita/RTC-AIDOC/API/class_remotevideostats.dita new file mode 100644 index 00000000000..0397f8e3f8a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_remotevideostats.dita @@ -0,0 +1,417 @@ + + + + <ph keyref="RemoteVideoStats"/> + 用于统计远端视频流的相关统计信息。用于统计远端视频流的相关信息。远端视频流的统计信息。远端视频流的统计信息。 + +
+

+ struct RemoteVideoStats { + uid_t uid; + int delay __deprecated; + int e2eDelay; + int width; + int height; + int receivedBitrate; + int decoderInputFrameRate; + int decoderOutputFrameRate; + int rendererOutputFrameRate; + int frameLossRate; + int packetLossRate; + VIDEO_STREAM_TYPE rxStreamType; + int totalFrozenTime; + int frozenRate; + int avSyncTimeMs; + int totalActiveTime; + int publishDuration; + int mosValue; + unsigned int rxVideoBytes; +}; + public static class RemoteVideoStats { + public int uid; + public int delay; + public int e2eDelay; + public int width; + public int height; + public int receivedBitrate; + public int decoderOutputFrameRate; + public int rendererOutputFrameRate; + public int frameLossRate; + public int packetLossRate; + public int rxStreamType; + public int totalFrozenTime; + public int frozenRate; + public int avSyncTimeMs; + public long totalActiveTime; + public long publishDuration; + public int mosValue; + public int rxVideoBytes; + } + __attribute__((visibility("default"))) @interface AgoraRtcRemoteVideoStats : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger delay __deprecated; +@property(assign, nonatomic) NSUInteger e2eDelay; +@property(assign, nonatomic) NSUInteger width; +@property(assign, nonatomic) NSUInteger height; +@property(assign, nonatomic) NSUInteger receivedBitrate; +@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) NSUInteger totalActiveTime; +@property(assign, nonatomic) NSInteger publishDuration; +@property(assign, nonatomic) NSInteger frozenRate; +@property(assign, nonatomic) NSInteger avSyncTimeMs; +@property(assign, nonatomic) NSInteger mosValue; +@property(assign, nonatomic) NSUInteger rxVideoBytes; +@end + __attribute__((visibility("default"))) @interface AgoraRtcRemoteVideoStats : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger delay __deprecated; +@property(assign, nonatomic) NSUInteger e2eDelay; +@property(assign, nonatomic) NSUInteger width; +@property(assign, nonatomic) NSUInteger height; +@property(assign, nonatomic) NSUInteger receivedBitrate; +@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) NSUInteger totalActiveTime; +@property(assign, nonatomic) NSInteger publishDuration; +@property(assign, nonatomic) NSInteger frozenRate; +@property(assign, nonatomic) NSInteger avSyncTimeMs; +@property(assign, nonatomic) NSInteger mosValue; +@property(assign, nonatomic) NSUInteger rxVideoBytes; +@end +

+
+
+ 属性 + + + uid + 发送视频流的远端用户 ID。 + + + delay + 视频延迟(毫秒)。 + @deprecated 在音视频同步场景中,可通过 中的 networkTransportDelayjitterBufferDelay 获取视频延迟数据。 + + + + e2eDelay + 端到端视频延迟(毫秒),即从远端用户采集视频到本地用户接收并渲染视频所经历的时间。 + + + width + 视频宽度(像素)。 + + + height + 视频高度(像素)。 + + + receivedBitrate + 自上次统计以来接收到的远端视频码率(Kbps)。 + + + decoderInputFrameRate + 远端视频的解码输入帧率(fps)。 + + + decoderOutputFrameRate + 远端视频的解码输出帧率(fps)。 + + + rendererOutputFrameRate + 远端视频的渲染输出帧率(fps)。 + + + frameLossRate + 远端视频的丢帧率(%)。 + + + packetLossRate + 使用抗丢包技术后远端视频的丢包率(%)。 + + + rxStreamType + 视频流类型。详见 + + + totalFrozenTime + 远端用户加入频道后远端视频流的总卡顿时长(毫秒)。在帧率不低于 5 fps 的视频通话中,若相邻两帧可渲染视频帧的时间间隔超过 500 毫秒,则视为视频卡顿。 + + + frozenRate + 视频卡顿时长占视频可用总时长的百分比(%)。只要远端用户在加入频道后未停止发送视频流或未关闭视频模块,视频即视为可用。 + + + avSyncTimeMs + 音频领先视频的时间(毫秒)。 + 如果该值为负数,表示音频落后于视频。 + + + + totalActiveTime + 视频的总活跃时长(毫秒)。只要远端用户或主播在加入频道后未停止发送视频流或未关闭视频模块,视频即视为可用。 + + + publishDuration + 远端视频流的总发布时长(毫秒)。 + + + mosValue + 统计周期内远端视频流的质量评分。该评分由声网实时视频 MOS(Mean Opinion Score)算法计算得出,取值范围为 [0, 500]。将该值除以 100 可得 MOS 分数,范围为 0 到 5,分数越高表示视频质量越好。 + 对于纹理视频数据,该参数始终返回 0。 + + + + rxVideoBytes + 接收到的视频字节总数(字节),包括 FEC 字节,按聚合值统计。 + + + uid + 发送视频流的远端用户 ID。 + + + delay + 该字段已废弃。在音视频同步场景下,你可以通过 中的 networkTransportDelayjitterBufferDelay 获取视频延迟数据。视频延迟(毫秒)。 + + + e2eDelay + 端到端的视频延迟(毫秒),即从远端用户采集视频到本地用户接收并渲染视频的时间间隔。 + + + width + 视频宽度(像素)。 + + + height + 视频高度(像素)。 + + + receivedBitrate + 自上次统计以来接收到的远端视频码率(Kbps)。 + + + decoderOutputFrameRate + 解码远端视频的帧率(fps)。 + + + rendererOutputFrameRate + 渲染远端视频的帧率(fps)。 + + + frameLossRate + 远端视频的丢帧率(%)。 + + + packetLossRate + 使用抗丢包技术后的远端视频丢包率(%)。 + + + rxStreamType + 视频流类型: +
    +
  • 0:高质量流,即高分辨率高码率的视频流。
  • +
  • 1:低质量流,即低分辨率低码率的视频流。
  • +
+
+
+ + totalFrozenTime + 远端用户加入频道后远端视频流的卡顿总时长(毫秒)。当视频帧率不低于 5 fps 且两帧可渲染视频帧之间的时间间隔超过 500 毫秒时,认为发生视频卡顿。 + + + frozenRate + 视频卡顿总时长占视频可用时长的百分比(%)。只要远端用户在加入频道后未停止发送视频流也未关闭视频功能,则认为视频处于可用状态。 + + + avSyncTimeMs + 音频领先于视频的时间(毫秒)。 + 如果该值为负数,表示音频延迟于视频。 + + + + totalActiveTime + 视频的总可用时长(毫秒)。只要远端用户或主播在加入频道后未停止发送视频流也未关闭视频模块,则认为视频处于可用状态。 + + + publishDuration + 远端视频流的总持续时长(毫秒)。 + + + mosValue + 报告区间内远端视频流的质量。该值由声网实时视频 MOS(Mean Opinion Score)评分方法计算,取值范围为 [0, 500],除以 100 可得 MOS 分值(0 到 5),分值越高表示质量越好。 + 对于纹理视频数据,该参数始终返回 0。 + + + + rxVideoBytes + 累计接收到的视频字节数(字节)。 + + + uid + 发送该视频流的远端用户 ID。 + + + delay + 视频延迟(毫秒)。 + 在音视频同步的场景中,你可以从 networkTransportDelayjitterBufferDelay 获取视频延迟数据。 + + + + e2eDelay + 端到端的视频延迟(毫秒)。即从远端用户采集视频到本地用户接收并渲染视频的时间。 + + + width + 视频的宽度(像素)。 + + + height + 视频的高度(像素)。 + + + receivedBitrate + 自上次统计以来接收到的远端视频码率(Kbps)。 + + + rxStreamType + 视频流的类型。详见 + + + decoderOutputFrameRate + 远端视频解码的帧率(fps)。 + + + rendererOutputFrameRate + 远端视频渲染的帧率(fps)。 + + + frameLossRate + 远端视频的丢帧率(%)。 + + + packetLossRate + 使用抗丢包技术后远端视频的丢包率(%)。 + + + totalFrozenTime + 远端用户加入频道后远端视频流的总卡顿时长(毫秒)。在帧率不低于 5 fps 的视频通话中,若相邻两帧可渲染视频帧的时间间隔超过 500 毫秒,则视为视频卡顿。 + + + totalActiveTime + 视频的总可用时长(毫秒)。只要远端用户在加入频道后未停止发送视频流或未关闭视频模块,视频即为可用状态。 + + + publishDuration + 远端视频流的总时长(毫秒)。 + + + frozenRate + 视频卡顿时长占视频总可用时长的百分比(%)。只要远端用户在加入频道后未停止发送视频流或未关闭视频模块,视频即为可用状态。 + + + avSyncTimeMs + 音频领先视频的时间(毫秒)。 + 如果该值为负数,表示音频落后于视频。 + + + + mosValue + 在统计周期内远端视频流的质量。该值由声网实时视频 MOS(Mean Opinion Score)算法评估,取值范围为 [0, 500]。将该值除以 100 可得 MOS 评分,范围为 0 到 5,分数越高表示视频质量越好。 + 对于纹理视频数据,该参数始终返回 0。 + + + + rxVideoBytes + 接收到的视频字节总数(字节),为累计值。 + + + uid + 发送该视频流的远端用户 ID。 + + + delay + 视频延迟(毫秒)。 + 在音视频同步的场景中,你可以从 networkTransportDelayjitterBufferDelay 获取视频延迟数据。 + + + + e2eDelay + 端到端的视频延迟(毫秒)。即从远端用户采集视频到本地用户接收并渲染视频的时间。 + + + width + 视频的宽度(像素)。 + + + height + 视频的高度(像素)。 + + + receivedBitrate + 自上次统计以来接收到的远端视频码率(Kbps)。 + + + rxStreamType + 视频流的类型。详见 + + + decoderOutputFrameRate + 远端视频解码的帧率(fps)。 + + + rendererOutputFrameRate + 远端视频渲染的帧率(fps)。 + + + frameLossRate + 远端视频的丢帧率(%)。 + + + packetLossRate + 使用抗丢包技术后远端视频的丢包率(%)。 + + + totalFrozenTime + 远端用户加入频道后远端视频流的总卡顿时长(毫秒)。在帧率不低于 5 fps 的视频通话中,若相邻两帧可渲染视频帧的时间间隔超过 500 毫秒,则视为视频卡顿。 + + + totalActiveTime + 视频的总可用时长(毫秒)。只要远端用户在加入频道后未停止发送视频流或未关闭视频模块,视频即为可用状态。 + + + publishDuration + 远端视频流的总时长(毫秒)。 + + + frozenRate + 视频卡顿时长占视频总可用时长的百分比(%)。只要远端用户在加入频道后未停止发送视频流或未关闭视频模块,视频即为可用状态。 + + + avSyncTimeMs + 音频领先视频的时间(毫秒)。 + 如果该值为负数,表示音频落后于视频。 + + + + mosValue + 在统计周期内远端视频流的质量。该值由声网实时视频 MOS(Mean Opinion Score)算法评估,取值范围为 [0, 500]。将该值除以 100 可得 MOS 评分,范围为 0 到 5,分数越高表示视频质量越好。 + 对于纹理视频数据,该参数始终返回 0。 + + + + rxVideoBytes + 接收到的视频字节总数(字节),为累计值。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_remotevoicepositioninfo.dita b/dita/RTC-AIDOC/API/class_remotevoicepositioninfo.dita new file mode 100644 index 00000000000..4a874ba98f1 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_remotevoicepositioninfo.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="RemoteVoicePositionInfo"/> + 用于设置远端用户或媒体播放器的空间位置信息。 表示远端用户或媒体播放器的空间位置。远端用户或媒体播放器的空间位置。远端用户或媒体播放器的空间位置。 + +
+

+ struct RemoteVoicePositionInfo { + float position[3]; + float forward[3]; +}; + public class RemoteVoicePositionInfo { + public float[] position; + public float[] forward; +} + __attribute__((visibility("default"))) @interface AgoraRemoteVoicePositionInfo : NSObject +@property(assign, nonatomic) simd_float3 position; +@property(assign, nonatomic) simd_float3 forward; +@end + __attribute__((visibility("default"))) @interface AgoraRemoteVoicePositionInfo : NSObject +@property(assign, nonatomic) simd_float3 position; +@property(assign, nonatomic) simd_float3 forward; +@end +

+
+
+ 属性 + + + position + 世界坐标系中的坐标。该参数是一个长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forward + 坐标系中 x 轴的单位向量。该参数是一个长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + position + 在世界坐标系中的坐标。该参数是一个长度为 3 的数组,三个值依次表示前、右、上三个方向的坐标。 + + + forward + 坐标系中 x 轴的单位向量。该参数是一个长度为 3 的数组,三个值依次表示前、右、上三个方向的坐标。 + + + position + 世界坐标系中的坐标。该参数是一个长度为 3 的数组,三个值依次表示前方、右方和上方的坐标。 + + + forward + 坐标系中 x 轴的单位向量。该参数是一个长度为 3 的数组,三个值依次表示前方、右方和上方的坐标。 + + + position + 世界坐标系中的坐标。该参数是一个长度为 3 的数组,三个值依次表示前方、右方和上方的坐标。 + + + forward + 坐标系中 x 轴的单位向量。该参数是一个长度为 3 的数组,三个值依次表示前方、右方和上方的坐标。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rtcconnection.dita b/dita/RTC-AIDOC/API/class_rtcconnection.dita new file mode 100644 index 00000000000..a1b2ec88e16 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rtcconnection.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="RtcConnection"/> + 包含连接信息的结构体。连接信息。包含连接信息。包含连接信息。 + +
+

+ struct RtcConnection { + const char* channelId; + uid_t localUid; +}; + public class RtcConnection { + public int localUid; + public String channelId; +} + __attribute__((visibility("default"))) @interface AgoraRtcConnection: NSObject <NSCopying> +@property (nonatomic, copy) NSString *_Nonnull channelId; +@property (nonatomic, assign) NSUInteger localUid; +@end + __attribute__((visibility("default"))) @interface AgoraRtcConnection: NSObject <NSCopying> +@property (nonatomic, copy) NSString *_Nonnull channelId; +@property (nonatomic, assign) NSUInteger localUid; +@end +

+
+
+ 属性 + + + channelId + 频道名。 + + + localUid + 本地用户 ID。 + + + localUid + 本地用户 ID。 + + + channelId + 频道名。 + + + channelId + 频道名。 + + + localUid + 本地用户 ID。 + + + channelId + 频道名。 + + + localUid + 本地用户 ID。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rtcengineconfig.dita b/dita/RTC-AIDOC/API/class_rtcengineconfig.dita new file mode 100644 index 00000000000..46cde30e92b --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rtcengineconfig.dita @@ -0,0 +1,352 @@ + + + + <ph keyref="RtcEngineConfig"/> + 用于配置 实例。配置 实例的参数。配置 实例的参数。配置 实例的参数。 + +
+

+ struct RtcEngineContext { + IRtcEngineEventHandler* eventHandler; + const char* appId; + void* context; + CHANNEL_PROFILE_TYPE channelProfile; + const char* license; + AUDIO_SCENARIO_TYPE audioScenario; + unsigned int areaCode; + commons::LogConfig logConfig; + Optional<THREAD_PRIORITY_TYPE> threadPriority; + bool useExternalEglContext; + bool domainLimit; + bool autoRegisterAgoraExtensions; +}; + public class RtcEngineConfig { + public IRtcEngineEventHandler mEventHandler; + public Context mContext; + public String mAppId; + public int mAreaCode; + public int mChannelProfile; + public String mLicense; + public int mAudioScenario; + public boolean mAutoRegisterAgoraExtensions; + public List<String> mExtensionList; + public IMediaExtensionObserver mExtensionObserver; + public LogConfig mLogConfig; + public Integer mThreadPriority; + public String mNativeLibPath; + public boolean mDomainLimit; +} + __attribute__((visibility("default"))) @interface AgoraRtcEngineConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable appId; +@property (assign, nonatomic) AgoraChannelProfile channelProfile; +@property (copy, nonatomic) NSString * _Nullable license; +@property (assign, nonatomic) AgoraAudioScenario audioScenario; +@property (assign, nonatomic) AgoraAreaCodeType areaCode; +@property (strong, nonatomic) AgoraLogConfig * _Nullable logConfig; +@property (assign, nonatomic) AgoraThreadPriorityType threadPriority; +@property (weak, nonatomic) id<AgoraMediaFilterEventDelegate> _Nullable eventDelegate; +@property (assign, nonatomic) BOOL domainLimit; +@property (assign, nonatomic) BOOL autoRegisterAgoraExtensions; +@end + __attribute__((visibility("default"))) @interface AgoraRtcEngineConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable appId; +@property (assign, nonatomic) AgoraChannelProfile channelProfile; +@property (copy, nonatomic) NSString * _Nullable license; +@property (assign, nonatomic) AgoraAudioScenario audioScenario; +@property (assign, nonatomic) AgoraAreaCodeType areaCode; +@property (strong, nonatomic) AgoraLogConfig * _Nullable logConfig; +@property (assign, nonatomic) AgoraThreadPriorityType threadPriority; +@property (weak, nonatomic) id<AgoraMediaFilterEventDelegate> _Nullable eventDelegate; +@property (assign, nonatomic) BOOL domainLimit; +@property (assign, nonatomic) BOOL autoRegisterAgoraExtensions; +@end +

+
+
+ 属性 + + + eventHandler + 用于 的事件处理器。详见 + + + appId + 由声网为你的项目签发的 App ID。只有在相同 App ID 下的用户才能加入同一个频道并互相通信。一个 App ID 只能用于创建一个 实例。若需更换 App ID,需调用 销毁当前的 实例,然后创建一个新的实例。 + + + context + 在 Windows 平台,该参数为应用窗口句柄。设置后可在设备通电状态下连接或断开视频设备。 + + + channelProfile + 频道场景类型。详见 + + + license + 用于连接频道时验证的 License,根据 License 收费。 + + + audioScenario + 音频场景类型,不同场景下设备使用不同的音量类型。详见 + + + areaCode + 连接区域。该高级功能适用于有区域限制的场景,支持的区域详见 。区域码支持按位操作。 + + + logConfig + 日志配置。详见 。 +默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,规则如下: +
    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 调用日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个日志文件的默认大小为 2048 KB,编码为 UTF-8。
  • +
  • SDK 会将最新日志写入 agorasdk.logagoraapi.log
  • +
  • agorasdk.log 写满时,SDK 会按以下顺序处理日志文件: +
      +
    1. 删除 agorasdk.4.log(如存在);
    2. +
    3. agorasdk.3.log 重命名为 agorasdk.4.log
    4. +
    5. agorasdk.2.log 重命名为 agorasdk.3.log
    6. +
    7. agorasdk.1.log 重命名为 agorasdk.2.log
    8. +
    9. 创建新的 agorasdk.log 文件。
    10. +
    +
  • +
  • agoraapi.log 的覆盖规则与 agorasdk.log 相同。
  • +
+
+
+ + threadPriority + SDK 通用线程的线程优先级。详见 THREAD_PRIORITY_TYPE + + + useExternalEglContext + + 该属性仅适用于 Android 平台。是否使用当前线程中的 EGL 上下文作为 SDK 的根 EGL 上下文,该上下文会被所有与 EGL 相关的模块共享,例如摄像头采集、视频渲染等。 +
    +
  • :使用当前线程中的 EGL 上下文。
  • +
  • :(默认)不使用当前线程中的 EGL 上下文。
  • +
+
+
+ + domainLimit + 是否启用域名限制: +
    +
  • :启用域名限制。适用于 IoT 设备使用物联网卡接入网络的场景。SDK 仅连接已上报给运营商的域名或 IP 白名单中的服务器。
  • +
  • :(默认)不启用域名限制。适用于大多数常见场景。
  • +
+
+
+ + autoRegisterAgoraExtensions + 是否在初始化 时自动注册声网插件: +
    +
  • :(默认)自动注册插件。
  • +
  • :不自动注册插件。你需要调用 手动注册插件。
  • +
+
+
+ + mEventHandler + 事件回调处理器。详见 + + + mContext + Android Activity 的上下文对象。 + + + mAppId + 由声网为项目颁发的 App ID。只有使用相同 App ID 的用户才能加入同一频道进行音视频通话。一个 App ID 只能用于创建一个 实例。更换 App ID 时需调用 销毁原实例后再创建新实例。 + + + mAreaCode + 连接区域,适用于有区域限制的场景。支持按位或运算组合多个区域码。详见 + + + mChannelProfile + 频道场景类型: +
    +
  • CHANNEL_PROFILE_COMMUNICATION (0):通信场景。声网建议使用直播场景以获得更佳的音视频体验。
  • +
  • CHANNEL_PROFILE_LIVE_BROADCASTING (1):(默认)直播场景。
  • +
  • CHANNEL_PROFILE_GAME (2):游戏场景。自 v4.x.x 版本废弃,请改用 CHANNEL_PROFILE_LIVE_BROADCASTING
  • +
  • CHANNEL_PROFILE_CLOUD_GAMING (3):互动场景,针对低延迟优化,适用于用户频繁互动的场景。自 v4.x.x 版本废弃,请改用 CHANNEL_PROFILE_LIVE_BROADCASTING
  • +
+
+
+ + mLicense + 用于频道连接验证的许可证,按许可证计费。 + + + mAudioScenario + + 在使用此枚举前,需调用 检查音频设备是否支持超低延迟采集与播放。若需体验超低延迟,需确保音频设备支持超低延迟(isLowLatencyAudioSupported = )。音频场景类型,不同场景下设备使用的音量类型不同: +
    +
  • AUDIO_SCENARIO_DEFAULT (0):(默认)自动场景,SDK 会根据用户角色和音频路由选择合适的音质。
  • +
  • AUDIO_SCENARIO_GAME_STREAMING (3):高音质场景,适用于播放音乐。
  • +
  • AUDIO_SCENARIO_CHATROOM (5):语聊场景,适用于频繁切换角色或控制麦克风静音的场景。
  • +
  • AUDIO_SCENARIO_CHORUS (7):实时合唱场景,适用于网络良好且对超低延迟有较高要求的用户。
  • +
  • AUDIO_SCENARIO_MEETING (8):会议场景,主要传输人声。
  • +
  • AUDIO_SCENARIO_AI_CLIENT (10):AI 对话场景,仅适用于与通过 Conversational AI Engine 创建的智能体交互的场景。
  • +
+
+
+ + mAutoRegisterAgoraExtensions + 是否在初始化 时自动注册声网插件: +
    +
  • :(默认)自动注册插件。
  • +
  • :不自动注册插件,需调用 手动注册。
  • +
+
+
+ + mExtensionList + 插件库名称列表。 + + + mExtensionObserver + 实例。详见 + + + mLogConfig + 日志配置。详见 。 +默认情况下,SDK 会生成 5 个 SDK 日志文件和 5 个 API 日志文件: +
    +
  • SDK 日志文件包括:agorasdk.logagorasdk.1.logagorasdk.2.logagorasdk.3.logagorasdk.4.log
  • +
  • API 日志文件包括:agoraapi.logagoraapi.1.logagoraapi.2.logagoraapi.3.logagoraapi.4.log
  • +
  • 每个日志文件默认大小为 2048 KB,采用 UTF-8 编码。
  • +
  • SDK 会将最新日志写入 agorasdk.logagoraapi.log
  • +
  • agorasdk.log 写满时,SDK 会依次删除旧文件并重命名,生成新的日志文件。
  • +
  • agoraapi.log 遵循相同的覆盖规则。
  • +
+
+
+ + mThreadPriority + 线程优先级类型。详见 ThreadPriorityType + + + mNativeLibPath + + 适用于手动集成 SDK。通过 Maven Central 或 JitPack 集成时不适用。请确保该目录存在,否则 初始化会失败。.so 文件的存储目录。该目录必须是 App 的有效私有目录,可通过 Context.getDir 获取。 +
    +
  • 设置该参数后,SDK 会从指定目录加载 .so 文件,实现动态加载以减小包体积。
  • +
  • 若不设置或设为 null,SDK 会从默认编译路径加载 .so 文件,包体积会增大。
  • +
+
+
+ + mDomainLimit + 是否启用域名限制: +
    +
  • :启用域名限制,适用于物联网设备使用 IoT 卡接入的场景。SDK 仅连接运营商白名单中报备的域名或 IP。
  • +
  • :(默认)不启用域名限制,适用于大多数通用场景。
  • +
+
+
+ + appId + 由声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并互相通信。一个 App ID 只能用于创建一个 实例。如需更换 App ID,需先调用 销毁当前实例,再创建新的实例。 + + + channelProfile + 频道场景,详见 + + + license + 用于连接频道时验证的 License。根据 License 收费。 + + + audioScenario + 音频场景。在不同音频场景下,设备使用不同的音量类型。详见 + + + areaCode + 连接区域。该高级功能适用于有区域限制的场景。支持的区域详见 。区域码支持按位操作。 + + + logConfig + 日志配置。默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,文件大小为 2,048 KB,采用 UTF-8 编码。日志轮转规则详见注释。详见 + + + threadPriority + SDK 通用线程的线程优先级。 + + + eventDelegate + 实例。详见 + + + domainLimit + 是否启用域名限制: +
    +
  • :启用域名限制。适用于物联网设备使用物联网卡接入网络的场景。SDK 仅连接已向运营商报备的域名或 IP 白名单中的服务器。
  • +
  • :(默认)不启用域名限制。适用于大多数常见场景。
  • +
+
+
+ + autoRegisterAgoraExtensions + 初始化 时是否自动注册声网扩展: +
    +
  • :(默认)自动注册。
  • +
  • :不自动注册。需调用 手动注册。
  • +
+
+
+ + appId + 由声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并互相通信。一个 App ID 只能用于创建一个 实例。如需更换 App ID,需先调用 销毁当前实例,再创建新的实例。 + + + channelProfile + 频道场景,详见 + + + license + 用于连接频道时验证的 License。根据 License 收费。 + + + audioScenario + 音频场景。在不同音频场景下,设备使用不同的音量类型。详见 + + + areaCode + 连接区域。该高级功能适用于有区域限制的场景。支持的区域详见 。区域码支持按位操作。 + + + logConfig + 日志配置。默认情况下,SDK 会生成五个 SDK 日志文件和五个 API 调用日志文件,文件大小为 2,048 KB,采用 UTF-8 编码。日志轮转规则详见注释。详见 + + + threadPriority + SDK 通用线程的线程优先级。 + + + eventDelegate + 实例。详见 + + + domainLimit + 是否启用域名限制: +
    +
  • :启用域名限制。适用于物联网设备使用物联网卡接入网络的场景。SDK 仅连接已向运营商报备的域名或 IP 白名单中的服务器。
  • +
  • :(默认)不启用域名限制。适用于大多数常见场景。
  • +
+
+
+ + autoRegisterAgoraExtensions + 初始化 时是否自动注册声网扩展: +
    +
  • :(默认)自动注册。
  • +
  • :不自动注册。需调用 手动注册。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rtcimage.dita b/dita/RTC-AIDOC/API/class_rtcimage.dita new file mode 100644 index 00000000000..a8696866827 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rtcimage.dita @@ -0,0 +1,182 @@ + + + + <ph keyref="RtcImage"/> + 用于设置水印和背景图像属性。用于设置图像的属性。用于设置直播视频中水印和背景图像属性。用于设置直播视频中水印和背景图像属性。 + +
+

+ typedef struct RtcImage { + const char* url; + int x; + int y; + int width; + int height; + int zOrder; + double alpha; +} RtcImage; + public class AgoraImage { + public String url; + public int x; + public int y; + public int width; + public int height; + public int zOrder; + public double alpha; +} + __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 + __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 URL 地址,最大长度为 1024 字节。 + + + x + 图像在视频帧中的 x 坐标(以视频帧左上角为原点,单位为像素)。 + + + y + 图像在视频帧中的 y 坐标(以视频帧左上角为原点,单位为像素)。 + + + width + 图像在视频帧中的宽度(单位为像素)。 + + + height + 图像在视频帧中的高度(单位为像素)。 + + + zOrder + 图像的图层索引。 +
    +
  • 当使用水印数组添加一个或多个水印时,必须设置为 [1, 255] 范围内的值,否则 SDK 会报错。
  • +
  • 其他情况下为可选,取值范围为 [0, 255],默认值为 0。
  • +
  • 0 表示底层,255 表示顶层。
  • +
+
+
+ + alpha + 图像的透明度,取值范围为 [0.0, 1.0]: +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + url + 实时视频中图像的 HTTP 或 HTTPS 地址。该参数的最大长度为 1024 字节。 + + + x + 图像在视频画面中的 x 坐标(以视频画面左上角为原点,单位为像素 px)。 + + + y + 图像在视频画面中的 y 坐标(以视频画面左上角为原点,单位为像素 px)。 + + + width + 图像在视频画面中的宽度(单位为像素 px)。 + + + height + 图像在视频画面中的高度(单位为像素 px)。 + + + zOrder + 图像的图层索引。 +
    +
  • 当使用水印数组添加一个或多个水印时,必须传入 [1, 255] 范围内的值,否则 SDK 会报错。
  • +
  • 在其他情况下,可选传入 [0, 255] 范围内的值,默认值为 0。
  • +
  • 0 表示最底层,255 表示最顶层。
  • +
+
+
+ + alpha + 图像的透明度,取值范围为 [0.0, 1.0]: +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + url + 直播视频中图像的 HTTP 或 HTTPS URL 地址。最大长度为 1024 字节。 + + + rect + 图像在视频帧中的位置和尺寸。 + + + zOrder + 水印或背景图像的图层索引。 +
    +
  • 当使用水印数组添加一个或多个水印时,必须设置为 [1, 255] 范围内的值,否则 SDK 会报错。
  • +
  • 其他情况下为可选,取值范围为 [0, 255],默认值为 0。
  • +
  • 0 表示底层,255 表示顶层。
  • +
+
+
+ + alpha + 水印或背景图像的透明度。取值范围为 [0.0, 1.0]: +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + url + 直播视频中图像的 HTTP 或 HTTPS URL 地址。最大长度为 1024 字节。 + + + rect + 图像在视频帧中的位置和尺寸。 + + + zOrder + 水印或背景图像的图层索引。 +
    +
  • 当使用水印数组添加一个或多个水印时,必须设置为 [1, 255] 范围内的值,否则 SDK 会报错。
  • +
  • 其他情况下为可选,取值范围为 [0, 255],默认值为 0。
  • +
  • 0 表示底层,255 表示顶层。
  • +
+
+
+ + alpha + 水印或背景图像的透明度。取值范围为 [0.0, 1.0]: +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rtcstats.dita b/dita/RTC-AIDOC/API/class_rtcstats.dita new file mode 100644 index 00000000000..8b4e39bb468 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rtcstats.dita @@ -0,0 +1,698 @@ + + + + <ph keyref="RtcStats"/> + 用于统计通话会话相关数据。通话会话的统计信息。通话会话的统计信息。通话会话的统计信息。 + +
+

+ struct RtcStats { + unsigned int duration; + unsigned int txBytes; + unsigned int rxBytes; + unsigned int txAudioBytes; + unsigned int txVideoBytes; + unsigned int rxAudioBytes; + unsigned int rxVideoBytes; + unsigned short txKBitRate; + unsigned short rxKBitRate; + unsigned short rxAudioKBitRate; + unsigned short txAudioKBitRate; + unsigned short rxVideoKBitRate; + unsigned short txVideoKBitRate; + unsigned short lastmileDelay; + unsigned int userCount; + double cpuAppUsage; + double cpuTotalUsage; + int gatewayRtt; + double memoryAppUsageRatio; + double memoryTotalUsageRatio; + int memoryAppUsageInKbytes; + int connectTimeMs; + int firstAudioPacketDuration; + int firstVideoPacketDuration; + int firstVideoKeyFramePacketDuration; + int packetsBeforeFirstKeyFramePacket; + int firstAudioPacketDurationAfterUnmute; + int firstVideoPacketDurationAfterUnmute; + int firstVideoKeyFramePacketDurationAfterUnmute; + int firstVideoKeyFrameDecodedDurationAfterUnmute; + int firstVideoKeyFrameRenderedDurationAfterUnmute; + int txPacketLossRate; + int rxPacketLossRate; + int lanAccelerateState; +}; + public static class RtcStats { + public int totalDuration; + public int txBytes; + public int rxBytes; + public int txKBitRate; + public int txAudioBytes; + public int rxAudioBytes; + public int txVideoBytes; + public int rxVideoBytes; + public int rxKBitRate; + public int txAudioKBitRate; + public int rxAudioKBitRate; + public int txVideoKBitRate; + public int rxVideoKBitRate; + public int lastmileDelay; + public double cpuTotalUsage; + public int gatewayRtt; + public double cpuAppUsage; + public int users; + public int connectTimeMs; + public int txPacketLossRate; + public int rxPacketLossRate; + public double memoryAppUsageRatio; + public double memoryTotalUsageRatio; + public int memoryAppUsageInKbytes; + public int lanAccelerateState; + } + __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 firstAudioPacketDuration; +@property(assign, nonatomic) NSInteger firstVideoPacketDuration; +@property(assign, nonatomic) NSInteger firstVideoKeyFramePacketDuration; +@property(assign, nonatomic) NSInteger packetsBeforeFirstKeyFramePacket; +@property(assign, nonatomic) NSInteger txPacketLossRate; +@property(assign, nonatomic) NSInteger rxPacketLossRate; +@property(assign, nonatomic) NSInteger lanAccelerateState; +@end + __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 firstAudioPacketDuration; +@property(assign, nonatomic) NSInteger firstVideoPacketDuration; +@property(assign, nonatomic) NSInteger firstVideoKeyFramePacketDuration; +@property(assign, nonatomic) NSInteger packetsBeforeFirstKeyFramePacket; +@property(assign, nonatomic) NSInteger txPacketLossRate; +@property(assign, nonatomic) NSInteger rxPacketLossRate; +@property(assign, nonatomic) NSInteger lanAccelerateState; +@end +

+
+
+ 属性 + + + duration + 本地用户的通话时长(秒),为聚合值。 + + + txBytes + 发送的字节总数。 + + + rxBytes + 接收的字节总数。 + + + txAudioBytes + 发送的音频字节总数,为聚合值。 + + + txVideoBytes + 发送的视频字节总数,为聚合值。 + + + rxAudioBytes + 接收的音频字节总数,为聚合值。 + + + rxVideoBytes + 接收的视频字节总数,为聚合值。 + + + txKBitRate + 发送本地视频流的实际码率(Kbps)。 + + + rxKBitRate + 接收的总码率(Kbps)。 + + + rxAudioKBitRate + 接收音频的码率(Kbps)。 + + + txAudioKBitRate + 发送音频的码率(Kbps)。 + + + rxVideoKBitRate + 接收视频的码率(Kbps)。 + + + txVideoKBitRate + 发送视频的码率(Kbps)。 + + + lastmileDelay + 客户端到服务器的网络延迟(毫秒)。 + + + userCount + 频道内的用户数量。 + + + cpuAppUsage + 应用的 CPU 使用率(%)。 + +
    +
  • 回调中,该值始终为 0。
  • +
  • 自 Android 8.1 起,受系统限制无法获取该值。
  • +
+
+
+
+ + cpuTotalUsage + 系统的 CPU 使用率(%)。在 Windows 多核环境下,该值为平均 CPU 使用率,计算方式为:(100 - 任务管理器中的系统空闲进度)/100。 + +
    +
  • 回调中,该值始终为 0。
  • +
  • 自 Android 8.1 起,受系统限制无法获取该值。
  • +
+
+
+
+ + gatewayRtt + 客户端到本地路由器的往返时延(毫秒)。 + 该属性在 iOS 14 及以上版本默认禁用,iOS 14 以下版本默认启用。如需在 iOS 14 及以上版本启用,请[联系技术支持](https://ticket.shengwang.cn/)。在 Android 上,需在 AndroidManifest.xml 文件中 </application> 后添加 android.permission.ACCESS_WIFI_STATE 权限。 + + + + memoryAppUsageRatio + 应用占用的内存比例(%)。 + 该值仅供参考,受系统限制可能无法获取。 + + + + memoryTotalUsageRatio + 系统占用的内存比例(%)。 + 该值仅供参考,受系统限制可能无法获取。 + + + + memoryAppUsageInKbytes + 应用占用的内存大小(KB)。 + 该值仅供参考,受系统限制可能无法获取。 + + + + connectTimeMs + 从 SDK 开始连接到连接建立之间的时长(毫秒)。值为 0 表示无效。 + + + firstAudioPacketDuration + 应用开始连接到频道到接收到首个音频包之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoPacketDuration + 应用开始连接到频道到接收到首个视频包之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoKeyFramePacketDuration + 应用开始连接到频道到接收到首个视频关键帧之间的时长(毫秒)。0 表示该字段不适用。 + + + packetsBeforeFirstKeyFramePacket + 接收到首个视频关键帧前的视频包数量。0 表示该字段不适用。 + + + firstAudioPacketDurationAfterUnmute + 上次取消音频静音到接收到首个音频包之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoPacketDurationAfterUnmute + 上次取消视频静音到接收到首个视频包之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoKeyFramePacketDurationAfterUnmute + 上次取消视频静音到接收到首个视频关键帧之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoKeyFrameDecodedDurationAfterUnmute + 上次取消视频静音到解码首个视频关键帧之间的时长(毫秒)。0 表示该字段不适用。 + + + firstVideoKeyFrameRenderedDurationAfterUnmute + 上次取消视频静音到渲染首个视频关键帧之间的时长(毫秒)。0 表示该字段不适用。 + + + txPacketLossRate + 应用抗丢包算法前,客户端到声网服务器的丢包率(%)。 + + + rxPacketLossRate + 使用抗丢包方法前,声网服务器到客户端的丢包率(%)。 + + + lanAccelerateState + 本地网络加速状态。 +
    +
  • 1:已启用本地网络加速。
  • +
  • 0:未启用本地网络加速。
  • +
+
+
+ + totalDuration + 本地用户的通话时长(秒),以累计值表示。 + + + txBytes + 已发送的字节数。 + + + rxBytes + 已接收的字节数。 + + + txKBitRate + 发送本地视频流的实际码率(Kbps)。 + + + txAudioBytes + 发送的音频字节总数,以累计值表示。 + + + rxAudioBytes + 接收的音频字节总数,以累计值表示。 + + + txVideoBytes + 发送的视频字节总数,以累计值表示。 + + + rxVideoBytes + 接收的视频字节总数,以累计值表示。 + + + rxKBitRate + 接收码率(Kbps)。 + + + txAudioKBitRate + 音频发送码率(Kbps)。 + + + rxAudioKBitRate + 音频接收码率(Kbps)。 + + + txVideoKBitRate + 视频发送码率(Kbps)。 + + + rxVideoKBitRate + 视频接收码率(Kbps)。 + + + lastmileDelay + 客户端到服务器的延迟(毫秒)。 + + + cpuTotalUsage + 系统 CPU 使用率(%)。 + +
    +
  • 回调中,该值始终为 0。
  • +
  • 从 Android 8.1 开始,受系统限制无法获取该值。
  • +
+
+
+
+ + gatewayRtt + 客户端到本地路由器的往返时延(毫秒)。 + 在 Android 上,如需获取该值,请确保在项目的 AndroidManifest.xml 文件中,在 </application> 后添加权限 android.permission.ACCESS_WIFI_STATE + + + + cpuAppUsage + 应用的 CPU 使用率(%)。 + +
    +
  • 回调中,该值始终为 0。
  • +
  • 从 Android 8.1 开始,受系统限制无法获取该值。
  • +
+
+
+
+ + users + 频道中的用户人数。 + + + connectTimeMs + SDK 开始连接到连接建立之间的时长(毫秒)。若值为 0,表示无效。 + + + txPacketLossRate + 客户端发送到声网服务器的丢包率(%),为应用抗丢包机制前的值。 + + + rxPacketLossRate + 声网服务器发送到客户端前,未使用抗丢包机制时的丢包率(%)。 + + + memoryAppUsageRatio + 应用占用的内存比例(%)。 + 该值仅供参考,因系统限制可能无法获取。 + + + + memoryTotalUsageRatio + 系统占用的内存比例(%)。 + 该值仅供参考,因系统限制可能无法获取。 + + + + memoryAppUsageInKbytes + 应用占用的内存大小(KB)。 + 该值仅供参考,因系统限制可能无法获取。 + + + + lanAccelerateState + 本地网络加速状态: +
    +
  • 1:加速开启。
  • +
  • 0:加速关闭。
  • +
+
+
+ + duration + 本地用户通话时长,单位为秒,表示为累计值。 + + + txBytes + 发送的字节数。 + + + rxBytes + 接收的字节数。 + + + txAudioKBitrate + 音频发送码率,单位为 Kbps。 + + + rxAudioKBitrate + 音频接收码率,单位为 Kbps。 + + + txVideoKBitrate + 视频发送码率,单位为 Kbps。 + + + rxVideoKBitrate + 视频接收码率,单位为 Kbps。 + + + txAudioBytes + 发送的音频字节总数,表示为累计值。 + + + txVideoBytes + 发送的视频字节总数,表示为累计值。 + + + rxAudioBytes + 接收的音频字节总数,表示为累计值。 + + + rxVideoBytes + 接收的视频字节总数,表示为累计值。 + + + lastmileDelay + 客户端到服务器的延迟,单位为毫秒。 + + + userCount + 频道中的用户数。 + + + cpuAppUsage + 应用程序的 CPU 使用率(%)。 + 回调中,该值始终为 0。 + + + + cpuTotalUsage + 系统的 CPU 使用率(%)。 + 回调中,该值始终为 0。 + + + + gatewayRtt + 客户端到本地路由器的往返时延,单位为毫秒。 + 该属性在运行 iOS 14 或更高版本的设备上默认禁用,在运行早期版本的设备上默认启用。要在 iOS 14 或更高版本的设备上启用该属性,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + + memoryAppUsageRatio + 应用程序占用的内存比例(%)。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + memoryTotalUsageRatio + 系统占用的内存比例(%)。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + memoryAppUsageInKbytes + 应用程序占用的内存大小,单位为 KB。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + connectTimeMs + 从 SDK 开始连接到连接建立之间的耗时,单位为毫秒。若值为 0,表示无效。 + + + txKBitrate + 本地视频流发送时的实际码率,单位为 Kbps。 + + + rxKBitrate + 接收码率,单位为 Kbps。 + + + firstAudioPacketDuration + 从连接开始到接收到首个音频包的耗时,单位为毫秒。若值为 0,表示无效。 + + + firstVideoPacketDuration + 从连接开始到接收到首个视频包的耗时,单位为毫秒。若值为 0,表示无效。 + + + firstVideoKeyFramePacketDuration + 从连接开始到接收到首个视频关键帧的耗时,单位为毫秒。若值为 0,表示无效。 + + + packetsBeforeFirstKeyFramePacket + 在接收到首个视频关键帧前接收到的视频包数量。若值为 0,表示无效。 + + + txPacketLossRate + 应用抗丢包算法前,客户端到声网服务器的丢包率(%)。 + + + rxPacketLossRate + 使用抗丢包方法前,声网服务器到客户端的丢包率(%)。 + + + lanAccelerateState + 本地网络加速状态: +
    +
  • 1:启用。
  • +
  • 0:未启用。
  • +
+
+
+ + duration + 本地用户通话时长,单位为秒,表示为累计值。 + + + txBytes + 发送的字节数。 + + + rxBytes + 接收的字节数。 + + + txAudioKBitrate + 音频发送码率,单位为 Kbps。 + + + rxAudioKBitrate + 音频接收码率,单位为 Kbps。 + + + txVideoKBitrate + 视频发送码率,单位为 Kbps。 + + + rxVideoKBitrate + 视频接收码率,单位为 Kbps。 + + + txAudioBytes + 发送的音频字节总数,表示为累计值。 + + + txVideoBytes + 发送的视频字节总数,表示为累计值。 + + + rxAudioBytes + 接收的音频字节总数,表示为累计值。 + + + rxVideoBytes + 接收的视频字节总数,表示为累计值。 + + + lastmileDelay + 客户端到服务器的延迟,单位为毫秒。 + + + userCount + 频道中的用户数。 + + + cpuAppUsage + 应用程序的 CPU 使用率(%)。 + 回调中,该值始终为 0。 + + + + cpuTotalUsage + 系统的 CPU 使用率(%)。 + 回调中,该值始终为 0。 + + + + gatewayRtt + 客户端到本地路由器的往返时延,单位为毫秒。 + 该属性在运行 iOS 14 或更高版本的设备上默认禁用,在运行早期版本的设备上默认启用。要在 iOS 14 或更高版本的设备上启用该属性,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + + memoryAppUsageRatio + 应用程序占用的内存比例(%)。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + memoryTotalUsageRatio + 系统占用的内存比例(%)。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + memoryAppUsageInKbytes + 应用程序占用的内存大小,单位为 KB。 + 该值仅供参考。由于系统限制,可能无法获取该值。 + + + + connectTimeMs + 从 SDK 开始连接到连接建立之间的耗时,单位为毫秒。若值为 0,表示无效。 + + + txKBitrate + 本地视频流发送时的实际码率,单位为 Kbps。 + + + rxKBitrate + 接收码率,单位为 Kbps。 + + + firstAudioPacketDuration + 从连接开始到接收到首个音频包的耗时,单位为毫秒。若值为 0,表示无效。 + + + firstVideoPacketDuration + 从连接开始到接收到首个视频包的耗时,单位为毫秒。若值为 0,表示无效。 + + + firstVideoKeyFramePacketDuration + 从连接开始到接收到首个视频关键帧的耗时,单位为毫秒。若值为 0,表示无效。 + + + packetsBeforeFirstKeyFramePacket + 在接收到首个视频关键帧前接收到的视频包数量。若值为 0,表示无效。 + + + txPacketLossRate + 应用抗丢包算法前,客户端到声网服务器的丢包率(%)。 + + + rxPacketLossRate + 使用抗丢包方法前,声网服务器到客户端的丢包率(%)。 + + + lanAccelerateState + 本地网络加速状态: +
    +
  • 1:启用。
  • +
  • 0:未启用。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rte.dita b/dita/RTC-AIDOC/API/class_rte.dita new file mode 100644 index 00000000000..304510ec5a5 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rte.dita @@ -0,0 +1,28 @@ + + + + <ph keyref="Rte"/> + 类是声网实时互动 SDK 的基础接口。 类是声网实时互动 SDK 的基础接口。 是声网实时互动 SDK 的基础接口。 是声网实时互动 SDK 的基础接口。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rteexception.dita b/dita/RTC-AIDOC/API/class_rteexception.dita new file mode 100644 index 00000000000..36f1cdc0e99 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rteexception.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="RteException"/> + 表示 异常信息。 + +
+

+ public class RteException extends Exception { + + private int mErrorCode; +} +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + mErrorCode + 表示错误码的整型数值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rteplayerinfo.dita b/dita/RTC-AIDOC/API/class_rteplayerinfo.dita new file mode 100644 index 00000000000..4edb64c042c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rteplayerinfo.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="RtePlayerInfo"/> + 用于获取播放器和媒体流的相关信息。包含播放器和媒体流的信息。播放器和媒体流的信息。播放器和媒体流的信息。 + +
+

+ class PlayerInfo { + public: + return std::string(str.CStr()); + ::RtePlayerInfo *get_underlying_impl() { return &c_player_info; } + private: + ::RtePlayerInfo c_player_info; +}; + public class PlayerInfo { + private long mNativeHandle = 0; +} + @interface AgoraRtePlayerInfo : NSObject +@end + @interface AgoraRtePlayerInfo : NSObject +@end +

+
+
+
+ +
自从
+
自 v4.5.1 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + mNativeHandle + Native 层的句柄。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_rteplayerstats.dita b/dita/RTC-AIDOC/API/class_rteplayerstats.dita new file mode 100644 index 00000000000..2d2b4c78472 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_rteplayerstats.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="RtePlayerStats"/> + 用于统计当前播放媒体资源的相关信息。用于统计当前正在播放的媒体资源。获取正在播放的媒体资源的统计信息。获取正在播放的媒体资源的统计信息。 + +
+

+ typedef struct RtePlayerStats { + int video_decode_frame_rate; + int video_render_frame_rate; + int video_bitrate; + int audio_bitrate; +} RtePlayerStats; + public class PlayerStats { + private long mNativeHandle = 0; + private boolean mIsNativeOwner = true; +} + @interface AgoraRtePlayerStats : NSObject +@end + @interface AgoraRtePlayerStats : NSObject +@end +

+
+
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 属性 + + + video_decode_frame_rate + 视频解码帧率,单位为 fps。 + + + video_render_frame_rate + 视频渲染帧率,单位为 fps。 + + + video_bitrate + 视频码率,单位为 Kbps。 + + + audio_bitrate + 音频码率,单位为 Kbps。 + + + mNativeHandle + 本地 native 实例的句柄。 + + + mIsNativeOwner + 是否当前对象拥有 native 层资源的所有权。 +
    +
  • :当前对象拥有 native 层资源的所有权。
  • +
  • :当前对象不拥有 native 层资源的所有权。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screenaudioparameters.dita b/dita/RTC-AIDOC/API/class_screenaudioparameters.dita new file mode 100644 index 00000000000..56dfdafa434 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screenaudioparameters.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="ScreenAudioParameters"/> + 用于设置共享屏幕流的音频参数。 用于配置共享屏幕流的音频参数。用于配置共享屏幕流的音频参数。 + +
+

+ struct ScreenAudioParameters { + int sampleRate = 16000; + int channels = 2; + int captureSignalVolume = 100; +}; + __attribute__((visibility("default"))) @interface AgoraScreenAudioParameters : NSObject +@property(assign, nonatomic) NSInteger captureSignalVolume; +@end + public static class AudioCaptureParameters { + public int sampleRate = 16000; + public int channels = 2; + public int captureSignalVolume = 100; + public boolean allowCaptureCurrentApp = true; + } +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+

仅当 captureAudio 时生效。

+

仅当 captureAudio 时生效。

+

仅当 captureAudio 时生效。

+
+
+ 属性 + + + sampleRate + 音频采样率(Hz)。默认值为 16000。 + + + channels + 音频声道数。默认值为 2,表示立体声。 + + + captureSignalVolume + 采集的系统音频音量。取值范围为 [0, 100],默认值为 100。 + + + captureSignalVolume + 采集的系统音频音量。取值范围为 [0, 100],默认值为 100。 + + + sampleRate + 音频采样率(Hz)。默认值为 16000。 + + + channels + 音频声道数。默认值为 2,表示立体声。 + + + captureSignalVolume + 采集的系统音频音量,取值范围为 [0, 100]。默认值为 100。 + + + allowCaptureCurrentApp + + 该参数仅用于设置是否采集当前 App 的音频,不能控制采集到的 App 音频是否发布到频道中。你需要在调用 joinChannel 时通过 options 参数设置。是否采集当前 App 的音频: +
    +
  • :(默认)采集当前 App 的音频。
  • +
  • :不采集当前 App 的音频。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screencaptureconfiguration.dita b/dita/RTC-AIDOC/API/class_screencaptureconfiguration.dita new file mode 100644 index 00000000000..279ac06de7c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screencaptureconfiguration.dita @@ -0,0 +1,96 @@ + + + + <ph keyref="ScreenCaptureConfiguration"/> + 用于设置屏幕采集的相关参数。配置屏幕采集参数。 + +
+

+ struct ScreenCaptureConfiguration { + bool isCaptureWindow; + int64_t displayId; + Rectangle screenRect; + int64_t windowId; + ScreenCaptureParameters params; + Rectangle regionRect; +}; + __attribute__((visibility("default"))) @interface AgoraScreenCaptureConfiguration: NSObject +@property(assign, nonatomic) BOOL isCaptureWindow; +@property(assign, nonatomic) UInt32 displayId; +@property(assign, nonatomic) UInt32 windowId; +@property(strong, nonatomic) AgoraScreenCaptureParameters* _Nonnull params; +@property(assign, nonatomic) CGRect regionRect; +@end +

+
+
+ 属性 + + + isCaptureWindow + 是否采集屏幕上的窗口: +
    +
  • :采集窗口。
  • +
  • :(默认)采集整个屏幕,而非窗口。
  • +
+
+
+ + displayId + 屏幕的显示 ID。 + 该参数仅在 macOS 上采集屏幕时生效。 + + + + screenRect + 共享屏幕相对于虚拟屏幕的位置。详见 。 + 该参数仅在 Windows 上采集屏幕时生效。 + + + + windowId + 窗口 ID。 + 该参数仅在采集窗口时生效。 + + + + params + 屏幕采集配置。详见 + + + regionRect + 共享区域相对于整个屏幕的位置。详见 。如果未设置该参数,SDK 会共享整个屏幕。如果设置的区域超出屏幕边界,仅共享屏幕内的部分。如果在 中设置的宽度或高度为 0,则共享整个屏幕。 + + + isCaptureWindow + 是否采集屏幕上的窗口: +
    +
  • :采集窗口。
  • +
  • :(默认)采集整个屏幕,而非窗口。
  • +
+
+
+ + displayId + 屏幕的显示 ID。 + 该参数仅在 macOS 上采集屏幕时生效。 + + + + windowId + 窗口 ID。 + 该参数仅在采集窗口时生效。 + + + + params + 屏幕采集的配置参数,详见 + + + regionRect + 共享区域相对于整个屏幕的位置。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screencaptureparameters.dita b/dita/RTC-AIDOC/API/class_screencaptureparameters.dita new file mode 100644 index 00000000000..1c2755ba96d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screencaptureparameters.dita @@ -0,0 +1,189 @@ + + + + <ph keyref="ScreenCaptureParameters"/> + 用于配置屏幕共享的参数。屏幕共享配置。 + +
+

+ struct ScreenCaptureParameters { + VideoDimensions dimensions; + int frameRate; + int bitrate; + bool captureMouseCursor; + bool windowFocus; + view_t* excludeWindowList; + int excludeWindowCount; + int highLightWidth; + unsigned int highLightColor; + bool enableHighLight; +}; + __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 + + 在文档共享场景中设置编码分辨率时,请参考建议设置方式。屏幕共享视频流的编码分辨率。默认值为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。如果屏幕尺寸与该参数值不同,SDK 会采用以下编码策略。假设 dimensions 设置为 1920 × 1080: +
    +
  • 如果屏幕尺寸小于 dimensions,例如 1000 × 1000 像素,SDK 使用屏幕尺寸(即 1000 × 1000 像素)进行编码。
  • +
  • 如果屏幕尺寸大于 dimensions,例如 2000 × 1500 像素,SDK 会在保持屏幕宽高比(4:3)的前提下,使用不超过 dimensions 的最大值进行编码,即 1440 × 1080。
  • +
详见
+
+ + frameRate + 在 Windows 和 macOS 上,表示屏幕共享视频流的编码帧率(fps)。默认值为 5。声网不建议设置超过 15 的值。 + + + bitrate + 在 Windows 和 macOS 上,表示屏幕共享视频流的编码码率(Kbps)。默认值为 0,表示 SDK 会根据当前屏幕的分辨率自动计算码率。 + + + captureMouseCursor + + 由于 macOS 系统限制,在屏幕共享时设置为 无效(共享窗口时不受影响)。是否在屏幕共享中捕获鼠标: +
    +
  • :(默认)捕获鼠标。
  • +
  • :不捕获鼠标。
  • +
+
+
+ + windowFocus + + 由于 macOS 系统限制,当设置该参数将窗口置于前台时,如果当前应用有多个窗口,只有主窗口会被置于前台。调用 方法共享窗口时,是否将该窗口置于前台: +
    +
  • :将窗口置于前台。
  • +
  • :(默认)不将窗口置于前台。
  • +
+
+
+ + excludeWindowList + 要屏蔽的窗口 ID 列表。调用 开始屏幕共享时,可使用该参数屏蔽指定窗口。调用 更新屏幕共享配置时,也可使用该参数动态屏蔽指定窗口。 + + + excludeWindowCount + 要排除的窗口数量。 + 在 Windows 平台上,该参数的最大值为 24;若超过此值,窗口排除将失败。 + + + + highLightWidth + (仅适用于 macOS 和 Windows)边框的宽度(像素)。默认值为 5,取值范围为 (0, 50]。 + 仅当 highLighted 设置为 时该参数才生效。 + + + + highLightColor + (仅适用于 macOS 和 Windows) +
    +
  • 在 Windows 平台上,边框颜色为 ARGB 格式。默认值为 0xFF8CBF26。
  • +
  • 在 macOS 上,COLOR_CLASS 表示 NSColor
  • +
+
+
+ + enableHighLight + + 当共享窗口或屏幕的部分区域时,若设置该参数为 ,SDK 会在整个窗口或屏幕周围显示边框。(仅适用于 macOS 和 Windows)是否在共享的窗口或屏幕周围显示边框: +
    +
  • :显示边框。
  • +
  • :(默认)不显示边框。
  • +
+
+
+ + dimensions + + 在文档共享场景(AgoraScreenScenarioDocument)中设置编码分辨率时,建议: +
    +
  • 若需最佳画质,建议编码分辨率与采集分辨率一致。
  • +
  • 若需在画质、带宽和系统性能之间取得平衡: +
      +
    • 当采集分辨率大于 1920 × 1080 时,编码分辨率建议不低于 1920 × 1080。
    • +
    • 当采集分辨率小于 1920 × 1080 时,编码分辨率建议不低于 1280 × 720。
    • +
    +
  • +
+
屏幕共享视频流的编码分辨率。若屏幕尺寸与该参数不同,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 + + 由于 macOS 系统限制,在屏幕共享时设置为 无效(共享窗口时不受影响)。是否在屏幕共享中采集鼠标: +
    +
  • :(默认)采集鼠标。
  • +
  • :不采集鼠标。
  • +
+
+
+ + windowFocus + + 由于 macOS 系统限制,设置该参数置顶窗口时,如果当前应用有多个窗口,仅主窗口会被置顶。调用 startScreenCaptureByWindowId 方法共享窗口时,是否将该窗口置顶: +
    +
  • :将窗口置顶。
  • +
  • :(默认)不置顶。
  • +
+
+
+ + excludeWindowList + 要屏蔽的窗口 ID 列表。调用 startScreenCaptureByDisplayId 开始屏幕共享时,可使用该参数屏蔽指定窗口。调用 updateScreenCaptureParameters 更新屏幕共享配置时,也可动态屏蔽指定窗口。 + + + highLighted + + 当共享的是窗口或屏幕的一部分时,若设置为 ,SDK 会在整个窗口或屏幕周围添加边框。是否在共享的窗口或屏幕周围添加边框: +
    +
  • :添加边框。
  • +
  • :(默认)不添加边框。
  • +
+
+
+ + highLightColor + 边框颜色。在 macOS 上,COLOR_CLASS 表示 NSColor + + + highLightWidth + 边框宽度(像素)。默认值为 5,取值范围为 (0, 50]。 + 仅当 highLighted 设置为 时该参数才生效。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screencaptureparameters2.dita b/dita/RTC-AIDOC/API/class_screencaptureparameters2.dita new file mode 100644 index 00000000000..2f91408ca9a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screencaptureparameters2.dita @@ -0,0 +1,188 @@ + + + + <ph keyref="ScreenCaptureParameters2"/> + 用于配置屏幕共享的音频和视频参数。屏幕共享配置。用于配置屏幕共享功能。 + +
+

+ struct ScreenCaptureParameters2 { + bool captureAudio = false; + ScreenAudioParameters audioParams; + bool captureVideo = true; + ScreenVideoParameters videoParams; +}; + __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 + public class ScreenCaptureParameters { + public boolean captureAudio = false; + public VideoCaptureParameters videoCaptureParameters = new VideoCaptureParameters(); + public boolean captureVideo = true; + public AudioCaptureParameters audioCaptureParameters = new AudioCaptureParameters(); +} +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+

用于设置屏幕共享的视频编码参数。

+
+
+ 属性 + + + captureAudio + + 由于系统限制,系统音频采集仅适用于 Android API 级别 29 及以上(即 Android 10 及以上)。为提高屏幕共享时系统音频采集的成功率,请确保调用了 方法并将音频场景设置为 AUDIO_SCENARIO_GAME_STREAMING是否在屏幕共享时采集系统音频: +
    +
  • :采集系统音频。
  • +
  • :(默认)不采集系统音频。
  • +
+
+
+ + audioParams + 共享屏幕流的音频配置。详见 。 + 仅当 captureAudio 时该参数才生效。 + + + + captureVideo + + 由于系统限制,屏幕采集仅适用于 Android API 级别 21 及以上,即 Android 5 及以上。是否在屏幕共享时采集屏幕画面: +
    +
  • :(默认)采集屏幕。
  • +
  • :不采集屏幕。
  • +
+
+
+ + videoParams + 共享屏幕流的视频配置。详见 。 + 仅当 captureVideo 时该参数才生效。 + + + + dimensions + + 在文档共享场景(AgoraScreenScenarioDocument)中设置编码分辨率时,建议: +
    +
  • 若需最佳画质,建议编码分辨率与采集分辨率一致。
  • +
  • 若需在画质、带宽和系统性能之间取得平衡: +
      +
    • 当采集分辨率大于 1920 × 1080 时,编码分辨率建议不低于 1920 × 1080。
    • +
    • 当采集分辨率小于 1920 × 1080 时,编码分辨率建议不低于 1280 × 720。
    • +
    +
  • +
+
屏幕共享视频流的编码分辨率。若屏幕尺寸与该参数不同,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 + + 由于 macOS 系统限制,在屏幕共享时设置为 无效(共享窗口时不受影响)。是否在屏幕共享中采集鼠标: +
    +
  • :(默认)采集鼠标。
  • +
  • :不采集鼠标。
  • +
+
+
+ + windowFocus + + 由于 macOS 系统限制,设置该参数置顶窗口时,如果当前应用有多个窗口,仅主窗口会被置顶。调用 startScreenCaptureByWindowId 方法共享窗口时,是否将该窗口置顶: +
    +
  • :将窗口置顶。
  • +
  • :(默认)不置顶。
  • +
+
+
+ + excludeWindowList + 要屏蔽的窗口 ID 列表。调用 startScreenCaptureByDisplayId 开始屏幕共享时,可使用该参数屏蔽指定窗口。调用 updateScreenCaptureParameters 更新屏幕共享配置时,也可动态屏蔽指定窗口。 + + + highLighted + + 当共享的是窗口或屏幕的一部分时,若设置为 ,SDK 会在整个窗口或屏幕周围添加边框。是否在共享的窗口或屏幕周围添加边框: +
    +
  • :添加边框。
  • +
  • :(默认)不添加边框。
  • +
+
+
+ + highLightColor + 边框颜色。在 macOS 上,COLOR_CLASS 表示 NSColor + + + highLightWidth + 边框宽度(像素)。默认值为 5,取值范围为 (0, 50]。 + 仅当 highLighted 设置为 时该参数才生效。 + + + + captureAudio + + +
    +
  • 由于系统限制,系统音频的采集仅适用于 Android API 等级 29 及以上(即 Android 10 及以上版本)。
  • +
  • 为提高屏幕共享系统音频采集的成功率,请确保已调用 方法并将音频场景设置为 AUDIO_SCENARIO_GAME_STREAMING
  • +
+
设置是否在屏幕共享过程中采集系统音频: +
    +
  • :采集系统音频。
  • +
  • :(默认)不采集系统音频。
  • +
+
+
+ + videoCaptureParameters + 共享屏幕视频流的视频采集参数。详见 + + + captureVideo + + 由于系统限制,屏幕采集仅适用于 Android API 等级 21 及以上,即 Android 5 及以上版本。设置在屏幕共享过程中是否采集屏幕内容: +
    +
  • :(默认)采集屏幕。
  • +
  • :不采集屏幕。
  • +
+
+
+ + audioCaptureParameters + 共享屏幕音频流的音频采集参数。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screencapturesourceinfo.dita b/dita/RTC-AIDOC/API/class_screencapturesourceinfo.dita new file mode 100644 index 00000000000..a6e65168844 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screencapturesourceinfo.dita @@ -0,0 +1,155 @@ + + + + <ph keyref="ScreenCaptureSourceInfo"/> + 描述可共享窗口或屏幕的信息。用于描述指定可共享窗口或屏幕的信息。 + +
+

+ struct ScreenCaptureSourceInfo { + ScreenCaptureSourceType type; + int64_t sourceId; + const char* sourceName; + ThumbImageBuffer thumbImage; + ThumbImageBuffer iconImage; + const char* processPath; + const char* sourceTitle; + bool primaryMonitor; + bool isOccluded; + Rectangle position; +#if defined(_WIN32) + bool minimizeWindow; + int64_t sourceDisplayId; +#else +#endif +}; + __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) CGRect position; +@property(assign, nonatomic) BOOL primaryMonitor; +@end +

+
+
+

该信息通过 返回。

+
+
+ 属性 + + + type + 共享目标的类型。详见 + + + sourceId + 窗口的 ID 或屏幕的显示 ID。 + + + sourceName + 窗口或屏幕的名称,UTF-8 编码。 + + + thumbImage + 缩略图的图像内容。详见 + + + iconImage + 图标的图像内容。详见 + + + processPath + 窗口所属进程的路径,UTF-8 编码。 + + + sourceTitle + 窗口的标题,UTF-8 编码。 + + + primaryMonitor + 是否为主显示屏: +
    +
  • :是主显示屏。
  • +
  • :不是主显示屏。
  • +
+
+
+ + isOccluded + 是否被遮挡: +
    +
  • :窗口被遮挡。
  • +
  • :窗口未被遮挡。
  • +
+
+
+ + position + 窗口相对于整个屏幕空间(包括所有可共享屏幕)的位置。详见 + + + minimizeWindow + + 仅适用于 Windows 平台。窗口是否最小化: +
    +
  • :窗口已最小化。
  • +
  • :窗口未最小化。
  • +
+
+
+ + sourceDisplayId + 窗口所在的屏幕 ID(仅适用于 Windows)。如果窗口跨多个屏幕显示,该参数表示窗口与其交集面积最大的屏幕的 ID;如果窗口位于不可见屏幕之外,则该值为 -2。 + 仅适用于 Windows 平台。 + + + + type + 共享目标的类型,详见 + + + sourceId + 窗口的 ID 或屏幕的显示 ID。 + + + sourceName + 窗口或屏幕的名称,采用 UTF-8 编码。 + + + thumbImage + 缩略图的图像内容。详见 NSImage + + + iconImage + 图标的图像内容。详见 NSImage + + + processPath + 窗口所属进程的路径,采用 UTF-8 编码。 + + + sourceTitle + 窗口的标题,采用 UTF-8 编码。 + + + position + 窗口相对于整个屏幕空间(包括所有可共享屏幕)的位置。 + + + primaryMonitor + 是否为主显示屏: +
    +
  • :是主显示屏。
  • +
  • :不是主显示屏。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_screenvideoparameters.dita b/dita/RTC-AIDOC/API/class_screenvideoparameters.dita new file mode 100644 index 00000000000..646ef030f05 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_screenvideoparameters.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="ScreenVideoParameters"/> + 用于设置共享屏幕的视频参数。共享屏幕流的视频配置。配置共享屏幕的视频参数。 + +
+

+ struct ScreenVideoParameters { + VideoDimensions dimensions; + int frameRate = 15; + int bitrate; + VIDEO_CONTENT_HINT contentHint = VIDEO_CONTENT_HINT::CONTENT_HINT_MOTION; +}; + __attribute__((visibility("default"))) @interface AgoraScreenVideoParameters : NSObject +@property(assign, nonatomic) CGSize dimensions; +@property(assign, nonatomic) NSInteger frameRate; +@property(assign, nonatomic) NSInteger bitrate; +@property(assign, nonatomic) AgoraVideoContentHint contentHint; +@end + public static class VideoCaptureParameters { + public int bitrate = 0; + public int framerate = 15; + public int width = 1280; + public int height = 720; + public int contentHint = Constants.SCREEN_CAPTURE_CONTENT_HINT_MOTION; + } +

+
+
+
+ +
自从
+
自 v3.7.0 版本新增。
+
+
+

仅当参数 captureVideo 时可用。

+
+
+ 属性 + + + dimensions + 视频编码分辨率。默认值为 1280 × 720。详见 + + + frameRate + 视频编码帧率(fps)。默认值为 15。 + + + bitrate + 视频编码码率(Kbps)。 + + + contentHint + 屏幕共享的内容提示。详见 + + + dimensions + 视频编码的分辨率。默认值为 1280 × 720。 + + + frameRate + 视频编码的帧率(fps)。默认值为 15。 + + + bitrate + 视频编码的码率(Kbps)。 + + + contentHint + 屏幕共享的内容提示,详见 + + + bitrate + 视频编码码率(单位:Kbps)。 + + + framerate + 视频编码帧率(单位:fps),默认值为 15。 + + + width + + 屏幕共享流的计费基于此参数值。当不传入该参数时,声网按 1280 × 720 收费;传入该参数时,声网按设置值计费。 +该参数不代表输出视频的旋转方向,设置方向详见 。 +是否支持 720p 或更高分辨率取决于设备性能,如设备不支持,则帧率可能低于设置值。 +在文档共享(SCREEN_SCENARIO_DOCUMENT)场景中设置编码分辨率时,建议如下: +
    +
  • 追求最佳画质:建议编码分辨率与采集分辨率一致;
  • +
  • 平衡画质、带宽和系统性能: +
      +
    • 若采集分辨率大于 1920 × 1080,编码分辨率建议不小于 1920 × 1080;
    • +
    • 若采集分辨率小于 1920 × 1080,编码分辨率建议不小于 1280 × 720。
    • +
    +
  • +
+
视频编码分辨率的宽度(单位:px),默认值为 1280。如果宽高比与屏幕不一致,SDK 会按以下规则调整:以 1280 × 720 的宽高为例: +
    +
  • 当屏幕宽高均小于设定值时,使用屏幕原始分辨率。例如,屏幕为 640 × 360,则编码分辨率使用 640 × 360;
  • +
  • 当屏幕宽或高高于设定值时,SDK 会在不超过设定值的范围内,保持屏幕宽高比例调整分辨率。例如,屏幕为 2000 × 1500,则编码分辨率使用 960 × 720。
  • +
+
+
+ + height + + 屏幕共享流的计费基于此参数值。当不传入该参数时,声网按 1280 × 720 收费;传入该参数时,声网按设置值计费。 +该参数不代表输出视频的旋转方向,设置方向详见 。 +是否支持 720p 或更高分辨率取决于设备性能,如设备不支持,则帧率可能低于设置值。 +在文档共享(SCREEN_SCENARIO_DOCUMENT)场景中设置编码分辨率时,建议如下: +
    +
  • 追求最佳画质:建议编码分辨率与采集分辨率一致;
  • +
  • 平衡画质、带宽和系统性能: +
      +
    • 若采集分辨率大于 1920 × 1080,编码分辨率建议不小于 1920 × 1080;
    • +
    • 若采集分辨率小于 1920 × 1080,编码分辨率建议不小于 1280 × 720。
    • +
    +
  • +
+
视频编码分辨率的高度(单位:px),默认值为 720。如果宽高比与屏幕不一致,SDK 会按以下规则调整:以 1280 × 720 的宽高为例: +
    +
  • 当屏幕宽高均小于设定值时,使用屏幕原始分辨率。例如,屏幕为 640 × 360,则编码分辨率使用 640 × 360;
  • +
  • 当屏幕宽或高高于设定值时,SDK 会在不超过设定值的范围内,保持屏幕宽高比例调整分辨率。例如,屏幕为 2000 × 1500,则编码分辨率使用 960 × 720。
  • +
+
+
+ + contentHint + 共享屏幕场景下的内容提示选项: +
    +
  • SCREEN_CAPTURE_CONTENT_HINT_NONE(0):默认值,无内容提示;
  • +
  • SCREEN_CAPTURE_CONTENT_HINT_MOTION(1):运动内容,适用于偏重流畅度或共享影片、视频和游戏;
  • +
  • SCREEN_CAPTURE_CONTENT_HINT_DETAILS(2):静态内容,适用于偏重清晰度或共享图片、PPT 或文本内容。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_segmentationproperty.dita b/dita/RTC-AIDOC/API/class_segmentationproperty.dita new file mode 100644 index 00000000000..b3aaf6bb0b6 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_segmentationproperty.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="SegmentationProperty"/> + 用于设置背景图像处理的相关属性。用于设置背景图像处理相关的属性。背景图像处理属性。背景图像处理属性。 + +
+

+ struct SegmentationProperty { + SEG_MODEL_TYPE modelType; + float greenCapacity; + SCREEN_COLOR_TYPE screenColorType; +}; + public class SegmentationProperty { + public static final int SEG_MODEL_AI = 1; + public static final int SEG_MODEL_GREEN = 2; + public static final int SCREEN_COLOR_AUTO = 0; + public static final int SCREEN_COLOR_GREEN = 1; + public static final int SCREEN_COLOR_BLUE = 2; + public int modelType; + public float greenCapacity; + public int screenColorType; +} + __attribute__((visibility("default"))) @interface AgoraSegmentationProperty: NSObject +@property(nonatomic, assign) SegModelType modelType; +@property(nonatomic, assign) float greenCapacity; +@property(nonatomic, assign) ScreenColorType screenColorType; +@end + __attribute__((visibility("default"))) @interface AgoraSegmentationProperty: NSObject +@property(nonatomic, assign) SegModelType modelType; +@property(nonatomic, assign) float greenCapacity; +@property(nonatomic, assign) ScreenColorType screenColorType; +@end +

+
+
+ 属性 + + + modelType + 用于背景处理的算法类型。详见 + + + greenCapacity + 识别图像中背景颜色的精度范围。取值范围为 [0,1],默认值为 0.5。值越大,可识别的纯色色调范围越广。当该参数值过大时,人物边缘和人物区域内的纯色也可能被检测到。声网建议根据实际效果动态调整该参数的值。 + 仅当 modelType 设置为 SEG_MODEL_GREEN 时该参数才生效。 + + + + screenColorType + 屏幕颜色类型。详见 + + + SEG_MODEL_AI + (1):(默认)AI 分割算法。 + + + SEG_MODEL_GREEN + (2):绿幕分割算法。 + + + SCREEN_COLOR_AUTO + (0):(默认)自动识别屏幕颜色。 + + + SCREEN_COLOR_GREEN + (1):绿色。 + + + SCREEN_COLOR_BLUE + (2):蓝色。 + + + modelType + 用于背景处理的算法类型。 +
    +
  • SEG_MODEL_AI(1):(默认)使用适用于所有场景的算法。
  • +
  • SEG_MODEL_GREEN(2):使用专为绿幕背景场景设计的算法。
  • +
+
+
+ + greenCapacity + 识别图像中背景颜色的准确度范围。取值范围为 [0, 1],默认值为 0.5。值越大,可识别的纯色色阶范围越宽。当该值过大时,人物边缘和人物区域中的纯色部分也可能被识别为背景。 + 仅当 modelType 设为 SEG_MODEL_GREEN 时该参数生效。声网建议你根据实际效果动态调整该参数值。 + + + + screenColorType + 屏幕颜色类型: +
    +
  • SCREEN_COLOR_AUTO(0):SDK 自动选择屏幕颜色。
  • +
  • SCREEN_COLOR_GREEN(1):绿色。
  • +
  • SCREEN_COLOR_BLUE(2):蓝色。
  • +
+
+
+ + modelType + 用于背景处理的算法类型。详见 + + + greenCapacity + 识别图像中背景纯色的精度范围。取值范围为 [0,1],默认值为 0.5。值越大,可识别的纯色色阶范围越广。当该值过大时,可能会将人物边缘或人物区域内的纯色误识别为背景。声网建议你根据实际效果动态调整该参数的值。 + 仅当 modelType 设置为 SegModelAgoraGreen 时该参数才生效。 + + + + screenColorType + 屏幕颜色类型。详见 + + + modelType + 用于背景处理的算法类型。详见 + + + greenCapacity + 识别图像中背景纯色的精度范围。取值范围为 [0,1],默认值为 0.5。值越大,可识别的纯色色阶范围越广。当该值过大时,可能会将人物边缘或人物区域内的纯色误识别为背景。声网建议你根据实际效果动态调整该参数的值。 + 仅当 modelType 设置为 SegModelAgoraGreen 时该参数才生效。 + + + + screenColorType + 屏幕颜色类型。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_simulcaststreamconfig.dita b/dita/RTC-AIDOC/API/class_simulcaststreamconfig.dita new file mode 100644 index 00000000000..f0b31942282 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_simulcaststreamconfig.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="SimulcastStreamConfig"/> + 用于配置视频小流。用于配置不同质量层级中的视频小流。配置视频小流。配置视频小流。 + +
+

+ struct SimulcastStreamConfig { + VideoDimensions dimensions; + int kBitrate; + int framerate; + bool operator==(const SimulcastStreamConfig& rhs) const { + return dimensions == rhs.dimensions && kBitrate == rhs.kBitrate && framerate == rhs.framerate; + } +}; + public class SimulcastStreamConfig { + public VideoEncoderConfiguration.VideoDimensions dimensions; + public int bitrate; + public int framerate; +} + __attribute__((visibility("default"))) @interface AgoraSimulcastStreamConfig: NSObject +@property (assign, nonatomic) int kBitrate; +@property (assign, nonatomic) int framerate; +@property (assign, nonatomic) CGSize dimensions; +@end + __attribute__((visibility("default"))) @interface AgoraSimulcastStreamConfig: NSObject +@property (assign, nonatomic) int kBitrate; +@property (assign, nonatomic) int framerate; +@property (assign, nonatomic) CGSize dimensions; +@end +

+
+
+

用于设置编码参数,包括分辨率、码率和帧率。

+ 该接口为技术预览。 + 该接口为技术预览。 +
+
+ 属性 + + + dimensions + 视频尺寸。默认值为视频大流的 50%。详见 VideoDimensions。 + + + kBitrate + 视频码率(Kbps)。默认值为 -1。无需设置该参数,SDK 会根据你设置的视频分辨率和帧率自动匹配最合适的码率。 + + + framerate + 本地视频帧率(fps)。默认值为 5。 + + + dimensions + 视频分辨率。默认值为视频大流分辨率的 50%。详见 VideoDimensions。 + + + bitrate + 视频码率(Kbps)。默认值为 -1。无需手动设置此参数,SDK 会根据你设置的视频分辨率和帧率自动匹配最合适的码率。 + + + framerate + 本地视频的帧率(fps)。默认值为 5。 + + + kBitrate + 视频码率(Kbps)。默认值为 -1。无需设置该参数,SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。 + + + framerate + 本地视频的帧率(fps)。默认值为 5。 + + + dimensions + 视频分辨率。默认值为视频大流的 50%。 + + + kBitrate + 视频码率(Kbps)。默认值为 -1。无需设置该参数,SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。 + + + framerate + 本地视频的帧率(fps)。默认值为 5。 + + + dimensions + 视频分辨率。默认值为视频大流的 50%。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_snapshotconfig.dita b/dita/RTC-AIDOC/API/class_snapshotconfig.dita new file mode 100644 index 00000000000..f7df6128901 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_snapshotconfig.dita @@ -0,0 +1,79 @@ + + + + <ph keyref="SnapshotConfig"/> + 用于配置视频截图的结构体。用于配置截图功能。截图配置。截图配置。 + +
+

+ struct SnapshotConfig { + const char* filePath; + media::base::VIDEO_MODULE_POSITION position; +}; + public class SnapshotConfig { + public String filePath = null; + public Constants.VideoModulePosition position = Constants.VideoModulePosition.VIDEO_MODULE_POSITION_PRE_ENCODER; +} + __attribute__((visibility("default"))) @interface AgoraSnapshotConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property(assign, nonatomic) AgoraVideoModulePosition position; +@end + __attribute__((visibility("default"))) @interface AgoraSnapshotConfig: NSObject +@property (copy, nonatomic) NSString * _Nullable filePath; +@property(assign, nonatomic) AgoraVideoModulePosition position; +@end +

+
+
+ 属性 + + + filePath + + 请确保指定的路径存在且可写。截图的本地路径(包含文件扩展名)。例如: +
    +
  • Windows: C:\Users\<user_name>\AppData\Local\声网\<process_name>\example.jpg
  • +
  • iOS: /App Sandbox/Library/Caches/example.jpg
  • +
  • macOS: ~/Library/Logs/example.jpg
  • +
  • Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg
  • +
+
+
+ + position + 截图视频帧在视频处理流程中的位置,详见 + + + filePath + 截图文件的本地路径(包括文件扩展名)。例如:Android: /storage/emulated/0/Android/data/<package name>/files/example.jpg。 + 请确保指定路径存在且具有可写权限。 + + + + position + 截图视频帧在视频处理链中的位置,详见 + + + filePath + 截图的本地路径(包含文件扩展名)。例如:iOS:/App Sandbox/Library/Caches/example.jpg。 + 请确保指定的路径存在且可写。 + + + + position + 截图视频帧在视频处理流程中的位置,详见 + + + filePath + 截图的本地路径(包含文件扩展名)。例如:iOS:/App Sandbox/Library/Caches/example.jpg。 + 请确保指定的路径存在且可写。 + + + + position + 截图视频帧在视频处理流程中的位置,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_spatialaudioparams.dita b/dita/RTC-AIDOC/API/class_spatialaudioparams.dita new file mode 100644 index 00000000000..b2984bea1cb --- /dev/null +++ b/dita/RTC-AIDOC/API/class_spatialaudioparams.dita @@ -0,0 +1,381 @@ + + + + <ph keyref="SpatialAudioParams"/> + 配置空间音频参数。用于配置空间音频参数。用于设置空间音频参数。用于设置空间音频参数。 + +
+

+ struct SpatialAudioParams { + Optional<double> speaker_azimuth; + Optional<double> speaker_elevation; + Optional<double> speaker_distance; + Optional<int> speaker_orientation; + Optional<bool> enable_blur; + Optional<bool> enable_air_absorb; + Optional<double> speaker_attenuation; + Optional<bool> enable_doppler; +}; + public class SpatialAudioParams { + public Double speaker_azimuth; + public Double speaker_elevation; + public Double speaker_distance; + public Integer speaker_orientation; + public Boolean enable_blur; + public Boolean enable_air_absorb; + public Double speaker_attenuation; + public Boolean enable_doppler; +} + __attribute__((visibility("default"))) @interface AgoraSpatialAudioParams : NSObject +@property(assign, nonatomic) double speaker_azimuth; +@property(assign, nonatomic) double speaker_elevation; +@property(assign, nonatomic) double speaker_distance; +@property(assign, nonatomic) NSInteger speaker_orientation; +@property(assign, nonatomic) BOOL enable_blur; +@property(assign, nonatomic) BOOL enable_air_absorb; +@property(assign, nonatomic) double speaker_attenuation; +@property(assign, nonatomic) BOOL enable_doppler; +@end + __attribute__((visibility("default"))) @interface AgoraSpatialAudioParams : NSObject +@property(assign, nonatomic) double speaker_azimuth; +@property(assign, nonatomic) double speaker_elevation; +@property(assign, nonatomic) double speaker_distance; +@property(assign, nonatomic) NSInteger speaker_orientation; +@property(assign, nonatomic) BOOL enable_blur; +@property(assign, nonatomic) BOOL enable_air_absorb; +@property(assign, nonatomic) double speaker_attenuation; +@property(assign, nonatomic) BOOL enable_doppler; +@end +

+
+
+

用于设置远端用户或媒体播放器相对于本地用户的空间音频参数。

+

用于设置远端用户或媒体播放器相对于本地用户的空间音频参数。

+
+
+ 属性 + + + speaker_azimuth + 远端用户或媒体播放器相对于本地用户的方位角,单位为度,取值范围为 [0, 360]。 +
    +
  • 0:(默认)正前方。
  • +
  • 90:正左方。
  • +
  • 180:正后方。
  • +
  • 270:正右方。
  • +
  • 360:正前方。
  • +
+
+
+ + speaker_elevation + 远端用户或媒体播放器相对于本地用户的仰角,单位为度,取值范围为 [-90, 90]。 +
    +
  • 0:(默认)水平面无旋转。
  • +
  • -90:水平面向下旋转 90 度。
  • +
  • 90:水平面向上旋转 90 度。
  • +
+
+
+ + speaker_distance + 远端用户或媒体播放器相对于本地用户的距离,单位为米,取值范围为 [1, 50]。默认值为 1 米。 + + + speaker_orientation + 远端用户或媒体播放器相对于本地用户的朝向角,单位为度,取值范围为 [0, 180]。 +
    +
  • 0:(默认)声源与听者朝向一致。
  • +
  • 180:声源与听者相对而立。
  • +
+
+
+ + enable_blur + 是否开启音频模糊处理: +
    +
  • :开启音频模糊。
  • +
  • :(默认)关闭音频模糊。
  • +
+
+
+ + enable_air_absorb + 是否开启空气吸收效果,用于模拟声音在空气中传播时的衰减特性。在一定传播距离下,高频声音衰减较快,低频声音衰减较慢。 +
    +
  • :(默认)开启空气吸收。请确保 speaker_attenuation 的值不为 0,否则该设置不生效。
  • +
  • :关闭空气吸收。
  • +
+
+
+ + speaker_attenuation + 远端用户或媒体播放器的声音衰减系数,取值范围为 [0, 1]。 +
    +
  • 0:广播模式,音量和音色不随距离衰减,本地用户听到的音量和音色不变。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中轻微衰减,声音传播距离比真实环境更远。需同时开启 enable_air_absorb
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 speaker_attenuation
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。需同时开启 enable_air_absorb
  • +
+
+
+ + enable_doppler + + 该参数适用于声源高速移动的场景(例如赛车游戏)。不推荐在常见的音视频互动场景中使用(例如语音聊天、连麦或在线 KTV)。启用该参数后,建议以固定周期(如 30 毫秒)调用 方法,持续更新声源与接收者之间的相对距离。以下因素可能导致多普勒效应不可预测或声音抖动:更新周期过长、更新周期不规律,或因网络丢包或延迟导致距离信息丢失。是否开启多普勒效应:当声源与接收者之间存在相对位移时,接收者听到的音调会发生变化。 +
    +
  • :开启多普勒效应。
  • +
  • :(默认)关闭多普勒效应。
  • +
+
+
+ + speaker_azimuth + 远端用户或媒体播放器相对于本地用户的方位角,单位为度,取值范围为 [0, 360]。具体取值如下: +
    +
  • 0:(默认)表示正前方。
  • +
  • 90:表示正左方。
  • +
  • 180:表示正后方。
  • +
  • 270:表示正右方。
  • +
  • 360:表示正前方。
  • +
+
+
+ + speaker_elevation + 远端用户或媒体播放器相对于本地用户的仰角,单位为度,取值范围为 [-90, 90]。具体取值如下: +
    +
  • 0:(默认)表示水平平面不旋转。
  • +
  • -90:表示向下旋转 90 度。
  • +
  • 90:表示向上旋转 90 度。
  • +
+
+
+ + speaker_distance + 远端用户或媒体播放器相对于本地用户的距离,单位为米,取值范围为 [1, 50]。默认值为 1 米。 + + + speaker_orientation + 远端用户或媒体播放器相对于本地用户的朝向角度,单位为度,取值范围为 [0, 180]。具体取值如下: +
    +
  • 0:(默认)表示声源和听众朝向相同。
  • +
  • 180:表示声源和听众面对面。
  • +
+
+
+ + enable_blur + 是否开启音频模糊处理: +
    +
  • :开启音频模糊处理。
  • +
  • :(默认)关闭音频模糊处理。
  • +
+
+
+ + enable_air_absorb + + 需确保 speaker_attenuation 不为 0,否则该设置不生效。是否开启空气吸收。开启后模拟声波在空气中传播时的衰减效果,高频声音衰减更快,低频声音衰减较慢。 +
    +
  • :(默认)开启空气吸收。
  • +
  • :关闭空气吸收。
  • +
+
+
+ + speaker_attenuation + + 弱衰减和强衰减模式需开启 enable_air_absorb远端用户或媒体播放器的声音衰减系数,取值范围为 [0, 1]。 +
    +
  • 0:广播模式,音量和音质不随距离衰减,本地用户听到的声音不因距离变化。
  • +
  • (0, 0.5):弱衰减模式,音量和音质随传播仅弱衰减,可以传播得更远。
  • +
  • 0.5:(默认)模拟现实环境中的音量衰减,效果等同未设置该参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音质随传播快速衰减。
  • +
+
+
+ + enable_doppler + + +
    +
  • 此参数适用于声源高速移动的场景(例如赛车游戏)。不建议在一般音视频互动场景中使用(如语音聊天、连麦或在线 KTV)。
  • +
  • 启用此参数后,声网建议你以固定周期(如 30 毫秒)调用 方法持续更新声源与接收器之间的相对距离。
  • +
  • 若更新周期过长、不规律,或者因网络丢包或延迟导致距离信息丢失,可能造成多普勒效应表现异常或声音抖动。
  • +
+
是否开启多普勒效应。当声源与接收器之间存在相对位移时,接收器所听到的音调会发生变化。 +
    +
  • :开启多普勒效应。
  • +
  • :(默认)关闭多普勒效应。
  • +
+
+
+ + speaker_azimuth + 远端用户或媒体播放器相对于本地用户的方位角,单位为度,取值范围为 [0, 360]。具体取值如下: +
    +
  • 0:(默认)表示正前方。
  • +
  • 90:表示正左方。
  • +
  • 180:表示正后方。
  • +
  • 270:表示正右方。
  • +
  • 360:表示正前方。
  • +
+
+
+ + speaker_elevation + 远端用户或媒体播放器相对于本地用户的仰角,单位为度,取值范围为 [-90, 90]。具体取值如下: +
    +
  • 0:(默认)表示水平面无旋转。
  • +
  • -90:表示水平面向下旋转 90 度。
  • +
  • 90:表示水平面向上旋转 90 度。
  • +
+
+
+ + speaker_distance + 远端用户或媒体播放器相对于本地用户的距离,单位为米,取值范围为 [1, 50]。默认值为 1 米。 + + + speaker_orientation + 远端用户或媒体播放器相对于本地用户的朝向角,单位为度,取值范围为 [0, 180]。具体取值如下: +
    +
  • 0:(默认)表示声源与听者朝向一致。
  • +
  • 180:表示声源与听者相对而立。
  • +
+
+
+ + enable_blur + 是否开启音频模糊效果: +
    +
  • :开启音频模糊。
  • +
  • :(默认)关闭音频模糊。
  • +
+
+
+ + enable_air_absorb + + 请确保 speaker_attenuation 的值不为 0,否则该设置不生效。是否开启空气吸收效果,即模拟声音在空气中传播时的衰减效果。在一定传播距离下,高频声音衰减较快,低频声音衰减较慢: +
    +
  • :(默认)开启空气吸收。
  • +
  • :关闭空气吸收。
  • +
+
+
+ + speaker_attenuation + + 需同时开启 enable_air_absorb远端用户或媒体播放器的声音衰减系数,取值范围为 [0, 1]。具体取值如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + enable_doppler + + +
    +
  • 该参数适用于声源高速移动的场景(例如赛车游戏)。不推荐在常规音视频互动场景中使用(例如语音聊天、连麦或在线 KTV)。
  • +
  • 启用该参数后,建议设置固定周期(如 30 毫秒),并持续调用 updatePlayerPositionInfoupdateSelfPositionupdateRemotePosition 方法更新声源与接收者之间的相对距离。
  • +
  • 以下因素可能导致多普勒效应不可预测或声音抖动:更新周期过长、更新周期不规律,或因网络丢包或延迟导致距离信息丢失。
  • +
+
是否开启多普勒效应:当声源与接收者之间存在相对位移时,接收者听到的音调会发生变化。 +
    +
  • :开启多普勒效应。
  • +
  • :(默认)关闭多普勒效应。
  • +
+
+
+ + speaker_azimuth + 远端用户或媒体播放器相对于本地用户的方位角,单位为度,取值范围为 [0, 360]。具体取值如下: +
    +
  • 0:(默认)表示正前方。
  • +
  • 90:表示正左方。
  • +
  • 180:表示正后方。
  • +
  • 270:表示正右方。
  • +
  • 360:表示正前方。
  • +
+
+
+ + speaker_elevation + 远端用户或媒体播放器相对于本地用户的仰角,单位为度,取值范围为 [-90, 90]。具体取值如下: +
    +
  • 0:(默认)表示水平面无旋转。
  • +
  • -90:表示水平面向下旋转 90 度。
  • +
  • 90:表示水平面向上旋转 90 度。
  • +
+
+
+ + speaker_distance + 远端用户或媒体播放器相对于本地用户的距离,单位为米,取值范围为 [1, 50]。默认值为 1 米。 + + + speaker_orientation + 远端用户或媒体播放器相对于本地用户的朝向角,单位为度,取值范围为 [0, 180]。具体取值如下: +
    +
  • 0:(默认)表示声源与听者朝向一致。
  • +
  • 180:表示声源与听者相对而立。
  • +
+
+
+ + enable_blur + 是否开启音频模糊效果: +
    +
  • :开启音频模糊。
  • +
  • :(默认)关闭音频模糊。
  • +
+
+
+ + enable_air_absorb + + 请确保 speaker_attenuation 的值不为 0,否则该设置不生效。是否开启空气吸收效果,即模拟声音在空气中传播时的衰减效果。在一定传播距离下,高频声音衰减较快,低频声音衰减较慢: +
    +
  • :(默认)开启空气吸收。
  • +
  • :关闭空气吸收。
  • +
+
+
+ + speaker_attenuation + + 需同时开启 enable_air_absorb远端用户或媒体播放器的声音衰减系数,取值范围为 [0, 1]。具体取值如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离比真实环境更远。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减,等效于未设置 speaker_attenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + enable_doppler + + +
    +
  • 该参数适用于声源高速移动的场景(例如赛车游戏)。不推荐在常规音视频互动场景中使用(例如语音聊天、连麦或在线 KTV)。
  • +
  • 启用该参数后,建议设置固定周期(如 30 毫秒),并持续调用 updatePlayerPositionInfoupdateSelfPositionupdateRemotePosition 方法更新声源与接收者之间的相对距离。
  • +
  • 以下因素可能导致多普勒效应不可预测或声音抖动:更新周期过长、更新周期不规律,或因网络丢包或延迟导致距离信息丢失。
  • +
+
是否开启多普勒效应:当声源与接收者之间存在相对位移时,接收者听到的音调会发生变化。 +
    +
  • :开启多普勒效应。
  • +
  • :(默认)关闭多普勒效应。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_spatialaudiozone.dita b/dita/RTC-AIDOC/API/class_spatialaudiozone.dita new file mode 100644 index 00000000000..78b133ae448 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_spatialaudiozone.dita @@ -0,0 +1,233 @@ + + + + <ph keyref="SpatialAudioZone"/> + 用于配置隔音区域。用于设置隔音区域。用于设置隔音区域。用于设置隔音区域。 + +
+

+ struct SpatialAudioZone { + int zoneSetId; + float position[3]; + float forward[3]; + float right[3]; + float up[3]; + float forwardLength; + float rightLength; + float upLength; + float audioAttenuation; +}; + public class SpatialAudioZone { + public int zoneSetId; + public float[] position; + public float[] forward; + public float[] right; + public float[] up; + public float forwardLength; + public float rightLength; + public float upLength; + public float audioAttenuation; +} + __attribute__((visibility("default"))) @interface AgoraSpatialAudioZone : NSObject +@property(assign, nonatomic) NSInteger zoneSetId; +@property(nonatomic) simd_float3 position; +@property(nonatomic) simd_float3 forward; +@property(nonatomic) simd_float3 right; +@property(nonatomic) simd_float3 up; +@property(assign, nonatomic) float forwardLength; +@property(assign, nonatomic) float rightLength; +@property(assign, nonatomic) float upLength; +@property(assign, nonatomic) float audioAttenuation; +@end + __attribute__((visibility("default"))) @interface AgoraSpatialAudioZone : NSObject +@property(assign, nonatomic) NSInteger zoneSetId; +@property(nonatomic) simd_float3 position; +@property(nonatomic) simd_float3 forward; +@property(nonatomic) simd_float3 right; +@property(nonatomic) simd_float3 up; +@property(assign, nonatomic) float forwardLength; +@property(assign, nonatomic) float rightLength; +@property(assign, nonatomic) float upLength; +@property(assign, nonatomic) float audioAttenuation; +@end +

+
+
+ 属性 + + + zoneSetId + 隔音区域的 ID。 + + + position + 隔音区域的空间中心点。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forward + position 开始的前向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + right + position 开始的右向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + up + position 开始的上向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forwardLength + 将整个隔音区域视为一个立方体,该参数表示前向边的长度,单位为游戏引擎的单位长度。 + + + rightLength + 将整个隔音区域视为一个立方体,该参数表示右向边的长度,单位为游戏引擎的单位长度。 + + + upLength + 将整个隔音区域视为一个立方体,该参数表示上向边的长度,单位为游戏引擎的单位长度。 + + + audioAttenuation + 当隔音区域内的用户与外部用户通信时的声音衰减系数。取值范围为 [0, 1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减,本地用户听到的音量和音色不随距离变化;
  • +
  • (0, 0.5):弱衰减模式,即音量和音色在传播过程中仅有轻微衰减,声音传播距离大于真实环境;
  • +
  • 0.5:模拟真实环境中的音量衰减效果,等效于未设置 audioAttenuation 参数;
  • +
  • (0.5, 1]:强衰减模式(默认值为 1),即音量和音色在传播过程中快速衰减。
  • +
+
+
+ + zoneSetId + 隔音区域的 ID。 + + + position + 隔音区域的空间中心点。该参数为一个长度为 3 的数组,三个值依次表示前、右、上方向上的坐标。 + + + forward + position 出发的前向单位向量。该参数为一个长度为 3 的数组,三个值依次表示前、右、上方向上的坐标。 + + + right + position 出发的右向单位向量。该参数为一个长度为 3 的数组,三个值依次表示前、右、上方向上的坐标。 + + + up + position 出发的上向单位向量。该参数为一个长度为 3 的数组,三个值依次表示前、右、上方向上的坐标。 + + + forwardLength + 将整个隔音区域视为一个立方体,该参数表示沿前向的边长,单位为游戏引擎的单位长度。 + + + rightLength + 将整个隔音区域视为一个立方体,该参数表示沿右向的边长,单位为游戏引擎的单位长度。 + + + upLength + 将整个隔音区域视为一个立方体,该参数表示沿上向的边长,单位为游戏引擎的单位长度。 + + + audioAttenuation + 当隔音区域内用户与外部用户通信时的声音衰减系数。取值范围为 [0, 1]。具体取值说明如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减,近距离和远距离听感一致。
  • +
  • (0, 0.5):弱衰减模式,即声音在传播过程中音量和音色仅略微衰减,可传播距离远于现实环境。
  • +
  • 0.5:(默认值)模拟真实环境中的音量衰减。
  • +
  • (0.5, 1]:强衰减模式,即音量和音色在传播过程中迅速衰减。
  • +
+
+
+ + zoneSetId + 隔音区域的 ID。 + + + position + 隔音区域的空间中心点。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forward + position 开始的前向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + right + position 开始的右向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + up + position 开始的上向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forwardLength + 将整个隔音区域视为一个立方体,该参数表示前向边的长度,单位为游戏引擎的单位长度。 + + + rightLength + 将整个隔音区域视为一个立方体,该参数表示右向边的长度,单位为游戏引擎的单位长度。 + + + upLength + 将整个隔音区域视为一个立方体,该参数表示上向边的长度,单位为游戏引擎的单位长度。 + + + audioAttenuation + 当隔音区域内的用户与外部用户通信时的声音衰减系数。取值范围为 [0, 1],具体如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减,本地用户听到的音量和音色始终不变。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离大于真实环境。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 audioAttenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+ + zoneSetId + 隔音区域的 ID。 + + + position + 隔音区域的空间中心点。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forward + position 开始的前向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + right + position 开始的右向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + up + position 开始的上向单位向量。该参数为长度为 3 的数组,三个值依次表示前、右、上的坐标。 + + + forwardLength + 将整个隔音区域视为一个立方体,该参数表示前向边的长度,单位为游戏引擎的单位长度。 + + + rightLength + 将整个隔音区域视为一个立方体,该参数表示右向边的长度,单位为游戏引擎的单位长度。 + + + upLength + 将整个隔音区域视为一个立方体,该参数表示上向边的长度,单位为游戏引擎的单位长度。 + + + audioAttenuation + 当隔音区域内的用户与外部用户通信时的声音衰减系数。取值范围为 [0, 1],具体如下: +
    +
  • 0:广播模式,音量和音色不随距离衰减,本地用户听到的音量和音色始终不变。
  • +
  • (0, 0.5):弱衰减模式,音量和音色在传播过程中仅有轻微衰减,声音传播距离大于真实环境。
  • +
  • 0.5:(默认)模拟真实环境中的音量衰减效果,等效于未设置 audioAttenuation 参数。
  • +
  • (0.5, 1]:强衰减模式,音量和音色在传播过程中快速衰减。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_srcinfo.dita b/dita/RTC-AIDOC/API/class_srcinfo.dita new file mode 100644 index 00000000000..97ef34ced4f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_srcinfo.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="SrcInfo"/> + 用于获取当前播放媒体资源的视频码率信息。用于获取正在播放媒体资源的视频码率信息。提供媒体资源播放时的视频码率信息。提供媒体资源播放时的视频码率信息。 + +
+

+ struct SrcInfo { + int bitrateInKbps; + const char* name; +}; + public class SrcInfo { + private int bitrateInKbps; + private String name; +} + __attribute__((visibility("default"))) @interface AgoraMediaPlayerSrcInfo : NSObject +@property(assign, nonatomic) int bitrateInKbps; +@property(copy, nonatomic) NSString *_Nullable name; +@end + __attribute__((visibility("default"))) @interface AgoraMediaPlayerSrcInfo : NSObject +@property(assign, nonatomic) int bitrateInKbps; +@property(copy, nonatomic) NSString *_Nullable name; +@end +

+
+
+ 属性 + + + bitrateInKbps + 正在播放的媒体资源的视频码率,单位为 Kbps。 + + + name + 媒体资源名称。 + + + bitrateInKbps + 正在播放的媒体资源的视频码率,单位为 Kbps。 + + + name + 媒体资源的名称。 + + + bitrateInKbps + 正在播放的媒体资源的视频码率,单位为 Kbps。 + + + name + 媒体资源的名称。 + + + bitrateInKbps + 正在播放的媒体资源的视频码率,单位为 Kbps。 + + + name + 媒体资源的名称。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_thumbimagebuffer.dita b/dita/RTC-AIDOC/API/class_thumbimagebuffer.dita new file mode 100644 index 00000000000..1f6e0bcbcb8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_thumbimagebuffer.dita @@ -0,0 +1,43 @@ + + + + <ph keyref="ThumbImageBuffer"/> + 用于设置缩略图或图标的图像内容。 + +
+

+ struct ThumbImageBuffer { + const char* buffer; + unsigned int length; + unsigned int width; + unsigned int height; +}; +

+
+
+

可在 中设置。

+ 默认图像格式为 ARGB。如果需要使用其他格式,你需要自行转换图像。 +
+
+ 属性 + + + buffer + 缩略图或图标的图像缓冲区。 + + + length + 图像缓冲区的长度,单位为字节。 + + + width + 缩略图或图标的实际宽度(单位:像素)。 + + + height + 缩略图或图标的实际高度(单位:像素)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_transcodinguser.dita b/dita/RTC-AIDOC/API/class_transcodinguser.dita new file mode 100644 index 00000000000..b23e1d9a8e8 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_transcodinguser.dita @@ -0,0 +1,268 @@ + + + + <ph keyref="TranscodingUser"/> + 用于配置每位主播的转码参数。用于设置每位主播的转码参数。每位主播的转码配置。每位主播的转码配置。 + +
+

+ struct TranscodingUser { + uid_t uid; + int x; + int y; + int width; + int height; + int zOrder; + double alpha; + int audioChannel; +}; + public static class TranscodingUser { + public int uid; + public String userId; + public int x; + public int y; + public int width; + public int height; + public int zOrder; + public float alpha; + public int audioChannel; + } + __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 + __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。 + + + x + 主播视频在输出画面中的 x 坐标(像素),以画面左上角为原点。取值范围为 [0, width],其中 width 为 中设置的宽度。 + + + y + 主播视频在输出画面中的 y 坐标(像素),以画面左上角为原点。取值范围为 [0, height],其中 height 为 中设置的高度。 + + + width + 主播视频的宽度(像素)。 + + + height + 主播视频的高度(像素)。 + + + zOrder + + +
    +
  • 如果取值小于 0 或大于 100,会返回 ERR_INVALID_ARGUMENT 错误。
  • +
  • 支持将 zOrder 设置为 0。
  • +
+
主播视频的图层索引。取值范围为 [0, 100]。 +
    +
  • 0:(默认)主播视频处于底层。
  • +
  • 100:主播视频处于顶层。
  • +
+
+
+ + alpha + 主播视频的透明度。取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + audioChannel + + 如果该值不为 0,需要使用特殊播放器。主播音频在输出音频中使用的音频声道。默认值为 0,取值范围为 [0, 5]。 +
    +
  • 0:(推荐)默认设置,最多支持双声道,取决于主播的上行音频。
  • +
  • 1:主播音频使用 FL 声道。如果主播上行使用多个声道,声网服务器会先将其混合为单声道。
  • +
  • 2:主播音频使用 FC 声道。如果主播上行使用多个声道,声网服务器会先将其混合为单声道。
  • +
  • 3:主播音频使用 FR 声道。如果主播上行使用多个声道,声网服务器会先将其混合为单声道。
  • +
  • 4:主播音频使用 BL 声道。如果主播上行使用多个声道,声网服务器会先将其混合为单声道。
  • +
  • 5:主播音频使用 BR 声道。如果主播上行使用多个声道,声网服务器会先将其混合为单声道。
  • +
  • 0xFF 或大于 5 的值:主播音频将被静音,声网服务器会移除该主播的音频。
  • +
+
+
+ + uid + 主播的用户 ID。 + + + x + 主播视频在合成画面中的 x 坐标(以画面左上角为原点,单位为像素)。取值范围为 [0, width],其中 width 为 中设置的画面宽度。 + + + y + 主播视频在合成画面中的 y 坐标(以画面左上角为原点,单位为像素)。取值范围为 [0, height],其中 height 为 中设置的画面高度。 + + + width + 主播视频的宽度(单位为像素)。 + + + height + 主播视频的高度(单位为像素)。 + + + zOrder + + +
    +
  • 如果该值小于 0 或大于 100,会返回 ERR_INVALID_ARGUMENT 错误。
  • +
  • 支持将 zOrder 设置为 0。
  • +
+
主播视频的图层顺序索引,取值范围为 [0, 100]。 +
    +
  • 0:(默认值)视频位于最底层。
  • +
  • 100:视频位于最顶层。
  • +
+
+
+ + alpha + 主播视频的透明度,取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认值)完全不透明。
  • +
+
+
+ + audioChannel + + 若该值不为 0,则需要专用播放器进行播放。主播音频在输出音频中的声道,默认值为 0,取值范围为 [0, 5]。 +
    +
  • 0:(推荐)默认设置,最多支持双声道,具体取决于主播的上行能力。
  • +
  • 1:使用 FL(前左)声道。若主播上行多路音频,声网服务器会先将其混为单声道。
  • +
  • 2:使用 FC(前中)声道。若主播上行多路音频,声网服务器会先将其混为单声道。
  • +
  • 3:使用 FR(前右)声道。若主播上行多路音频,声网服务器会先将其混为单声道。
  • +
  • 4:使用 BL(后左)声道。若主播上行多路音频,声网服务器会先将其混为单声道。
  • +
  • 5:使用 BR(后右)声道。若主播上行多路音频,声网服务器会先将其混为单声道。
  • +
  • 0xFF 或大于 5:静音主播音频,声网服务器会移除该主播的音频。
  • +
+
+
+ + uid + 主播的用户 ID。 + + + rect + 主播视频在输出画面中的位置和大小。 + + + zOrder + + +
    +
  • 如果取值小于 0 或大于 100,会返回 AgoraErrorCodeInvalidArgument 错误。
  • +
  • 支持将 zOrder 设置为 0。
  • +
+
主播视频的图层索引,取值范围为 [0, 100]。 +
    +
  • 0:(默认)主播视频处于底层。
  • +
  • 100:主播视频处于顶层。
  • +
+
+
+ + alpha + 主播视频的透明度,取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + audioChannel + + 如果该值不为 0,需要使用特殊播放器。主播音频在输出音频中使用的音频通道。默认值为 0,取值范围为 [0, 5]。 +
    +
  • 0:(推荐)默认设置,最多支持双通道,取决于主播的上行音频。
  • +
  • 1:使用 FL 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 2:使用 FC 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 3:使用 FR 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 4:使用 BL 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 5:使用 BR 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 0xFF 或大于 5 的值:静音该主播音频,声网服务器会移除该主播音频。
  • +
+
+
+ + uid + 主播的用户 ID。 + + + rect + 主播视频在输出画面中的位置和大小。 + + + zOrder + + +
    +
  • 如果取值小于 0 或大于 100,会返回 AgoraErrorCodeInvalidArgument 错误。
  • +
  • 支持将 zOrder 设置为 0。
  • +
+
主播视频的图层索引,取值范围为 [0, 100]。 +
    +
  • 0:(默认)主播视频处于底层。
  • +
  • 100:主播视频处于顶层。
  • +
+
+
+ + alpha + 主播视频的透明度,取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:(默认)不透明。
  • +
+
+
+ + audioChannel + + 如果该值不为 0,需要使用特殊播放器。主播音频在输出音频中使用的音频通道。默认值为 0,取值范围为 [0, 5]。 +
    +
  • 0:(推荐)默认设置,最多支持双通道,取决于主播的上行音频。
  • +
  • 1:使用 FL 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 2:使用 FC 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 3:使用 FR 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 4:使用 BL 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 5:使用 BR 音频通道,若主播上行使用多通道,声网服务器会先混合为单声道。
  • +
  • 0xFF 或大于 5 的值:静音该主播音频,声网服务器会移除该主播音频。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_transcodingvideostream.dita b/dita/RTC-AIDOC/API/class_transcodingvideostream.dita new file mode 100644 index 00000000000..ac9c2708c7c --- /dev/null +++ b/dita/RTC-AIDOC/API/class_transcodingvideostream.dita @@ -0,0 +1,296 @@ + + + + <ph keyref="TranscodingVideoStream"/> + 用于设置本地合成画面的视频流。用于配置本地合图的视频流。本地合图的视频流配置。本地合图的视频流配置。 + +
+

+ struct TranscodingVideoStream { + VIDEO_SOURCE_TYPE sourceType; + uid_t remoteUserUid; + const char* imageUrl; + int mediaPlayerId; + int x; + int y; + int width; + int height; + int zOrder; + double alpha; + bool mirror; +}; + public static class TranscodingVideoStream { + public int remoteUserUid; + public Constants.VideoSourceType sourceType; + public String imageUrl; + public int mediaPlayerId; + public int x; + public int y; + public int width; + public int height; + public int zOrder; + public double alpha; + public boolean mirror; + } + __attribute__((visibility("default"))) @interface AgoraTranscodingVideoStream: NSObject +@property (assign, nonatomic) NSUInteger remoteUserUid; +@property (assign, nonatomic) AgoraVideoSourceType sourceType; +@property (copy, nonatomic) NSString * _Nullable imageUrl; +@property(assign, nonatomic) NSUInteger mediaPlayerId; +@property (assign, nonatomic) CGRect rect; +@property (assign, nonatomic) NSInteger zOrder; +@property(assign, nonatomic) double alpha; +@property(assign, nonatomic) BOOL mirror; +@end + __attribute__((visibility("default"))) @interface AgoraTranscodingVideoStream: NSObject +@property (assign, nonatomic) NSUInteger remoteUserUid; +@property (assign, nonatomic) AgoraVideoSourceType sourceType; +@property (copy, nonatomic) NSString * _Nullable imageUrl; +@property(assign, nonatomic) NSUInteger mediaPlayerId; +@property (assign, nonatomic) CGRect rect; +@property (assign, nonatomic) NSInteger zOrder; +@property(assign, nonatomic) double alpha; +@property(assign, nonatomic) BOOL mirror; +@end +

+
+
+

用于配置本地合图中各个视频流的位置、尺寸、图层等信息。

+
+
+ 属性 + + + sourceType + 视频源类型。详见 + + + remoteUserUid + 远端用户 ID。 + 仅当视频源类型为 VIDEO_SOURCE_REMOTE 时使用该参数。 + + + + imageUrl + 本地图像的文件路径,例如:Windows: C:\Users\{username}\Pictures\image.png。 + 仅当视频源类型为图像时使用该参数。 + + + + mediaPlayerId + 媒体播放器 ID。 + 仅当视频源类型为 VIDEO_SOURCE_MEDIA_PLAYER 时使用该参数。 + + + + x + 视频左上角相对于画布原点(画布左上角)的横向偏移。 + + + y + 视频左上角相对于画布原点(画布左上角)的纵向偏移。 + + + width + 视频在画布上的宽度(像素)。 + + + height + 视频在画布上的高度(像素)。 + + + zOrder + 视频图层的层级,取值范围为 [0, 100]。 +
    +
  • 0:(默认)图层位于最底层。
  • +
  • 100:图层位于最顶层。
  • +
+
+
+ + alpha + 视频的透明度,取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:完全不透明。
  • +
+
+
+ + mirror + + 该参数仅对摄像头类型的视频源生效。是否对视频进行镜像处理。 +
    +
  • :镜像视频。
  • +
  • :(默认)不镜像视频。
  • +
+
+
+ + remoteUserUid + 远端用户 ID。 + 仅当 sourceType 设置为 VIDEO_SOURCE_REMOTE 进行本地合图时使用该参数。 + + + + sourceType + 视频源类型。详见 + + + imageUrl + 本地图片的文件路径,例如:Android: /storage/emulated/0/Pictures/image.png。 + 仅当 sourceType 设置为图片时使用该参数进行本地合图。 + + + + mediaPlayerId + 媒体播放器 ID。 + 仅当 sourceType 设置为 VIDEO_SOURCE_MEDIA_PLAYER 时使用该参数。 + + + + x + 视频左上角相对画布原点(左上角)的横向偏移。 + + + y + 视频左上角相对画布原点(左上角)的纵向偏移。 + + + width + 视频在画布上的宽度(像素)。 + + + height + 视频在画布上的高度(像素)。 + + + zOrder + 视频所属的图层编号,取值范围为 [0, 100]。 +
    +
  • 0:(默认)图层位于底部。
  • +
  • 100:图层位于顶部。
  • +
+
+
+ + alpha + 视频的透明度,取值范围为 [0.0, 1.0]。 +
    +
  • 0.0:完全透明。
  • +
  • 1.0:完全不透明。
  • +
+
+
+ + mirror + + 该参数仅对摄像头类型的视频源生效。是否对视频进行镜像处理。 +
    +
  • :镜像视频。
  • +
  • :(默认)不镜像。
  • +
+
+
+ + remoteUserUid + 远端用户的用户 ID。 + 仅当视频源类型为 AgoraVideoSourceTypeRemote 且用于本地合图时使用该参数。 + + + + sourceType + 本地合图的视频源类型。详见 + + + imageUrl + 本地图像的文件路径。例如:iOS:/var/mobile/Containers/Data/Application/<APP-UUID>/Documents/image.png,macOS:~/Pictures/image.png。 + 仅当视频源类型为图像且用于本地合图时使用该参数。 + + + + mediaPlayerId + 媒体播放器 ID。 + 仅当你将 sourceType 设置为 AgoraVideoSourceTypeMediaPlayer 时使用该参数。 + + + + rect + 本地合图中视频相对于画布原点(左上角)的位置和大小。 + + + zOrder + 本地合图中视频所属图层的层级,取值范围为 [0, 100]。 +
    +
  • 0:(默认)图层位于底部。
  • +
  • 100:图层位于顶部。
  • +
+
+
+ + alpha + 本地合图中视频的透明度,取值范围为 [0.0, 1.0]。0.0 表示完全透明,1.0 表示不透明。 + + + mirror + + 该参数仅对摄像头类型的视频源生效。是否镜像本地合图中的视频。 +
    +
  • :镜像视频。
  • +
  • :(默认)不镜像视频。
  • +
+
+
+ + remoteUserUid + 远端用户的用户 ID。 + 仅当视频源类型为 AgoraVideoSourceTypeRemote 且用于本地合图时使用该参数。 + + + + sourceType + 本地合图的视频源类型。详见 + + + imageUrl + 本地图像的文件路径。例如:iOS:/var/mobile/Containers/Data/Application/<APP-UUID>/Documents/image.png,macOS:~/Pictures/image.png。 + 仅当视频源类型为图像且用于本地合图时使用该参数。 + + + + mediaPlayerId + 媒体播放器 ID。 + 仅当你将 sourceType 设置为 AgoraVideoSourceTypeMediaPlayer 时使用该参数。 + + + + rect + 本地合图中视频相对于画布原点(左上角)的位置和大小。 + + + zOrder + 本地合图中视频所属图层的层级,取值范围为 [0, 100]。 +
    +
  • 0:(默认)图层位于底部。
  • +
  • 100:图层位于顶部。
  • +
+
+
+ + alpha + 本地合图中视频的透明度,取值范围为 [0.0, 1.0]。0.0 表示完全透明,1.0 表示不透明。 + + + mirror + + 该参数仅对摄像头类型的视频源生效。是否镜像本地合图中的视频。 +
    +
  • :镜像视频。
  • +
  • :(默认)不镜像视频。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_uplinknetworkinfo.dita b/dita/RTC-AIDOC/API/class_uplinknetworkinfo.dita new file mode 100644 index 00000000000..babe2f3b224 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_uplinknetworkinfo.dita @@ -0,0 +1,48 @@ + + + + <ph keyref="UplinkNetworkInfo"/> + 上行网络信息结构体。上行网络信息。上行网络信息。上行网络信息。 + +
+

+ struct UplinkNetworkInfo { + int video_encoder_target_bitrate_bps; + bool operator==(const UplinkNetworkInfo& rhs) const { + return (video_encoder_target_bitrate_bps == rhs.video_encoder_target_bitrate_bps); + } +}; + public static class UplinkNetworkInfo { + public int video_encoder_target_bitrate_bps; +}; + __attribute__((visibility("default"))) @interface AgoraUplinkNetworkInfo : NSObject +@property(nonatomic, assign) int videoEncoderTargetBitrateBps; +@end + __attribute__((visibility("default"))) @interface AgoraUplinkNetworkInfo : NSObject +@property(nonatomic, assign) int videoEncoderTargetBitrateBps; +@end +

+
+
+ 属性 + + + video_encoder_target_bitrate_bps + 目标视频编码器码率,单位为 bps。 + + + video_encoder_target_bitrate_bps + 目标视频编码器码率,单位为 bps。 + + + videoEncoderTargetBitrateBps + 目标视频编码器码率(bps)。 + + + videoEncoderTargetBitrateBps + 目标视频编码器码率(bps)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_useraudiospectruminfo.dita b/dita/RTC-AIDOC/API/class_useraudiospectruminfo.dita new file mode 100644 index 00000000000..83b64275bb1 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_useraudiospectruminfo.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="UserAudioSpectrumInfo"/> + 用于获取远端用户的音频频谱信息。远端用户的音频频谱信息。远端用户的音频频谱信息。远端用户的音频频谱信息。 + +
+

+ struct UserAudioSpectrumInfo { + agora::rtc::uid_t uid; +}; + public class UserAudioSpectrumInfo { + private int uid; + private AudioSpectrumInfo audioSpectrumInfo; +} + __attribute__((visibility("default"))) @interface AgoraAudioSpectrumInfo : NSObject +@property(nonatomic, assign) NSInteger uid; +@property(nonatomic, strong) NSArray<NSNumber *> * _Nullable audioSpectrumData; +@end + __attribute__((visibility("default"))) @interface AgoraAudioSpectrumInfo : NSObject +@property(nonatomic, assign) NSInteger uid; +@property(nonatomic, strong) NSArray<NSNumber *> * _Nullable audioSpectrumData; +@end +

+
+
+ 属性 + + + uid + 远端用户 ID。 + + + uid + 远端用户的用户 ID。 + + + audioSpectrumInfo + 远端用户的音频频谱信息。详见 + + + uid + 远端用户的用户 ID。 + + + audioSpectrumData + 远端用户的音频频谱信息。 + + + uid + 远端用户的用户 ID。 + + + audioSpectrumData + 远端用户的音频频谱信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_userinfo.dita b/dita/RTC-AIDOC/API/class_userinfo.dita new file mode 100644 index 00000000000..dd77db1f68f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_userinfo.dita @@ -0,0 +1,66 @@ + + + + <ph keyref="UserInfo"/> + 包含用户的基本信息。用户的基本信息。表示用户信息的类。表示用户信息的类。 + +
+

+ struct UserInfo { + util::AString userId; + bool hasAudio; + bool hasVideo; +}; + public class UserInfo { + public int uid; + public String userAccount; +} + __attribute__((visibility("default"))) @interface AgoraUserInfo: NSObject +@property(assign, nonatomic) NSUInteger uid; +@property (copy, nonatomic) NSString * _Nullable userAccount; +@end + __attribute__((visibility("default"))) @interface AgoraUserInfo: NSObject +@property(assign, nonatomic) NSUInteger uid; +@property (copy, nonatomic) NSString * _Nullable userAccount; +@end +

+
+
+ 属性 + + + uid + 用户 ID。 + + + userAccount + 用户 User Account。最大长度为 + + + uid + 用户 ID。 + + + userAccount + 用户 User Account。 + + + uid + 用户 ID。 + + + userAccount + 用户 User Account。 + + + uid + 用户 ID。 + + + userAccount + 用户 User Account。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videocanvas.dita b/dita/RTC-AIDOC/API/class_videocanvas.dita new file mode 100644 index 00000000000..8f008437d70 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videocanvas.dita @@ -0,0 +1,401 @@ + + + + <ph keyref="VideoCanvas"/> + 用于配置视频画布的属性。用于设置视频画布的显示、渲染和布局属性。用于设置视频画布的各项属性。用于设置视频画布的各项属性。 + +
+

+ struct VideoCanvas { + uid_t uid; + uid_t subviewUid; + view_t view; + uint32_t backgroundColor; + media::base::RENDER_MODE_TYPE renderMode; + VIDEO_MIRROR_MODE_TYPE mirrorMode; + VIDEO_VIEW_SETUP_MODE setupMode; + VIDEO_SOURCE_TYPE sourceType; + int mediaPlayerId; + Rectangle cropArea; + bool enableAlphaMask; + media::base::VIDEO_MODULE_POSITION position; +}; + public class VideoCanvas { + public int uid; + public int subviewUid; + public static final int RENDER_MODE_HIDDEN = 1; + public static final int RENDER_MODE_FIT = 2; + public static final int RENDER_MODE_ADAPTIVE = 3; + public static final int VIEW_SETUP_MODE_REPLACE = 0; + public static final int VIEW_SETUP_MODE_ADD = 1; + public static final int VIEW_SETUP_MODE_REMOVE = 2; + public View view; + public SurfaceTexture surfaceTexture; + public int renderMode; + public int mirrorMode; + public int setupMode = VIEW_SETUP_MODE_REPLACE; + public int sourceType; + public int mediaPlayerId; + public Rect rect; + public boolean enableAlphaMask; + public int backgroundColor; + public Constants.VideoModulePosition position = Constants.VideoModulePosition.VIDEO_MODULE_POSITION_POST_CAPTURER; +} + __attribute__((visibility("default"))) @interface AgoraRtcVideoCanvas : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger subviewUid; +@property(strong, nonatomic) VIEW_CLASS *_Nullable view; +@property(assign, nonatomic) AgoraVideoRenderMode renderMode; +@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; +@property(assign, nonatomic) AgoraVideoViewSetupMode setupMode; +@property(nonatomic, assign) AgoraVideoSourceType sourceType; +@property(nonatomic, assign) int mediaPlayerId; +@property(assign, nonatomic) CGRect cropArea; +@property(assign, nonatomic) UInt32 backgroundColor; +@property(assign, nonatomic) BOOL enableAlphaMask; +@property(assign, nonatomic) AgoraVideoModulePosition position; +@end + __attribute__((visibility("default"))) @interface AgoraRtcVideoCanvas : NSObject +@property(assign, nonatomic) NSUInteger uid; +@property(assign, nonatomic) NSUInteger subviewUid; +@property(strong, nonatomic) VIEW_CLASS *_Nullable view; +@property(assign, nonatomic) AgoraVideoRenderMode renderMode; +@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; +@property(assign, nonatomic) AgoraVideoViewSetupMode setupMode; +@property(nonatomic, assign) AgoraVideoSourceType sourceType; +@property(nonatomic, assign) int mediaPlayerId; +@property(assign, nonatomic) CGRect cropArea; +@property(assign, nonatomic) UInt32 backgroundColor; +@property(assign, nonatomic) BOOL enableAlphaMask; +@property(assign, nonatomic) AgoraVideoModulePosition position; +@end +

+
+
+ 属性 + + + uid + 发布视频源的用户 ID。 + + + subviewUid + 在视频合流中发布特定子视频流的用户 ID。 + + + view + 视频显示窗口。 + 在一个 中,只能设置 viewsurfaceTexture 其中之一。如果两者都设置,仅 view 的设置生效。 + + + + backgroundColor + 视频画布的背景颜色,使用 RGBA 格式。默认值为 0x00000000,表示黑色。 + + + renderMode + 视频的渲染模式。详见 + + + mirrorMode + 视图的镜像模式。详见 。 + +
    +
  • 本地视频视图的镜像模式:使用前置摄像头时,SDK 默认开启镜像模式;使用后置摄像头时,SDK 默认关闭镜像模式。
  • +
  • 远端用户默认关闭镜像模式。
  • +
+
+
+
+ + setupMode + 视图的设置模式。详见 + + + sourceType + 视频源的类型。详见 + + + mediaPlayerId + 媒体播放器的 ID。可通过调用 获取设备 ID。 + + + cropArea + 视频帧的显示区域。widthheight 表示该区域的视频像素宽度和高度。默认值为 (即 widthheight 为 0),表示显示视频帧的实际分辨率。详见 + + + enableAlphaMask + + +
    +
  • 仅当发送端开启 Alpha 通道传输时,接收端才能渲染 Alpha 通道信息。
  • +
  • 如需开启 Alpha 通道传输,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
+
是否启用 Alpha 蒙版渲染: +
    +
  • :启用 Alpha 蒙版渲染。
  • +
  • :(默认)关闭 Alpha 蒙版渲染。
  • +
Alpha 蒙版渲染可创建具有透明效果的图像,并从视频中提取人像。结合其他方法使用时,可实现画中画、人像水印等效果。
+
+ + position + 视频帧在视频链路中的观测位置。详见 + + + uid + 发布视频源的用户 ID。 + + + subviewUid + 在合流视频流中,发布特定子视频流的用户 ID。 + + + RENDER_MODE_HIDDEN + 隐藏模式:按比例缩放视频,直到视窗被填满(可能会裁剪视频的一部分)。 + + + RENDER_MODE_FIT + 适应模式:按比例缩放视频,直到某一维度匹配视窗边界,未填满区域用黑色填充。 + + + RENDER_MODE_ADAPTIVE + 自适应模式。该模式已废弃,声网不推荐使用。 + + + VIEW_SETUP_MODE_REPLACE + 设置视图模式为替换模式,默认值。 + + + VIEW_SETUP_MODE_ADD + 设置视图模式为新增视图。 + + + VIEW_SETUP_MODE_REMOVE + 设置视图模式为移除视图。 + + + view + 用于显示视频的视图窗口,必须为 SurfaceViewTextureView 类型。 + 在一个 中只能设置 viewsurfaceTexture,若同时设置,仅 view 生效。 + + + + surfaceTexture + 提供视频图像的容器。 + 在一个 中只能设置 viewsurfaceTexture,若同时设置,仅 view 生效。 + + + + renderMode + 渲染模式: +
    +
  • RENDER_MODE_HIDDEN (1):隐藏模式。
  • +
  • RENDER_MODE_FIT (2):适应模式。
  • +
  • RENDER_MODE_ADAPTIVE (3):自适应模式(已废弃,声网不推荐使用)。
  • +
+
+
+ + mirrorMode + + +
    +
  • 本地视频视图镜像模式:使用前置摄像头时默认开启,后置摄像头时默认关闭。
  • +
  • 远端用户默认关闭镜像模式。
  • +
+
镜像模式: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):SDK 自动判断是否开启镜像模式。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):开启本地视图镜像模式。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭本地视图镜像模式。
  • +
+
+
+ + setupMode + + 不再使用视图时建议将 setupMode 设置为 VIEW_SETUP_MODE_REMOVE,以防止渲染资源泄漏。视图设置模式: +
    +
  • VIEW_SETUP_MODE_REPLACE (0):替换视图,默认值。
  • +
  • VIEW_SETUP_MODE_ADD (1):新增视图。
  • +
  • VIEW_SETUP_MODE_REMOVE (2):删除视图。
  • +
+
+
+ + sourceType + 视频源类型。详见 + + + mediaPlayerId + 媒体播放器的 ID。 + + + rect + 视频帧的显示区域。widthheight 表示该区域的视频像素宽高。默认值为 null(宽或高为 0),表示显示视频帧的实际分辨率。详见 Rect + + + enableAlphaMask + 是否启用 Alpha 遮罩渲染: +
    +
  • :启用。
  • +
  • :不启用。
  • +
该功能可实现透明图像效果,从视频中提取人像,结合其他功能可实现画中画、水印等效果。
+
+ + backgroundColor + 视频画布的背景颜色,RGBA 格式。默认值为 0x00000000,表示黑色。 + +
    +
  • 如果使用 Kotlin 开发并设置为 0xFFFFFFFF 时出现编译错误,可使用 (0xFFFFFFFF).toInt()android.graphics.Color.parseColor("#FFFFFFFF")
  • +
  • 当前使用 RGBA 格式时不支持 Alpha 通道。
  • +
+
+
+
+ + position + 视频帧在视频链路中的观察位置。详见 + + + uid + 发布视频源的用户 ID。 + + + subviewUid + 视频显示窗口的用户 ID。 + 在一个 中,只能设置 viewsurfaceTexture 其中之一。如果两者都设置,仅 view 的设置生效。 + + + + view + 视频显示窗口。 + 在一个 中,只能设置 viewsurfaceTexture 其中之一。如果两者都设置,仅 view 的设置生效。 + + + + renderMode + 视频的渲染模式,详见 + + + mirrorMode + 视图的镜像模式,详见 。 + +
    +
  • 本地视频视图的镜像模式:使用前置摄像头时,SDK 默认开启镜像模式;使用后置摄像头时,SDK 默认关闭镜像模式。
  • +
  • 远端用户默认关闭镜像模式。
  • +
+
+
+
+ + setupMode + 视图的设置模式,详见 + + + sourceType + 视频源的类型,详见 + + + mediaPlayerId + 媒体播放器的 ID。可通过调用 获取设备 ID。 + + + cropArea + (可选)视频帧的显示区域。widthheight 表示该区域的视频像素宽度和高度。默认值为 (即宽或高为 0),表示显示视频帧的实际分辨率。 + + + backgroundColor + 视频画布的背景颜色,使用 RGBA 格式。默认值为 0x00000000,表示黑色。 + + + enableAlphaMask + + +
    +
  • 接收端仅在发送端启用 Alpha 通道传输时才能渲染 Alpha 通道信息。
  • +
  • 启用 Alpha 通道传输,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
+
是否启用 Alpha 蒙版渲染: +
    +
  • :启用 Alpha 蒙版渲染。
  • +
  • :(默认)不启用 Alpha 蒙版渲染。
  • +
Alpha 蒙版渲染可创建具有透明效果的图像,并从视频中提取人像。结合其他方法使用时,可实现画中画、人像水印等效果。
+
+ + position + 视频帧在视频链路中的观测位置,详见 + + + uid + 发布视频源的用户 ID。 + + + subviewUid + 视频显示窗口的用户 ID。 + 在一个 中,只能设置 viewsurfaceTexture 其中之一。如果两者都设置,仅 view 的设置生效。 + + + + view + 视频显示窗口。 + 在一个 中,只能设置 viewsurfaceTexture 其中之一。如果两者都设置,仅 view 的设置生效。 + + + + renderMode + 视频的渲染模式,详见 + + + mirrorMode + 视图的镜像模式,详见 。 + +
    +
  • 本地视频视图的镜像模式:使用前置摄像头时,SDK 默认开启镜像模式;使用后置摄像头时,SDK 默认关闭镜像模式。
  • +
  • 远端用户默认关闭镜像模式。
  • +
+
+
+
+ + setupMode + 视图的设置模式,详见 + + + sourceType + 视频源的类型,详见 + + + mediaPlayerId + 媒体播放器的 ID。可通过调用 获取设备 ID。 + + + cropArea + (可选)视频帧的显示区域。widthheight 表示该区域的视频像素宽度和高度。默认值为 (即宽或高为 0),表示显示视频帧的实际分辨率。 + + + backgroundColor + 视频画布的背景颜色,使用 RGBA 格式。默认值为 0x00000000,表示黑色。 + + + enableAlphaMask + + +
    +
  • 接收端仅在发送端启用 Alpha 通道传输时才能渲染 Alpha 通道信息。
  • +
  • 启用 Alpha 通道传输,请[联系技术支持](https://ticket.shengwang.cn/)。
  • +
+
是否启用 Alpha 蒙版渲染: +
    +
  • :启用 Alpha 蒙版渲染。
  • +
  • :(默认)不启用 Alpha 蒙版渲染。
  • +
Alpha 蒙版渲染可创建具有透明效果的图像,并从视频中提取人像。结合其他方法使用时,可实现画中画、人像水印等效果。
+
+ + position + 视频帧在视频链路中的观测位置,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videodenoiseroptions.dita b/dita/RTC-AIDOC/API/class_videodenoiseroptions.dita new file mode 100644 index 00000000000..070946297ed --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videodenoiseroptions.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="VideoDenoiserOptions"/> + 用于配置视频降噪选项。用于设置视频降噪选项。视频降噪选项。视频降噪选项。 + +
+

+ struct VideoDenoiserOptions { + VIDEO_DENOISER_MODE mode; + VIDEO_DENOISER_LEVEL level; +}; + public class VideoDenoiserOptions { + public static final int VIDEO_DENOISER_AUTO = 0; + public static final int VIDEO_DENOISER_MANUAL = 1; + public static final int VIDEO_DENOISER_LEVEL_HIGH_QUALITY = 0; + public static final int VIDEO_DENOISER_LEVEL_FAST = 1; + public int denoiserMode; + public int denoiserLevel; +} + __attribute__((visibility("default"))) @interface AgoraVideoDenoiserOptions : NSObject +@property(nonatomic, assign) AgoraVideoDenoiserMode mode; +@property(nonatomic, assign) AgoraVideoDenoiserLevel level; +@end + __attribute__((visibility("default"))) @interface AgoraVideoDenoiserOptions : NSObject +@property(nonatomic, assign) AgoraVideoDenoiserMode mode; +@property(nonatomic, assign) AgoraVideoDenoiserLevel level; +@end +

+
+
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v3.6.2 版本新增。
+
+
+
+
+ 属性 + + + mode + 视频降噪模式。详见 + + + level + 视频降噪等级。详见 + + + VIDEO_DENOISER_AUTO + 0:(默认)自动模式。SDK 会根据环境光线自动启用或关闭视频降噪功能。 + + + VIDEO_DENOISER_MANUAL + 1:手动模式。你需手动启用或关闭视频降噪功能。 + + + VIDEO_DENOISER_LEVEL_HIGH_QUALITY + 0:(默认)提升视频质量的降噪模式。该模式在性能消耗与降噪质量之间取得平衡,性能消耗适中,降噪速度适中,整体视频质量最佳。 + + + VIDEO_DENOISER_LEVEL_FAST + 1:提升性能效率的降噪模式。该模式优先考虑降低性能消耗而非降噪质量,性能消耗较低,降噪速度较快。为避免处理后的视频出现拖影效果(移动物体后方的残影),声网推荐在摄像头固定的情况下使用该设置。 + + + denoiserMode + 视频降噪模式。 +
    +
  • VIDEO_DENOISER_AUTO(0):(默认)自动模式。SDK 会根据环境光线自动启用或关闭视频降噪功能。
  • +
  • VIDEO_DENOISER_MANUAL(1):手动模式。你需手动启用或关闭视频降噪功能。
  • +
+
+
+ + denoiserLevel + 视频降噪等级。 +
    +
  • VIDEO_DENOISER_LEVEL_HIGH_QUALITY(0):(默认)在弱光增强过程中提升视频质量。会处理视频图像的亮度、细节和噪声,性能消耗适中,处理速度适中,整体视频质量最佳。
  • +
  • VIDEO_DENOISER_LEVEL_FAST(1):提升性能效率的降噪模式。该模式优先考虑降低性能消耗而非降噪质量,性能消耗较低,降噪速度较快。为避免处理后的视频出现拖影效果(移动物体后方的残影),声网推荐在摄像头固定的情况下使用该设置。
  • +
+
+
+ + mode + 视频降噪模式,详见 + + + level + 视频降噪等级,详见 + + + mode + 视频降噪模式,详见 + + + level + 视频降噪等级,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videodimensions.dita b/dita/RTC-AIDOC/API/class_videodimensions.dita new file mode 100644 index 00000000000..604f115d7f3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videodimensions.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="VideoDimensions"/> + 表示视频尺寸。用于设置视频的宽度和高度。 + +
+

+ struct VideoDimensions { + int width; + int height; + bool operator==(const VideoDimensions& rhs) const { + return width == rhs.width && height == rhs.height; + } +}; + static public class VideoDimensions { + public int width; + public int height; + } +

+
+
+ 属性 + + + width + 视频宽度,单位为像素。 + + + height + 视频高度,单位为像素。 + + + width + 视频的宽度,单位为像素。 + + + height + 视频的高度,单位为像素。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videoencoderconfiguration.dita b/dita/RTC-AIDOC/API/class_videoencoderconfiguration.dita new file mode 100644 index 00000000000..87f886d74fd --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videoencoderconfiguration.dita @@ -0,0 +1,368 @@ + + + + <ph keyref="VideoEncoderConfiguration"/> + 用于设置视频编码参数。用于设置视频编码器的参数。视频编码器配置。视频编码器配置。 + +
+

+ struct VideoEncoderConfiguration { + VIDEO_CODEC_TYPE codecType; + VideoDimensions dimensions; + int frameRate; + int bitrate; + int minBitrate; + ORIENTATION_MODE orientationMode; + DEGRADATION_PREFERENCE degradationPreference; + VIDEO_MIRROR_MODE_TYPE mirrorMode; + AdvanceOptions advanceOptions; +}; + public class VideoEncoderConfiguration { + public final static VideoDimensions VD_120x120 = new VideoDimensions(120, 120); + public final static VideoDimensions VD_160x120 = new VideoDimensions(160, 120); + public final static VideoDimensions VD_180x180 = new VideoDimensions(180, 180); + public final static VideoDimensions VD_240x180 = new VideoDimensions(240, 180); + public final static VideoDimensions VD_320x180 = new VideoDimensions(320, 180); + public final static VideoDimensions VD_240x240 = new VideoDimensions(240, 240); + public final static VideoDimensions VD_320x240 = new VideoDimensions(320, 240); + public final static VideoDimensions VD_424x240 = new VideoDimensions(424, 240); + public final static VideoDimensions VD_360x360 = new VideoDimensions(360, 360); + public final static VideoDimensions VD_480x360 = new VideoDimensions(480, 360); + public final static VideoDimensions VD_640x360 = new VideoDimensions(640, 360); + public final static VideoDimensions VD_480x480 = new VideoDimensions(480, 480); + public final static VideoDimensions VD_640x480 = new VideoDimensions(640, 480); + public final static VideoDimensions VD_840x480 = new VideoDimensions(840, 480); + public final static VideoDimensions VD_960x540 = new VideoDimensions(960, 540); + public final static VideoDimensions VD_960x720 = new VideoDimensions(960, 720); + public final static VideoDimensions VD_1280x720 = new VideoDimensions(1280, 720); + public final static VideoDimensions VD_1920x1080 = new VideoDimensions(1920, 1080); + public final static VideoDimensions VD_2540x1440 = new VideoDimensions(2540, 1440); + public final static VideoDimensions VD_3840x2160 = new VideoDimensions(3840, 2160); + public static final int STANDARD_BITRATE = 0; + public static final int COMPATIBLE_BITRATE = -1; + public static final int DEFAULT_MIN_BITRATE = -1; + public static final int DEFAULT_MIN_FRAMERATE = -1; + public static final int DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2; + public VideoDimensions dimensions; + public int frameRate; + public int minFrameRate; + public int bitrate; + public int minBitrate; + public ORIENTATION_MODE orientationMode; + public DEGRADATION_PREFERENCE degradationPrefer; + public MIRROR_MODE_TYPE mirrorMode; + public AdvanceOptions advanceOptions; + public VIDEO_CODEC_TYPE codecType; +} + __attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject +@property(assign, nonatomic) CGSize dimensions; +@property(assign, nonatomic) AgoraVideoCodecType codecType; +@property(assign, nonatomic) NSInteger 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; +@property (strong, nonatomic) AgoraAdvancedVideoOptions *_Nullable advancedVideoOptions; +@end + __attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject +@property(assign, nonatomic) CGSize dimensions; +@property(assign, nonatomic) AgoraVideoCodecType codecType; +@property(assign, nonatomic) NSInteger 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; +@property (strong, nonatomic) AgoraAdvancedVideoOptions *_Nullable advancedVideoOptions; +@end +

+
+
+

你可以自定义分辨率,或从预设分辨率中选择。支持设置不同的编码码率和帧率,以适配不同的频道场景类型,还可以指定视频编码方向、镜像模式和编码器优先策略等。

+
+
+ 属性 + + + codecType + 本地视频流的编解码器类型。详见 + + + dimensions + 编码后的视频尺寸(像素)。该参数以长 × 宽的格式衡量视频编码质量。默认值为 960 × 540。你可以设置自定义值。详见 + + + frameRate + 编码视频帧的帧率(fps)。默认值为 15。 + + + bitrate + 视频的编码码率(Kbps)。该参数无需设置,保持默认值 即可。SDK 会根据你设置的视频分辨率和帧率自动匹配最合适的码率。 +
    +
  • (0):推荐使用的标准码率模式。
  • +
  • (-1):自适应码率模式,通常不建议使用该值。
  • +
+
+
+ + minBitrate + 视频的最小编码码率(Kbps)。SDK 会自动调整编码码率以适应网络状况。使用高于默认值的设置会强制视频编码器输出高质量图像,但可能导致更多丢包并影响视频传输的流畅性。 + 该参数仅适用于互动直播场景。 + + + + orientationMode + 编码后的视频方向模式。详见 + + + degradationPreference + 在带宽受限的情况下的视频编码降级偏好。详见 。 + 当该参数设置为 MAINTAIN_FRAMERATE(1)或 MAINTAIN_BALANCED(2)时,orientationMode 也必须设置为 ORIENTATION_MODE_ADAPTIVE(0),否则该设置不生效。 + + + + mirrorMode + 设置本地视频流发布时的镜像模式,仅影响远端用户看到的视频。详见 。 + 默认情况下,视频不镜像。 + + + + advanceOptions + 视频编码的高级选项。详见 + + + dimensions + + 是否支持 720p 或更高分辨率取决于设备性能。如果设备无法支持 720p,帧率可能低于设定值。默认值为 960 × 540。视频分辨率。你可以自定义设置,或从以下列表中选择: +
    +
  • VD_120x120:120 × 120
  • +
  • VD_160x120:160 × 120
  • +
  • VD_180x180:180 × 180
  • +
  • VD_240x180:240 × 180
  • +
  • VD_320x180:320 × 180
  • +
  • VD_240x240:240 × 240
  • +
  • VD_320x240:320 × 240
  • +
  • VD_424x240:424 × 240
  • +
  • VD_360x360:360 × 360
  • +
  • VD_480x360:480 × 360
  • +
  • VD_640x360:640 × 360
  • +
  • VD_480x480:480 × 480
  • +
  • VD_640x480:640 × 480
  • +
  • VD_840x480:840 × 480
  • +
  • VD_960x540:960 × 540
  • +
  • VD_960x720:960 × 720
  • +
  • VD_1280x720:1280 × 720
  • +
  • VD_1920x1080:1920 × 1080
  • +
  • VD_2540x1440:2540 × 1440
  • +
  • VD_3840x2160:3840 × 2160。
  • +
详见
+
+ + frameRate + 编码视频帧的帧率(fps)。默认值为 15。详见 + + + minFrameRate + (预留参数)最小视频编码帧率(fps)。默认值为 DEFAULT_MIN_FRAMERATE(-1),即 SDK 使用最低编码帧率。 + + + bitrate + 视频编码码率(Kbps)。无需手动设置该参数,保持默认值 即可。SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。 +
    +
  • STANDARD_BITRATE (0):推荐使用的标准码率模式。
  • +
  • COMPATIBLE_BITRATE (-1):自适应码率模式。一般不建议使用该值。
  • +
+
+
+ + minBitrate + 视频的最小编码码率(Kbps)。SDK 会自动调整编码码率以适应网络状况。设置高于默认值可能会强制编码器输出高质量图像,但可能导致更高丢包率并影响传输流畅性。 + 该参数仅适用于互动直播场景。 + + + + orientationMode + 编码视频的方向模式。详见 + + + degradationPrefer + 带宽受限时的视频编码降级偏好。详见 。 + 当该参数设置为 MAINTAIN_FRAMERATE (1)MAINTAIN_BALANCED (2) 时,orientationMode 需同时设为 ORIENTATION_MODE_ADAPTIVE (0),否则该设置无效。 + + + + mirrorMode + + 默认情况下,视频无镜像效果。设置本地视频流发布时的镜像模式,仅影响远端用户看到的视频: +
    +
  • VIDEO_MIRROR_MODE_AUTO (0):SDK 决定是否启用镜像模式,默认关闭。
  • +
  • VIDEO_MIRROR_MODE_ENABLED (1):开启远端镜像。
  • +
  • VIDEO_MIRROR_MODE_DISABLED (2):关闭远端镜像。
  • +
+
+
+ + advanceOptions + 视频编码的高级选项。详见 + + + codecType + 本地视频流的编解码器类型。详见 + + + dimensions + + +
    +
  • 是否支持 720p 或更高分辨率取决于设备性能。如果设备不支持 720p,帧率将低于设置值。
  • +
  • 默认值为 960 × 540。
  • +
+
你可以自行设置分辨率,或从以下列表中选择: +
    +
  • AgoraVideoDimension120x120:120 × 120。
  • +
  • AgoraVideoDimension160x120:160 × 120。
  • +
  • AgoraVideoDimension180x180:180 × 180。
  • +
  • AgoraVideoDimension240x180:240 × 180。
  • +
  • AgoraVideoDimension320x180:320 × 180。
  • +
  • AgoraVideoDimension240x240:240 × 240。
  • +
  • AgoraVideoDimension320x240:320 × 240。
  • +
  • AgoraVideoDimension424x240:424 × 240。
  • +
  • AgoraVideoDimension360x360:360 × 360。
  • +
  • AgoraVideoDimension480x360:480 × 360。
  • +
  • AgoraVideoDimension640x360:640 × 360。
  • +
  • AgoraVideoDimension480x480:480 × 480。
  • +
  • AgoraVideoDimension640x480:640 × 480。
  • +
  • AgoraVideoDimension840x480:840 × 480。
  • +
  • AgoraVideoDimension960x540:960 × 540。
  • +
  • AgoraVideoDimension960x720:960 × 720。
  • +
  • AgoraVideoDimension1280x720:1280 × 720。
  • +
  • AgoraVideoDimension1920x1080:1920 × 1080。
  • +
  • AgoraVideoDimension2540x1440:2540 × 1440。
  • +
  • AgoraVideoDimension3840x2160:3840 × 2160。
  • +
+
+
+ + codecType + 本地视频流的编解码器类型。详见 + + + frameRate + 编码视频帧的帧率(fps)。默认值为 15。详见 + + + bitrate + 视频的编码码率(Kbps)。无需手动设置该参数,保持默认值 即可。SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。 +
    +
  • (0):(推荐)标准码率模式。
  • +
  • (-1):自适应码率模式,一般不建议使用该值。
  • +
+
+
+ + minBitrate + 视频的最小编码码率(Kbps)。SDK 会自动调整编码码率以适应网络状况。设置高于默认值会强制编码器输出高质量图像,但可能导致更多丢包,影响视频流畅性。 + 该参数仅适用于互动直播场景。 + + + + orientationMode + 编码视频的方向模式。详见 + + + mirrorMode + 设置本地视频流发布时的镜像模式,仅影响远端用户看到的视频。详见 。 + 默认情况下,视频不镜像。 + + + + degradationPreference + 在带宽受限的情况下的视频降级偏好。详见 。 + 当该参数设置为 AgoraDegradationMaintainFramerate(1)或 AgoraDegradationBalanced(2)时,orientationMode 需同时设置为 AgoraVideoOutputOrientationModeAdaptative(0),否则设置不生效。 + + + + advancedVideoOptions + 视频编码的高级选项。详见 + + + dimensions + + +
    +
  • 是否支持 720p 或更高分辨率取决于设备性能。如果设备不支持 720p,帧率将低于设置值。
  • +
  • 默认值为 960 × 540。
  • +
+
你可以自行设置分辨率,或从以下列表中选择: +
    +
  • AgoraVideoDimension120x120:120 × 120。
  • +
  • AgoraVideoDimension160x120:160 × 120。
  • +
  • AgoraVideoDimension180x180:180 × 180。
  • +
  • AgoraVideoDimension240x180:240 × 180。
  • +
  • AgoraVideoDimension320x180:320 × 180。
  • +
  • AgoraVideoDimension240x240:240 × 240。
  • +
  • AgoraVideoDimension320x240:320 × 240。
  • +
  • AgoraVideoDimension424x240:424 × 240。
  • +
  • AgoraVideoDimension360x360:360 × 360。
  • +
  • AgoraVideoDimension480x360:480 × 360。
  • +
  • AgoraVideoDimension640x360:640 × 360。
  • +
  • AgoraVideoDimension480x480:480 × 480。
  • +
  • AgoraVideoDimension640x480:640 × 480。
  • +
  • AgoraVideoDimension840x480:840 × 480。
  • +
  • AgoraVideoDimension960x540:960 × 540。
  • +
  • AgoraVideoDimension960x720:960 × 720。
  • +
  • AgoraVideoDimension1280x720:1280 × 720。
  • +
  • AgoraVideoDimension1920x1080:1920 × 1080。
  • +
  • AgoraVideoDimension2540x1440:2540 × 1440。
  • +
  • AgoraVideoDimension3840x2160:3840 × 2160。
  • +
+
+
+ + codecType + 本地视频流的编解码器类型。详见 + + + frameRate + 编码视频帧的帧率(fps)。默认值为 15。详见 + + + bitrate + 视频的编码码率(Kbps)。无需手动设置该参数,保持默认值 即可。SDK 会根据设置的视频分辨率和帧率自动匹配最合适的码率。 +
    +
  • (0):(推荐)标准码率模式。
  • +
  • (-1):自适应码率模式,一般不建议使用该值。
  • +
+
+
+ + minBitrate + 视频的最小编码码率(Kbps)。SDK 会自动调整编码码率以适应网络状况。设置高于默认值会强制编码器输出高质量图像,但可能导致更多丢包,影响视频流畅性。 + 该参数仅适用于互动直播场景。 + + + + orientationMode + 编码视频的方向模式。详见 + + + mirrorMode + 设置本地视频流发布时的镜像模式,仅影响远端用户看到的视频。详见 。 + 默认情况下,视频不镜像。 + + + + degradationPreference + 在带宽受限的情况下的视频降级偏好。详见 。 + 当该参数设置为 AgoraDegradationMaintainFramerate(1)或 AgoraDegradationBalanced(2)时,orientationMode 需同时设置为 AgoraVideoOutputOrientationModeAdaptative(0),否则设置不生效。 + + + + advancedVideoOptions + 视频编码的高级选项。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videoformat.dita b/dita/RTC-AIDOC/API/class_videoformat.dita new file mode 100644 index 00000000000..4f21f4ae75f --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videoformat.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="VideoFormat"/> + 用于表示视频帧格式的结构体。视频帧格式设置。 + +
+

+ struct VideoFormat { + OPTIONAL_ENUM_SIZE_T{ + kMaxWidthInPixels = 3840, + kMaxHeightInPixels = 2160, + kMaxFps = 60, + }; + int width; + int height; + int fps; + bool operator<(const VideoFormat& fmt) const { + if (height != fmt.height) { + return height < fmt.height; + } else if (width != fmt.width) { + return width < fmt.width; + } else { + return fps < fmt.fps; + } + } + bool operator==(const VideoFormat& fmt) const { + return width == fmt.width && height == fmt.height && fps == fmt.fps; + } + bool operator!=(const VideoFormat& fmt) const { return !operator==(fmt); } +}; + static public class CaptureFormat { + public int width; + public int height; + public int fps; +} +

+
+
+ 属性 + + + width + 视频帧的宽度(单位:像素)。默认值为 960。 + + + height + 视频帧的高度(单位:像素)。默认值为 540。 + + + fps + 视频帧率(单位:帧每秒)。默认值为 15。 + + + width + 视频帧的宽度(像素)。默认值为 960。 + + + height + 视频帧的高度(像素)。默认值为 540。 + + + fps + 视频帧率(帧每秒)。默认值为 15。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videoframe.dita b/dita/RTC-AIDOC/API/class_videoframe.dita new file mode 100644 index 00000000000..297ce88f54b --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videoframe.dita @@ -0,0 +1,330 @@ + + + + <ph keyref="VideoFrame"/> + 用于配置视频帧。视频帧的配置信息。视频帧的配置信息。 + +
+

+ struct VideoFrame { + VIDEO_PIXEL_FORMAT type; + int width; + int height; + int yStride; + int uStride; + int vStride; + uint8_t* yBuffer; + uint8_t* uBuffer; + uint8_t* vBuffer; + int rotation; + int64_t renderTimeMs; + int avsync_type; + uint8_t* metadata_buffer; + int metadata_size; + void* sharedContext; + int textureId; + void* d3d11Texture2d; + float matrix[16]; + uint8_t* alphaBuffer; + ALPHA_STITCH_MODE alphaStitchMode; + void* pixelBuffer; + IVideoFrameMetaInfo* metaInfo; + Hdr10MetadataInfo hdr10MetadataInfo; + ColorSpace colorSpace; +}; + @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; +@property (nonatomic, assign) uint8_t* _Nullable alphaBuffer; +@property (nonatomic, assign) AgoraAlphaStitchMode alphaStitchMode; +@property(nonatomic, strong) NSDictionary *_Nonnull metaInfo; +@property(nonatomic, strong) AgoraColorSpace* _Nullable colorSpace; +@end + @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; +@property (nonatomic, assign) uint8_t* _Nullable alphaBuffer; +@property (nonatomic, assign) AgoraAlphaStitchMode alphaStitchMode; +@property(nonatomic, strong) NSDictionary *_Nonnull metaInfo; +@property(nonatomic, strong) AgoraColorSpace* _Nullable colorSpace; +@end +

+
+
+

注意,缓冲区是指向指针的指针。该接口无法修改缓冲区的指针,但可以修改缓冲区的内容。

+

缓冲区提供的是指针的指针。该接口无法修改缓冲区的指针,但可以修改缓冲区的内容。

+

缓冲区提供的是指针的指针。该接口无法修改缓冲区的指针,但可以修改缓冲区的内容。

+
+
+ 属性 + + + type + 像素格式。详见 + + + width + 视频帧的宽度,单位为像素。 + + + height + 视频帧的高度,单位为像素。 + + + yStride + 对于 YUV 数据,为 Y 缓冲区的每行跨度;对于 RGBA 数据,为总数据长度。 + 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。 + + + + uStride + 对于 YUV 数据,为 U 缓冲区的每行跨度;对于 RGBA 数据,该值为 0。 + 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。 + + + + vStride + 对于 YUV 数据,为 V 缓冲区的每行跨度;对于 RGBA 数据,该值为 0。 + 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。 + + + + yBuffer + 输出参数,对于 YUV 数据,为 Y 缓冲区的指针;对于 RGBA 数据,为数据缓冲区。 + + + uBuffer + 输出参数,对于 YUV 数据,为 U 缓冲区的指针;对于 RGBA 数据,该值为 0。 + + + vBuffer + 输出参数,对于 YUV 数据,为 V 缓冲区的指针;对于 RGBA 数据,该值为 0。 + + + rotation + 视频帧在渲染前的顺时针旋转角度。支持的取值包括 0、90、180 和 270 度。 + + + renderTimeMs + 视频帧渲染时的 Unix 时间戳(毫秒)。该时间戳可用于指导视频帧的渲染。 + + + avsync_type + 保留参数,供未来使用。 + + + metadata_buffer + 输出参数,仅适用于 Texture 格式的视频数据。元数据缓冲区,默认值为 + + + metadata_size + 仅适用于 Texture 格式的视频数据。元数据大小,默认值为 0。 + + + sharedContext + 仅适用于 Texture 格式的视频数据。EGL 上下文。 + + + textureId + 仅适用于 Texture 格式的视频数据。纹理 ID。 + + + d3d11Texture2d + 仅适用于 Windows Texture 格式的视频数据。指向 ID3D11Texture2D 类型对象的指针,该对象由视频帧使用。 + + + matrix + 仅适用于 Texture 格式的视频数据。输入的 4×4 变换矩阵,典型值为单位矩阵。 + + + alphaBuffer + 输出参数,使用人像分割算法生成的 Alpha 通道数据。该数据与视频帧大小一致,每个像素值范围为 [0, 255],其中 0 表示背景,255 表示前景(人像)。通过设置该参数,可以将视频背景渲染为透明、纯色、图像、视频等多种效果。 + 请确保 alphaBuffer 的大小与视频帧(width × height)完全一致,否则可能导致应用崩溃。 + + + + alphaStitchMode + 当视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置。详见 + + + pixelBuffer + 仅适用于 iOS 和 macOS。CVPixelBufferRef 类型。 + + + metaInfo + 输出参数,视频帧中的元信息。 + + + hdr10MetadataInfo + HDR 视频数据的元数据信息。 + + + colorSpace + 视频帧的色彩空间属性,默认采用 Full Range 和 BT.709 标准配置。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + + + 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 数据,该值为 0。 + + + vBuffer + 对于 YUV 数据,为 V 缓冲区的指针;对于 RGBA 数据,该值为 0。 + + + rotation + 视频帧在渲染前的顺时针旋转角度。支持的值包括 0、90、180 和 270 度。 + + + renderTimeMs + 视频帧渲染时的 Unix 时间戳(毫秒)。该时间戳可用于指导视频帧的渲染。 + + + avSyncType + 预留参数 + + + pixelBuffer + 将数据填充到 CVPixelBuffer 中。 + + + alphaBuffer + 使用人像分割算法输出的 Alpha 通道数据。该数据与视频帧大小一致,每个像素值范围为 [0, 255],其中 0 表示背景,255 表示前景(人像)。通过设置该参数,可以将视频背景渲染为透明、纯色、图像、视频等多种效果。 + 请确保 alphaBuffer 的大小与视频帧(width × height)完全一致,否则可能导致应用崩溃。 + + + + alphaStitchMode + 当视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置。详见 + + + metaInfo + 视频帧中的元信息。如需使用该参数,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + colorSpace + 视频帧的色彩空间配置,默认采用 Full Range 和 BT.709 标准。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + + + 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 数据,该值为 0。 + + + vBuffer + 对于 YUV 数据,为 V 缓冲区的指针;对于 RGBA 数据,该值为 0。 + + + rotation + 视频帧在渲染前的顺时针旋转角度。支持的值包括 0、90、180 和 270 度。 + + + renderTimeMs + 视频帧渲染时的 Unix 时间戳(毫秒)。该时间戳可用于指导视频帧的渲染。 + + + avSyncType + 预留参数 + + + pixelBuffer + 将数据填充到 CVPixelBuffer 中。 + + + alphaBuffer + 使用人像分割算法输出的 Alpha 通道数据。该数据与视频帧大小一致,每个像素值范围为 [0, 255],其中 0 表示背景,255 表示前景(人像)。通过设置该参数,可以将视频背景渲染为透明、纯色、图像、视频等多种效果。 + 请确保 alphaBuffer 的大小与视频帧(width × height)完全一致,否则可能导致应用崩溃。 + + + + alphaStitchMode + 当视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置。详见 + + + metaInfo + 视频帧中的元信息。如需使用该参数,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + colorSpace + 视频帧的色彩空间配置,默认采用 Full Range 和 BT.709 标准。详见 [VideoColorSpace](https://developer.mozilla.org/en-US/docs/Web/API/VideoColorSpace)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videolayout.dita b/dita/RTC-AIDOC/API/class_videolayout.dita new file mode 100644 index 00000000000..95f44869c7d --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videolayout.dita @@ -0,0 +1,138 @@ + + + + <ph keyref="VideoLayout"/> + 用于描述混流中某个子视频流的布局信息。合图视频的布局信息。描述子视频流在视频合流布局中的位置和状态。 + +
+

+ struct VideoLayout { + const char* channelId; + rtc::uid_t uid; + user_id_t strUid; + uint32_t x; + uint32_t y; + uint32_t width; + uint32_t height; + uint32_t videoState; +}; + __attribute__((visibility("default"))) @interface AgoraVideoLayoutInfo: NSObject +@property (assign, nonatomic) NSUInteger width NS_SWIFT_NAME(width); +@property (assign, nonatomic) NSUInteger height NS_SWIFT_NAME(height); +@property (assign, nonatomic) NSUInteger layoutCount NS_SWIFT_NAME(layoutCount); +@property(copy, nonatomic) NSArray<AgoraVideoLayout *> *_Nullable layoutList NS_SWIFT_NAME(layoutList); +@end + public static class VideoLayout { + public String channelId; + public int uid; + public String strUid; + public int videoState; + public int x; + public int y; + public int width; + public int height; +} +

+
+
+

描述混流中某个子视频流在合流画布中的位置、尺寸和显示状态。

+
+
+ 属性 + + + channelId + 子视频流所属的频道名。 + + + uid + 发布该子视频流的用户 ID。 + + + strUid + 预留参数。 + + + x + 子视频流在合流画布上的 X 坐标(像素),表示视频左上角相对于画布左上角的水平偏移。 + + + y + 子视频流在合流画布上的 Y 坐标(像素),表示视频左上角相对于画布左上角的垂直偏移。 + + + width + 子视频流的宽度(像素)。 + + + height + 子视频流的高度(像素)。 + + + videoState + 子视频流在合流画布上的显示状态: +
    +
  • 0:正常,子视频流已渲染到画布上。
  • +
  • 1:占位图像,子视频流无视频帧,在画布上显示为占位图。
  • +
  • 2:黑色图像,子视频流被黑色图像替代。
  • +
+
+
+ + width + 合图视频的宽度(像素)。 + + + height + 合图视频的高度(像素)。 + + + layoutCount + 合图视频中布局信息的数量。 + + + layoutList + 合图视频的详细布局信息,详见 AgoraVideoLayout + + + channelId + 该子视频流所属的频道名。 + + + uid + 发布该子视频流的用户 ID。 + + + strUid + 预留字段,供未来使用。 + + + videoState + 子视频流在视频合流画布上的状态: +
    +
  • 0:正常,子视频流已渲染到混流画布上。
  • +
  • 1:占位图像,子视频流无视频帧,将以占位图显示在混流画布上。
  • +
  • 2:黑色图像,子视频流将被黑色图像替代。
  • +
+
+
+ + x + 子视频流在混流画布上的 X 坐标(单位为 px),即视频左上角相对于画布左上角的水平偏移。 + + + y + 子视频流在混流画布上的 Y 坐标(单位为 px),即视频左上角相对于画布左上角的垂直偏移。 + + + width + 子视频流的宽度(单位为 px)。 + + + height + 子视频流的高度(单位为 px)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videolayoutinfo.dita b/dita/RTC-AIDOC/API/class_videolayoutinfo.dita new file mode 100644 index 00000000000..bd519bd5e03 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videolayoutinfo.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="VideoLayoutInfo"/> + 合图视频的布局信息。用于获取合图视频的布局详细信息。 + +
+

+ __attribute__((visibility("default"))) @interface AgoraVideoLayoutInfo: NSObject +@property (assign, nonatomic) NSUInteger width NS_SWIFT_NAME(width); +@property (assign, nonatomic) NSUInteger height NS_SWIFT_NAME(height); +@property (assign, nonatomic) NSUInteger layoutCount NS_SWIFT_NAME(layoutCount); +@property(copy, nonatomic) NSArray<AgoraVideoLayout *> *_Nullable layoutList NS_SWIFT_NAME(layoutList); +@end + public static class VideoLayoutInfo { + public int width; + public int height; + public int layoutCount; + public VideoLayout[] layoutList; + } +

+
+
+

描述合图视频的布局信息。

+
+
+ 属性 + + + width + 合图视频的宽度(像素)。 + + + height + 合图视频的高度(像素)。 + + + layoutCount + 合图视频中布局信息的数量。 + + + layoutList + 合图视频的详细布局信息,详见 AgoraVideoLayout + + + width + 合图视频的宽度(单位为像素)。 + + + height + 合图视频的高度(单位为像素)。 + + + layoutCount + 合图视频中布局信息的数量。 + + + layoutList + 合图视频中各路视频的详细布局信息,详见 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videorenderingtracinginfo.dita b/dita/RTC-AIDOC/API/class_videorenderingtracinginfo.dita new file mode 100644 index 00000000000..f55a2552b60 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videorenderingtracinginfo.dita @@ -0,0 +1,237 @@ + + + + <ph keyref="VideoRenderingTracingInfo"/> + 表示视频帧渲染过程中各阶段的耗时指标。采集视频帧渲染过程的关键指标。视频帧渲染过程中的指标信息。视频帧渲染过程中的指标信息。 + +
+

+ struct VideoRenderingTracingInfo { + int elapsedTime; + int start2JoinChannel; + int join2JoinSuccess; + int joinSuccess2RemoteJoined; + int remoteJoined2SetView; + int remoteJoined2UnmuteVideo; + int remoteJoined2PacketReceived; +}; + public static class VideoRenderingTracingInfo { + public int elapsedTime; + public int start2JoinChannel; + public int join2JoinSuccess; + public int joinSuccess2RemoteJoined; + public int remoteJoined2SetView; + public int remoteJoined2UnmuteVideo; + public int remoteJoined2PacketReceived; +} + NS_SWIFT_NAME(AgoraVideoRenderingTracingInfo) __attribute__((visibility("default"))) @interface AgoraVideoRenderingTracingInfo : NSObject +@property (assign, nonatomic) NSInteger elapsedTime NS_SWIFT_NAME(elapsedTime); +@property (assign, nonatomic) NSInteger start2JoinChannel NS_SWIFT_NAME(start2JoinChannel); +@property (assign, nonatomic) NSInteger join2JoinSuccess NS_SWIFT_NAME(join2JoinSuccess); +@property (assign, nonatomic) NSInteger joinSuccess2RemoteJoined NS_SWIFT_NAME(joinSuccess2RemoteJoined); +@property (assign, nonatomic) NSInteger remoteJoined2SetView NS_SWIFT_NAME(remoteJoined2SetView); +@property (assign, nonatomic) NSInteger remoteJoined2UnmuteVideo NS_SWIFT_NAME(remoteJoined2UnmuteVideo); +@property (assign, nonatomic) NSInteger remoteJoined2PacketReceived NS_SWIFT_NAME(remoteJoined2PacketReceived); +@end + NS_SWIFT_NAME(AgoraVideoRenderingTracingInfo) __attribute__((visibility("default"))) @interface AgoraVideoRenderingTracingInfo : NSObject +@property (assign, nonatomic) NSInteger elapsedTime NS_SWIFT_NAME(elapsedTime); +@property (assign, nonatomic) NSInteger start2JoinChannel NS_SWIFT_NAME(start2JoinChannel); +@property (assign, nonatomic) NSInteger join2JoinSuccess NS_SWIFT_NAME(join2JoinSuccess); +@property (assign, nonatomic) NSInteger joinSuccess2RemoteJoined NS_SWIFT_NAME(joinSuccess2RemoteJoined); +@property (assign, nonatomic) NSInteger remoteJoined2SetView NS_SWIFT_NAME(remoteJoined2SetView); +@property (assign, nonatomic) NSInteger remoteJoined2UnmuteVideo NS_SWIFT_NAME(remoteJoined2UnmuteVideo); +@property (assign, nonatomic) NSInteger remoteJoined2PacketReceived NS_SWIFT_NAME(remoteJoined2PacketReceived); +@end +

+
+
+ 属性 + + + elapsedTime + 从调用 到 SDK 触发 回调的时间间隔(毫秒)。声网建议你在加入频道前调用 + + + start2JoinChannel + 从调用 到调用 joinChannel 的时间间隔(毫秒)。如果该值为负数,表示 joinChannel 之后调用。 + + + join2JoinSuccess + 从调用 joinChannel 到成功加入频道的时间间隔(毫秒)。 + + + joinSuccess2RemoteJoined + 你成功加入频道到远端用户加入频道的时间间隔(毫秒),或从调用 到远端用户加入频道的时间间隔(毫秒),取决于你调用 的时机。 + 如果你在远端用户加入频道后调用 ,该值为 0,且无意义。为了减少远端用户首帧渲染时间,声网建议你在远端用户已在频道中时加入频道,以减少该值。 + + + + remoteJoined2SetView + 远端用户加入频道到你设置远端视图的时间间隔(毫秒),或从调用 到设置远端视图的时间间隔(毫秒),取决于你调用 的时机。 + 如果你在设置远端视图后调用 ,该值为 0,且无效。为了减少远端用户首帧渲染时间,声网建议你在远端用户加入频道前设置远端视图,或在远端用户加入频道后立即设置远端视图,以减少该值。 + + + + remoteJoined2UnmuteVideo + 远端用户加入频道到你订阅远端视频流的时间间隔(毫秒),或从调用 到订阅远端视频流的时间间隔(毫秒),取决于你调用 的时机。 + 如果你在订阅远端视频流后调用 ,该值为 0,且无效。为了减少远端用户首帧渲染时间,声网建议远端用户加入频道后,你立即订阅远端视频流,以减少该值。 + + + + remoteJoined2PacketReceived + 远端用户加入频道到你接收到远端视频流的时间间隔(毫秒),或从调用 到接收远端视频流的时间间隔(毫秒),取决于你调用 的时机。 + 如果你在接收远端视频流后调用 ,该值为 0,且无效。为了减少远端用户首帧渲染时间,声网建议远端用户在加入频道后立即发布视频流,你立即订阅远端视频流,以减少该值。 + + + + elapsedTime + 从调用 到 SDK 触发 回调的时间间隔,单位为毫秒。声网建议在加入频道前调用 + + + start2JoinChannel + 从调用 到调用 joinChannel 的时间间隔,单位为毫秒。若为负数,表示先调用 joinChannel 后调用 + + + join2JoinSuccess + 从调用 joinChannel 到成功加入频道的时间间隔,单位为毫秒。 + + + joinSuccess2RemoteJoined + 若本地用户在成功加入频道前调用 ,该字段表示从本地用户成功加入频道到远端用户加入频道的时间间隔,单位为毫秒。若本地用户在成功加入频道后调用 ,则为从调用 到远端用户加入频道的时间间隔,单位为毫秒。 + 如果本地用户在远端用户加入频道后才调用 ,该值为 0,且无实际意义。为减少远端用户首帧渲染时间,声网建议在远端用户加入频道时再让本地用户加入频道,以减小该值。 + + + + remoteJoined2SetView + 若本地用户在远端用户加入频道前调用 ,该字段表示从远端用户加入频道到本地用户设置远端视图的时间间隔,单位为毫秒。若本地用户在远端用户加入频道后才调用 ,则表示从调用 到设置远端视图的时间间隔,单位为毫秒。 + 如果本地用户在设置远端视图之后才调用 ,该值为 0,且无效。为减少远端用户首帧渲染时间,声网建议在远端用户加入频道前设置远端视图,或在远端用户加入频道后立即设置远端视图,以减小该值。 + + + + remoteJoined2UnmuteVideo + 若本地用户在远端用户加入频道前调用 ,该字段表示从远端用户加入频道到订阅远端视频流的时间间隔,单位为毫秒。若本地用户在远端用户加入频道后才调用 ,表示从调用 到订阅远端视频流的时间间隔,单位为毫秒。 + 如果在本地用户订阅远端视频流之后才调用 ,该值为 0,且无效。为减少远端用户首帧渲染时间,声网建议在远端用户加入频道后立即订阅其视频流,以缩短该值。 + + + + remoteJoined2PacketReceived + 若本地用户在远端用户加入频道前调用 ,该字段表示从远端用户加入频道到本地用户接收到远端视频的时间间隔,单位为毫秒。若本地用户在远端用户加入频道后才调用 ,表示从调用 到接收远端视频流的时间间隔,单位为毫秒。 + 如果本地用户在收到远端视频流之后才调用 ,该值为 0 且无效。为减少远端用户首帧渲染时延,声网建议远端用户在加入频道后立即发送视频,本地用户也应立即订阅视频流,以减小该值。 + + + + elapsedTime + 从调用 到 SDK 触发 回调的时间间隔(毫秒)。 + + + start2JoinChannel + 从调用 到调用 joinChannelByToken 的时间间隔(毫秒)。如果该值为负数,表示在调用加入频道方法之后才调用了 + + + join2JoinSuccess + 从调用 joinChannelByToken 到成功加入频道的时间间隔(毫秒)。 + + + joinSuccess2RemoteJoined + 该值表示从本地用户成功加入频道到远端用户加入频道的时间间隔(毫秒),或从调用 到远端用户加入频道的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在远端用户加入频道后才调用 ,该值为 0,且无意义。
  • +
  • 为减少远端用户首帧渲染时间,声网建议本地用户在远端用户已在频道中时再加入频道,以减小该值。
  • +
+
+
+
+ + remoteJoined2SetView + 该值表示从远端用户加入频道到本地用户设置远端视图的时间间隔(毫秒),或从调用 到设置远端视图的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在设置远端视图后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议本地用户在远端用户加入频道前设置远端视图,或在远端用户加入频道后立即设置远端视图,以减小该值。
  • +
+
+
+
+ + remoteJoined2UnmuteVideo + 该值表示从远端用户加入频道到本地用户订阅远端视频流的时间间隔(毫秒),或从调用 到订阅远端视频流的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在订阅远端视频流后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议远端用户加入频道后,本地用户立即订阅远端视频流,以减小该值。
  • +
+
+
+
+ + remoteJoined2PacketReceived + 该值表示从远端用户加入频道到本地用户接收到远端视频流的时间间隔(毫秒),或从调用 到接收远端视频流的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在接收远端视频流后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议远端用户在加入频道后立即发布视频流,本地用户也应立即订阅远端视频流,以减小该值。
  • +
+
+
+
+ + elapsedTime + 从调用 到 SDK 触发 回调的时间间隔(毫秒)。 + + + start2JoinChannel + 从调用 到调用 joinChannelByToken 的时间间隔(毫秒)。如果该值为负数,表示在调用加入频道方法之后才调用了 + + + join2JoinSuccess + 从调用 joinChannelByToken 到成功加入频道的时间间隔(毫秒)。 + + + joinSuccess2RemoteJoined + 该值表示从本地用户成功加入频道到远端用户加入频道的时间间隔(毫秒),或从调用 到远端用户加入频道的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在远端用户加入频道后才调用 ,该值为 0,且无意义。
  • +
  • 为减少远端用户首帧渲染时间,声网建议本地用户在远端用户已在频道中时再加入频道,以减小该值。
  • +
+
+
+
+ + remoteJoined2SetView + 该值表示从远端用户加入频道到本地用户设置远端视图的时间间隔(毫秒),或从调用 到设置远端视图的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在设置远端视图后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议本地用户在远端用户加入频道前设置远端视图,或在远端用户加入频道后立即设置远端视图,以减小该值。
  • +
+
+
+
+ + remoteJoined2UnmuteVideo + 该值表示从远端用户加入频道到本地用户订阅远端视频流的时间间隔(毫秒),或从调用 到订阅远端视频流的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在订阅远端视频流后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议远端用户加入频道后,本地用户立即订阅远端视频流,以减小该值。
  • +
+
+
+
+ + remoteJoined2PacketReceived + 该值表示从远端用户加入频道到本地用户接收到远端视频流的时间间隔(毫秒),或从调用 到接收远端视频流的时间间隔,取决于调用时机。 + +
    +
  • 如果本地用户在接收远端视频流后才调用 ,该值为 0,且无效。
  • +
  • 为减少远端用户首帧渲染时间,声网建议远端用户在加入频道后立即发布视频流,本地用户也应立即订阅远端视频流,以减小该值。
  • +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_videosubscriptionoptions.dita b/dita/RTC-AIDOC/API/class_videosubscriptionoptions.dita new file mode 100644 index 00000000000..11c220247dd --- /dev/null +++ b/dita/RTC-AIDOC/API/class_videosubscriptionoptions.dita @@ -0,0 +1,89 @@ + + + + <ph keyref="VideoSubscriptionOptions"/> + 用于配置视频订阅选项。用于配置视频订阅选项。视频订阅选项。视频订阅选项。 + +
+

+ struct VideoSubscriptionOptions { + Optional<VIDEO_STREAM_TYPE> type; + Optional<bool> encodedFrameOnly; +}; + public class VideoSubscriptionOptions { + public enum REMOTE_VIDEO_STREAM_TYPE { + REMOTE_VIDEO_STREAM_HIGH, + REMOTE_VIDEO_STREAM_LOW + } + private REMOTE_VIDEO_STREAM_TYPE streamType; + private Boolean encodedFrameOnly; +} + __attribute__((visibility("default"))) @interface AgoraVideoSubscriptionOptions: NSObject +@property (nonatomic, assign) AgoraVideoStreamType type; +@property (nonatomic, assign) BOOL encodedFrameOnly; +@end + __attribute__((visibility("default"))) @interface AgoraVideoSubscriptionOptions: NSObject +@property (nonatomic, assign) AgoraVideoStreamType type; +@property (nonatomic, assign) BOOL encodedFrameOnly; +@end +

+
+
+ 属性 + + + type + 你希望订阅的视频流类型,详见 。默认值为 VIDEO_STREAM_HIGH,表示订阅高质量的视频流。 + + + encodedFrameOnly + 是否仅订阅编码后的视频帧: +
    +
  • :仅订阅编码后的视频数据(结构化数据);SDK 不解码或渲染原始视频数据。
  • +
  • :(默认)同时订阅原始视频数据和编码后的视频数据。
  • +
+
+
+ + streamType + 期望订阅的视频流类型。默认值为 REMOTE_VIDEO_STREAM_HIGH,表示订阅视频大流。详见 REMOTE_VIDEO_STREAM_TYPE + + + encodedFrameOnly + 是否仅订阅编码后的视频帧: +
    +
  • :仅订阅编码后的视频数据(结构化数据),SDK 不解码也不渲染原始视频数据。
  • +
  • :同时订阅原始视频数据和编码后的视频数据(默认)。
  • +
+
+
+ + type + 要订阅的视频流类型。默认值为 AgoraVideoStreamTypeHigh,表示订阅视频大流。详见 + + + encodedFrameOnly + 是否仅订阅编码后的视频帧: +
    +
  • :仅订阅编码后的视频数据(结构化数据),SDK 不解码或渲染原始视频数据。
  • +
  • :(默认)同时订阅原始视频数据和编码后的视频数据。
  • +
+
+
+ + type + 要订阅的视频流类型。默认值为 AgoraVideoStreamTypeHigh,表示订阅视频大流。详见 + + + encodedFrameOnly + 是否仅订阅编码后的视频帧: +
    +
  • :仅订阅编码后的视频数据(结构化数据),SDK 不解码或渲染原始视频数据。
  • +
  • :(默认)同时订阅原始视频数据和编码后的视频数据。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_virtualbackgroundsource.dita b/dita/RTC-AIDOC/API/class_virtualbackgroundsource.dita new file mode 100644 index 00000000000..0798042ae76 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_virtualbackgroundsource.dita @@ -0,0 +1,170 @@ + + + + <ph keyref="VirtualBackgroundSource"/> + 用于设置自定义虚拟背景。用于设置自定义背景类型。设置自定义背景。设置自定义背景。 + +
+

+ struct VirtualBackgroundSource { + BACKGROUND_SOURCE_TYPE background_source_type; + unsigned int color; + const char* source; + BACKGROUND_BLUR_DEGREE blur_degree; +}; + public class VirtualBackgroundSource { + public static final int BACKGROUND_NONE = 0; + public static final int BACKGROUND_COLOR = 1; + public static final int BACKGROUND_IMG = 2; + public static final int BACKGROUND_BLUR = 3; + public static final int BACKGROUND_VIDEO = 4; + public static final int BLUR_DEGREE_LOW = 1; + public static final int BLUR_DEGREE_MEDIUM = 2; + public static final int BLUR_DEGREE_HIGH = 3; + public int backgroundSourceType; + public int color; + public String source = null; + public int blurDegree; +} + __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 + __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 +

+
+
+ 属性 + + + background_source_type + 自定义背景类型。详见 + + + color + 自定义背景图像的颜色。颜色格式为 RGB 定义的十六进制整数,不带 # 符号,例如 0xFFB6C1 表示浅粉色。默认值为 0xFFFFFF(白色)。取值范围为 [0x000000, 0xFFFFFF]。如果取值无效,SDK 会将原始背景图像替换为白色背景图像。 + 该参数仅适用于以下类型的自定义背景: +
    +
  • BACKGROUND_COLOR:背景图像为传入颜色的纯色图像。
  • +
  • BACKGROUND_IMG:如果 source 中的图像具有透明背景,则透明部分将使用该参数指定的颜色填充。
  • +
+
+
+
+ + source + 自定义背景图像的本地绝对路径。支持 PNG、JPG、MP4、AVI、MKV 和 FLV 格式。如果路径无效,SDK 将使用原始背景图像或由 color 指定的纯色图像。 + 该参数仅在自定义背景类型为 BACKGROUND_IMGBACKGROUND_VIDEO 时生效。 + + + + blur_degree + 背景图像的模糊程度。详见 。 + 该参数仅在自定义背景类型为 BACKGROUND_BLUR 时生效。 + + + + backgroundSourceType + 自定义背景类型。 +
    +
  • BACKGROUND_NONE (0):仅进行背景与人物分割处理,不替换背景图像。设置该值后,可调用 实现画中画效果。
  • +
  • BACKGROUND_COLOR (1):(默认)背景为纯色图像。
  • +
  • BACKGROUND_IMG (2):背景为 PNG 或 JPG 格式的图像。
  • +
  • BACKGROUND_BLUR (3):背景为原始背景图像的模糊版本。
  • +
  • BACKGROUND_VIDEO (4):背景为本地视频文件,格式为 MP4、AVI、MKV、FLV 或其他支持格式。
  • +
+
+
+ + color + 自定义背景图像的颜色。格式为 RGB 定义的十六进制整数,不带 #,例如浅粉色为 0xFFB6C1,默认值为 0xFFFFFF(白色)。取值范围为 [0x000000, 0xFFFFFF]。若该值无效,SDK 会将原始背景图像替换为白色背景图像。 + 该参数仅适用于以下类型的自定义背景: +
    +
  • BACKGROUND_COLOR:背景为传入颜色的纯色图像。
  • +
  • BACKGROUND_IMG:若 source 中的图像具有透明背景,该透明区域将被本参数指定的颜色填充。
  • +
+
+
+
+ + source + 自定义背景图像的本地绝对路径。支持的格式包括 PNG、JPG、MP4、AVI、MKV 和 FLV。若路径无效,SDK 将使用原始背景图像或由 color 指定的纯色图像。 + 该参数仅在自定义背景类型为 BACKGROUND_IMGBACKGROUND_VIDEO 时生效。 + + + + blurDegree + + 该参数仅在背景类型为 BACKGROUND_BLUR 时生效。自定义背景图像的模糊程度。 +
    +
  • BLUR_DEGREE_LOW (1):模糊程度低,背景几乎可见。
  • +
  • BLUR_DEGREE_MEDIUM (2):中等模糊,难以识别背景细节。
  • +
  • BLUR_DEGREE_HIGH (3):高强度模糊,背景无法辨认。
  • +
+
+
+ + backgroundSourceType + 自定义背景的类型。详见 + + + color + 自定义背景图像的颜色。颜色格式为 RGB 十六进制整数,不带 # 符号,例如浅粉色为 0xFFB6C1。默认值为 0xFFFFFF(白色)。取值范围为 [0x000000, 0xFFFFFF]。如果取值无效,SDK 会将原始背景图替换为白色背景图。 + 该参数仅适用于以下类型的自定义背景: +
    +
  • AgoraVirtualBackgroundColor:背景图为传入颜色的纯色图像。
  • +
  • AgoraVirtualBackgroundImg:如果 source 中的图像具有透明背景,则透明部分将使用该参数传入的颜色填充。
  • +
+
+
+
+ + source + 自定义背景图像的本地绝对路径。支持 PNG、JPG、MP4、AVI、MKV 和 FLV 格式。如果路径无效,SDK 将使用原始背景图或由 color 指定的纯色图像。 + 该参数仅在自定义背景类型为 AgoraVirtualBackgroundImgAgoraVirtualBackgroundVideo 时生效。 + + + + blurDegree + 自定义背景图像的模糊程度。详见 。 + 该参数仅在自定义背景类型为 AgoraVirtualBackgroundBlur 时生效。 + + + + backgroundSourceType + 自定义背景的类型。详见 + + + color + 自定义背景图像的颜色。颜色格式为 RGB 十六进制整数,不带 # 符号,例如浅粉色为 0xFFB6C1。默认值为 0xFFFFFF(白色)。取值范围为 [0x000000, 0xFFFFFF]。如果取值无效,SDK 会将原始背景图替换为白色背景图。 + 该参数仅适用于以下类型的自定义背景: +
    +
  • AgoraVirtualBackgroundColor:背景图为传入颜色的纯色图像。
  • +
  • AgoraVirtualBackgroundImg:如果 source 中的图像具有透明背景,则透明部分将使用该参数传入的颜色填充。
  • +
+
+
+
+ + source + 自定义背景图像的本地绝对路径。支持 PNG、JPG、MP4、AVI、MKV 和 FLV 格式。如果路径无效,SDK 将使用原始背景图或由 color 指定的纯色图像。 + 该参数仅在自定义背景类型为 AgoraVirtualBackgroundImgAgoraVirtualBackgroundVideo 时生效。 + + + + blurDegree + 自定义背景图像的模糊程度。详见 。 + 该参数仅在自定义背景类型为 AgoraVirtualBackgroundBlur 时生效。 + + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_watermarkbuffer.dita b/dita/RTC-AIDOC/API/class_watermarkbuffer.dita new file mode 100644 index 00000000000..c743c6503f3 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_watermarkbuffer.dita @@ -0,0 +1,170 @@ + + + + <ph keyref="WatermarkBuffer"/> + 用于配置水印图像的格式、尺寸和像素缓冲区。用于配置水印图像的格式、尺寸和像素缓冲区。配置水印图像的格式、尺寸和像素缓冲区。配置水印图像的格式、尺寸和像素缓冲区。 + +
+

+ struct WatermarkBuffer { + int width; + int height; + int length; + media::base::VIDEO_PIXEL_FORMAT format; + const uint8_t* buffer; +}; + public class WatermarkBuffer { + public final static int WATERMARK_BUFFER_FORMAT_I420 = 1; + public final static int WATERMARK_BUFFER_FORMAT_BGRA = 2; + public final static int WATERMARK_BUFFER_FORMAT_NV21 = 3; + public final static int WATERMARK_BUFFER_FORMAT_RGBA = 4; + public ByteBuffer buffer; + public int width; + public int height; + public int format; +} + __attribute__((visibility("default"))) @interface WatermarkBuffer : NSObject +@property(assign, nonatomic) int width; +@property(assign, nonatomic) int height; +@property(assign, nonatomic) int length; +@property(strong, nonatomic) NSData* _Nullable buffer; +@property(assign, nonatomic) WatermarkBufferFormat format; +@end + __attribute__((visibility("default"))) @interface WatermarkBuffer : NSObject +@property(assign, nonatomic) int width; +@property(assign, nonatomic) int height; +@property(assign, nonatomic) int length; +@property(strong, nonatomic) NSData* _Nullable buffer; +@property(assign, nonatomic) WatermarkBufferFormat format; +@end +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

用于定义水印图像的缓冲区数据结构。

+

包括图像的宽度、高度、长度、图像数据缓冲区和格式。

+

包括图像的宽度、高度、长度、图像数据缓冲区和格式。

+
+
+ 属性 + + + width + 水印图像的宽度,单位为像素。 + + + height + 水印图像的高度,单位为像素。 + + + length + 水印图像缓冲区的长度,单位为字节。 + + + format + 水印图像的像素格式,详见 。默认值为 VIDEO_PIXEL_I420。当前支持的格式包括:VIDEO_PIXEL_I420VIDEO_PIXEL_RGBAVIDEO_PIXEL_BGRAVIDEO_PIXEL_NV21 + + + buffer + 水印图像的像素缓冲区数据。 + + + WATERMARK_BUFFER_FORMAT_I420 + 指定水印缓冲区的格式为 I420。 + + + WATERMARK_BUFFER_FORMAT_BGRA + 指定水印缓冲区的格式为 BGRA。 + + + WATERMARK_BUFFER_FORMAT_NV21 + 指定水印缓冲区的格式为 NV21。 + + + WATERMARK_BUFFER_FORMAT_RGBA + 指定水印缓冲区的格式为 RGBA。 + + + buffer + 存储水印图像的像素数据。详见 ByteBuffer + + + width + 水印图像的宽度,单位为像素。 + + + height + 水印图像的高度,单位为像素。 + + + format + 水印图像的格式: +
    +
  • WATERMARK_BUFFER_FORMAT_I420:I420 格式。
  • +
  • WATERMARK_BUFFER_FORMAT_BGRA:BGRA 格式。
  • +
  • WATERMARK_BUFFER_FORMAT_NV21:NV21 格式。
  • +
  • WATERMARK_BUFFER_FORMAT_RGBA:RGBA 格式。
  • +
+
+
+ + width + 水印图像的宽度,单位为像素。 + + + height + 水印图像的高度,单位为像素。 + + + length + 缓冲区的长度,单位为字节。 + + + buffer + 原始图像数据缓冲区。 + + + format + 水印缓冲区的格式,详见 + + + width + 水印图像的宽度,单位为像素。 + + + height + 水印图像的高度,单位为像素。 + + + length + 缓冲区的长度,单位为字节。 + + + buffer + 原始图像数据缓冲区。 + + + format + 水印缓冲区的格式,详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_watermarkconfig.dita b/dita/RTC-AIDOC/API/class_watermarkconfig.dita new file mode 100644 index 00000000000..3e81264fd2a --- /dev/null +++ b/dita/RTC-AIDOC/API/class_watermarkconfig.dita @@ -0,0 +1,176 @@ + + + + <ph keyref="WatermarkConfig"/> + 用于配置水印信息。用于配置水印相关信息。配置水印相关信息。配置水印相关信息。 + +
+

+ struct WatermarkConfig { + const char* id; + WATERMARK_SOURCE_TYPE type; + union { + WatermarkBuffer buffer; + WatermarkTimestamp timestamp; + WatermarkLiteral literal; + const char* imageUrl; + }; + WatermarkOptions options; +}; + public class WatermarkConfig { + public static final int WATERMARK_TYPE_IMAGE = 0; + public static final int WATERMARK_TYPE_BUFFER = 1; + public String id; + public int type; + public WatermarkBuffer buffer = new WatermarkBuffer(); + public String imageUrl; + public WatermarkOptions options = new WatermarkOptions(); +} + __attribute__((visibility("default"))) @interface WatermarkConfig : NSObject +@property(copy, nonatomic) NSString* _Nonnull id; +@property(assign, nonatomic) WatermarkType type; +@property(strong, nonatomic) WatermarkBuffer* _Nullable buffer; +@property(strong, nonatomic) NSURL *_Nullable imageUrl; +@property(strong, nonatomic) WatermarkOptions* _Nonnull options; +@end + __attribute__((visibility("default"))) @interface WatermarkConfig : NSObject +@property(copy, nonatomic) NSString* _Nonnull id; +@property(assign, nonatomic) WatermarkType type; +@property(strong, nonatomic) WatermarkBuffer* _Nullable buffer; +@property(strong, nonatomic) NSURL *_Nullable imageUrl; +@property(strong, nonatomic) WatermarkOptions* _Nonnull options; +@end +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 属性 + + + id + 水印的唯一标识符,建议使用 UUID。 + + + type + 水印类型,详见 + + + buffer + 水印的缓冲区。详见 + + + timestamp + 水印的时间戳。 + 仅支持在 Linux 平台使用。 + + + + literal + 水印的文本内容。 + 仅支持在 Linux 平台使用。 + + + + imageUrl + 水印图像文件的 URL,默认值为 + + + options + 水印的配置选项。详见 + + + WATERMARK_TYPE_IMAGE + 指定水印类型为图片。 + + + WATERMARK_TYPE_BUFFER + 指定水印类型为内存缓冲区。 + + + id + 水印的唯一标识符,通常使用 UUID 生成。 + + + type + 水印类型: +
    +
  • WATERMARK_TYPE_IMAGE:图片类型。
  • +
  • WATERMARK_TYPE_BUFFER:缓冲区类型。
  • +
+
+
+ + buffer + 包含水印图像数据的缓冲区。详见 + + + imageUrl + 用于加载水印图片的 URL 地址。 + + + options + 定义水印位置和大小的选项。详见 + + + id + 水印的唯一标识符。 + + + type + 水印的类型,详见 + + + buffer + 水印图像的缓冲数据。详见 + + + imageUrl + 水印图像的 URL。 + + + options + 水印的显示选项。详见 + + + id + 水印的唯一标识符。 + + + type + 水印的类型,详见 + + + buffer + 水印图像的缓冲数据。详见 + + + imageUrl + 水印图像的 URL。 + + + options + 水印的显示选项。详见 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_watermarkoptions.dita b/dita/RTC-AIDOC/API/class_watermarkoptions.dita new file mode 100644 index 00000000000..9ea7ca91acc --- /dev/null +++ b/dita/RTC-AIDOC/API/class_watermarkoptions.dita @@ -0,0 +1,174 @@ + + + + <ph keyref="WatermarkOptions"/> + 用于设置水印图像的相关配置。配置水印图像的相关参数。水印图像配置。水印图像配置。 + +
+

+ struct WatermarkOptions { + bool visibleInPreview; + Rectangle positionInLandscapeMode; + Rectangle positionInPortraitMode; + WatermarkRatio watermarkRatio; + WATERMARK_FIT_MODE mode; + int zOrder; +}; + public class WatermarkOptions { + public boolean visibleInPreview = true; + public Rectangle positionInLandscapeMode = new Rectangle(); + public Rectangle positionInPortraitMode = new Rectangle(); + public int zOrder = 0; +} + __attribute__((visibility("default"))) @interface WatermarkOptions : NSObject +@property(assign, nonatomic) BOOL visibleInPreview; +@property(assign, nonatomic) CGRect positionInLandscapeMode; +@property(assign, nonatomic) CGRect positionInPortraitMode; +@property(assign, nonatomic) int zOrder; +@end + __attribute__((visibility("default"))) @interface WatermarkOptions : NSObject +@property(assign, nonatomic) BOOL visibleInPreview; +@property(assign, nonatomic) CGRect positionInLandscapeMode; +@property(assign, nonatomic) CGRect positionInPortraitMode; +@property(assign, nonatomic) int zOrder; +@end +

+
+
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+

用于配置添加的水印图像。

+

用于设置水印图像的显示配置。

+

用于设置水印图像的显示配置。

+
+
+ 属性 + + + visibleInPreview + 水印是否在本地预览视图中可见: +
    +
  • :(默认)水印在本地预览视图中可见。
  • +
  • :水印在本地预览视图中不可见。
  • +
+
+
+ + positionInLandscapeMode + 当水印的适配模式为 FIT_MODE_COVER_POSITION 时,用于设置水印图像在横屏模式下的位置区域。详见 + + + positionInPortraitMode + 当水印的适配模式为 FIT_MODE_COVER_POSITION 时,用于设置水印图像在竖屏模式下的位置区域。详见 + + + watermarkRatio + 当水印的适配模式为 FIT_MODE_USE_IMAGE_RATIO 时,用于设置水印的坐标。详见 + + + mode + 水印的适配模式。详见 + + + zOrder + 水印图像的图层顺序,默认值为 0。 + + + visibleInPreview + 水印是否在本地预览视图中可见: +
    +
  • :(默认)水印在本地预览视图中可见。
  • +
  • :水印在本地预览视图中不可见。
  • +
+
+
+ + positionInLandscapeMode + 横屏模式下显示水印图像的区域,详见 + + + positionInPortraitMode + 竖屏模式下显示水印图像的区域,详见 + + + zOrder + 水印图像的图层顺序,默认值为 0。 + + + visibleInPreview + 水印图像是否在本地预览视图中可见: +
    +
  • :(默认)水印在本地预览视图中可见。
  • +
  • :水印在本地预览视图中不可见。
  • +
+
+
+ + positionInLandscapeMode + 横屏模式下水印图像的显示区域,包含以下成员: +
    +
  • x:水印相对于左上角的水平位置。
  • +
  • y:水印相对于左上角的垂直位置。
  • +
  • width:水印区域的宽度(像素)。
  • +
  • height:水印区域的高度(像素)。
  • +
+
+
+ + positionInPortraitMode + 竖屏模式下水印图像的显示区域,包含以下成员: +
    +
  • x:水印相对于左上角的水平位置。
  • +
  • y:水印相对于左上角的垂直位置。
  • +
  • width:水印区域的宽度(像素)。
  • +
  • height:水印区域的高度(像素)。
  • +
+
+
+ + zOrder + 水印图像的图层顺序,默认值为 0。 + + + visibleInPreview + 水印图像是否在本地预览视图中可见: +
    +
  • :(默认)水印在本地预览视图中可见。
  • +
  • :水印在本地预览视图中不可见。
  • +
+
+
+ + positionInLandscapeMode + 横屏模式下水印图像的显示区域,包含以下成员: +
    +
  • x:水印相对于左上角的水平位置。
  • +
  • y:水印相对于左上角的垂直位置。
  • +
  • width:水印区域的宽度(像素)。
  • +
  • height:水印区域的高度(像素)。
  • +
+
+
+ + positionInPortraitMode + 竖屏模式下水印图像的显示区域,包含以下成员: +
    +
  • x:水印相对于左上角的水平位置。
  • +
  • y:水印相对于左上角的垂直位置。
  • +
  • width:水印区域的宽度(像素)。
  • +
  • height:水印区域的高度(像素)。
  • +
+
+
+ + zOrder + 水印图像的图层顺序,默认值为 0。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/class_watermarkratio.dita b/dita/RTC-AIDOC/API/class_watermarkratio.dita new file mode 100644 index 00000000000..205c72f4cd1 --- /dev/null +++ b/dita/RTC-AIDOC/API/class_watermarkratio.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="WatermarkRatio"/> + 用于设置水印在屏幕上的位置和大小比例。 + +
+

+ struct WatermarkRatio { + float xRatio; + float yRatio; + float widthRatio; +}; +

+
+
+

+

    +
  • xRatioyRatio 表示水印左上角的坐标,决定水印左上角相对于屏幕左上角的水平和垂直距离。
  • +
  • widthRatio 表示水印的宽度,SDK 会根据该值按比例计算水印的高度,以保持图像不失真。
  • +
+

+
+
+ 属性 + + + xRatio + 水印左上角的 x 坐标。表示相对于屏幕左上角的水平位置,取值范围为 [0.0, 1.0]。默认值为 0。 + + + yRatio + 水印左上角的 y 坐标。表示相对于屏幕左上角的垂直位置,取值范围为 [0.0, 1.0]。默认值为 0。 + + + widthRatio + 水印的宽度。SDK 会根据该值按比例计算水印的高度,以保持图像不失真。取值范围为 [0, 1]。默认值为 0,表示不显示水印。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_agoramediaplayerrendermode.dita b/dita/RTC-AIDOC/API/enum_agoramediaplayerrendermode.dita new file mode 100644 index 00000000000..e42674065fe --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_agoramediaplayerrendermode.dita @@ -0,0 +1,29 @@ + + + + <ph keyref="AgoraMediaPlayerRenderMode"/> + 视频显示模式。视频显示模式。 + +
+ 枚举值 + + + AgoraMediaPlayerRenderModeHidden + (1):按比例缩放视频,直到某一维度填满显示区域。隐藏模式,视频的某一维度可能会被裁剪。 + + + AgoraMediaPlayerRenderModeFit + (2):按比例缩放视频,直到某一维度填满显示区域。适应模式,未填满的区域将以黑色填充。 + + + AgoraMediaPlayerRenderModeHidden + (1):按比例缩放视频,直到某一维度填满显示区域。隐藏模式,视频的某一维度可能会被裁剪。 + + + AgoraMediaPlayerRenderModeFit + (2):按比例缩放视频,直到某一维度填满显示区域。适应模式,未填满的区域将以黑色填充。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_alphastitchmode.dita b/dita/RTC-AIDOC/API/enum_alphastitchmode.dita new file mode 100644 index 00000000000..6a768019d15 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_alphastitchmode.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="ALPHA_STITCH_MODE"/> + alphaBuffer 与视频帧的相对位置。alphaBuffer 与视频帧的相对位置。alphaBuffer 与视频帧的相对位置。 + +
+ 枚举值 + + + NO_ALPHA_STITCH + (0):仅显示视频帧,即 alphaBuffer 不与视频帧拼接。 + + + ALPHA_STITCH_UP + (1):alphaBuffer 位于视频帧上方。 + + + ALPHA_STITCH_BELOW + (2):alphaBuffer 位于视频帧下方。 + + + ALPHA_STITCH_LEFT + (3):alphaBuffer 位于视频帧左侧。 + + + ALPHA_STITCH_RIGHT + (4):alphaBuffer 位于视频帧右侧。 + + + AgoraNoAlphaStitch + (0):(默认)仅显示视频帧,即 alphaBuffer 不与视频帧拼接。 + + + AgoraAlphaStitchUp + (1):alphaBuffer 位于视频帧上方。 + + + AgoraAlphaStitchBelow + (2):alphaBuffer 位于视频帧下方。 + + + AgoraAlphaStitchLeft + (3):alphaBuffer 位于视频帧左侧。 + + + AgoraAlphaStitchRight + (4):alphaBuffer 位于视频帧右侧。 + + + AgoraNoAlphaStitch + (0):(默认)仅显示视频帧,即 alphaBuffer 不与视频帧拼接。 + + + AgoraAlphaStitchUp + (1):alphaBuffer 位于视频帧上方。 + + + AgoraAlphaStitchBelow + (2):alphaBuffer 位于视频帧下方。 + + + AgoraAlphaStitchLeft + (3):alphaBuffer 位于视频帧左侧。 + + + AgoraAlphaStitchRight + (4):alphaBuffer 位于视频帧右侧。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_areacode.dita b/dita/RTC-AIDOC/API/enum_areacode.dita new file mode 100644 index 00000000000..26cf6cb45ab --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_areacode.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="AREA_CODE"/> + 连接区域,即 SDK 所连接服务器所在的区域。连接区域,即 SDK 所连接服务器所在的区域。连接区域,即 SDK 所连接服务器所在的区域。 + +
+ 枚举值 + + + AREA_CODE_CN + (0x00000001):中国大陆。 + + + AREA_CODE_NA + (0x00000002):北美地区。 + + + AREA_CODE_EU + (0x00000004):欧洲地区。 + + + AREA_CODE_AS + (0x00000008):亚洲地区(不含中国大陆)。 + + + AREA_CODE_JP + (0x00000010):日本。 + + + AREA_CODE_IN + (0x00000020):印度。 + + + AREA_CODE_GLOB + (0xFFFFFFFF):全球范围。 + + + AgoraAreaCodeTypeCN + (0x1):中国大陆。 + + + AgoraAreaCodeTypeNA + (0x2):北美地区。 + + + AgoraAreaCodeTypeEUR + (0x4):欧洲地区。 + + + AgoraAreaCodeTypeAS + (0x8):亚洲地区(不包括中国大陆)。 + + + AgoraAreaCodeTypeJP + (0x10):日本。 + + + AgoraAreaCodeTypeIN + (0x20):印度。 + + + AgoraAreaCodeTypeRU + (0x1000):俄罗斯。 + + + AgoraAreaCodeTypeGlobal + (0xFFFFFFFF):全球范围。 + + + AgoraAreaCodeTypeCN + (0x1):中国大陆。 + + + AgoraAreaCodeTypeNA + (0x2):北美地区。 + + + AgoraAreaCodeTypeEUR + (0x4):欧洲地区。 + + + AgoraAreaCodeTypeAS + (0x8):亚洲地区(不包括中国大陆)。 + + + AgoraAreaCodeTypeJP + (0x10):日本。 + + + AgoraAreaCodeTypeIN + (0x20):印度。 + + + AgoraAreaCodeTypeRU + (0x1000):俄罗斯。 + + + AgoraAreaCodeTypeGlobal + (0xFFFFFFFF):全球范围。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiencelatencyleveltype.dita b/dita/RTC-AIDOC/API/enum_audiencelatencyleveltype.dita new file mode 100644 index 00000000000..7afa0519535 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiencelatencyleveltype.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="AUDIENCE_LATENCY_LEVEL_TYPE"/> + 互动直播中观众的延迟等级。互动直播中观众的延迟等级。互动直播中观众的延迟等级。 + +
+

仅当用户角色设置为 CLIENT_ROLE_AUDIENCE 时生效。

+

仅当用户角色设置为 AgoraClientRoleAudience 时生效。

+

仅当用户角色设置为 AgoraClientRoleAudience 时生效。

+
+
+ 枚举值 + + + AUDIENCE_LATENCY_LEVEL_LOW_LATENCY + (1):低延迟。 + + + AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY + (2):(默认)超低延迟。 + + + AgoraAudienceLatencyLevelLowLatency + (1):低延迟。 + + + AgoraAudienceLatencyLevelUltraLowLatency + (2):(默认)超低延迟。 + + + AgoraAudienceLatencyLevelLowLatency + (1):低延迟。 + + + AgoraAudienceLatencyLevelUltraLowLatency + (2):(默认)超低延迟。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioainsmode.dita b/dita/RTC-AIDOC/API/enum_audioainsmode.dita new file mode 100644 index 00000000000..a898e5c86e5 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioainsmode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="AUDIO_AINS_MODE"/> + AI 噪声抑制模式。AI 噪声抑制模式。AI 噪声抑制模式。 + +
+ 枚举值 + + + AINS_MODE_BALANCED + (0):平衡模式。该模式在噪声抑制效果与延迟之间提供均衡的性能。 + + + AINS_MODE_AGGRESSIVE + (1):激进模式。适用于对噪声抑制效果要求较高的场景,例如户外活动直播。该模式可显著降低噪声,但可能会影响音频的原始特性。 + + + AINS_MODE_ULTRALOWLATENCY + (2):低延迟激进模式。该模式的噪声抑制延迟约为平衡模式和激进模式的一半,适用于对低延迟噪声抑制有较高要求的场景,例如实时在线合唱。 + + + AINS_MODE_BALANCED + (0):平衡模式。该模式在噪声抑制效果与延迟之间提供均衡的性能。 + + + AINS_MODE_AGGRESSIVE + (1):激进模式。适用于对噪声抑制效果要求较高的场景,例如户外活动直播。该模式可显著降低噪声,但可能会影响音频的原始特性。 + + + AINS_MODE_ULTRALOWLATENCY + (2):低延迟激进模式。该模式的噪声抑制延迟约为平衡模式和激进模式的一半,适用于对噪声抑制效果和低延迟要求较高的场景,例如实时在线合唱。 + + + AINS_MODE_BALANCED + (0):平衡模式。该模式在噪声抑制效果与延迟之间提供均衡的性能。 + + + AINS_MODE_AGGRESSIVE + (1):激进模式。适用于对噪声抑制效果要求较高的场景,例如户外活动直播。该模式可显著降低噪声,但可能会影响音频的原始特性。 + + + AINS_MODE_ULTRALOWLATENCY + (2):低延迟激进模式。该模式的噪声抑制延迟约为平衡模式和激进模式的一半,适用于对噪声抑制效果和低延迟要求较高的场景,例如实时在线合唱。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiocodecprofiletype.dita b/dita/RTC-AIDOC/API/enum_audiocodecprofiletype.dita new file mode 100644 index 00000000000..df333517136 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiocodecprofiletype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="AUDIO_CODEC_PROFILE_TYPE"/> + 自定义音频编解码器配置文件类型。自定义音频编解码器配置文件类型。自定义音频编解码器配置文件。自定义音频编解码器配置文件。 + +
+ 枚举值 + + + AUDIO_CODEC_PROFILE_LC_AAC + (0):(默认)LC-AAC 配置。 + + + AUDIO_CODEC_PROFILE_HE_AAC + (1):HE-AAC 配置。 + + + AUDIO_CODEC_PROFILE_HE_AAC_V2 + (2):HE-AAC v2 配置。 + + + LC_AAC + (0):(默认)LC-AAC 配置。 + + + HE_AAC + (1):HE-AAC 配置。 + + + HE_AAC_V2 + (2):HE-AAC v2 配置。 + + + AgoraAudioCodecProfileLCAAC + (0):(默认)LC-AAC 编解码配置。 + + + AgoraAudioCodecProfileHEAAC + (1):HE-AAC 编解码配置。 + + + AgoraAudioCodecProfileHEAACv2 + (2):HE-AAC v2 编解码配置。 + + + AgoraAudioCodecProfileLCAAC + (0):(默认)LC-AAC 编解码配置。 + + + AgoraAudioCodecProfileHEAAC + (1):HE-AAC 编解码配置。 + + + AgoraAudioCodecProfileHEAACv2 + (2):HE-AAC v2 编解码配置。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiocodectype.dita b/dita/RTC-AIDOC/API/enum_audiocodectype.dita new file mode 100644 index 00000000000..a270c10ceea --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiocodectype.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="AUDIO_CODEC_TYPE"/> + 音频编解码器类型。音频编解码器类型。音频编解码器类型。 + +
+ 枚举值 + + + AUDIO_CODEC_OPUS + (1):OPUS 编解码器。 + + + AUDIO_CODEC_PCMA + (3):PCMA 编解码器。 + + + AUDIO_CODEC_PCMU + (4):PCMU 编解码器。 + + + AUDIO_CODEC_G722 + (5):G722 编解码器。 + + + AUDIO_CODEC_AACLC + (8):LC-AAC 编解码器。 + + + AUDIO_CODEC_HEAAC + (9):HE-AAC 编解码器。 + + + AUDIO_CODEC_JC1 + (10):JC1 编解码器。 + + + AUDIO_CODEC_HEAAC2 + (11):HE-AAC v2 编解码器。 + + + AUDIO_CODEC_LPCNET + (12):LPCNET 编解码器。 + + + AUDIO_CODEC_OPUSMC + (13):支持 3 至 8 声道音频的 OPUS 编解码器。 + + + AgoraAudioCodecTypeOPUS + (1):OPUS 音频编解码器。 + + + AgoraAudioCodecTypeAACLC + (8):LC-AAC 音频编解码器。 + + + AgoraAudioCodecTypeHEAAC + (9):HE-AAC 音频编解码器。 + + + AgoraAudioCodecTypeHEAAC2 + (11):HE-AAC v2 音频编解码器。 + + + AgoraAudioCodecTypeOPUS + (1):OPUS 音频编解码器。 + + + AgoraAudioCodecTypeAACLC + (8):LC-AAC 音频编解码器。 + + + AgoraAudioCodecTypeHEAAC + (9):HE-AAC 音频编解码器。 + + + AgoraAudioCodecTypeHEAAC2 + (11):HE-AAC v2 音频编解码器。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiodualmonomode.dita b/dita/RTC-AIDOC/API/enum_audiodualmonomode.dita new file mode 100644 index 00000000000..42c7d10aeeb --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiodualmonomode.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="AUDIO_DUAL_MONO_MODE"/> + 频道模式。频道模式。频道模式。频道模式。 + +
+ 枚举值 + + + AUDIO_DUAL_MONO_STEREO + (0):原始模式。 + + + AUDIO_DUAL_MONO_L + (1):左声道模式。该模式将右声道音频替换为左声道音频,用户只能听到左声道音频。 + + + AUDIO_DUAL_MONO_R + (2):右声道模式。该模式将左声道音频替换为右声道音频,用户只能听到右声道音频。 + + + AUDIO_DUAL_MONO_MIX + (3):混合声道模式。该模式将左右声道音频混合,用户可同时听到左右声道音频。 + + + AUDIO_DUAL_MONO_STEREO + (0):原始模式,保留左右声道的原始音频。 + + + AUDIO_DUAL_MONO_L + (1):左声道模式,用左声道音频替换右声道音频,用户只能听到左声道音频。 + + + AUDIO_DUAL_MONO_R + (2):右声道模式,用右声道音频替换左声道音频,用户只能听到右声道音频。 + + + AUDIO_DUAL_MONO_MIX + (3):混合声道模式,混合左右声道音频,用户可同时听到左右声道音频。 + + + AgoraAudioDualMonoStereo + (0):原始模式。 + + + AgoraAudioDualMonoL + (1):左声道模式。该模式用左声道音频替换右声道音频,用户只能听到左声道音频。 + + + AgoraAudioDualMonoR + (2):右声道模式。该模式用右声道音频替换左声道音频,用户只能听到右声道音频。 + + + AgoraAudioDualMonoMix + (3):混合声道模式。该模式将左声道和右声道音频混合,用户可同时听到左右声道音频。 + + + AgoraAudioDualMonoStereo + (0):原始模式。 + + + AgoraAudioDualMonoL + (1):左声道模式。该模式用左声道音频替换右声道音频,用户只能听到左声道音频。 + + + AgoraAudioDualMonoR + (2):右声道模式。该模式用右声道音频替换左声道音频,用户只能听到右声道音频。 + + + AgoraAudioDualMonoMix + (3):混合声道模式。该模式将左声道和右声道音频混合,用户可同时听到左右声道音频。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioeffectpreset.dita b/dita/RTC-AIDOC/API/enum_audioeffectpreset.dita new file mode 100644 index 00000000000..b555375ec44 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioeffectpreset.dita @@ -0,0 +1,357 @@ + + + + <ph keyref="AUDIO_EFFECT_PRESET"/> + 预设音效效果。预设音效效果。预设音效效果。 + +
+

为了获得更好的音效效果,声网建议在使用预设音效效果前调用 setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario),并按如下推荐设置 profile 参数: + + + 预设音效效果 + profile + + + ROOM_ACOUSTICS_VIRTUAL_STEREOROOM_ACOUSTICS_3D_VOICEROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND + AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREOAUDIO_PROFILE_MUSIC_STANDARD_STEREO + + + 其他预设音效效果(不包括 AUDIO_EFFECT_OFF + AUDIO_PROFILE_MUSIC_HIGH_QUALITYAUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO + + +

+

为了获得更好的音效效果,Agora 建议在使用预设音效前调用 方法,并按如下建议设置 profile 参数。 + + + 预设音效效果 + profile + + + AgoraAudioEffectPresetRoomAcousVirtualStereoAgoraAudioEffectPresetRoomAcous3DVoiceAgoraAudioEffectPresetRoomAcousVirtualSurroundSound + AgoraAudioProfileMusicHighQualityStereoAgoraAudioProfileMusicStandardStereo + + + 其他预设音效(不包括 AgoraAudioEffectPresetOff + AgoraAudioProfileMusicHighQualityAgoraAudioProfileMusicHighQualityStereo + + +

+

为了获得更好的音效效果,Agora 建议在使用预设音效前调用 方法,并按如下建议设置 profile 参数。 + + + 预设音效效果 + profile + + + AgoraAudioEffectPresetRoomAcousVirtualStereoAgoraAudioEffectPresetRoomAcous3DVoiceAgoraAudioEffectPresetRoomAcousVirtualSurroundSound + AgoraAudioProfileMusicHighQualityStereoAgoraAudioProfileMusicStandardStereo + + + 其他预设音效(不包括 AgoraAudioEffectPresetOff + AgoraAudioProfileMusicHighQualityAgoraAudioProfileMusicHighQualityStereo + + +

+
+
+ 枚举值 + + + AUDIO_EFFECT_OFF + (0x00000000):关闭音效处理,使用原始声音。 + + + ROOM_ACOUSTICS_KTV + (0x02010100):KTV 场景的典型音效。 + + + ROOM_ACOUSTICS_VOCAL_CONCERT + (0x02010200):音乐厅场景的典型音效。 + + + ROOM_ACOUSTICS_STUDIO + (0x02010300):录音棚场景的典型音效。 + + + ROOM_ACOUSTICS_PHONOGRAPH + (0x02010400):老式留声机风格的典型音效。 + + + ROOM_ACOUSTICS_VIRTUAL_STEREO + (0x02010500):虚拟立体声效果,将单声道音频渲染为立体声。 + + + ROOM_ACOUSTICS_SPACIAL + (0x02010600):增强空间感的音效。 + + + ROOM_ACOUSTICS_ETHEREAL + (0x02010700):空灵风格的音效。 + + + ROOM_ACOUSTICS_3D_VOICE + (0x02010800):3D 音效,使声音围绕用户移动,默认循环周期为 10 秒。设置该效果后,可调用 修改移动周期。 + 启用该效果时,需使用立体声播放设备以获得预期音效。 + + + + ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND + (0x02010900):虚拟环绕声,基于立体声通道生成模拟环绕声场,营造环绕音效。 + 启用该效果时,需使用立体声播放设备以获得预期音效。 + + + + ROOM_ACOUSTICS_CHORUS + (0x02010D00):合唱音效,适用于合唱场景,增强人声的层次感和空间感。 + + + VOICE_CHANGER_EFFECT_UNCLE + (0x02020100):中年男性的声音。 + 声网建议用于处理男性音色,否则可能无法获得预期音效。 + + + + VOICE_CHANGER_EFFECT_OLDMAN + (0x02020200):年长男性的声音。 + 声网建议用于处理男性音色,否则可能无法获得预期音效。 + + + + VOICE_CHANGER_EFFECT_BOY + (0x02020300):男孩的声音。 + 声网建议用于处理男性音色,否则可能无法获得预期音效。 + + + + VOICE_CHANGER_EFFECT_SISTER + (0x02020400):年轻女性的声音。 + 声网建议用于处理女性音色,否则可能无法获得预期音效。 + + + + VOICE_CHANGER_EFFECT_GIRL + (0x02020500):女孩的声音。 + 声网建议用于处理女性音色,否则可能无法获得预期音效。 + + + + VOICE_CHANGER_EFFECT_PIGKING + (0x02020600):猪八戒的声音,类似熊吼的效果。 + + + VOICE_CHANGER_EFFECT_HULK + (0x02020700):绿巨人的声音。 + + + STYLE_TRANSFORMATION_RNB + (0x02030100):R&B 音乐风格的典型音效。 + + + STYLE_TRANSFORMATION_POPULAR + (0x02030200):流行音乐风格的典型音效。 + + + PITCH_CORRECTION + (0x02040100):音高修正效果,基于自然 C 大调音阶修正用户音高。设置该效果后,可调用 调整调音模式和主音音高。 + + + AgoraAudioEffectPresetOff + (0x00000000):关闭音效处理,使用原始声音。 + + + AgoraAudioEffectPresetRoomAcousticsKTV + (0x02010100):KTV 场景音效。 + + + AgoraAudioEffectPresetRoomAcousVocalConcer + (0x02010200):音乐厅场景音效。 + + + AgoraAudioEffectPresetRoomAcousStudio + (0x02010300):录音棚场景音效。 + + + AgoraAudioEffectPresetRoomAcousPhonograph + (0x02010400):老式留声机音效。 + + + AgoraAudioEffectPresetRoomAcousVirtualStereo + (0x02010500):虚拟立体声效果,将单声道音频渲染为立体声。 + + + AgoraAudioEffectPresetRoomAcousSpatial + (0x02010600):增强空间感的音效。 + + + AgoraAudioEffectPresetRoomAcousEthereal + (0x02010700):增强空灵感的音效。 + + + AgoraAudioEffectPresetRoomAcous3DVoice + (0x02010800):3D 音效,使声音围绕用户移动,默认循环周期为 10 秒。设置该效果后,可调用 修改移动周期。 + 启用 3D 音效时,用户需使用立体声播放设备以获得预期音效。 + + + + AgoraAudioEffectPresetRoomAcousVirtualSurroundSound + (0x02010900):虚拟环绕音效,基于立体声通道生成模拟环绕声场。 + 启用虚拟环绕音效时,用户需使用立体声播放设备以获得预期音效。 + + + + AgoraAudioEffectPresetRoomAcousticsChorus + (0x02010D00):合唱音效,增强人声的层次感和空间感,适用于合唱场景。 + + + AgoraAudioEffectPresetVoiceChangerEffectUncle + (0x02020100):中年男性音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectOldMan + (0x02020200):年长男性音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectBoy + (0x02020300):男孩音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectSister + (0x02020400):年轻女性音色。 + 建议用于处理女性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectGirl + (0x02020500):女孩音色。 + 建议用于处理女性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectPigKin + (0x02020600):猪八戒音色,类似熊吼的声音。 + + + AgoraAudioEffectPresetVoiceChangerEffectHulk + (0x02020700):绿巨人音色。 + + + AgoraAudioEffectPresetStyleTransformationRnb + (0x02030100):R&B 音乐风格音效。 + + + AgoraAudioEffectPresetStyleTransformationPopular + (0x02030200):流行音乐风格音效。 + + + AgoraAudioEffectPresetPitchCorrection + (0x02040100):音高修正效果,基于自然 C 大调音阶修正用户音高。设置该效果后,可调用 调整调音模式和主音音高。 + + + AgoraAudioEffectPresetOff + (0x00000000):关闭音效处理,使用原始声音。 + + + AgoraAudioEffectPresetRoomAcousticsKTV + (0x02010100):KTV 场景音效。 + + + AgoraAudioEffectPresetRoomAcousVocalConcer + (0x02010200):音乐厅场景音效。 + + + AgoraAudioEffectPresetRoomAcousStudio + (0x02010300):录音棚场景音效。 + + + AgoraAudioEffectPresetRoomAcousPhonograph + (0x02010400):老式留声机音效。 + + + AgoraAudioEffectPresetRoomAcousVirtualStereo + (0x02010500):虚拟立体声效果,将单声道音频渲染为立体声。 + + + AgoraAudioEffectPresetRoomAcousSpatial + (0x02010600):增强空间感的音效。 + + + AgoraAudioEffectPresetRoomAcousEthereal + (0x02010700):增强空灵感的音效。 + + + AgoraAudioEffectPresetRoomAcous3DVoice + (0x02010800):3D 音效,使声音围绕用户移动,默认循环周期为 10 秒。设置该效果后,可调用 修改移动周期。 + 启用 3D 音效时,用户需使用立体声播放设备以获得预期音效。 + + + + AgoraAudioEffectPresetRoomAcousVirtualSurroundSound + (0x02010900):虚拟环绕音效,基于立体声通道生成模拟环绕声场。 + 启用虚拟环绕音效时,用户需使用立体声播放设备以获得预期音效。 + + + + AgoraAudioEffectPresetRoomAcousticsChorus + (0x02010D00):合唱音效,增强人声的层次感和空间感,适用于合唱场景。 + + + AgoraAudioEffectPresetVoiceChangerEffectUncle + (0x02020100):中年男性音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectOldMan + (0x02020200):年长男性音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectBoy + (0x02020300):男孩音色。 + 建议用于处理男性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectSister + (0x02020400):年轻女性音色。 + 建议用于处理女性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectGirl + (0x02020500):女孩音色。 + 建议用于处理女性音色,否则可能无法获得预期音效。 + + + + AgoraAudioEffectPresetVoiceChangerEffectPigKin + (0x02020600):猪八戒音色,类似熊吼的声音。 + + + AgoraAudioEffectPresetVoiceChangerEffectHulk + (0x02020700):绿巨人音色。 + + + AgoraAudioEffectPresetStyleTransformationRnb + (0x02030100):R&B 音乐风格音效。 + + + AgoraAudioEffectPresetStyleTransformationPopular + (0x02030200):流行音乐风格音效。 + + + AgoraAudioEffectPresetPitchCorrection + (0x02040100):音高修正效果,基于自然 C 大调音阶修正用户音高。设置该效果后,可调用 调整调音模式和主音音高。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioencodedframeobserverposition.dita b/dita/RTC-AIDOC/API/enum_audioencodedframeobserverposition.dita new file mode 100644 index 00000000000..f7669730e31 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioencodedframeobserverposition.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="AUDIO_ENCODED_FRAME_OBSERVER_POSITION"/> + 音频编码帧的录制位置。音频帧回调的位置。音频帧回调的位置。 + +
+ 枚举值 + + + AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD + (1):仅录制本地用户音频。 + + + AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK + (2):仅录制所有远端用户音频。 + + + AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED + (3):录制本地和所有远端用户的混音音频。 + + + AgoraAudioEncodedFrameObserverPositionRecord + (1):仅回调本地用户的音频数据。 + + + AgoraAudioEncodedFrameObserverPositionPlayback + (2):仅回调所有远端用户的音频数据。 + + + AgoraAudioEncodedFrameObserverPositionMixed + (3):回调本地和所有远端用户的混合音频数据。 + + + AgoraAudioEncodedFrameObserverPositionRecord + (1):仅回调本地用户的音频数据。 + + + AgoraAudioEncodedFrameObserverPositionPlayback + (2):仅回调所有远端用户的音频数据。 + + + AgoraAudioEncodedFrameObserverPositionMixed + (3):回调本地和所有远端用户的混合音频数据。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioencodingtype.dita b/dita/RTC-AIDOC/API/enum_audioencodingtype.dita new file mode 100644 index 00000000000..3149f23e5ff --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioencodingtype.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="AUDIO_ENCODING_TYPE"/> + 音频编码类型。音频编码类型。音频编码类型。 + +
+ 枚举值 + + + AUDIO_ENCODING_TYPE_AAC_16000_LOW + (0x010101):AAC 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM + (0x010102):AAC 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_AAC_32000_LOW + (0x010201):AAC 编码格式,采样率为 32000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM + (0x010202):AAC 编码格式,采样率为 32000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_AAC_32000_HIGH + (0x010203):AAC 编码格式,采样率为 32000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM + (0x010302):AAC 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_AAC_48000_HIGH + (0x010303):AAC 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AUDIO_ENCODING_TYPE_OPUS_16000_LOW + (0x020101):OPUS 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM + (0x020102):OPUS 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM + (0x020302):OPUS 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AUDIO_ENCODING_TYPE_OPUS_48000_HIGH + (0x020303):OPUS 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeAAC16000Low + (0x010101):AAC 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AgoraAudioEncodingTypeAAC16000Medium + (0x010102):AAC 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC32000Low + (0x010201):AAC 编码格式,采样率为 32000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AgoraAudioEncodingTypeAAC32000Medium + (0x010202):AAC 编码格式,采样率为 32000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC32000High + (0x010203):AAC 编码格式,采样率为 32000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeAAC48000Medium + (0x010302):AAC 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC48000High + (0x010303):AAC 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeOPUS16000Low + (0x020101):OPUS 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS6000Medium + (0x020102):OPUS 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS48000Medium + (0x020302):OPUS 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS48000High + (0x020303):OPUS 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeAAC16000Low + (0x010101):AAC 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AgoraAudioEncodingTypeAAC16000Medium + (0x010102):AAC 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC32000Low + (0x010201):AAC 编码格式,采样率为 32000 Hz,低音质。编码后 10 分钟音频文件约为 1.2 MB。 + + + AgoraAudioEncodingTypeAAC32000Medium + (0x010202):AAC 编码格式,采样率为 32000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC32000High + (0x010203):AAC 编码格式,采样率为 32000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeAAC48000Medium + (0x010302):AAC 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeAAC48000High + (0x010303):AAC 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + + AgoraAudioEncodingTypeOPUS16000Low + (0x020101):OPUS 编码格式,采样率为 16000 Hz,低音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS6000Medium + (0x020102):OPUS 编码格式,采样率为 16000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS48000Medium + (0x020302):OPUS 编码格式,采样率为 48000 Hz,中等音质。编码后 10 分钟音频文件约为 2 MB。 + + + AgoraAudioEncodingTypeOPUS48000High + (0x020303):OPUS 编码格式,采样率为 48000 Hz,高音质。编码后 10 分钟音频文件约为 3.5 MB。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioequalizationbandfrequency.dita b/dita/RTC-AIDOC/API/enum_audioequalizationbandfrequency.dita new file mode 100644 index 00000000000..d68f45ad5b6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioequalizationbandfrequency.dita @@ -0,0 +1,173 @@ + + + + <ph keyref="AUDIO_EQUALIZATION_BAND_FREQUENCY"/> + 音频均衡的中频频段。用于设置音频均衡的中频频段。音频均衡的中频频段设置。音频均衡的中频频段设置。 + +
+ 枚举值 + + + AUDIO_EQUALIZATION_BAND_31 + (0):31 Hz 频段。 + + + AUDIO_EQUALIZATION_BAND_62 + (1):62 Hz 频段。 + + + AUDIO_EQUALIZATION_BAND_125 + (2):125 Hz 频段。 + + + AUDIO_EQUALIZATION_BAND_250 + (3):250 Hz 频段。 + + + AUDIO_EQUALIZATION_BAND_500 + (4):500 Hz 频段。 + + + AUDIO_EQUALIZATION_BAND_1K + (5):1 kHz 频段。 + + + AUDIO_EQUALIZATION_BAND_2K + (6):2 kHz 频段。 + + + AUDIO_EQUALIZATION_BAND_4K + (7):4 kHz 频段。 + + + AUDIO_EQUALIZATION_BAND_8K + (8):8 kHz 频段。 + + + AUDIO_EQUALIZATION_BAND_16K + (9):16 kHz 频段。 + + + AUDIO_EQUALIZATION_BAND_31 + (0):31 Hz。 + + + AUDIO_EQUALIZATION_BAND_62 + (1):62 Hz。 + + + AUDIO_EQUALIZATION_BAND_125 + (2):125 Hz。 + + + AUDIO_EQUALIZATION_BAND_250 + (3):250 Hz。 + + + AUDIO_EQUALIZATION_BAND_500 + (4):500 Hz。 + + + AUDIO_EQUALIZATION_BAND_1K + (5):1 kHz。 + + + AUDIO_EQUALIZATION_BAND_2K + (6):2 kHz。 + + + AUDIO_EQUALIZATION_BAND_4K + (7):4 kHz。 + + + AUDIO_EQUALIZATION_BAND_8K + (8):8 kHz。 + + + AUDIO_EQUALIZATION_BAND_16K + (9):16 kHz。 + + + 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 频段。 + + + 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 频段。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiofilerecordingtype.dita b/dita/RTC-AIDOC/API/enum_audiofilerecordingtype.dita new file mode 100644 index 00000000000..e8b9ec880f7 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiofilerecordingtype.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="AUDIO_FILE_RECORDING_TYPE"/> + 录制内容类型。录制内容类型。录制内容类型。 + +
+

startAudioRecording 中设置。

+

中设置。

+

中设置。

+
+
+ 枚举值 + + + AUDIO_FILE_RECORDING_MIC + (1):仅录制本地用户音频。 + + + AUDIO_FILE_RECORDING_PLAYBACK + (2):仅录制所有远端用户音频。 + + + AUDIO_FILE_RECORDING_MIXED + (3):录制本地用户和所有远端用户的混合音频。 + + + AgoraAudioFileRecordingTypeMic + (1):仅录制本地用户音频。 + + + AgoraAudioFileRecordingTypePlayback + (2):仅录制所有远端用户音频。 + + + AgoraAudioFileRecordingTypeMixed + (3):录制本地用户与所有远端用户的混合音频。 + + + AgoraAudioFileRecordingTypeMic + (1):仅录制本地用户音频。 + + + AgoraAudioFileRecordingTypePlayback + (2):仅录制所有远端用户音频。 + + + AgoraAudioFileRecordingTypeMixed + (3):录制本地用户与所有远端用户的混合音频。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioframetype.dita b/dita/RTC-AIDOC/API/enum_audioframetype.dita new file mode 100644 index 00000000000..9c1abbdcc83 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioframetype.dita @@ -0,0 +1,17 @@ + + + + <ph keyref="AUDIO_FRAME_TYPE"/> + 音频帧类型。 + +
+ 枚举值 + + + FRAME_TYPE_PCM16 + (0):PCM 16 格式音频帧。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiomixingdualmonomode.dita b/dita/RTC-AIDOC/API/enum_audiomixingdualmonomode.dita new file mode 100644 index 00000000000..aa73b8e695c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiomixingdualmonomode.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="AUDIO_MIXING_DUAL_MONO_MODE"/> + 音频声道模式。频道模式。音频双声道混音模式。音频双声道混音模式。 + +
+ 枚举值 + + + AUDIO_MIXING_DUAL_MONO_AUTO + (0):原始模式。保留音频的原始左右声道。 + + + AUDIO_MIXING_DUAL_MONO_L + (1):左声道模式。用左声道音频替换右声道音频,用户只能听到左声道音频。 + + + AUDIO_MIXING_DUAL_MONO_R + (2):右声道模式。用右声道音频替换左声道音频,用户只能听到右声道音频。 + + + AUDIO_MIXING_DUAL_MONO_MIX + (3):混合声道模式。混合左右声道音频,用户可同时听到左右声道音频。 + + + AUDIO_MIXING_DUAL_MONO_AUTO + (0):原始模式。 + + + AUDIO_MIXING_DUAL_MONO_L + (1):左声道模式。该模式将右声道音频替换为左声道音频,用户只能听到左声道音频。 + + + AUDIO_MIXING_DUAL_MONO_R + (2):右声道模式。该模式将左声道音频替换为右声道音频,用户只能听到右声道音频。 + + + AUDIO_MIXING_DUAL_MONO_MIX + (3):混合声道模式。该模式将左声道和右声道音频混合,用户可同时听到左右声道音频。 + + + AgoraAudioMixingDualMonoAuto + (0):原始模式。保留音频文件的原始左右声道。 + + + AgoraAudioMixingDualMonoL + (1):左声道模式。用左声道音频替换右声道,用户只能听到左声道音频。 + + + AgoraAudioMixingDualMonoR + (2):右声道模式。用右声道音频替换左声道,用户只能听到右声道音频。 + + + AgoraAudioMixingDualMonoMix + (3):混合声道模式。将左右声道音频混合,用户可同时听到左右声道音频。 + + + AgoraAudioMixingDualMonoAuto + (0):原始模式。保留音频文件的原始左右声道。 + + + AgoraAudioMixingDualMonoL + (1):左声道模式。用左声道音频替换右声道,用户只能听到左声道音频。 + + + AgoraAudioMixingDualMonoR + (2):右声道模式。用右声道音频替换左声道,用户只能听到右声道音频。 + + + AgoraAudioMixingDualMonoMix + (3):混合声道模式。将左右声道音频混合,用户可同时听到左右声道音频。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiomixingreasontype.dita b/dita/RTC-AIDOC/API/enum_audiomixingreasontype.dita new file mode 100644 index 00000000000..8ac2d9b4e48 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiomixingreasontype.dita @@ -0,0 +1,113 @@ + + + + <ph keyref="AUDIO_MIXING_REASON_TYPE"/> + 混音文件播放状态变化的原因。音乐文件播放状态变化的原因。音乐文件播放状态变化的原因。 + +
+

audioMixingStateChanged 回调中报告。

+

audioMixingStateChanged 回调中报告。

+
+
+ 枚举值 + + + AUDIO_MIXING_REASON_CAN_NOT_OPEN + (701):无法打开音乐文件。例如,本地文件不存在、格式不受支持,或无法访问文件 URL。 + + + AUDIO_MIXING_REASON_TOO_FREQUENT_CALL + (702):调用 startAudioMixing 过于频繁。建议调用间隔大于 500 毫秒。 + + + AUDIO_MIXING_REASON_INTERRUPTED_EOF + (703):音乐文件播放被中断。 + + + AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED + (721):音乐文件完成一次循环播放。 + + + AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED + (723):音乐文件完成所有循环播放。 + + + AUDIO_MIXING_REASON_STOPPED_BY_USER + (724):调用 成功,停止播放音乐文件。 + + + AUDIO_MIXING_REASON_RESUMED_BY_USER + (726):混音播放已由用户恢复。 + + + AUDIO_MIXING_REASON_OK + (0):成功打开音乐文件。 + + + AgoraAudioMixingReasonCanNotOpen + (701):SDK 无法打开音乐文件。例如,本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL。 + + + AgoraAudioMixingReasonTooFrequentlyCall + (702):SDK 打开音乐文件过于频繁。如果需要多次调用 startAudioMixing,请确保调用间隔大于 500 毫秒。 + + + AgoraAudioMixingReasonInterruptedEOF + (703):音乐文件播放被中断。 + + + AgoraAudioMixingReasonOneLoopCompleted + (721):音乐文件完成一次循环播放。 + + + AgoraAudioMixingReasonAllLoopsCompleted + (723):音乐文件完成所有循环播放。 + + + AgoraAudioMixingReasonStoppedByUser + (724):调用 成功,停止播放音乐文件。 + + + AgoraAudioMixingReasonResumedByUser + (726):音频混音播放已由用户恢复。 + + + AgoraAudioMixingReasonTypeOk + (0):SDK 成功打开音乐文件。 + + + AgoraAudioMixingReasonCanNotOpen + (701):SDK 无法打开音乐文件。例如,本地音乐文件不存在、SDK 不支持该文件格式,或无法访问音乐文件的 URL。 + + + AgoraAudioMixingReasonTooFrequentlyCall + (702):SDK 打开音乐文件过于频繁。如果需要多次调用 startAudioMixing,请确保调用间隔大于 500 毫秒。 + + + AgoraAudioMixingReasonInterruptedEOF + (703):音乐文件播放被中断。 + + + AgoraAudioMixingReasonOneLoopCompleted + (721):音乐文件完成一次循环播放。 + + + AgoraAudioMixingReasonAllLoopsCompleted + (723):音乐文件完成所有循环播放。 + + + AgoraAudioMixingReasonStoppedByUser + (724):调用 成功,停止播放音乐文件。 + + + AgoraAudioMixingReasonResumedByUser + (726):音频混音播放已由用户恢复。 + + + AgoraAudioMixingReasonTypeOk + (0):SDK 成功打开音乐文件。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiomixingstatetype.dita b/dita/RTC-AIDOC/API/enum_audiomixingstatetype.dita new file mode 100644 index 00000000000..0a855950d35 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiomixingstatetype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="AUDIO_MIXING_STATE_TYPE"/> + 音乐文件的播放状态。音乐文件的播放状态。音乐文件的播放状态。 + +
+ 枚举值 + + + AUDIO_MIXING_STATE_PLAYING + (710):音乐文件正在播放。 + + + AUDIO_MIXING_STATE_PAUSED + (711):音乐文件暂停播放。 + + + AUDIO_MIXING_STATE_STOPPED + (713):音乐文件停止播放。可能的原因包括:AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED(723)或 AUDIO_MIXING_REASON_STOPPED_BY_USER(724)。 + + + AUDIO_MIXING_STATE_FAILED + (714):播放音乐文件过程中发生错误。可能的原因包括:AUDIO_MIXING_REASON_CAN_NOT_OPEN(701)、AUDIO_MIXING_REASON_TOO_FREQUENT_CALL(702)或 AUDIO_MIXING_REASON_INTERRUPTED_EOF(703)。 + + + AgoraAudioMixingStateTypePlaying + (710):音乐文件正在播放。 + + + AgoraAudioMixingStateTypePaused + (711):音乐文件暂停播放。 + + + AgoraAudioMixingStateTypeStopped + (713):音乐文件停止播放。可能的原因包括:AgoraAudioMixingReasonAllLoopsCompleted(723)或 AgoraAudioMixingReasonStoppedByUser(724)。 + + + AgoraAudioMixingStateTypeFailed + (714):混音文件播放过程中发生错误。可能的原因包括:AgoraAudioMixingReasonCanNotOpen(701)、AgoraAudioMixingReasonTooFrequentlyCall(702)或 AgoraAudioMixingReasonInterruptedEOF(703)。 + + + AgoraAudioMixingStateTypePlaying + (710):音乐文件正在播放。 + + + AgoraAudioMixingStateTypePaused + (711):音乐文件暂停播放。 + + + AgoraAudioMixingStateTypeStopped + (713):音乐文件停止播放。可能的原因包括:AgoraAudioMixingReasonAllLoopsCompleted(723)或 AgoraAudioMixingReasonStoppedByUser(724)。 + + + AgoraAudioMixingStateTypeFailed + (714):混音文件播放过程中发生错误。可能的原因包括:AgoraAudioMixingReasonCanNotOpen(701)、AgoraAudioMixingReasonTooFrequentlyCall(702)或 AgoraAudioMixingReasonInterruptedEOF(703)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioprocessingchannels.dita b/dita/RTC-AIDOC/API/enum_audioprocessingchannels.dita new file mode 100644 index 00000000000..35026f9ffe1 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioprocessingchannels.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="AUDIO_PROCESSING_CHANNELS"/> + 音频预处理的声道数。设置音频预处理的声道数。音频预处理的声道数。 + +
+

在需要增强真实感的场景中,例如音乐会,本地用户可能需要采集立体声并将立体声音频信号发送给远端用户。例如,歌手、吉他手和鼓手站在舞台上的不同位置,音频采集设备采集他们的立体声音频并将其发送给远端用户。远端用户可以从不同方向听到歌曲、吉他和鼓声,就像置身于音乐厅中一样。你可以设置双声道处理以实现立体声。声网推荐以下设置: +

    +
  1. 预处理:调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo(2);
  2. +
  3. 后处理:调用 ,并将 profile 设置为 AgoraAudioProfileMusicStandardStereo(3)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  4. +
+

+

在需要增强真实感的场景中,例如音乐会,本地用户可能需要采集立体声并将其发送给远端用户。例如,歌手、吉他手和鼓手站在舞台的不同位置,音频采集设备采集他们的立体声音频并将其发送给远端用户。远端用户可以从不同方向听到歌曲、吉他和鼓声,就像置身于观众席一样。你可以通过设置双声道处理来实现立体声。声网推荐以下设置: +

    +
  1. 预处理:调用 ,并在 中将 audioProcessingChannels 设置为 AGORA_AUDIO_STEREO_PROCESSING(2);
  2. +
  3. 后处理:调用 setAudioProfile(int profile),并将 profile 设置为 MUSIC_STANDARD_STEREO(3)或 MUSIC_HIGH_QUALITY_STEREO(5)。
  4. +
+

+

在需要增强真实感的场景中,例如音乐会,本地用户可能需要采集立体声并将立体声音频信号发送给远端用户。例如,歌手、吉他手和鼓手站在舞台上的不同位置,音频采集设备采集他们的立体声音频并将其发送给远端用户。远端用户可以从不同方向听到歌曲、吉他和鼓声,就像置身于音乐厅中一样。你可以设置双声道处理以实现立体声。声网推荐以下设置: +

    +
  1. 预处理:调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo(2);
  2. +
  3. 后处理:调用 ,并将 profile 设置为 AgoraAudioProfileMusicStandardStereo(3)或 AgoraAudioProfileMusicHighQualityStereo(5)。
  4. +
+

+ 仅当 SDK 使用媒体音量时,立体声设置才会生效。在 iOS 上,支持立体声的最低系统版本为 14.0,最低设备要求如下:iPhone XS、iPhone XS Max、iPhone XR、iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max、iPhone SE(2020)、iPad Pro 11" 和 12.9"(第三代)、iPad Pro 11" 和 12.9"(第四代)。 + 仅当 SDK 使用媒体音量时,立体声设置才会生效。 + 仅当 SDK 使用媒体音量时,立体声设置才会生效。在 iOS 上,支持立体声的最低系统版本为 14.0,最低设备要求如下:iPhone XS、iPhone XS Max、iPhone XR、iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max、iPhone SE(2020)、iPad Pro 11" 和 12.9"(第三代)、iPad Pro 11" 和 12.9"(第四代)。 +
+
+ 枚举值 + + + AgoraAudioProcessChannelsMono + (1):(默认)单声道。 + + + AgoraAudioProcessChannelstereo + (2):立体声。 + + + AGORA_AUDIO_MONO_PROCESSING + (1):(默认)单声道。 + + + AGORA_AUDIO_STEREO_PROCESSING + (2):立体声。 + + + AgoraAudioProcessChannelsMono + (1):(默认)单声道。 + + + AgoraAudioProcessChannelstereo + (2):立体声。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioprofiletype.dita b/dita/RTC-AIDOC/API/enum_audioprofiletype.dita new file mode 100644 index 00000000000..108e9c7c439 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioprofiletype.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="AUDIO_PROFILE_TYPE"/> + 音频配置文件类型。音频配置文件类型。音频配置文件。音频配置文件。 + +
+ 枚举值 + + + AUDIO_PROFILE_DEFAULT + (0):默认音频配置文件。 +
    +
  • 互动直播场景:采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
  • +
  • 通信场景: +
      +
    • Windows:采样率为 16 kHz,音频编码,单声道,码率最高为 16 Kbps。
    • +
    • Android/macOS/iOS:采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。
    • +
    +
  • +
+
+
+ + AUDIO_PROFILE_SPEECH_STANDARD + (1):采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。 + + + AUDIO_PROFILE_MUSIC_STANDARD + (2):采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。 + + + AUDIO_PROFILE_MUSIC_STANDARD_STEREO + (3):采样率为 48 kHz,音乐编码,立体声,码率最高为 80 Kbps。启用立体声音频需调用 ,并在 中将 audioProcessingChannels 设置为 AUDIO_PROCESSING_STEREO + + + AUDIO_PROFILE_MUSIC_HIGH_QUALITY + (4):采样率为 48 kHz,音乐编码,单声道,码率最高为 96 Kbps。 + + + AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO + (5):采样率为 48 kHz,音乐编码,立体声,码率最高为 128 Kbps。启用立体声音频需调用 ,并在 中将 audioProcessingChannels 设置为 AUDIO_PROCESSING_STEREO + + + AUDIO_PROFILE_IOT + (6):采样率为 16 kHz,音频编码,单声道,并启用回声消除(AEC)。 + + + AUDIO_PROFILE_NUM + (7):枚举边界值。 + + + DEFAULT + (0):默认音频配置文件。频道场景为互动直播时,采样率为 48 kHz,音乐编码,单声道,码率上限为 64 Kbps;频道场景为通信时,采样率为 32 kHz,语音编码,单声道,码率上限为 18 Kbps。 + + + SPEECH_STANDARD + (1):采样率为 32 kHz,语音编码,单声道,码率上限为 18 Kbps。 + + + MUSIC_STANDARD + (2):采样率为 48 kHz,音乐编码,单声道,码率上限为 64 Kbps。 + + + MUSIC_STANDARD_STEREO + (3):采样率为 48 kHz,音乐编码,立体声,码率上限为 80 Kbps。要实现立体声效果,还需调用 ,并在 中将 audioProcessingChannels 设置为 AGORA_AUDIO_STEREO_PROCESSING + + + MUSIC_HIGH_QUALITY + (4):采样率为 48 kHz,音乐编码,单声道,码率上限为 96 Kbps。 + + + MUSIC_HIGH_QUALITY_STEREO + (5):采样率为 48 kHz,音乐编码,立体声,码率上限为 128 Kbps。要实现立体声效果,还需调用 ,并在 中将 audioProcessingChannels 设置为 AGORA_AUDIO_STEREO_PROCESSING + + + AgoraAudioProfileDefault + (0):默认音频配置文件。 +
    +
  • 互动直播场景:采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
  • +
  • 通信场景:采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。
  • +
+
+
+ + AgoraAudioProfileSpeechStandard + (1):采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。 + + + AgoraAudioProfileMusicStandard + (2):采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。 + + + AgoraAudioProfileMusicStandardStereo + (3):采样率为 48 kHz,音乐编码,立体声,码率最高为 80 Kbps。在 iOS 上,如需启用立体声音频,还需调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo + + + AgoraAudioProfileMusicHighQuality + (4):采样率为 48 kHz,音乐编码,单声道,码率最高为 96 Kbps。 + + + AgoraAudioProfileMusicHighQualityStereo + (5):采样率为 48 kHz,音乐编码,立体声,码率最高为 128 Kbps。在 iOS 上,如需启用立体声音频,还需调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo + + + AgoraAudioProfileIot + (6):采样率为 16 kHz,音频编码,单声道,并启用回声消除(AEC)。 + + + AgoraAudioProfileDefault + (0):默认音频配置文件。 +
    +
  • 互动直播场景:采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。
  • +
  • 通信场景:采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。
  • +
+
+
+ + AgoraAudioProfileSpeechStandard + (1):采样率为 32 kHz,音频编码,单声道,码率最高为 18 Kbps。 + + + AgoraAudioProfileMusicStandard + (2):采样率为 48 kHz,音乐编码,单声道,码率最高为 64 Kbps。 + + + AgoraAudioProfileMusicStandardStereo + (3):采样率为 48 kHz,音乐编码,立体声,码率最高为 80 Kbps。在 iOS 上,如需启用立体声音频,还需调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo + + + AgoraAudioProfileMusicHighQuality + (4):采样率为 48 kHz,音乐编码,单声道,码率最高为 96 Kbps。 + + + AgoraAudioProfileMusicHighQualityStereo + (5):采样率为 48 kHz,音乐编码,立体声,码率最高为 128 Kbps。在 iOS 上,如需启用立体声音频,还需调用 ,并在 中将 audioProcessingChannels 设置为 AgoraAudioProcessChannelstereo + + + AgoraAudioProfileIot + (6):采样率为 16 kHz,音频编码,单声道,并启用回声消除(AEC)。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiorecordingqualitytype.dita b/dita/RTC-AIDOC/API/enum_audiorecordingqualitytype.dita new file mode 100644 index 00000000000..1f56190709f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiorecordingqualitytype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="AUDIO_RECORDING_QUALITY_TYPE"/> + 录制音频的质量等级。录制音频的质量等级。录制音频的质量等级。 + +
+ 枚举值 + + + AUDIO_RECORDING_QUALITY_LOW + (0):低质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 1.2 MB。 + + + AUDIO_RECORDING_QUALITY_MEDIUM + (1):中等质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 2 MB。 + + + AUDIO_RECORDING_QUALITY_HIGH + (2):高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 3.75 MB。 + + + AUDIO_RECORDING_QUALITY_ULTRA_HIGH + (3):超高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 7.5 MB。 + + + AgoraAudioRecordingQualityLow + (0):低质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 1.2 MB。 + + + AgoraAudioRecordingQualityMedium + (1):中等质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 2 MB。 + + + AgoraAudioRecordingQualityHigh + (2):高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 3.75 MB。 + + + AgoraAudioRecordingQualityUltraHigh + (3):超高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 7.5 MB。 + + + AgoraAudioRecordingQualityLow + (0):低质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 1.2 MB。 + + + AgoraAudioRecordingQualityMedium + (1):中等质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 2 MB。 + + + AgoraAudioRecordingQualityHigh + (2):高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 3.75 MB。 + + + AgoraAudioRecordingQualityUltraHigh + (3):超高质量。采样率为 32 kHz,录制 10 分钟的文件大小约为 7.5 MB。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioreverbtype.dita b/dita/RTC-AIDOC/API/enum_audioreverbtype.dita new file mode 100644 index 00000000000..9be439194b4 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioreverbtype.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="AUDIO_REVERB_TYPE"/> + 音频混响类型。音频混响类型。音频混响类型。音频混响类型。 + +
+ 枚举值 + + + AUDIO_REVERB_DRY_LEVEL + (0):干信号电平,单位为 dB。取值范围为 -20 到 10。 + + + AUDIO_REVERB_WET_LEVEL + (1):湿信号(早期反射信号)电平,单位为 dB。取值范围为 -20 到 10。 + + + AUDIO_REVERB_ROOM_SIZE + (2):反射房间的大小。取值范围为 0 到 100。 + + + AUDIO_REVERB_WET_DELAY + (3):湿信号的初始延迟时长,单位为毫秒。取值范围为 0 到 200。 + + + AUDIO_REVERB_STRENGTH + (4):混响强度。取值范围为 0 到 100。 + + + AUDIO_REVERB_DRY_LEVEL + (0):直达声信号的电平,单位为 dB,取值范围为 -20 到 10。 + + + AUDIO_REVERB_WET_LEVEL + (1):早期反射信号(湿信号)的电平,单位为 dB,取值范围为 -20 到 10。 + + + AUDIO_REVERB_ROOM_SIZE + (2):反射房间的大小,取值范围为 0 到 100。 + + + AUDIO_REVERB_WET_DELAY + (3):湿信号的初始延迟时长,单位为毫秒,取值范围为 0 到 200。 + + + AUDIO_REVERB_STRENGTH + (4):混响强度,取值范围为 0 到 100。 + + + AgoraAudioReverbDryLevel + (0):干声信号的电平,单位为 dB。取值范围为 -20 到 10。 + + + AgoraAudioReverbWetLevel + (1):早期反射信号(湿声信号)的电平,单位为 dB。取值范围为 -20 到 10。 + + + AgoraAudioReverbRoomSize + (2):反射房间的大小。取值范围为 0 到 100。 + + + AgoraAudioReverbWetDelay + (3):湿声信号的初始延迟时长,单位为毫秒。取值范围为 0 到 200。 + + + AgoraAudioReverbStrength + (4):混响强度。取值范围为 0 到 100。 + + + AgoraAudioReverbDryLevel + (0):干声信号的电平,单位为 dB。取值范围为 -20 到 10。 + + + AgoraAudioReverbWetLevel + (1):早期反射信号(湿声信号)的电平,单位为 dB。取值范围为 -20 到 10。 + + + AgoraAudioReverbRoomSize + (2):反射房间的大小。取值范围为 0 到 100。 + + + AgoraAudioReverbWetDelay + (3):湿声信号的初始延迟时长,单位为毫秒。取值范围为 0 到 200。 + + + AgoraAudioReverbStrength + (4):混响强度。取值范围为 0 到 100。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioroute.dita b/dita/RTC-AIDOC/API/enum_audioroute.dita new file mode 100644 index 00000000000..234dcb85d16 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioroute.dita @@ -0,0 +1,157 @@ + + + + <ph keyref="AudioRoute"/> + 音频路由类型。音频路由类型。音频路由类型。 + +
+ 枚举值 + + + ROUTE_DEFAULT + (-1):默认路由。 + + + ROUTE_HEADSET + (0):路由为带麦克风的耳机。 + + + ROUTE_EARPIECE + (1):路由为听筒。 + + + ROUTE_HEADSETNOMIC + (2):路由为不带麦克风的耳机。 + + + ROUTE_SPEAKERPHONE + (3):路由为设备自带扬声器。 + + + ROUTE_LOUDSPEAKER + (4):路由为外部扬声器。(仅适用于 iOS 和 macOS 平台) + + + ROUTE_BLUETOOTH_DEVICE_HFP + (5):路由为使用 HFP 协议的蓝牙设备。 + + + ROUTE_USB + (6):路由为 USB 外设设备。(仅适用于 macOS 平台) + + + ROUTE_HDMI + (7):路由为 HDMI 外设设备。(仅适用于 macOS 平台) + + + ROUTE_DISPLAYPORT + (8):路由为 DisplayPort 外设设备。(仅适用于 macOS 平台) + + + ROUTE_AIRPLAY + (9):路由为 Apple AirPlay。(仅适用于 macOS 平台) + + + ROUTE_BLUETOOTH_DEVICE_A2DP + (10):路由为使用 A2DP 协议的蓝牙设备。 + + + AgoraAudioOutputRoutingDefault + (-1):默认音频路由。 + + + AgoraAudioOutputRoutingHeadset + (0):音频路由为带麦克风的耳机。 + + + AgoraAudioOutputRoutingEarpiece + (1):音频路由为听筒。 + + + AgoraAudioOutputRoutingHeadsetNoMic + (2):音频路由为不带麦克风的耳机。 + + + AgoraAudioOutputRoutingSpeakerphone + (3):音频路由为设备内置扬声器。 + + + AgoraAudioOutputRoutingLoudspeaker + (4):音频路由为外接扬声器。 + + + AgoraAudioOutputRoutingBluetoothDeviceHfp + (5):音频路由为使用 HFP 协议的蓝牙设备。 + + + AgoraAudioOutputRoutingUsb + (6):音频路由为 USB 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingHdmi + (7):音频路由为 HDMI 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingDisplayPort + (8):音频路由为 DisplayPort 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingAirPlay + (9):音频路由为 Apple AirPlay(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingBluetoothDeviceA2dp + (10):音频路由为使用 A2DP 协议的蓝牙设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingDefault + (-1):默认音频路由。 + + + AgoraAudioOutputRoutingHeadset + (0):音频路由为带麦克风的耳机。 + + + AgoraAudioOutputRoutingEarpiece + (1):音频路由为听筒。 + + + AgoraAudioOutputRoutingHeadsetNoMic + (2):音频路由为不带麦克风的耳机。 + + + AgoraAudioOutputRoutingSpeakerphone + (3):音频路由为设备内置扬声器。 + + + AgoraAudioOutputRoutingLoudspeaker + (4):音频路由为外接扬声器。 + + + AgoraAudioOutputRoutingBluetoothDeviceHfp + (5):音频路由为使用 HFP 协议的蓝牙设备。 + + + AgoraAudioOutputRoutingUsb + (6):音频路由为 USB 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingHdmi + (7):音频路由为 HDMI 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingDisplayPort + (8):音频路由为 DisplayPort 外设设备(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingAirPlay + (9):音频路由为 Apple AirPlay(仅适用于 macOS 平台)。 + + + AgoraAudioOutputRoutingBluetoothDeviceA2dp + (10):音频路由为使用 A2DP 协议的蓝牙设备(仅适用于 macOS 平台)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiosampleratetype.dita b/dita/RTC-AIDOC/API/enum_audiosampleratetype.dita new file mode 100644 index 00000000000..76326fe3871 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiosampleratetype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="AUDIO_SAMPLE_RATE_TYPE"/> + 推送到 CDN 的音频采样率。推送到 CDN 的音频采样率。推送到 CDN 的音频采样率。推送到 CDN 的音频采样率。 + +
+ 枚举值 + + + AUDIO_SAMPLE_RATE_32000 + (32000):32 kHz。 + + + AUDIO_SAMPLE_RATE_44100 + (44100):44.1 kHz。 + + + AUDIO_SAMPLE_RATE_48000 + (48000):(默认)48 kHz。 + + + TYPE_32000 + (32000):32 kHz。 + + + TYPE_44100 + (44100):44.1 kHz。 + + + TYPE_48000 + (48000):(默认)48 kHz。 + + + AgoraAudioSampleRateType32000 + (32000):采样率为 32 kHz。 + + + AgoraAudioSampleRateType44100 + (44100):采样率为 44.1 kHz。 + + + AgoraAudioSampleRateType48000 + (48000):采样率为 48 kHz(默认)。 + + + AgoraAudioSampleRateType32000 + (32000):采样率为 32 kHz。 + + + AgoraAudioSampleRateType44100 + (44100):采样率为 44.1 kHz。 + + + AgoraAudioSampleRateType48000 + (48000):采样率为 48 kHz(默认)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audioscenariotype.dita b/dita/RTC-AIDOC/API/enum_audioscenariotype.dita new file mode 100644 index 00000000000..11f15ea0401 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audioscenariotype.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="AUDIO_SCENARIO_TYPE"/> + 音频场景类型。音频场景类型。音频场景类型。 + +
+ 枚举值 + + + AUDIO_SCENARIO_DEFAULT + (0):默认音频场景,SDK 会根据用户角色和音频路由自动选择合适的音频质量。 + + + AUDIO_SCENARIO_GAME_STREAMING + (3):高音质音频场景,适用于主要播放音乐的场景,例如乐器教学。 + + + AUDIO_SCENARIO_CHATROOM + (5):聊天室音频场景,适用于用户频繁切换角色或静音/取消静音麦克风的场景,例如在线教育。 + + + AUDIO_SCENARIO_CHORUS + (7):实时合唱音频场景,适用于网络条件良好且对超低延迟有要求的场景。 + + + AUDIO_SCENARIO_MEETING + (8):会议音频场景,主要用于传输人声。 + + + AUDIO_SCENARIO_AI_SERVER + (9):AI Server 场景。 + + + AUDIO_SCENARIO_AI_CLIENT + (10):AI 对话音频场景,仅适用于用户与由 Conversational AI Engine 创建的对话式智能体交互的场景。 + + + AUDIO_SCENARIO_NUM + (11):枚举值总数。 + + + AgoraAudioScenarioDefault + (0):(默认)自动场景匹配,SDK 会根据用户角色和音频路由自动选择合适的音频质量。 + + + AgoraAudioScenarioGameStreaming + (3):高音质音频场景,适用于以播放音乐为主的场景,例如乐器教学。 + + + AgoraAudioScenarioChatRoom + (5):聊天室场景,适用于用户频繁切换角色或频繁静音、取消静音麦克风的场景,例如在线教育。 + + + AgoraAudioScenarioChorus + (7):实时合唱场景,适用于网络状况良好且对超低延迟有要求的场景。 + + + AgoraAudioScenarioMeeting + (8):会议场景,主要用于语音通话。 + + + AgoraAudioScenarioAIServer + (9):AI Server 场景。 + + + AgoraAudioScenarioAiClient + (10):AI 对话场景,仅适用于用户与由 Conversational AI Engine 创建的对话式智能体交互的场景。 + + + AgoraAudioScenarioDefault + (0):(默认)自动场景匹配,SDK 会根据用户角色和音频路由自动选择合适的音频质量。 + + + AgoraAudioScenarioGameStreaming + (3):高音质音频场景,适用于以播放音乐为主的场景,例如乐器教学。 + + + AgoraAudioScenarioChatRoom + (5):聊天室场景,适用于用户频繁切换角色或频繁静音、取消静音麦克风的场景,例如在线教育。 + + + AgoraAudioScenarioChorus + (7):实时合唱场景,适用于网络状况良好且对超低延迟有要求的场景。 + + + AgoraAudioScenarioMeeting + (8):会议场景,主要用于语音通话。 + + + AgoraAudioScenarioAIServer + (9):AI Server 场景。 + + + AgoraAudioScenarioAiClient + (10):AI 对话场景,仅适用于用户与由 Conversational AI Engine 创建的对话式智能体交互的场景。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiosessionoperationrestriction.dita b/dita/RTC-AIDOC/API/enum_audiosessionoperationrestriction.dita new file mode 100644 index 00000000000..df834d87b78 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiosessionoperationrestriction.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="AUDIO_SESSION_OPERATION_RESTRICTION"/> + SDK 对音频会话的操作权限。SDK 对音频会话的操作权限。SDK 对音频会话的操作权限。 + +
+ 枚举值 + + + AUDIO_SESSION_OPERATION_RESTRICTION_NONE + (0):无任何限制,SDK 可更改音频会话。 + + + AUDIO_SESSION_OPERATION_RESTRICTION_SET_CATEGORY + (1):SDK 不可更改音频会话的类别。 + + + AUDIO_SESSION_OPERATION_RESTRICTION_CONFIGURE_SESSION + (2):SDK 不可更改音频会话的类别、模式或 categoryOptions。 + + + AUDIO_SESSION_OPERATION_RESTRICTION_DEACTIVATE_SESSION + (4):用户离开频道时,SDK 仍保持音频会话处于激活状态,例如用于后台播放音频文件。 + + + AUDIO_SESSION_OPERATION_RESTRICTION_ALL + (128):完全限制 SDK 对音频会话的操作权限,SDK 不可更改音频会话。 + + + AgoraAudioSessionOperationRestrictionNone + (0):无任何限制,SDK 可更改音频会话。 + + + AgoraAudioSessionOperationRestrictionSetCategory + (1):SDK 不可更改音频会话的类别。 + + + AgoraAudioSessionOperationRestrictionConfigureSession + (2):SDK 不可更改音频会话的类别、模式或类别选项。 + + + AgoraAudioSessionOperationRestrictionDeactivateSession + (4):用户离开频道场景时,SDK 保持音频会话处于激活状态,例如用于后台播放音频文件。 + + + AgoraAudioSessionOperationRestrictionAll + (128):完全限制 SDK 对音频会话的操作权限,SDK 不可更改音频会话。 + + + AgoraAudioSessionOperationRestrictionNone + (0):无任何限制,SDK 可更改音频会话。 + + + AgoraAudioSessionOperationRestrictionSetCategory + (1):SDK 不可更改音频会话的类别。 + + + AgoraAudioSessionOperationRestrictionConfigureSession + (2):SDK 不可更改音频会话的类别、模式或类别选项。 + + + AgoraAudioSessionOperationRestrictionDeactivateSession + (4):用户离开频道场景时,SDK 保持音频会话处于激活状态,例如用于后台播放音频文件。 + + + AgoraAudioSessionOperationRestrictionAll + (128):完全限制 SDK 对音频会话的操作权限,SDK 不可更改音频会话。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiosourcetype.dita b/dita/RTC-AIDOC/API/enum_audiosourcetype.dita new file mode 100644 index 00000000000..2af7cf28fed --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiosourcetype.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="AUDIO_SOURCE_TYPE"/> + 音频源类型。音频源类型。音频源类型。音频源类型。 + +
+ 枚举值 + + + AUDIO_SOURCE_MICROPHONE + (0):默认音频源,采集麦克风音频。 + + + AUDIO_SOURCE_CUSTOM + (1):自定义音频源。 + + + AUDIO_SOURCE_MEDIA_PLAYER + (2):媒体播放器音频源。 + + + AUDIO_SOURCE_LOOPBACK_RECORDING + (3):屏幕共享时采集的系统音频源。 + + + AUDIO_SOURCE_MIXED_STREAM + (4):混音源采集的音频。 + + + AUDIO_SOURCE_REMOTE_USER + (5):来自指定远端用户的音频源。 + + + AUDIO_SOURCE_REMOTE_CHANNEL + (6):当前频道中所有用户的混合音频源。 + + + AUDIO_SOURCE_UNKNOWN + (100):未知音频源。 + + + AUDIO_SOURCE_MICROPHONE + (0):默认音频源为麦克风。 + + + AUDIO_SOURCE_CUSTOM + (1):自定义音频源。 + + + AUDIO_SOURCE_MEDIA_PLAYER + (2):媒体播放器音频源。 + + + AUDIO_SOURCE_LOOPBACK_RECORDING + (3):屏幕共享时采集的系统音频源。 + + + AUDIO_SOURCE_MIXED_STREAM + (4):本地客户端的混音音频源。 + + + AUDIO_SOURCE_REMOTE_USER + (5):指定远端用户的音频源。 + + + AUDIO_SOURCE_REMOTE_CHANNEL + (6):当前频道中所有用户的混合音频源。 + + + AUDIO_SOURCE_UNKNOWN + (100):未知音频源。 + + + AgoraAudioSourceMicrophone + (0):默认音频源为麦克风。 + + + AgoraAudioSourceCustom + (1):自定义音频源。 + + + AgoraAudioSourceMediaPlayer + (2):媒体播放器音频源。 + + + AgoraAudioSourceLoopbackRecording + (3):屏幕共享期间采集的系统音频源。 + + + AgoraAudioSourceMixedStream + (4):本地混音轨道生成的音频源。 + + + AgoraAudioSourceRemoteUser + (5):来自指定远端用户的音频源。 + + + AgoraAudioSourceRemoteChannel + (6):当前频道中所有用户的混合音频源。 + + + AgoraAudioSourceTypeUnknown + (100):未知音频源。 + + + AgoraAudioSourceMicrophone + (0):默认音频源为麦克风。 + + + AgoraAudioSourceCustom + (1):自定义音频源。 + + + AgoraAudioSourceMediaPlayer + (2):媒体播放器音频源。 + + + AgoraAudioSourceLoopbackRecording + (3):屏幕共享期间采集的系统音频源。 + + + AgoraAudioSourceMixedStream + (4):本地混音轨道生成的音频源。 + + + AgoraAudioSourceRemoteUser + (5):来自指定远端用户的音频源。 + + + AgoraAudioSourceRemoteChannel + (6):当前频道中所有用户的混合音频源。 + + + AgoraAudioSourceTypeUnknown + (100):未知音频源。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_audiotracktype.dita b/dita/RTC-AIDOC/API/enum_audiotracktype.dita new file mode 100644 index 00000000000..9ca0b163729 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_audiotracktype.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="AUDIO_TRACK_TYPE"/> + 音频轨道类型。音频轨道类型。音频轨道类型。音频轨道类型。 + +
+ 枚举值 + + + AUDIO_TRACK_INVALID + (-1):无效音频轨道。 + + + AUDIO_TRACK_MIXABLE + (0):可混音音频轨道。支持与其他音频流(如麦克风采集的音频流)混音,并在混音后本地播放或发布到频道。该类型的音频轨道延迟高于直通音频轨道。 + + + AUDIO_TRACK_DIRECT + (1):直通音频轨道。替代麦克风采集的音频流,且不支持与其他音频流混音。该类型的音频轨道延迟低于可混音音频轨道。 + 如果该参数设置为 AUDIO_TRACK_DIRECT,则在调用 joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) 加入频道时,必须将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + + AUDIO_TRACK_MIXABLE + (0):可混音音频轨道。支持与其他音频流(如通过麦克风采集的音频流)混音,并在混音后本地播放或发布到频道。延迟高于直通音频轨道。 + + + AUDIO_TRACK_DIRECT + (1):直通音频轨道。替代通过麦克风采集的音频流,且不支持与其他音频流混音。延迟低于可混音音频轨道。 + 如果该参数设置为 AUDIO_TRACK_DIRECT,你必须在调用 joinChannel 加入频道时,将 中的 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + + AgoraAudioTrackTypeMixable + (0):可混音音频轨道。该类型音频轨道支持与其他音频流(如麦克风采集的音频流)混音,并在混音后本地播放或发布到频道。其延迟高于直通音频轨道。 + + + AgoraAudioTrackTypeDirect + (1):直通音频轨道。该类型音频轨道将替代麦克风采集的音频流,不支持与其他音频流混音。其延迟低于可混音音频轨道。 + 如果该参数设置为 AgoraAudioTrackTypeDirect,则在调用 加入频道时,必须在 中将 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + + AgoraAudioTrackTypeMixable + (0):可混音音频轨道。该类型音频轨道支持与其他音频流(如麦克风采集的音频流)混音,并在混音后本地播放或发布到频道。其延迟高于直通音频轨道。 + + + AgoraAudioTrackTypeDirect + (1):直通音频轨道。该类型音频轨道将替代麦克风采集的音频流,不支持与其他音频流混音。其延迟低于可混音音频轨道。 + 如果该参数设置为 AgoraAudioTrackTypeDirect,则在调用 加入频道时,必须在 中将 publishMicrophoneTrack 设置为 ,否则加入频道会失败并返回错误码 -2。 + + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_backgroundblurdegree.dita b/dita/RTC-AIDOC/API/enum_backgroundblurdegree.dita new file mode 100644 index 00000000000..bd4ce06a86f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_backgroundblurdegree.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="BACKGROUND_BLUR_DEGREE"/> + 自定义背景图像的模糊强度。自定义背景图像的模糊强度。自定义背景图像的模糊强度。 + +
+ 枚举值 + + + BLUR_DEGREE_LOW + (1):对自定义背景图像应用低强度模糊处理,用户几乎可以清晰看到背景。 + + + BLUR_DEGREE_MEDIUM + (2):对自定义背景图像应用中等强度模糊处理,用户难以识别背景细节。 + + + BLUR_DEGREE_HIGH + (3):(默认)对自定义背景图像应用高强度模糊处理,用户几乎无法辨识背景特征。 + + + AgoraBlurLow + (1):对自定义背景图像应用低强度模糊,用户几乎可以清晰地看到背景。 + + + AgoraBlurMedium + (2):对自定义背景图像应用中等强度模糊,用户难以识别背景中的细节。 + + + AgoraBlurHigh + (3):(默认)对自定义背景图像应用高强度模糊,用户几乎无法看到背景中的任何特征。 + + + AgoraBlurLow + (1):对自定义背景图像应用低强度模糊,用户几乎可以清晰地看到背景。 + + + AgoraBlurMedium + (2):对自定义背景图像应用中等强度模糊,用户难以识别背景中的细节。 + + + AgoraBlurHigh + (3):(默认)对自定义背景图像应用高强度模糊,用户几乎无法看到背景中的任何特征。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_backgroundsourcetype.dita b/dita/RTC-AIDOC/API/enum_backgroundsourcetype.dita new file mode 100644 index 00000000000..6b8b599b6d4 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_backgroundsourcetype.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="BACKGROUND_SOURCE_TYPE"/> + 自定义背景类型。自定义背景类型。自定义背景类型。 + +
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+ +
自从
+
自 v3.7.200 版本新增。
+
+
+
+
+ 枚举值 + + + BACKGROUND_NONE + (0):将背景作为 alpha 数据处理,不进行替换,仅分离人像与背景。设置该值后,可调用 实现画中画效果。 + + + BACKGROUND_COLOR + (1):(默认)背景为纯色图像。 + + + BACKGROUND_IMG + (2):背景为 PNG 或 JPG 格式的图像。 + + + BACKGROUND_BLUR + (3):背景为原始背景的模糊版本。 + + + BACKGROUND_VIDEO + (4):背景为本地视频,支持 MP4、AVI、MKV、FLV 等格式。 + + + AgoraVirtualBackgroundNone + (0):将背景处理为 Alpha 数据,不进行替换,仅分离人像与背景。设置该值后,可调用 实现画中画效果。 + + + AgoraVirtualBackgroundColor + (1):(默认)背景为纯色图像。 + + + AgoraVirtualBackgroundImg + (2):背景为 PNG 或 JPG 格式的图像。 + + + AgoraVirtualBackgroundBlur + (3):背景为原始背景的模糊版本。 + + + AgoraVirtualBackgroundVideo + (4):背景为本地视频,支持 MP4、AVI、MKV、FLV 等格式。 + + + AgoraVirtualBackgroundNone + (0):将背景处理为 Alpha 数据,不进行替换,仅分离人像与背景。设置该值后,可调用 实现画中画效果。 + + + AgoraVirtualBackgroundColor + (1):(默认)背景为纯色图像。 + + + AgoraVirtualBackgroundImg + (2):背景为 PNG 或 JPG 格式的图像。 + + + AgoraVirtualBackgroundBlur + (3):背景为原始背景的模糊版本。 + + + AgoraVirtualBackgroundVideo + (4):背景为本地视频,支持 MP4、AVI、MKV、FLV 等格式。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_cameradirection.dita b/dita/RTC-AIDOC/API/enum_cameradirection.dita new file mode 100644 index 00000000000..e4d2f09b592 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_cameradirection.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="CAMERA_DIRECTION"/> + 摄像头方向。摄像头方向。摄像头方向。 + +
+ 枚举值 + + + CAMERA_REAR + (0):后置摄像头。 + + + CAMERA_FRONT + (1):(默认)前置摄像头。 + + + AgoraCameraDirectionRear + (0):后置摄像头。 + + + AgoraCameraDirectionFront + (1):(默认)前置摄像头。 + + + CAMERA_REAR + (0):后置摄像头。 + + + CAMERA_FRONT + (1):(默认)前置摄像头。 + + + CAMERA_EXTRAL + (2):外部摄像头。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_camerafocallengthtype.dita b/dita/RTC-AIDOC/API/enum_camerafocallengthtype.dita new file mode 100644 index 00000000000..4bcb418f417 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_camerafocallengthtype.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="CAMERA_FOCAL_LENGTH_TYPE"/> + 摄像头焦距类型。摄像头焦距类型。摄像头焦距类型。 + +
+ 此枚举类仅适用于 Android 和 iOS 平台。 +
+
+ 枚举值 + + + CAMERA_FOCAL_LENGTH_DEFAULT + (0):默认镜头(默认)。 + + + CAMERA_FOCAL_LENGTH_WIDE_ANGLE + (1):广角镜头。 + + + CAMERA_FOCAL_LENGTH_ULTRA_WIDE + (2):超广角镜头。 + + + CAMERA_FOCAL_LENGTH_TELEPHOTO + (3):长焦镜头(仅适用于 iOS 平台)。 + + + AgoraFocalLengthDefault + (0):默认镜头(默认)。 + + + AgoraFocalLengthWide + (1):广角镜头。 + + + AgoraFocalLengthUltraWide + (2):超广角镜头。 + + + AgoraFocalLengthTelephoto + (3):长焦镜头。 + + + CAMERA_FOCAL_LENGTH_DEFAULT + (0):默认镜头(默认)。 + + + CAMERA_FOCAL_LENGTH_WIDE_ANGLE + (1):广角镜头。 + + + CAMERA_FOCAL_LENGTH_ULTRA_WIDE + (2):超广角镜头。 + + + CAMERA_FOCAL_LENGTH_TELEPHOTO + (3):长焦镜头。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_camerastabilizationmode.dita b/dita/RTC-AIDOC/API/enum_camerastabilizationmode.dita new file mode 100644 index 00000000000..38752e842ed --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_camerastabilizationmode.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="CAMERA_STABILIZATION_MODE"/> + 摄像头防抖模式。摄像头防抖模式。 + +
+

防抖效果依次增强:1 < 2 < 3,延迟也随之增加。

+

防抖效果按(1)<(2)<(3)的顺序增强,延迟也会相应增加。

+
+
+ 枚举值 + + + CAMERA_STABILIZATION_MODE_OFF + (-1):(默认)关闭摄像头防抖模式。 + + + CAMERA_STABILIZATION_MODE_AUTO + (0):自动防抖模式。系统根据摄像头状态自动选择防抖等级,但延迟较高,不推荐使用。 + + + CAMERA_STABILIZATION_MODE_LEVEL_1 + (1):一级防抖模式,推荐使用。 + + + CAMERA_STABILIZATION_MODE_LEVEL_2 + (2):二级防抖模式。 + + + CAMERA_STABILIZATION_MODE_LEVEL_3 + (3):三级防抖模式。 + + + CAMERA_STABILIZATION_MODE_MAX_LEVEL + 摄像头防抖模式的最大等级。 + + + AgoraCameraStabilizationModeOff + (-1):(默认)关闭摄像头防抖。 + + + AgoraCameraStabilizationModeAuto + (0):自动防抖。系统会根据摄像头状态自动选择防抖等级,但延迟较高,不推荐使用。 + + + AgoraCameraStabilizationModeLevel1 + (1):(推荐)一级防抖。 + + + AgoraCameraStabilizationModeLevel2 + (2):二级防抖。 + + + AgoraCameraStabilizationModeLevel3 + (3):三级防抖。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_capturebrightnessleveltype.dita b/dita/RTC-AIDOC/API/enum_capturebrightnessleveltype.dita new file mode 100644 index 00000000000..d7438e2aafa --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_capturebrightnessleveltype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="CAPTURE_BRIGHTNESS_LEVEL_TYPE"/> + 本地摄像头采集的视频图像亮度等级。本地摄像头采集的视频图像亮度等级。本地摄像头采集的视频图像亮度等级。 + +
+ 枚举值 + + + CAPTURE_BRIGHTNESS_LEVEL_INVALID + (-1):未检测到视频图像的亮度等级。请等待几秒钟,在下一次回调中通过 captureBrightnessLevel 获取亮度等级。 + + + CAPTURE_BRIGHTNESS_LEVEL_NORMAL + (0):视频图像亮度等级正常。 + + + CAPTURE_BRIGHTNESS_LEVEL_BRIGHT + (1):视频图像亮度等级过亮。 + + + CAPTURE_BRIGHTNESS_LEVEL_DARK + (2):视频图像亮度等级过暗。 + + + AgoraCaptureBrightnessLevelInvalid + (-1):未检测到视频图像的亮度等级。请等待几秒钟,在下一次回调中通过 captureBrightnessLevel 获取亮度等级。 + + + AgoraCaptureBrightnessLevelNormal + (0):视频图像亮度等级正常。 + + + AgoraCaptureBrightnessLevelBright + (1):视频图像亮度等级过亮。 + + + AgoraCaptureBrightnessLevelDark + (2):视频图像亮度等级过暗。 + + + AgoraCaptureBrightnessLevelInvalid + (-1):未检测到视频图像的亮度等级。请等待几秒钟,在下一次回调中通过 captureBrightnessLevel 获取亮度等级。 + + + AgoraCaptureBrightnessLevelNormal + (0):视频图像亮度等级正常。 + + + AgoraCaptureBrightnessLevelBright + (1):视频图像亮度等级过亮。 + + + AgoraCaptureBrightnessLevelDark + (2):视频图像亮度等级过暗。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_channelmediarelayerror.dita b/dita/RTC-AIDOC/API/enum_channelmediarelayerror.dita new file mode 100644 index 00000000000..da1f839e582 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_channelmediarelayerror.dita @@ -0,0 +1,157 @@ + + + + <ph keyref="CHANNEL_MEDIA_RELAY_ERROR"/> + 跨频道媒体流转发过程中出现的错误码。跨频道媒体流转发的错误码。跨频道媒体流转发的错误码。 + +
+ 枚举值 + + + RELAY_OK + (0):无错误。 + + + RELAY_ERROR_SERVER_ERROR_RESPONSE + (1):服务器响应出错。 + + + RELAY_ERROR_SERVER_NO_RESPONSE + (2):服务器无响应。该错误可能由网络连接不佳导致。如果在发起跨频道媒体流转发时出现此错误,可以稍后重试;如果在转发过程中出现此错误,可以调用 leaveChannel(const LeaveChannelOptions& options) 离开频道。该错误也可能是因为项目未启用跨频道媒体流转发服务。你可以[联系技术支持](https://ticket.shengwang.cn/)启用该服务。 + + + RELAY_ERROR_NO_RESOURCE_AVAILABLE + (3):SDK 无法访问服务,可能由于服务器资源受限。 + + + RELAY_ERROR_FAILED_JOIN_SRC + (4):加入源频道失败。 + + + RELAY_ERROR_FAILED_JOIN_DEST + (5):加入目标频道失败。 + + + RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC + (6):服务器接收媒体流失败。 + + + RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST + (7):服务器发送媒体流失败。 + + + RELAY_ERROR_SERVER_CONNECTION_LOST + (8):由于网络连接不佳,SDK 与服务器断开连接。你可以调用 leaveChannel(const LeaveChannelOptions& options) 离开频道。 + + + RELAY_ERROR_INTERNAL_ERROR + (9):服务器内部发生错误。 + + + RELAY_ERROR_SRC_TOKEN_EXPIRED + (10):源频道的 Token 已过期。 + + + RELAY_ERROR_DEST_TOKEN_EXPIRED + (11):目标频道的 Token 已过期。 + + + AgoraChannelMediaRelayErrorNone + (0):无错误。 + + + AgoraChannelMediaRelayErrorServerErrorResponse + (1):服务器响应出错。 + + + AgoraChannelMediaRelayErrorServerNoResponse + (2):服务器无响应。可能由于网络连接不佳导致。若在发起跨频道媒体流转发时出现该错误,可稍后重试;若在转发过程中出现该错误,可调用 离开频道。该错误也可能是项目未启用跨频道媒体流转发服务所致,可[联系技术支持](https://ticket.shengwang.cn/)启用该服务。 + + + AgoraChannelMediaRelayErrorNoResourceAvailable + (3):SDK 无法访问服务,可能由于服务器资源不足。 + + + AgoraChannelMediaRelayErrorFailedJoinSourceChannel + (4):加入源频道失败。 + + + AgoraChannelMediaRelayErrorFailedJoinDestinationChannel + (5):加入目标频道失败。 + + + AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource + (6):服务器接收媒体流失败。 + + + AgoraChannelMediaRelayErrorFailedPacketSentToDestination + (7):服务器发送媒体流失败。 + + + AgoraChannelMediaRelayErrorServerConnectionLost + (8):由于网络连接不佳,SDK 与服务器断开连接。你可以调用 离开频道。 + + + AgoraChannelMediaRelayErrorInternalError + (9):服务器内部错误。 + + + AgoraChannelMediaRelayErrorSourceTokenExpired + (10):源频道的 Token 已过期。 + + + AgoraChannelMediaRelayErrorDestinationTokenExpired + (11):目标频道的 Token 已过期。 + + + AgoraChannelMediaRelayErrorNone + (0):无错误。 + + + AgoraChannelMediaRelayErrorServerErrorResponse + (1):服务器响应出错。 + + + AgoraChannelMediaRelayErrorServerNoResponse + (2):服务器无响应。可能由于网络连接不佳导致。若在发起跨频道媒体流转发时出现该错误,可稍后重试;若在转发过程中出现该错误,可调用 离开频道。该错误也可能是项目未启用跨频道媒体流转发服务所致,可[联系技术支持](https://ticket.shengwang.cn/)启用该服务。 + + + AgoraChannelMediaRelayErrorNoResourceAvailable + (3):SDK 无法访问服务,可能由于服务器资源不足。 + + + AgoraChannelMediaRelayErrorFailedJoinSourceChannel + (4):加入源频道失败。 + + + AgoraChannelMediaRelayErrorFailedJoinDestinationChannel + (5):加入目标频道失败。 + + + AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource + (6):服务器接收媒体流失败。 + + + AgoraChannelMediaRelayErrorFailedPacketSentToDestination + (7):服务器发送媒体流失败。 + + + AgoraChannelMediaRelayErrorServerConnectionLost + (8):由于网络连接不佳,SDK 与服务器断开连接。你可以调用 离开频道。 + + + AgoraChannelMediaRelayErrorInternalError + (9):服务器内部错误。 + + + AgoraChannelMediaRelayErrorSourceTokenExpired + (10):源频道的 Token 已过期。 + + + AgoraChannelMediaRelayErrorDestinationTokenExpired + (11):目标频道的 Token 已过期。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_channelmediarelaystate.dita b/dita/RTC-AIDOC/API/enum_channelmediarelaystate.dita new file mode 100644 index 00000000000..a55c275d30f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_channelmediarelaystate.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="CHANNEL_MEDIA_RELAY_STATE"/> + 跨频道媒体流转发状态码。跨频道媒体流转发的状态码。跨频道媒体流转发的状态码。 + +
+ 枚举值 + + + RELAY_STATE_IDLE + (0):初始状态。调用 成功停止跨频道媒体流转发后, 回调返回该状态。 + + + RELAY_STATE_CONNECTING + (1):SDK 正在尝试将媒体流转发至目标频道。 + + + RELAY_STATE_RUNNING + (2):SDK 已成功将媒体流转发至目标频道。 + + + RELAY_STATE_FAILURE + (3):发生错误。详见 回调中的 code + + + AgoraChannelMediaRelayStateIdle + (0):初始状态。调用 成功停止跨频道媒体流转发后,channelMediaRelayStateDidChange 回调会返回该状态。 + + + AgoraChannelMediaRelayStateConnecting + (1):SDK 正在尝试将媒体流转发至目标频道。 + + + AgoraChannelMediaRelayStateRunning + (2):SDK 已成功将媒体流转发至目标频道。 + + + AgoraChannelMediaRelayStateFailure + (3):发生错误。详见 channelMediaRelayStateDidChange 回调中的 + + + AgoraChannelMediaRelayStateIdle + (0):初始状态。调用 成功停止跨频道媒体流转发后,channelMediaRelayStateDidChange 回调会返回该状态。 + + + AgoraChannelMediaRelayStateConnecting + (1):SDK 正在尝试将媒体流转发至目标频道。 + + + AgoraChannelMediaRelayStateRunning + (2):SDK 已成功将媒体流转发至目标频道。 + + + AgoraChannelMediaRelayStateFailure + (3):发生错误。详见 channelMediaRelayStateDidChange 回调中的 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_channelprofiletype.dita b/dita/RTC-AIDOC/API/enum_channelprofiletype.dita new file mode 100644 index 00000000000..23fe492b985 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_channelprofiletype.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="CHANNEL_PROFILE_TYPE"/> + 频道场景类型。频道场景。频道场景。 + +
+ 枚举值 + + + CHANNEL_PROFILE_COMMUNICATION + (0):通信场景。适用于频道中仅有两名用户的场景。 + + + CHANNEL_PROFILE_LIVE_BROADCASTING + (1):互动直播场景。适用于频道中有两名以上用户的场景。 + + + CHANNEL_PROFILE_GAME + (2):游戏场景。自 v4.5.0 版本废弃。 + + + CHANNEL_PROFILE_CLOUD_GAMING + (3):云游戏场景。对延迟进行了优化,适用于用户之间需要频繁互动的场景。自 v4.5.0 版本废弃。 + + + CHANNEL_PROFILE_COMMUNICATION_1v1 + (4):通信 1v1 场景。自 v4.5.0 版本废弃。 + + + AgoraChannelProfileCommunication + (0):通信场景。适用于频道中仅有两名用户的场景。 + + + AgoraChannelProfileLiveBroadcasting + (1):互动直播场景。适用于频道中有两名以上用户的场景。 + + + AgoraChannelProfileGame + (2):游戏场景。 + + + AgoraChannelProfileCloudGaming + (3):云游戏场景。对延迟进行了优化,适用于用户之间需要频繁互动的场景。 + + + AgoraChannelProfileCommunication_1v1 + (4):点对点通信场景。 + + + AgoraChannelProfileCommunication + (0):通信场景。适用于频道中仅有两名用户的场景。 + + + AgoraChannelProfileLiveBroadcasting + (1):互动直播场景。适用于频道中有两名以上用户的场景。 + + + AgoraChannelProfileGame + (2):游戏场景。 + + + AgoraChannelProfileCloudGaming + (3):云游戏场景。对延迟进行了优化,适用于用户之间需要频繁互动的场景。 + + + AgoraChannelProfileCommunication_1v1 + (4):点对点通信场景。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_clientrolechangefailedreason.dita b/dita/RTC-AIDOC/API/enum_clientrolechangefailedreason.dita new file mode 100644 index 00000000000..afdb539e188 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_clientrolechangefailedreason.dita @@ -0,0 +1,67 @@ + + + + <ph keyref="CLIENT_ROLE_CHANGE_FAILED_REASON"/> + 用户角色切换失败的原因。用户角色切换失败的原因。用户角色切换失败的原因。 + +
+ 枚举值 + + + CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS + (1):频道中的主播数量超过限制。 + 仅在启用 128 人功能时报告此枚举值。主播的最大数量取决于启用 128 人功能时配置的实际主播数量。 + + + + CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED + (2):请求被声网服务器拒绝。建议提示用户重试切换角色。 + + + CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT + (3):请求超时。建议提示用户检查网络连接并重试切换角色。 + + + CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED + (4):客户端实例与声网边缘服务器断开连接。你可以通过 onConnectionStateChanged 回调中的 reason 排查失败原因。 + + + AgoraClientRoleChangeFailedTooManyBroadcasters + (1):频道中的主播数量超过限制。 + 仅在启用 128 人功能时报告此枚举值。主播的最大数量取决于启用 128 人功能时配置的实际主播数量。 + + + + AgoraClientRoleChangeFailedNotAuthorized + (2):请求被声网服务器拒绝。建议提示用户重试切换角色。 + + + AgoraClientRoleChangeFailedRequestTimeout + (3):请求超时。建议提示用户检查网络连接并重试切换角色。 + + + AgoraClientRoleChangeFailedConnectionFailed + (4):SDK 与声网边缘服务器断开连接。你可以通过 connectionChangedToState:reason: 中的 reason 排查失败原因。 + + + AgoraClientRoleChangeFailedTooManyBroadcasters + (1):频道中的主播数量超过限制。 + 仅在启用 128 人功能时报告此枚举值。主播的最大数量取决于启用 128 人功能时配置的实际主播数量。 + + + + AgoraClientRoleChangeFailedNotAuthorized + (2):请求被声网服务器拒绝。建议提示用户重试切换角色。 + + + AgoraClientRoleChangeFailedRequestTimeout + (3):请求超时。建议提示用户检查网络连接并重试切换角色。 + + + AgoraClientRoleChangeFailedConnectionFailed + (4):SDK 与声网边缘服务器断开连接。你可以通过 connectionChangedToState:reason: 中的 reason 排查失败原因。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_clientroletype.dita b/dita/RTC-AIDOC/API/enum_clientroletype.dita new file mode 100644 index 00000000000..2048a479da0 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_clientroletype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="CLIENT_ROLE_TYPE"/> + 互动直播中用户的角色类型。互动直播中用户的角色类型。互动直播中用户的角色类型。 + +
+ 枚举值 + + + CLIENT_ROLE_BROADCASTER + (1):主播。可以发送和接收音视频流。 + + + CLIENT_ROLE_AUDIENCE + (2):观众(默认)。只能接收音视频流。 + + + AgoraClientRoleBroadcaster + (1):主播。可以发送和接收音视频流。 + + + AgoraClientRoleAudience + (2):观众(默认)。只能接收音视频流。 + + + AgoraClientRoleBroadcaster + (1):主播。可以发送和接收音视频流。 + + + AgoraClientRoleAudience + (2):观众(默认)。只能接收音视频流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_cloudproxytype.dita b/dita/RTC-AIDOC/API/enum_cloudproxytype.dita new file mode 100644 index 00000000000..89ae4372807 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_cloudproxytype.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="CLOUD_PROXY_TYPE"/> + 云代理类型。云代理类型。云代理类型。 + +
+
+ +
自从
+
自 v3.3.0 版本新增。
+
+
+
+
+ 枚举值 + + + NONE_PROXY + (0):(默认)自动模式。在此模式下,SDK 会尝试直接连接 SD-RTN™,如果连接失败,则自动切换为 TCP/TLS 443。 + + + UDP_PROXY + (1):UDP 协议云代理模式。在此模式下,SDK 始终通过 UDP 传输数据。 + + + TCP_PROXY + (2):TCP(加密)协议云代理模式。在此模式下,SDK 始终通过 TCP/TLS 443 传输数据。 + + + AgoraNoneProxy + (0):(默认)自动模式。在该模式下,SDK 会尝试直接连接 SD-RTN™,若连接失败,则自动切换为 TCP/TLS 443。 + + + AgoraUdpProxy + (1):UDP 协议云代理模式。SDK 始终通过 UDP 传输数据。 + + + AgoraTcpProxy + (2):TCP(加密)协议云代理模式。SDK 始终通过 TCP/TLS 443 传输数据。 + + + AgoraNoneProxy + (0):(默认)自动模式。在该模式下,SDK 会尝试直接连接 SD-RTN™,若连接失败,则自动切换为 TCP/TLS 443。 + + + AgoraUdpProxy + (1):UDP 协议云代理模式。SDK 始终通过 UDP 传输数据。 + + + AgoraTcpProxy + (2):TCP(加密)协议云代理模式。SDK 始终通过 TCP/TLS 443 传输数据。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_codeccapmask.dita b/dita/RTC-AIDOC/API/enum_codeccapmask.dita new file mode 100644 index 00000000000..526a351c423 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_codeccapmask.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="CODEC_CAP_MASK"/> + 编解码类型的位掩码。编解码类型的位掩码。编解码类型的位掩码。 + +
+ 枚举值 + + + CODEC_CAP_MASK_NONE + (0):设备不支持编码或解码功能。 + + + CODEC_CAP_MASK_HW_DEC + (1 << 0):设备支持硬件解码功能。 + + + CODEC_CAP_MASK_HW_ENC + (1 << 1):设备支持硬件编码功能。 + + + CODEC_CAP_MASK_SW_DEC + (1 << 2):设备支持软件解码功能。 + + + CODEC_CAP_MASK_SW_ENC + (1 << 3):设备支持软件编码功能。 + + + AgoraCodecMaskNone + (0):设备不支持编码和解码。 + + + AgoraCodecMaskHwDec + (1):设备支持硬件解码。 + + + AgoraCodecMaskHwEnc + (2):设备支持硬件编码。 + + + AgoraCodecMaskSwDec + (4):设备支持软件解码。 + + + AgoraCodecMaskSwEnc + (8):设备支持软件编码。 + + + AgoraCodecMaskNone + (0):设备不支持编码和解码。 + + + AgoraCodecMaskHwDec + (1):设备支持硬件解码。 + + + AgoraCodecMaskHwEnc + (2):设备支持硬件编码。 + + + AgoraCodecMaskSwDec + (4):设备支持软件解码。 + + + AgoraCodecMaskSwEnc + (8):设备支持软件编码。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_compressionpreference.dita b/dita/RTC-AIDOC/API/enum_compressionpreference.dita new file mode 100644 index 00000000000..400858b3004 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_compressionpreference.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="COMPRESSION_PREFERENCE"/> + 视频编码的压缩偏好。视频编码的压缩偏好。视频编码的压缩偏好。视频编码的压缩偏好。 + +
+ 枚举值 + + + PREFER_COMPRESSION_AUTO + (-1):(默认)自动模式。SDK 会根据设置的视频场景自动选择 PREFER_LOW_LATENCY 或 PREFER_QUALITY,以实现最佳用户体验。 + + + PREFER_LOW_LATENCY + (0):低延迟优先。SDK 会压缩视频帧以降低延迟,适用于对流畅性要求较高且可接受画质降低的场景。 + + + PREFER_QUALITY + (1):高质量优先。SDK 会在保持视频质量的同时压缩视频帧,适用于对画质要求较高的场景。 + + + PREFER_COMPRESSION_AUTO + (-1):(默认)自动模式。SDK 会根据设置的视频场景自动选择 PREFER_LOW_LATENCY 或 PREFER_QUALITY,以实现最佳用户体验。 + + + PREFER_LOW_LATENCY + (0):低延迟优先。SDK 会压缩视频帧以降低延迟,适用于对流畅性要求较高且可接受视频质量降低的场景。 + + + PREFER_QUALITY + (1):高质量优先。SDK 会在保持视频质量的同时压缩视频帧,适用于对视频质量要求较高的场景。 + + + AgoraCompressionAuto + (-1):自动模式(默认)。SDK 会根据设置的视频场景自动选择 AgoraCompressionLowLatency 或 AgoraCompressionQuality,以实现最佳用户体验。 + + + AgoraCompressionLowLatency + (0):低延迟优先。SDK 会压缩视频帧以降低延迟,适用于对流畅性要求较高且可接受视频质量降低的场景。 + + + AgoraCompressionQuality + (1):高质量优先。SDK 会在保持视频质量的同时压缩视频帧,适用于对视频质量要求较高的场景。 + + + AgoraCompressionAuto + (-1):自动模式(默认)。SDK 会根据设置的视频场景自动选择 AgoraCompressionLowLatency 或 AgoraCompressionQuality,以实现最佳用户体验。 + + + AgoraCompressionLowLatency + (0):低延迟优先。SDK 会压缩视频帧以降低延迟,适用于对流畅性要求较高且可接受视频质量降低的场景。 + + + AgoraCompressionQuality + (1):高质量优先。SDK 会在保持视频质量的同时压缩视频帧,适用于对视频质量要求较高的场景。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_connectionchangedreasontype.dita b/dita/RTC-AIDOC/API/enum_connectionchangedreasontype.dita new file mode 100644 index 00000000000..2dbfc92ca72 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_connectionchangedreasontype.dita @@ -0,0 +1,303 @@ + + + + <ph keyref="CONNECTION_CHANGED_REASON_TYPE"/> + 连接状态变化的原因。连接状态变化的原因。连接状态变化的原因。 + +
+ 枚举值 + + + CONNECTION_CHANGED_CONNECTING + (0):SDK 正在连接声网边缘服务器。 + + + CONNECTION_CHANGED_JOIN_SUCCESS + (1):SDK 成功加入频道。 + + + CONNECTION_CHANGED_INTERRUPTED + (2):SDK 与声网边缘服务器的连接中断。 + + + CONNECTION_CHANGED_BANNED_BY_SERVER + (3):SDK 与声网边缘服务器的连接被服务器禁止。例如,用户被踢出频道时会返回该状态。 + + + CONNECTION_CHANGED_JOIN_FAILED + (4):SDK 加入频道失败。若超过 20 分钟仍未成功加入,将返回该状态码并停止重连。你需要提示用户尝试切换网络并重新加入频道。 + + + CONNECTION_CHANGED_LEAVE_CHANNEL + (5):SDK 已离开频道。 + + + CONNECTION_CHANGED_INVALID_APP_ID + (6):无效的 App ID。请使用有效的 App ID 重新加入频道,并确保该 ID 与声网控制台中生成的一致。 + + + CONNECTION_CHANGED_INVALID_CHANNEL_NAME + (7):无效的频道名。请使用有效的频道名重新加入频道。频道名为最多 64 字节的字符串,支持的字符共 89 个,包括:小写字母 a-z、大写字母 A-Z、数字 0-9,以及以下符号:! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ , + + + CONNECTION_CHANGED_INVALID_TOKEN + (8):无效的 Token。可能原因包括:项目在声网控制台启用了 App Certificate,但加入频道时未传入 Token;调用 joinChannel 加入频道时指定的 uid 与生成 Token 时使用的 uid 不一致;生成的 Token 与用于加入频道的 Token 不一致。请确保:启用 App Certificate 的项目加入频道时必须传入 Token;生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致;生成的 Token 与传入的 Token 一致。 + + + CONNECTION_CHANGED_TOKEN_EXPIRED + (9):当前使用的 Token 已过期。你需要在服务器上生成新的 Token,并使用新 Token 重新加入频道。 + + + CONNECTION_CHANGED_REJECTED_BY_SERVER + (10):连接被服务器拒绝。可能原因包括:用户已在频道中仍调用 joinChannel 方法加入频道,请停止调用该方法以清除错误;用户在进行通话测试时尝试加入频道,需在测试结束后再加入频道。 + + + CONNECTION_CHANGED_SETTING_PROXY_SERVER + (11):由于 SDK 设置了代理服务器,连接状态变为重连中。 + + + CONNECTION_CHANGED_RENEW_TOKEN + (12):由于更新 Token,连接状态发生变化。 + + + CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED + (13):客户端 IP 地址发生变化。若多次收到该状态码,请提示用户切换网络并重新加入频道。 + + + CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT + (14):SDK 与声网边缘服务器之间的连接保活超时,SDK 会自动尝试重连。 + + + CONNECTION_CHANGED_REJOIN_SUCCESS + (15):用户已成功重新加入频道。 + + + CONNECTION_CHANGED_LOST + (16):SDK 与服务器之间的连接已丢失。 + + + CONNECTION_CHANGED_ECHO_TEST + (17):由于回声测试,连接状态发生变化。 + + + CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER + (18):本地 IP 地址被用户更改。 + + + CONNECTION_CHANGED_SAME_UID_LOGIN + (19):用户在不同设备上以相同 UID 加入同一频道。 + 使用相同 UID 加入同一频道为未定义行为,声网不保证所有类似情况都会收到 reason 19。 + + + + CONNECTION_CHANGED_TOO_MANY_BROADCASTERS + (20):频道中的主播数量已达上限。 + + + CONNECTION_CHANGED_LICENSE_VALIDATION_FAILURE + (21):由于许可证验证失败,连接失败。 + + + CONNECTION_CHANGED_CERTIFICATION_VERYFY_FAILURE + (22):由于证书验证失败,连接失败。 + + + CONNECTION_CHANGED_STREAM_CHANNEL_NOT_AVAILABLE + (23):由于未授予流通道权限,连接失败。 + + + CONNECTION_CHANGED_INCONSISTENT_APPID + (24):由于加入频道时使用了不一致的 App ID,连接失败。 + + + AgoraConnectionChangedReasonConnecting + (0):SDK 正在连接声网边缘服务器。 + + + AgoraConnectionChangedReasonJoinSuccess + (1):SDK 成功加入频道。 + + + AgoraConnectionChangedReasonInterrupted + (2):SDK 与声网边缘服务器的连接中断。 + + + AgoraConnectionChangedReasonBannedByServer + (3):SDK 与声网边缘服务器的连接被服务器禁止。例如,用户被踢出频道时会返回该状态。 + + + AgoraConnectionChangedReasonJoinFailed + (4):SDK 加入频道失败。若超过 20 分钟仍未加入成功,将返回该状态并停止重连。请提示用户切换网络后重新加入频道。 + + + AgoraConnectionChangedReasonLeaveChannel + (5):SDK 已离开频道。 + + + AgoraConnectionChangedReasonInvalidAppId + (6):App ID 无效。请使用有效的 App ID 重新加入频道,并确保该 App ID 与声网控制台中生成的一致。 + + + AgoraConnectionChangedReasonInvalidChannelName + (7):频道名无效。请使用有效的频道名重新加入频道。频道名为不超过 64 字节的字符串,支持的字符共 89 个,包括:小写字母 a-z、大写字母 A-Z、数字 0-9,以及以下符号:!、#、$、% 、&、(、)、+、-、:、;、<、=、.、>、?、@、[、]、^、_、{、}、|、~、,。 + + + AgoraConnectionChangedReasonInvalidToken + (8):Token 无效。可能原因包括:项目在声网控制台启用了 App Certificate,但加入频道时未传入 Token;调用 时指定的 uid 与生成 Token 时使用的 uid 不一致;生成的 Token 与用于加入频道的 Token 不一致。请确保:启用 App Certificate 的项目加入频道时必须传入 Token;生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致;生成的 Token 与用于加入频道的 Token 一致。 + + + AgoraConnectionChangedReasonTokenExpired + (9):当前使用的 Token 已过期。请在服务器上生成新的 Token,并使用该 Token 重新加入频道。 + + + AgoraConnectionChangedReasonRejectedByServer + (10):连接被服务器拒绝。可能原因包括:用户已在频道中,但仍调用 加入频道;或用户正在进行通话测试时尝试加入频道。请停止调用该方法或在通话测试结束后再加入频道。 + + + AgoraConnectionChangedReasonSettingProxyServer + (11):由于 SDK 设置了代理服务器,连接状态变为重连中。 + + + AgoraConnectionChangedReasonRenewToken + (12):由于更新 Token,连接状态发生变化。 + + + AgoraConnectionChangedReasonClientIpAddressChanged + (13):客户端 IP 地址发生变化。若多次收到该状态码,请提示用户切换网络并重新加入频道。 + + + AgoraConnectionChangedReasonKeepAliveTimeout + (14):SDK 与声网边缘服务器之间的连接保活超时,SDK 会自动尝试重连。 + + + AgoraConnectionChangedReasonRejoinSuccess + (15):用户已成功重新加入频道。 + + + AgoraConnectionChangedReasonLost + (16):SDK 与服务器之间的连接已丢失。 + + + AgoraConnectionChangedReasonEchoTest + (17):由于回声测试,连接状态发生变化。 + + + AgoraConnectionChangedClientIpAddressChangedByUser + (18):本地 IP 地址被用户更改。 + + + AgoraConnectionChangedSameUidLogin + (19):用户在不同设备上以相同 UID 加入同一频道。 + 使用相同 UID 加入同一频道为未定义行为,声网不保证所有类似情况都会收到 reason 19。 + + + + AgoraConnectionChangedTooManyBroadcasters + (20):频道中的主播数量已达上限。 + + + AgoraConnectionChangedLicenseValidationFailure + (21):由于许可证验证失败,连接失败。 + + + AgoraConnectionChangedCertificationVerifyFailure + (22):由于证书验证失败,连接失败。 + + + AgoraConnectionChangedReasonConnecting + (0):SDK 正在连接声网边缘服务器。 + + + AgoraConnectionChangedReasonJoinSuccess + (1):SDK 成功加入频道。 + + + AgoraConnectionChangedReasonInterrupted + (2):SDK 与声网边缘服务器的连接中断。 + + + AgoraConnectionChangedReasonBannedByServer + (3):SDK 与声网边缘服务器的连接被服务器禁止。例如,用户被踢出频道时会返回该状态。 + + + AgoraConnectionChangedReasonJoinFailed + (4):SDK 加入频道失败。若超过 20 分钟仍未加入成功,将返回该状态并停止重连。请提示用户切换网络后重新加入频道。 + + + AgoraConnectionChangedReasonLeaveChannel + (5):SDK 已离开频道。 + + + AgoraConnectionChangedReasonInvalidAppId + (6):App ID 无效。请使用有效的 App ID 重新加入频道,并确保该 App ID 与声网控制台中生成的一致。 + + + AgoraConnectionChangedReasonInvalidChannelName + (7):频道名无效。请使用有效的频道名重新加入频道。频道名为不超过 64 字节的字符串,支持的字符共 89 个,包括:小写字母 a-z、大写字母 A-Z、数字 0-9,以及以下符号:!、#、$、% 、&、(、)、+、-、:、;、<、=、.、>、?、@、[、]、^、_、{、}、|、~、,。 + + + AgoraConnectionChangedReasonInvalidToken + (8):Token 无效。可能原因包括:项目在声网控制台启用了 App Certificate,但加入频道时未传入 Token;调用 时指定的 uid 与生成 Token 时使用的 uid 不一致;生成的 Token 与用于加入频道的 Token 不一致。请确保:启用 App Certificate 的项目加入频道时必须传入 Token;生成 Token 时指定的用户 ID 与加入频道时使用的用户 ID 一致;生成的 Token 与用于加入频道的 Token 一致。 + + + AgoraConnectionChangedReasonTokenExpired + (9):当前使用的 Token 已过期。请在服务器上生成新的 Token,并使用该 Token 重新加入频道。 + + + AgoraConnectionChangedReasonRejectedByServer + (10):连接被服务器拒绝。可能原因包括:用户已在频道中,但仍调用 加入频道;或用户正在进行通话测试时尝试加入频道。请停止调用该方法或在通话测试结束后再加入频道。 + + + AgoraConnectionChangedReasonSettingProxyServer + (11):由于 SDK 设置了代理服务器,连接状态变为重连中。 + + + AgoraConnectionChangedReasonRenewToken + (12):由于更新 Token,连接状态发生变化。 + + + AgoraConnectionChangedReasonClientIpAddressChanged + (13):客户端 IP 地址发生变化。若多次收到该状态码,请提示用户切换网络并重新加入频道。 + + + AgoraConnectionChangedReasonKeepAliveTimeout + (14):SDK 与声网边缘服务器之间的连接保活超时,SDK 会自动尝试重连。 + + + AgoraConnectionChangedReasonRejoinSuccess + (15):用户已成功重新加入频道。 + + + AgoraConnectionChangedReasonLost + (16):SDK 与服务器之间的连接已丢失。 + + + AgoraConnectionChangedReasonEchoTest + (17):由于回声测试,连接状态发生变化。 + + + AgoraConnectionChangedClientIpAddressChangedByUser + (18):本地 IP 地址被用户更改。 + + + AgoraConnectionChangedSameUidLogin + (19):用户在不同设备上以相同 UID 加入同一频道。 + 使用相同 UID 加入同一频道为未定义行为,声网不保证所有类似情况都会收到 reason 19。 + + + + AgoraConnectionChangedTooManyBroadcasters + (20):频道中的主播数量已达上限。 + + + AgoraConnectionChangedLicenseValidationFailure + (21):由于许可证验证失败,连接失败。 + + + AgoraConnectionChangedCertificationVerifyFailure + (22):由于证书验证失败,连接失败。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_connectionstatetype.dita b/dita/RTC-AIDOC/API/enum_connectionstatetype.dita new file mode 100644 index 00000000000..8dcf386a440 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_connectionstatetype.dita @@ -0,0 +1,88 @@ + + + + <ph keyref="CONNECTION_STATE_TYPE"/> + 连接状态。连接状态。连接状态。 + +
+ 枚举值 + + + CONNECTION_STATE_DISCONNECTED + (1):SDK 与声网边缘服务器断开连接。该状态表示 SDK 处于以下阶段之一:调用 joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) 方法前的初始状态,或调用 leaveChannel() 方法后。 + + + CONNECTION_STATE_CONNECTING + (2):SDK 正在连接声网边缘服务器。该状态表示调用 joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) 方法后,SDK 正在与指定频道建立连接。连接成功后,SDK 会触发 回调,并将状态切换为 CONNECTION_STATE_CONNECTED。连接建立后,SDK 会初始化媒体,并在准备就绪时触发 回调。 + + + CONNECTION_STATE_CONNECTED + (3):SDK 已连接到声网边缘服务器。该状态表示用户已加入频道,并可在频道中发布或订阅媒体流。若因网络中断或切换导致连接丢失,SDK 会自动尝试重连,并触发 回调,状态变为 CONNECTION_STATE_RECONNECTING + + + CONNECTION_STATE_RECONNECTING + (4):SDK 正在持续重连声网边缘服务器。该状态表示 SDK 因网络问题与频道断开连接后,正在尝试重新加入频道: +
    +
  • 若在 10 秒内未能重新加入频道,SDK 会触发 回调,保持在 CONNECTION_STATE_RECONNECTING 状态,并继续尝试重连。
  • +
  • 若在断开连接 20 分钟后仍未能重新加入频道,SDK 会触发 回调,切换为 CONNECTION_STATE_FAILED 状态,并停止重连。
  • +
+
+
+ + CONNECTION_STATE_FAILED + (5):SDK 无法连接到声网边缘服务器或加入频道。该状态表示 SDK 停止尝试重连。你必须调用 leaveChannel() 离开频道。可调用 joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) 方法重新加入频道。如果 SDK 被声网边缘服务器通过 RESTful API 禁止加入频道,会触发 回调。 + + + AgoraConnectionStateDisconnected + (1):SDK 与声网边缘服务器断开连接。该状态表示 SDK 处于以下阶段之一:调用 方法前的初始状态,或调用 方法后。 + + + AgoraConnectionStateConnecting + (2):SDK 正在连接声网边缘服务器。该状态表示调用 方法后,SDK 正在与指定频道建立连接。连接成功后,SDK 会触发 connectionChangedToState:reason: 回调,并将状态切换为 AgoraConnectionStateConnected。连接建立后,SDK 会初始化媒体,并在准备就绪时触发 didJoinChannel:withUid:elapsed: 回调。 + + + AgoraConnectionStateConnected + (3):SDK 已连接到声网边缘服务器。该状态还表示用户已加入频道,并可在频道中发布或订阅媒体流。如果因网络中断或切换导致连接丢失,SDK 会自动尝试重连,并触发 connectionChangedToState:reason: 回调,通知当前状态变为 AgoraConnectionStateReconnecting + + + AgoraConnectionStateReconnecting + (4):SDK 正在持续重连声网边缘服务器。该状态表示 SDK 因网络问题与频道断开连接后,正在尝试重新加入频道: +
    +
  • 若在 10 秒内未能重新加入频道,SDK 会触发 回调,保持在该状态并继续重连。
  • +
  • 若在断开连接 20 分钟后仍未成功重连,SDK 会触发 connectionChangedToState:reason: 回调,切换至 AgoraConnectionStateFailed 状态,并停止重连。
  • +
+
+
+ + AgoraConnectionStateFailed + (5):SDK 无法连接到声网边缘服务器或加入频道。该状态表示 SDK 停止尝试重连。你必须调用 离开频道。可调用 重新加入频道。如果 SDK 被声网边缘服务器通过 RESTful API 禁止加入频道,会触发 connectionChangedToState:reason: 回调。 + + + AgoraConnectionStateDisconnected + (1):SDK 与声网边缘服务器断开连接。该状态表示 SDK 处于以下阶段之一:调用 方法前的初始状态,或调用 方法后。 + + + AgoraConnectionStateConnecting + (2):SDK 正在连接声网边缘服务器。该状态表示调用 方法后,SDK 正在与指定频道建立连接。连接成功后,SDK 会触发 connectionChangedToState:reason: 回调,并将状态切换为 AgoraConnectionStateConnected。连接建立后,SDK 会初始化媒体,并在准备就绪时触发 didJoinChannel:withUid:elapsed: 回调。 + + + AgoraConnectionStateConnected + (3):SDK 已连接到声网边缘服务器。该状态还表示用户已加入频道,并可在频道中发布或订阅媒体流。如果因网络中断或切换导致连接丢失,SDK 会自动尝试重连,并触发 connectionChangedToState:reason: 回调,通知当前状态变为 AgoraConnectionStateReconnecting + + + AgoraConnectionStateReconnecting + (4):SDK 正在持续重连声网边缘服务器。该状态表示 SDK 因网络问题与频道断开连接后,正在尝试重新加入频道: +
    +
  • 若在 10 秒内未能重新加入频道,SDK 会触发 回调,保持在该状态并继续重连。
  • +
  • 若在断开连接 20 分钟后仍未成功重连,SDK 会触发 connectionChangedToState:reason: 回调,切换至 AgoraConnectionStateFailed 状态,并停止重连。
  • +
+
+
+ + AgoraConnectionStateFailed + (5):SDK 无法连接到声网边缘服务器或加入频道。该状态表示 SDK 停止尝试重连。你必须调用 离开频道。可调用 重新加入频道。如果 SDK 被声网边缘服务器通过 RESTful API 禁止加入频道,会触发 connectionChangedToState:reason: 回调。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_contentinspecttype.dita b/dita/RTC-AIDOC/API/enum_contentinspecttype.dita new file mode 100644 index 00000000000..b90c5bcd087 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_contentinspecttype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="CONTENT_INSPECT_TYPE"/> + 视频内容审核模块类型。视频内容审核模块类型。视频内容审核模块类型。 + +
+ 枚举值 + + + CONTENT_INSPECT_INVALID + (0):(默认)该模块无实际功能。请勿将 type 设置为该值。 + + + CONTENT_INSPECT_MODERATION + (1):内容审核类型模块。 + + + CONTENT_INSPECT_SUPERVISION + (2):通过声网自研扩展进行本地截图上传。SDK 会对频道中的视频流进行截图并上传。 + + + CONTENT_INSPECT_IMAGE_MODERATION + (3):通过声网扩展市场中的扩展进行本地截图上传。SDK 使用来自声网扩展市场的视频审核扩展对频道中的视频流进行截图并上传。 + + + AgoraContentInspectTypeInvalid + (0):(默认)无实际功能。请勿将 type 设置为该值。 + + + AgoraContentInspectTypeModeration + (1):内容审核模块。 + + + AgoraContentInspectTypeSupervise + (2):通过声网自研扩展对频道内视频流进行截图并上传。 + + + AgoraContentInspectTypeImageModeration + (3):通过声网扩展市场中的扩展对频道内视频流进行截图并上传。 + + + AgoraContentInspectTypeInvalid + (0):(默认)无实际功能。请勿将 type 设置为该值。 + + + AgoraContentInspectTypeModeration + (1):内容审核模块。 + + + AgoraContentInspectTypeSupervise + (2):通过声网自研扩展对频道内视频流进行截图并上传。 + + + AgoraContentInspectTypeImageModeration + (3):通过声网扩展市场中的扩展对频道内视频流进行截图并上传。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_degradationpreference.dita b/dita/RTC-AIDOC/API/enum_degradationpreference.dita new file mode 100644 index 00000000000..8a5ad16844d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_degradationpreference.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="DEGRADATION_PREFERENCE"/> + 带宽受限时的视频降级偏好设置。带宽受限时的视频降级偏好设置。带宽受限时的视频降级偏好设置。带宽受限时的视频降级偏好设置。 + +
+ 枚举值 + + + MAINTAIN_AUTO + (-1):自动模式(默认)。SDK 会根据设置的视频场景自动选择 MAINTAIN_FRAMERATEMAINTAIN_BALANCEDMAINTAIN_RESOLUTION,以实现最佳的整体体验质量(QoE)。 + + + MAINTAIN_QUALITY + (0):在带宽受限的视频编码过程中,优先降低帧率以保持分辨率。适用于对画质要求较高的场景。 + + + MAINTAIN_FRAMERATE + (1):在带宽受限的视频编码过程中,优先降低分辨率以保持帧率。适用于对流畅度要求较高且可接受画质降低的场景。 + + + MAINTAIN_BALANCED + (2):在带宽受限的视频编码过程中,同时降低帧率和分辨率。降级程度低于 MAINTAIN_QUALITYMAINTAIN_FRAMERATE,适用于对流畅度和画质均有要求的场景。 + 发送端视频的分辨率可能会发生变化,远端用户需要处理该问题。详见 + + + + MAINTAIN_RESOLUTION + (3):在带宽受限的视频编码过程中,优先降低帧率以保持分辨率。适用于对画质要求较高的场景。 + + + DISABLED + (100):关闭 VQC 调整功能。 + + + MAINTAIN_AUTO + (-1):(默认)自动模式。SDK 会根据设置的视频场景自动选择 MAINTAIN_FRAMERATEMAINTAIN_BALANCEDMAINTAIN_RESOLUTION,以实现最佳的整体体验质量(QoE)。 + + + MAINTAIN_QUALITY + (0):在带宽受限的视频编码过程中,优先降低帧率以保持分辨率。适用于对视频质量要求较高的场景。 + + + MAINTAIN_FRAMERATE + (1):在带宽受限的视频编码过程中,优先降低分辨率以保持帧率。 + + + MAINTAIN_BALANCED + (2):在带宽受限的视频编码过程中,同时降低帧率和分辨率。该模式的降级程度低于 MAINTAIN_QUALITYMAINTAIN_FRAMERATE,适用于对流畅度和视频质量均有要求的场景。 + 发送端视频的分辨率可能会发生变化,远端用户需要处理该问题。详见 + + + + MAINTAIN_RESOLUTION + (3):在带宽受限的视频编码过程中,优先降低帧率以保持分辨率。适用于对视频质量要求较高的场景。 + + + DISABLED + (100):关闭视频质量控制(VQC)调节功能。 + + + AgoraDegradationMaintainAuto + (-1):(默认)自动模式。SDK 会根据设置的视频场景自动选择 AgoraDegradationMaintainFramerateAgoraDegradationBalancedAgoraDegradationMaintainResolution,以实现最佳的整体用户体验(QoE)。 + + + AgoraDegradationMaintainQuality + (0):在带宽受限的视频编码过程中,优先降低视频帧率以保持视频分辨率。适用于对视频画质要求较高的场景。 + + + AgoraDegradationMaintainFramerate + (1):在带宽受限的视频编码过程中,优先降低视频分辨率以保持视频帧率。适用于对视频流畅性要求较高且可接受画质降低的场景。 + + + AgoraDegradationBalanced + (2):在带宽受限的视频编码过程中,同时降低视频帧率和分辨率。相比 AgoraDegradationMaintainQualityAgoraDegradationMaintainFramerate,该模式的降级程度更小,适用于对流畅性和画质均有要求的场景。 + 发送端视频分辨率可能会发生变化,接收端需处理该问题。详见 + + + + AgoraDegradationMaintainResolution + (3):在带宽受限的视频编码过程中,优先降低视频帧率以保持视频分辨率。适用于对视频画质要求较高的场景。 + + + AgoraDegradationDisable + (100):禁用 VQC 调整。 + + + AgoraDegradationMaintainAuto + (-1):(默认)自动模式。SDK 会根据设置的视频场景自动选择 AgoraDegradationMaintainFramerateAgoraDegradationBalancedAgoraDegradationMaintainResolution,以实现最佳的整体用户体验(QoE)。 + + + AgoraDegradationMaintainQuality + (0):在带宽受限的视频编码过程中,优先降低视频帧率以保持视频分辨率。适用于对视频画质要求较高的场景。 + + + AgoraDegradationMaintainFramerate + (1):在带宽受限的视频编码过程中,优先降低视频分辨率以保持视频帧率。适用于对视频流畅性要求较高且可接受画质降低的场景。 + + + AgoraDegradationBalanced + (2):在带宽受限的视频编码过程中,同时降低视频帧率和分辨率。相比 AgoraDegradationMaintainQualityAgoraDegradationMaintainFramerate,该模式的降级程度更小,适用于对流畅性和画质均有要求的场景。 + 发送端视频分辨率可能会发生变化,接收端需处理该问题。详见 + + + + AgoraDegradationMaintainResolution + (3):在带宽受限的视频编码过程中,优先降低视频帧率以保持视频分辨率。适用于对视频画质要求较高的场景。 + + + AgoraDegradationDisable + (100):禁用 VQC 调整。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_directcdnstreamingreason.dita b/dita/RTC-AIDOC/API/enum_directcdnstreamingreason.dita new file mode 100644 index 00000000000..9a4199b5e42 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_directcdnstreamingreason.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="DIRECT_CDN_STREAMING_REASON"/> + CDN 推流状态变更的原因。CDN 推流状态变化的原因。CDN 推流状态变化的原因。CDN 推流状态变化的原因。 + +
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+ 枚举值 + + + DIRECT_CDN_STREAMING_REASON_OK + (0):无错误。 + + + DIRECT_CDN_STREAMING_REASON_FAILED + (1):通用错误,无具体原因。可尝试重新推流。 + + + DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION + (2):推送音频流时发生错误,例如本地音频采集设备异常、被其他进程占用,或未获得所需权限。 + + + DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION + (3):推送视频流时发生错误,例如本地视频采集设备异常、被其他进程占用,或未获得所需权限。 + + + DIRECT_CDN_STREAMING_REASON_NET_CONNECT + (4):连接 CDN 失败。 + + + DIRECT_CDN_STREAMING_REASON_BAD_NAME + (5):该 URL 已被使用,请使用新的 URL 进行推流。 + + + OK + (0):无错误。 + + + FAILED + (1):通用错误,无具体原因。可尝试重新推送媒体流。 + + + AUDIO_PUBLICATION + (2):推送音频流时发生错误。例如,本地音频采集设备异常、被其他进程占用,或未获得所需权限。 + + + VIDEO_PUBLICATION + (3):推送视频流时发生错误。例如,本地视频采集设备异常、被其他进程占用,或未获得所需权限。 + + + NET_CONNECT + (4):连接 CDN 失败。 + + + BAD_NAME + (5):推流地址已被使用。请使用新的地址进行推流。 + + + AgoraDirectCdnStreamingReasonOK + (0):无错误。 + + + AgoraDirectCdnStreamingReasonFailed + (1):发生通用错误,未提供具体原因。可尝试重新推送媒体流。 + + + AgoraDirectCdnStreamingReasonAudioPublication + (2):推送音频流时发生错误,例如本地音频采集设备异常、被其他进程占用,或未获得所需权限。 + + + AgoraDirectCdnStreamingReasonVideoPublication + (3):推送视频流时发生错误,例如本地视频采集设备异常、被其他进程占用,或未获得所需权限。 + + + AgoraDirectCdnStreamingReasonNetConnect + (4):连接 CDN 失败。 + + + AgoraDirectCdnStreamingReasonBadName + (5):该 URL 已被使用,请使用新的 URL 进行推流。 + + + AgoraDirectCdnStreamingReasonOK + (0):无错误。 + + + AgoraDirectCdnStreamingReasonFailed + (1):发生通用错误,未提供具体原因。可尝试重新推送媒体流。 + + + AgoraDirectCdnStreamingReasonAudioPublication + (2):推送音频流时发生错误,例如本地音频采集设备异常、被其他进程占用,或未获得所需权限。 + + + AgoraDirectCdnStreamingReasonVideoPublication + (3):推送视频流时发生错误,例如本地视频采集设备异常、被其他进程占用,或未获得所需权限。 + + + AgoraDirectCdnStreamingReasonNetConnect + (4):连接 CDN 失败。 + + + AgoraDirectCdnStreamingReasonBadName + (5):该 URL 已被使用,请使用新的 URL 进行推流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_directcdnstreamingstate.dita b/dita/RTC-AIDOC/API/enum_directcdnstreamingstate.dita new file mode 100644 index 00000000000..b78c1fce71b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_directcdnstreamingstate.dita @@ -0,0 +1,113 @@ + + + + <ph keyref="DIRECT_CDN_STREAMING_STATE"/> + 当前 CDN 推流状态。当前 CDN 推流状态。当前的 CDN 推流状态。当前的 CDN 推流状态。 + +
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+ +
废弃
+
自 v4.6.0 版本废弃。
+
+
+
+
+ 枚举值 + + + DIRECT_CDN_STREAMING_STATE_IDLE + (0):CDN 推流开始前的初始状态。 + + + DIRECT_CDN_STREAMING_STATE_RUNNING + (1):正在向 CDN 推流。调用 方法时,SDK 返回该值。 + + + DIRECT_CDN_STREAMING_STATE_STOPPED + (2):已停止向 CDN 推流。调用 方法时,SDK 返回该值。 + + + DIRECT_CDN_STREAMING_STATE_FAILED + (3):向 CDN 推流失败。你可以通过 回调获取的错误信息排查问题后重新推流。 + + + DIRECT_CDN_STREAMING_STATE_RECOVERING + (4):正在尝试将声网服务器重新连接到 CDN。SDK 最多尝试重连 10 次;若连接未恢复,推流状态将变为 DIRECT_CDN_STREAMING_STATE_FAILED + + + IDLE + (0):CDN 推流开始前的初始状态。 + + + RUNNING + (1):正在向 CDN 推流。调用 方法时,SDK 返回该值。 + + + STOPPED + (2):已停止向 CDN 推流。调用 方法时,SDK 返回该值。 + + + FAILED + (3):向 CDN 推流失败。你可以根据 回调返回的信息排查问题后重新推流。 + + + RECOVERING + (4):正在尝试将声网服务器重新连接到 CDN。SDK 最多尝试重连 10 次,若仍未恢复连接,推流状态将变为 FAILED + + + AgoraDirectCdnStreamingStateIdle + (0):推流开始前的初始状态。 + + + AgoraDirectCdnStreamingStateRunning + (1):正在向 CDN 推流。调用 方法后,SDK 返回该值。 + + + AgoraDirectCdnStreamingStateStopped + (2):已停止向 CDN 推流。调用 方法后,SDK 返回该值。 + + + AgoraDirectCdnStreamingStateFailed + (3):推流失败。可通过 回调获取失败信息并重新推流。 + + + AgoraDirectCdnStreamingStateRecovering + (4):正在尝试将声网服务器重新连接到 CDN。SDK 最多重连 10 次,若仍未恢复,状态将变为 AgoraDirectCdnStreamingStateFailed + + + AgoraDirectCdnStreamingStateIdle + (0):推流开始前的初始状态。 + + + AgoraDirectCdnStreamingStateRunning + (1):正在向 CDN 推流。调用 方法后,SDK 返回该值。 + + + AgoraDirectCdnStreamingStateStopped + (2):已停止向 CDN 推流。调用 方法后,SDK 返回该值。 + + + AgoraDirectCdnStreamingStateFailed + (3):推流失败。可通过 回调获取失败信息并重新推流。 + + + AgoraDirectCdnStreamingStateRecovering + (4):正在尝试将声网服务器重新连接到 CDN。SDK 最多重连 10 次,若仍未恢复,状态将变为 AgoraDirectCdnStreamingStateFailed + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_earmonitoringfiltertype.dita b/dita/RTC-AIDOC/API/enum_earmonitoringfiltertype.dita new file mode 100644 index 00000000000..f396ff721a0 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_earmonitoringfiltertype.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="EAR_MONITORING_FILTER_TYPE"/> + 耳返音频滤镜类型。耳返音频的滤镜类型。耳返音频的滤镜类型。 + +
+ 枚举值 + + + EAR_MONITORING_FILTER_NONE + (1<<0):耳返中不添加音频滤镜。 + + + EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS + (1<<1):耳返中添加人声特效音频滤镜。若你实现了如美声或音效等功能,用户可听到添加效果后的声音。 + + + EAR_MONITORING_FILTER_NOISE_SUPPRESSION + (1<<2):耳返中添加降噪音频滤镜。 + + + EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER + (1<<15):复用发送端已处理的音频滤镜用于耳返。可降低 CPU 使用率,但会增加耳返延迟,适用于对延迟不敏感且需低 CPU 消耗的场景。 + + + AgoraEarMonitoringFilterNone + (1<<0):耳返中不添加任何音频滤镜。 + + + AgoraEarMonitoringFilterBuiltInAudioFilters + (1<<1):耳返中添加人声特效音频滤镜。若实现了如美声特效或音效功能,用户可听到添加效果后的声音。 + + + AgoraEarMonitoringFilterNoiseSuppression + (1<<2):耳返中添加降噪音频滤镜。 + + + AgoraEarMonitoringFilterBuiltInAudioFiltersWithNoiseSuppression + (6):耳返中同时启用人声特效音频滤镜和降噪功能。 + + + AgoraEarMonitoringFilterReusePostProcessingFilter + (1<<15):复用发送端已处理的音频滤镜用于耳返。可降低 CPU 使用率,但会增加耳返延迟,适用于对延迟不敏感且需低 CPU 消耗的场景。 + + + AgoraEarMonitoringFilterNone + (1<<0):耳返中不添加任何音频滤镜。 + + + AgoraEarMonitoringFilterBuiltInAudioFilters + (1<<1):耳返中添加人声特效音频滤镜。若实现了如美声特效或音效功能,用户可听到添加效果后的声音。 + + + AgoraEarMonitoringFilterNoiseSuppression + (1<<2):耳返中添加降噪音频滤镜。 + + + AgoraEarMonitoringFilterBuiltInAudioFiltersWithNoiseSuppression + (6):耳返中同时启用人声特效音频滤镜和降噪功能。 + + + AgoraEarMonitoringFilterReusePostProcessingFilter + (1<<15):复用发送端已处理的音频滤镜用于耳返。可降低 CPU 使用率,但会增加耳返延迟,适用于对延迟不敏感且需低 CPU 消耗的场景。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_encodingpreference.dita b/dita/RTC-AIDOC/API/enum_encodingpreference.dita new file mode 100644 index 00000000000..0184c808dd6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_encodingpreference.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="ENCODING_PREFERENCE"/> + 视频编码器偏好设置。视频编码器偏好。视频编码器偏好。视频编码器偏好。 + +
+ 枚举值 + + + PREFER_AUTO + (-1):自适应偏好。SDK 会根据平台和设备类型等因素自动选择最优的视频编码方式。 + + + PREFER_SOFTWARE + (0):软件编码偏好。SDK 优先使用软件编码器进行视频编码。 + + + PREFER_HARDWARE + (1):硬件编码偏好。SDK 优先使用硬件编码器进行视频编码。当设备不支持硬件编码时,SDK 会自动使用软件编码,并通过 回调中的 hwEncoderAccelerating 报告当前使用的视频编码器类型。 + + + PREFER_AUTO + (-1):自适应偏好。SDK 会根据平台和设备类型等因素自动选择最优的视频编码方式。 + + + PREFER_SOFTWARE + (0):软件编码偏好。SDK 优先使用软件编码器进行视频编码。 + + + PREFER_HARDWARE + (1):硬件编码偏好。SDK 优先使用硬件编码器进行视频编码。当设备不支持硬件编码时,SDK 会自动使用软件编码,并通过 回调中的 hwEncoderAccelerating 报告当前使用的视频编码器类型。 + + + AgoraEncodingPreferAuto + (-1):自适应偏好。SDK 会根据平台和设备类型等因素自动选择最优的视频编码方式。 + + + AgoraEncodingPrefersoftware + (0):软件编码偏好。SDK 优先使用软件编码器进行视频编码。 + + + AgoraEncodingPreferhardware + (1):硬件编码偏好。SDK 优先使用硬件编码器进行视频编码。当设备不支持硬件编码时,SDK 会自动使用软件编码,并通过 回调中的 hwEncoderAccelerating 报告当前使用的视频编码器类型。 + + + AgoraEncodingPreferAuto + (-1):自适应偏好。SDK 会根据平台和设备类型等因素自动选择最优的视频编码方式。 + + + AgoraEncodingPrefersoftware + (0):软件编码偏好。SDK 优先使用软件编码器进行视频编码。 + + + AgoraEncodingPreferhardware + (1):硬件编码偏好。SDK 优先使用硬件编码器进行视频编码。当设备不支持硬件编码时,SDK 会自动使用软件编码,并通过 回调中的 hwEncoderAccelerating 报告当前使用的视频编码器类型。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_encryptionerrortype.dita b/dita/RTC-AIDOC/API/enum_encryptionerrortype.dita new file mode 100644 index 00000000000..49d55e0b490 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_encryptionerrortype.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="ENCRYPTION_ERROR_TYPE"/> + 加密错误类型。加密错误类型。加密错误类型。 + +
+ 枚举值 + + + ENCRYPTION_ERROR_INTERNAL_FAILURE + (0):内部错误。 + + + ENCRYPTION_ERROR_DECRYPTION_FAILURE + (1):媒体流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_ENCRYPTION_FAILURE + (2):媒体流加密失败。 + + + ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE + (3):数据流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE + (4):数据流加密失败。 + + + ENCRYPTION_ERROR_INTERNAL_FAILURE + (0):内部错误。 + + + ENCRYPTION_ERROR_DECRYPTION_FAILURE + (1):媒体流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_ENCRYPTION_FAILURE + (2):媒体流加密失败。 + + + ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE + (3):数据流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE + (4):数据流加密失败。 + + + ENCRYPTION_ERROR_INTERNAL_FAILURE + (0):内部错误。 + + + ENCRYPTION_ERROR_DECRYPTION_FAILURE + (1):媒体流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_ENCRYPTION_FAILURE + (2):媒体流加密失败。 + + + ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE + (3):数据流解密失败。请确保接收端和发送端使用相同的加密模式和密钥。 + + + ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE + (4):数据流加密失败。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_encryptionmode.dita b/dita/RTC-AIDOC/API/enum_encryptionmode.dita new file mode 100644 index 00000000000..51abcc07347 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_encryptionmode.dita @@ -0,0 +1,163 @@ + + + + <ph keyref="ENCRYPTION_MODE"/> + 内置加密模式。内置加密模式。内置加密模式。内置加密模式。 + +
+

声网推荐使用 AES_128_GCM2AES_256_GCM2 加密模式。这两种模式支持使用 salt,以提高安全性。

+

声网推荐使用 AES_128_GCM2AES_256_GCM2 加密模式。这两种模式支持设置 salt(encryptionKdfSalt),可提供更高的安全性。

+

声网推荐使用 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式。这两种模式支持使用 salt,以提高安全性。

+

声网推荐使用 AgoraEncryptionModeAES128GCM2AgoraEncryptionModeAES256GCM2 加密模式。这两种模式支持使用 salt,以提高安全性。

+
+
+ 枚举值 + + + AES_128_XTS + (1):128 位 AES 加密,XTS 模式。 + + + AES_128_ECB + (2):128 位 AES 加密,ECB 模式。 + + + AES_256_XTS + (3):256 位 AES 加密,XTS 模式。 + + + SM4_128_ECB + (4):128 位 SM4 加密,ECB 模式。 + + + AES_128_GCM + (5):128 位 AES 加密,GCM 模式。 + + + AES_256_GCM + (6):256 位 AES 加密,GCM 模式。 + + + AES_128_GCM2 + (7):(默认)128 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AES_256_GCM2 + (8):256 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + MODE_END + (9):枚举结束标志。 + + + AES_128_XTS + (1):128 位 AES 加密,XTS 模式。 + + + AES_128_ECB + (2):128 位 AES 加密,ECB 模式。 + + + AES_256_XTS + (3):256 位 AES 加密,XTS 模式。 + + + SM4_128_ECB + (4):128 位 SM4 加密,ECB 模式。 + + + AES_128_GCM + (5):128 位 AES 加密,GCM 模式。 + + + AES_256_GCM + (6):256 位 AES 加密,GCM 模式。 + + + AES_128_GCM2 + (7):(默认)128 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AES_256_GCM2 + (8):256 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + MODE_END + (9):枚举边界值。 + + + 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 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AgoraEncryptionModeAES256GCM2 + (8):256 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AgoraEncryptionModeEnd + (9):枚举结束标志。 + + + 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 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AgoraEncryptionModeAES256GCM2 + (8):256 位 AES 加密,GCM 模式。该模式需设置 salt(encryptionKdfSalt)。 + + + AgoraEncryptionModeEnd + (9):枚举结束标志。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_errorcodetype.dita b/dita/RTC-AIDOC/API/enum_errorcodetype.dita new file mode 100644 index 00000000000..ce8a737dc31 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_errorcodetype.dita @@ -0,0 +1,572 @@ + + + + <ph keyref="ERROR_CODE_TYPE"/> + 错误码。错误码。错误码。 + +
+ 枚举值 + + + ERR_OK + (0):无错误。 + + + ERR_FAILED + (1):通用错误,原因未分类。请重试该方法。 + + + ERR_INVALID_ARGUMENT + (2):参数无效。例如,频道名包含非法字符。请重新设置参数。 + + + ERR_NOT_READY + (3):SDK 未就绪。可能原因包括: 初始化失败;调用方法时尚未加入频道;调用 时用户尚未离开频道;音频模块被禁用;程序不完整。 + + + ERR_NOT_SUPPORTED + (4): 不支持该请求。可能原因包括:内置加密模式设置错误,或 SDK 加载外部加密库失败。请检查加密模式设置或重新加载外部加密库。 + + + ERR_REFUSED + (5):请求被拒绝。可能原因包括: 初始化失败;加入频道时频道名为空;调用 加入多个频道时频道名已被使用。 + + + ERR_BUFFER_TOO_SMALL + (6):缓冲区大小不足,无法存储返回数据。 + + + ERR_NOT_INITIALIZED + (7):在 初始化前调用了方法。请确保在调用该方法前已初始化 对象。 + + + ERR_INVALID_STATE + (8):状态无效。 + + + ERR_NO_PERMISSION + (9):无访问权限。请检查应用是否已获取音视频设备权限。 + + + ERR_TIMEDOUT + (10):请求超时。部分 API 调用需要 SDK 返回执行结果,若超过 10 秒未返回,则触发该错误。 + + + ERR_CANCELED + (11):请求被取消。该错误仅用于内部,不通过任何方法或回调返回给应用。 + + + ERR_TOO_OFTEN + (12):方法调用过于频繁。该错误仅用于内部,不通过任何方法或回调返回给应用。 + + + ERR_BIND_SOCKET + (13):SDK 绑定网络 socket 失败。该错误仅用于内部,不通过任何方法或回调返回给应用。 + + + ERR_NET_DOWN + (14):网络不可用。该错误仅用于内部,不通过任何方法或回调返回给应用。 + + + ERR_JOIN_CHANNEL_REJECTED + (17):加入频道请求被拒绝。可能原因包括:用户已在频道中;调用 后未调用 就尝试加入频道。 + + + ERR_LEAVE_CHANNEL_REJECTED + (18):离开频道失败。可能原因包括:调用 leaveChannel 前用户已离开频道;在加入频道前调用了 leaveChannel + + + ERR_ALREADY_IN_USE + (19):资源已被使用。 + + + ERR_ABORTED + (20):请求被 SDK 放弃,可能由于请求发送过于频繁。 + + + ERR_INIT_NET_ENGINE + (21): 初始化失败并崩溃,可能由于特定 Windows 防火墙设置导致。 + + + ERR_RESOURCE_LIMITED + (22):SDK 分配资源失败,可能由于应用使用了过多系统资源或系统资源不足。 + + + ERR_FUNC_IS_PROHIBITED + (23):该功能被禁止。请在控制台中启用,或联系声网技术支持。 + + + ERR_INVALID_CHANNEL_NAME + (102):指定的频道名无效。可能的原因是参数类型不正确。请使用有效的频道名重新加入频道。 + + + ERR_NO_SERVER_RESOURCES + (103):无法获取指定区域的服务器资源。初始化 IRtcEngine 时请尝试使用其他区域。 + + + ERR_TOKEN_EXPIRED + (109):当前 Token 已过期。请在服务器上申请新的 Token,并调用 renewToken 方法。 + + + ERR_INVALID_TOKEN + (110):无效的 Token。常见原因包括: +
    +
  • 在声网控制台启用了 App 证书,但代码仍使用 App ID 进行鉴权。启用 App 证书后,项目必须使用 Token 鉴权。
  • +
  • 用于生成 Token 的 uid 与加入频道时使用的 uid 不一致。
  • +
+
+
+ + ERR_CONNECTION_INTERRUPTED + (111):网络连接中断。建立连接后,如果客户端实例与服务器断开连接超过 4 秒,SDK 会触发该回调。 + + + ERR_CONNECTION_LOST + (112):网络连接丢失。连接中断后,如果客户端实例在 10 秒内无法重新连接到声网边缘服务器,会触发该错误。 + + + ERR_NOT_IN_CHANNEL + (113):调用 sendStreamMessage 方法时,用户不在频道中。 + + + ERR_SIZE_TOO_LARGE + (114):调用 sendStreamMessage 方法时,数据大小超过 1 KB。 + + + ERR_BITRATE_LIMIT + (115):调用 sendStreamMessage 方法时,数据比特率超过 6 KB/s。 + + + ERR_TOO_MANY_DATA_STREAMS + (116):调用 createDataStream(int* streamId, const DataStreamConfig& config) 方法时,创建了超过五个数据流。 + + + ERR_STREAM_MESSAGE_TIMEOUT + (117):数据流传输超时。 + + + ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED + (119):切换角色失败。请尝试重新加入频道。 + + + ERR_DECRYPTION_FAILED + (120):媒体流解密失败。用户可能使用了错误的密码加入频道。请检查输入的密码,或建议用户重新加入频道。 + + + ERR_INVALID_USER_ID + (121):用户 ID 无效。 + + + ERR_DATASTREAM_DECRYPTION_FAILED + (122):数据流解密失败。用户可能使用了错误的密码加入频道。请检查输入的密码,或建议用户重新加入频道。 + + + ERR_CLIENT_IS_BANNED_BY_SERVER + (123):用户被服务器封禁。 + + + ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH + (130):SDK 不支持将加密流推送到 CDN。 + + + ERR_LOAD_MEDIA_ENGINE + (1001):加载媒体引擎失败。 + + + ERR_ADM_GENERAL_ERROR + (1005):发生通用错误(无具体原因)。请检查音频设备是否被其他应用占用,或尝试重新加入频道。 + + + ERR_ADM_INIT_PLAYOUT + (1008):初始化播放设备时发生错误。请检查播放设备是否被其他应用占用,或尝试重新加入频道。 + + + ERR_ADM_START_PLAYOUT + (1009):启动播放设备时发生错误。请检查播放设备。 + + + ERR_ADM_STOP_PLAYOUT + (1010):停止播放设备时发生错误。 + + + ERR_ADM_INIT_RECORDING + (1011):初始化录制设备时发生错误。请检查录制设备,或尝试重新加入频道。 + + + ERR_ADM_START_RECORDING + (1012):启动录制设备时发生错误。请检查录制设备。 + + + ERR_ADM_STOP_RECORDING + (1013):停止录制设备时发生错误。 + + + ERR_VDM_CAMERA_NOT_AUTHORIZED + (1501):未授予访问摄像头的权限。请检查是否已授予摄像头权限。 + + + AgoraErrorCodeNoError + (0):无错误。 + + + AgoraErrorCodeFailed + (1):通用错误,原因未分类。请重试调用该方法。 + + + AgoraErrorCodeInvalidArgument + (2):参数无效。例如,频道名包含非法字符。请重新设置参数。 + + + AgoraErrorCodeNotReady + (3):SDK 尚未就绪。可能的原因包括: 初始化失败;调用方法时无用户加入频道;调用 方法时用户尚未离开频道;音频模块被禁用;程序不完整。 + + + AgoraErrorCodeNotSupported + (4): 不支持该请求。可能的原因包括:内置加密模式设置错误,或 SDK 加载外部加密库失败。请检查加密模式设置或重新加载外部加密库。 + + + AgoraErrorCodeRefused + (5):请求被拒绝。可能的原因包括: 初始化失败;加入频道时频道名为空字符串 "";调用 方法加入多个频道时,指定的频道名已被使用。 + + + AgoraErrorCodeBufferTooSmall + (6):缓冲区大小不足,无法存储返回数据。 + + + AgoraErrorCodeNotInitialized + (7):在 初始化前调用了方法。请确保在调用该方法前已初始化 对象。 + + + AgoraErrorCodeInvalidState + (8):状态无效。 + + + AgoraErrorCodeNoPermission + (9):无访问权限。请检查应用是否已获得音视频设备的访问权限。 + + + AgoraErrorCodeTimedOut + (10):超时错误。部分 API 调用需要 SDK 返回执行结果,若超过 10 秒未返回,则触发该错误。 + + + AgoraErrorCodeJoinChannelRejected + (17):加入频道请求被拒绝。可能的原因包括:用户已在频道中。建议通过 connectionChangedToState:reason: 回调判断用户是否在频道中,除非收到 AgoraConnectionStateDisconnected(1)状态,否则不要调用此方法加入频道;调用 startEchoTestWithConfig: 进行通话测试后,未调用 stopEchoTest 结束测试就尝试加入频道。要加入频道,必须先调用 stopEchoTest 结束测试。 + + + AgoraErrorCodeLeaveChannelRejected + (18):离开频道失败。可能的原因包括:在调用 leaveChannel:leaveChannelBlock: 方法前用户已离开频道,建议停止调用此方法以清除错误;在加入频道前调用了 leaveChannel:leaveChannelBlock: 方法,此情况下无需额外操作。 + + + AgoraErrorCodeAlreadyInUse + (19):资源已被占用。 + + + AgoraErrorCodeAbort + (20):请求被 SDK 放弃,可能是因为请求发送过于频繁。 + + + AgoraErrorCodeInitNetEngine + (21):由于特定的 Windows 防火墙设置,AgoraRtcEngineKit 初始化失败并崩溃。 + + + AgoraErrorCodeResourceLimited + (22):由于应用程序使用了过多系统资源或系统资源不足,SDK 分配资源失败。 + + + AgoraErrorCodeInvalidAppId + (101):指定的 App ID 无效。请使用有效的 App ID 重新加入频道。 + + + AgoraErrorCodeInvalidChannelId + (102):指定的频道名无效。可能的原因是参数类型不正确。请使用有效的频道名重新加入频道。 + + + AgoraErrorCodeNoServerResources + (103):在指定区域无法获取服务器资源。请在调用 sharedEngine 时尝试指定其他区域。 + + + AgoraErrorCodeTokenExpired + (109):当前 Token 已过期。请在服务器上申请新的 Token,并调用 renewToken: 方法。 + + + AgoraErrorCodeInvalidToken + (110):Token 无效。常见原因包括: +
    +
  • 在声网控制台启用了 App 证书,但代码仍使用 App ID 进行鉴权。启用 App 证书后,必须使用 Token 进行鉴权。
  • +
  • 用于生成 Token 的 uid 与加入频道时使用的 uid 不一致。
  • +
+
+
+ + AgoraErrorCodeConnectionInterrupted + (111):网络连接中断。建立连接后,如果 SDK 与服务器失去连接超过 4 秒,会触发此回调。 + + + AgoraErrorCodeConnectionLost + (112):网络连接丢失。连接中断后,如果 SDK 在 10 秒内无法重新连接到声网边缘服务器,会触发此回调。 + + + AgoraErrorCodeNotInChannel + (113):调用 sendStreamMessage:data: 方法时,用户不在频道中。 + + + AgoraErrorCodeSizeTooLarge + (114):调用 sendStreamMessage:data: 方法时,数据大小超过 1 KB。 + + + AgoraErrorCodeBitrateLimit + (115):调用 sendStreamMessage:data: 方法时,数据传输码率超过 6 KB/s。 + + + AgoraErrorCodeTooManyDataStreams + (116):调用 createDataStream:config: 方法时创建了超过五个数据流。 + + + AgoraErrorCodeEncryptedStreamNotAllowedPublish + (130):SDK 不支持将加密流推送到 CDN。 + + + AgoraErrorCodeInvalidUserAccount + (134):用户账号无效,可能是因为包含无效参数。 + + + AgoraErrorCodeLoadMediaEngine + (1001):加载媒体引擎失败。 + + + AgoraErrorCodeStartCall + (1002):启用媒体引擎后启动通话失败。 + + + AgoraErrorCodeStartCamera + (1003):启动摄像头失败。 + + + AgoraErrorCodeStartVideoRender + (1004):启动视频渲染模块失败。 + + + AgoraErrorCodeAdmGeneralError + (1005):发生通用错误(无明确原因)。请检查音频设备是否被其他应用占用,或尝试重新加入频道。 + + + AgoraErrorCodeAdmJavaResource + (1006):音频设备模块:使用 Java 资源时发生错误。 + + + AgoraErrorCodeAdmSampleRate + (1007):音频设备模块:设置采样率时发生错误。 + + + AgoraErrorCodeAdmInitPlayout + (1008):初始化播放设备时发生错误。请检查播放设备是否被其他应用占用,或尝试重新加入频道。 + + + AgoraErrorCodeAdmStartPlayout + (1009):启动播放设备时发生错误。请检查播放设备。 + + + AgoraErrorCodeAdmStopPlayout + (1010):停止播放设备时发生错误。 + + + AgoraErrorCodeAdmInitRecording + (1011):初始化录音设备时发生错误。请检查录音设备,或尝试重新加入频道。 + + + AgoraErrorCodeAdmStartRecording + (1012):启动录音设备时发生错误。请检查录音设备。 + + + AgoraErrorCodeAdmStopRecording + (1013):停止录音设备时发生错误。 + + + AgoraErrorCodeAdmRuntimePlayoutError + (1015):音频设备模块:播放过程中发生错误。请检查播放设备,或尝试重新加入频道。 + + + AgoraErrorCodeNoError + (0):无错误。 + + + AgoraErrorCodeFailed + (1):通用错误,原因未分类。请重试调用该方法。 + + + AgoraErrorCodeInvalidArgument + (2):参数无效。例如,频道名包含非法字符。请重新设置参数。 + + + AgoraErrorCodeNotReady + (3):SDK 尚未就绪。可能的原因包括: 初始化失败;调用方法时无用户加入频道;调用 方法时用户尚未离开频道;音频模块被禁用;程序不完整。 + + + AgoraErrorCodeNotSupported + (4): 不支持该请求。可能的原因包括:内置加密模式设置错误,或 SDK 加载外部加密库失败。请检查加密模式设置或重新加载外部加密库。 + + + AgoraErrorCodeRefused + (5):请求被拒绝。可能的原因包括: 初始化失败;加入频道时频道名为空字符串 "";调用 方法加入多个频道时,指定的频道名已被使用。 + + + AgoraErrorCodeBufferTooSmall + (6):缓冲区大小不足,无法存储返回数据。 + + + AgoraErrorCodeNotInitialized + (7):在 初始化前调用了方法。请确保在调用该方法前已初始化 对象。 + + + AgoraErrorCodeInvalidState + (8):状态无效。 + + + AgoraErrorCodeNoPermission + (9):无访问权限。请检查应用是否已获得音视频设备的访问权限。 + + + AgoraErrorCodeTimedOut + (10):超时错误。部分 API 调用需要 SDK 返回执行结果,若超过 10 秒未返回,则触发该错误。 + + + AgoraErrorCodeJoinChannelRejected + (17):加入频道请求被拒绝。可能的原因包括:用户已在频道中。建议通过 connectionChangedToState:reason: 回调判断用户是否在频道中,除非收到 AgoraConnectionStateDisconnected(1)状态,否则不要调用此方法加入频道;调用 startEchoTestWithConfig: 进行通话测试后,未调用 stopEchoTest 结束测试就尝试加入频道。要加入频道,必须先调用 stopEchoTest 结束测试。 + + + AgoraErrorCodeLeaveChannelRejected + (18):离开频道失败。可能的原因包括:在调用 leaveChannel:leaveChannelBlock: 方法前用户已离开频道,建议停止调用此方法以清除错误;在加入频道前调用了 leaveChannel:leaveChannelBlock: 方法,此情况下无需额外操作。 + + + AgoraErrorCodeAlreadyInUse + (19):资源已被占用。 + + + AgoraErrorCodeAbort + (20):请求被 SDK 放弃,可能是因为请求发送过于频繁。 + + + AgoraErrorCodeInitNetEngine + (21):由于特定的 Windows 防火墙设置,AgoraRtcEngineKit 初始化失败并崩溃。 + + + AgoraErrorCodeResourceLimited + (22):由于应用程序使用了过多系统资源或系统资源不足,SDK 分配资源失败。 + + + AgoraErrorCodeInvalidAppId + (101):指定的 App ID 无效。请使用有效的 App ID 重新加入频道。 + + + AgoraErrorCodeInvalidChannelId + (102):指定的频道名无效。可能的原因是参数类型不正确。请使用有效的频道名重新加入频道。 + + + AgoraErrorCodeNoServerResources + (103):在指定区域无法获取服务器资源。请在调用 sharedEngine 时尝试指定其他区域。 + + + AgoraErrorCodeTokenExpired + (109):当前 Token 已过期。请在服务器上申请新的 Token,并调用 renewToken: 方法。 + + + AgoraErrorCodeInvalidToken + (110):Token 无效。常见原因包括: +
    +
  • 在声网控制台启用了 App 证书,但代码仍使用 App ID 进行鉴权。启用 App 证书后,必须使用 Token 进行鉴权。
  • +
  • 用于生成 Token 的 uid 与加入频道时使用的 uid 不一致。
  • +
+
+
+ + AgoraErrorCodeConnectionInterrupted + (111):网络连接中断。建立连接后,如果 SDK 与服务器失去连接超过 4 秒,会触发此回调。 + + + AgoraErrorCodeConnectionLost + (112):网络连接丢失。连接中断后,如果 SDK 在 10 秒内无法重新连接到声网边缘服务器,会触发此回调。 + + + AgoraErrorCodeNotInChannel + (113):调用 sendStreamMessage:data: 方法时,用户不在频道中。 + + + AgoraErrorCodeSizeTooLarge + (114):调用 sendStreamMessage:data: 方法时,数据大小超过 1 KB。 + + + AgoraErrorCodeBitrateLimit + (115):调用 sendStreamMessage:data: 方法时,数据传输码率超过 6 KB/s。 + + + AgoraErrorCodeTooManyDataStreams + (116):调用 createDataStream:config: 方法时创建了超过五个数据流。 + + + AgoraErrorCodeEncryptedStreamNotAllowedPublish + (130):SDK 不支持将加密流推送到 CDN。 + + + AgoraErrorCodeInvalidUserAccount + (134):用户账号无效,可能是因为包含无效参数。 + + + AgoraErrorCodeLoadMediaEngine + (1001):加载媒体引擎失败。 + + + AgoraErrorCodeStartCall + (1002):启用媒体引擎后启动通话失败。 + + + AgoraErrorCodeStartCamera + (1003):启动摄像头失败。 + + + AgoraErrorCodeStartVideoRender + (1004):启动视频渲染模块失败。 + + + AgoraErrorCodeAdmGeneralError + (1005):发生通用错误(无明确原因)。请检查音频设备是否被其他应用占用,或尝试重新加入频道。 + + + AgoraErrorCodeAdmJavaResource + (1006):音频设备模块:使用 Java 资源时发生错误。 + + + AgoraErrorCodeAdmSampleRate + (1007):音频设备模块:设置采样率时发生错误。 + + + AgoraErrorCodeAdmInitPlayout + (1008):初始化播放设备时发生错误。请检查播放设备是否被其他应用占用,或尝试重新加入频道。 + + + AgoraErrorCodeAdmStartPlayout + (1009):启动播放设备时发生错误。请检查播放设备。 + + + AgoraErrorCodeAdmStopPlayout + (1010):停止播放设备时发生错误。 + + + AgoraErrorCodeAdmInitRecording + (1011):初始化录音设备时发生错误。请检查录音设备,或尝试重新加入频道。 + + + AgoraErrorCodeAdmStartRecording + (1012):启动录音设备时发生错误。请检查录音设备。 + + + AgoraErrorCodeAdmStopRecording + (1013):停止录音设备时发生错误。 + + + AgoraErrorCodeAdmRuntimePlayoutError + (1015):音频设备模块:播放过程中发生错误。请检查播放设备,或尝试重新加入频道。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_experiencepoorreason.dita b/dita/RTC-AIDOC/API/enum_experiencepoorreason.dita new file mode 100644 index 00000000000..7ac554ab3b2 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_experiencepoorreason.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="EXPERIENCE_POOR_REASON"/> + 本地用户接收远端音频流时体验质量差的原因。本地用户接收远端音频流时音频体验差的原因。本地用户接收远端音频流时音频体验差的原因。 + +
+ 枚举值 + + + EXPERIENCE_REASON_NONE + (0):无异常,表示本地用户的体验质量良好。 + + + REMOTE_NETWORK_QUALITY_POOR + (1):远端用户的网络质量较差。 + + + LOCAL_NETWORK_QUALITY_POOR + (2):本地用户的网络质量较差。 + + + WIRELESS_SIGNAL_POOR + (4):本地用户的 Wi-Fi 或蜂窝网络信号较弱。 + + + WIFI_BLUETOOTH_COEXIST + (8):本地用户同时开启 Wi-Fi 和蓝牙,信号相互干扰,导致音频传输质量下降。 + + + AgoraExperiencePoorReasonNone + (0):无异常,表示本地用户的音频体验良好。 + + + AgoraExperiencePoorReasonRemoteNetworkQualityPoor + (1):远端用户网络质量较差。 + + + AgoraExperiencePoorReasonLocalNetworkQualityPoor + (2):本地用户网络质量较差。 + + + AgoraExperiencePoorReasonWirelessSignalPoor + (4):本地用户的 Wi-Fi 或蜂窝网络信号较弱。 + + + AgoraExperiencePoorReasonWifiBluetoothCoexist + (8):本地用户同时开启 Wi-Fi 和蓝牙,信号相互干扰,导致音频传输质量下降。 + + + AgoraExperiencePoorReasonNone + (0):无异常,表示本地用户的音频体验良好。 + + + AgoraExperiencePoorReasonRemoteNetworkQualityPoor + (1):远端用户网络质量较差。 + + + AgoraExperiencePoorReasonLocalNetworkQualityPoor + (2):本地用户网络质量较差。 + + + AgoraExperiencePoorReasonWirelessSignalPoor + (4):本地用户的 Wi-Fi 或蜂窝网络信号较弱。 + + + AgoraExperiencePoorReasonWifiBluetoothCoexist + (8):本地用户同时开启 Wi-Fi 和蓝牙,信号相互干扰,导致音频传输质量下降。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_experiencequalitytype.dita b/dita/RTC-AIDOC/API/enum_experiencequalitytype.dita new file mode 100644 index 00000000000..717f414fdf2 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_experiencequalitytype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="EXPERIENCE_QUALITY_TYPE"/> + 本地用户接收远端音频流时的体验质量。本地用户接收远端音频流时的体验质量。本地用户接收远端音频流时的体验质量。 + +
+ 枚举值 + + + EXPERIENCE_QUALITY_GOOD + (0):本地用户的体验质量良好。 + + + EXPERIENCE_QUALITY_BAD + (1):本地用户的体验质量较差。 + + + AgoraExperienceQualityGood + (0):本地用户的体验质量为良好。 + + + AgoraExperienceQualityBad + (1):本地用户的体验质量为较差。 + + + AgoraExperienceQualityGood + (0):本地用户的体验质量为良好。 + + + AgoraExperienceQualityBad + (1):本地用户的体验质量为较差。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_externalvideosourcetype.dita b/dita/RTC-AIDOC/API/enum_externalvideosourcetype.dita new file mode 100644 index 00000000000..b254cf9e6f9 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_externalvideosourcetype.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="EXTERNAL_VIDEO_SOURCE_TYPE"/> + 外部视频帧的编码类型。外部视频帧的编码类型。外部视频帧的编码类型。外部视频帧的编码类型。 + +
+ 枚举值 + + + VIDEO_FRAME + (0):未编码的视频帧。 + + + ENCODED_VIDEO_FRAME + (1):已编码的视频帧。 + + + VIDEO_FRAME + (0):未编码的视频帧。 + + + ENCODED_VIDEO_FRAME + (1):已编码的视频帧。 + + + AgoraExternalVideoSourceTypeVideoFrame + (0):视频帧未编码。 + + + AgoraExternalVideoSourceTypeEncodedVideoFrame + (1):视频帧已编码。 + + + AgoraExternalVideoSourceTypeVideoFrame + (0):视频帧未编码。 + + + AgoraExternalVideoSourceTypeEncodedVideoFrame + (1):视频帧已编码。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_faceshapearea.dita b/dita/RTC-AIDOC/API/enum_faceshapearea.dita new file mode 100644 index 00000000000..05e1a23a900 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_faceshapearea.dita @@ -0,0 +1,391 @@ + + + + <ph keyref="FACE_SHAPE_AREA"/> + 选择需要调整的具体美型区域。选择需要调整的美型区域。选择需要调整的美型区域。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + FACE_SHAPE_AREA_NONE + (-1):默认值,表示无效区域,美型效果不生效。 + + + FACE_SHAPE_AREA_HEADSCALE + (100):头部区域,用于实现小头效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_FOREHEAD + (101):额头区域,用于调整发际线高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_FACECONTOUR + (102):脸部轮廓区域,用于实现瘦脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_FACELENGTH + (103):脸部长度区域,用于拉长脸部。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_FACEWIDTH + (104):脸部宽度区域,用于实现窄脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_CHEEKBONE + (105):颧骨区域,用于调整颧骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_CHEEK + (106):面颊区域,用于调整面颊宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_MANDIBLE + (107):下颌骨区域,用于调整下颌骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_CHIN + (108):下巴区域,用于调整下巴长度。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_EYESCALE + (200):眼睛区域,用于实现大眼效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_EYEDISTANCE + (201):眼距区域,用于调整两眼间距。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_EYEPOSITION + (202):眼睛位置区域,用于调整眼睛整体位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_LOWEREYELID + (203):下眼睑区域,用于调整下眼睑形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_EYEPUPILS + (204):瞳孔区域,用于调整瞳孔大小。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_EYEINNERCORNER + (205):内眼角区域,用于调整内眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_EYEOUTERCORNER + (206):外眼角区域,用于调整外眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_NOSELENGTH + (300):鼻子长度区域,用于拉长鼻子。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_NOSEWIDTH + (301):鼻子宽度区域,用于实现瘦鼻效果。取值范围为 [0, 100],默认值为 0。数值越大,瘦鼻效果越明显。 + + + FACE_SHAPE_AREA_NOSEWING + (302):鼻翼区域,用于调整鼻翼宽度。取值范围为 [0, 100],默认值为 10。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_NOSEROOT + (303):鼻根区域,用于调整鼻根高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_NOSEBRIDGE + (304):鼻梁区域,用于调整鼻梁高度。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_NOSETIP + (305):鼻尖区域,用于调整鼻尖形态。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_NOSEGENERAL + (306):整体鼻子区域,用于统一调整鼻部形态。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_MOUTHSCALE + (400):嘴巴区域,用于实现大嘴效果。取值范围为 [-100, 100],默认值为 20。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_MOUTHPOSITION + (401):嘴巴位置区域,用于调整嘴巴整体位置。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_MOUTHSMILE + (402):嘴角微笑区域,用于调整嘴角上扬程度。取值范围为 [0, 1],默认值为 0。数值越大,调整越明显。 + + + FACE_SHAPE_AREA_MOUTHLIP + (403):唇形区域,用于调整唇部形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + v.4.6.0. + + + + FACE_SHAPE_AREA_EYEBROWPOSITION + (500):眉毛位置区域,用于调整眉毛整体位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显,负值表示相反方向。 + + + FACE_SHAPE_AREA_EYEBROWTHICKNESS + (501):眉毛粗细区域,用于调整眉毛粗细。取值范围为 [-100, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNone + (-1):默认值。无效区域,美型特效不生效。 + + + AgoraFaceShapeAreaHeadScale + (100):头部区域,用于实现小头效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaForehead + (101):额头区域,用于调整发际线高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaFaceContour + (102):脸型轮廓区域,用于实现瘦脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaFaceLength + (103):脸长区域,用于拉长脸部。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaFaceWidth + (104):脸宽区域,用于实现窄脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaCheekbone + (105):颧骨区域,用于调整颧骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaCheek + (106):面颊区域,用于调整面颊宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMandible + (107):下颌骨区域,用于调整下颌骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaChin + (108):下巴区域,用于调整下巴长度。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyeScale + (200):眼睛区域,用于实现大眼效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyeDistance + (201):眼距区域,用于调整两眼间距。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyePosition + (202):眼睛位置区域,用于调整眼睛上下位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaLowerEyelid + (203):下眼睑区域,用于调整下眼睑形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyePupils + (204):瞳孔区域,用于调整瞳孔大小。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyeInnerCorner + (205):内眼角区域,用于调整内眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyeOuterCorner + (206):外眼角区域,用于调整外眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaNoseLength + (300):鼻子长度区域,用于拉长鼻子。取值范围为 [-100, 100],默认值为 0。 + + + AgoraFaceShapeAreaNoseWidth + (301):鼻子宽度区域,用于实现瘦鼻效果。取值范围为 [0, 100],默认值为 0。数值越大,瘦鼻效果越明显。 + + + AgoraFaceShapeAreaNoseWing + (302):鼻翼区域,用于调整鼻翼宽度。取值范围为 [0, 100],默认值为 10。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseRoot + (303):鼻根区域,用于调整鼻根高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseBridge + (304):鼻梁区域,用于调整鼻梁高度。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseTip + (305):鼻尖区域,用于调整鼻尖形态。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseGeneral + (306):整体鼻子区域,用于统一调整鼻部形态。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaMouthScale + (400):嘴巴区域,用于实现大嘴效果。取值范围为 [-100, 100],默认值为 20。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaMouthPosition + (401):嘴巴位置区域,用于调整嘴巴上下位置。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMouthSmile + (402):嘴角微笑区域,用于调整嘴角上扬程度。取值范围为 [0, 1],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMouthLip + (403):唇形区域,用于调整唇部形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyebrowPosition + (500):眉毛位置区域,用于调整眉毛上下位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyebrowThickness + (501):眉毛粗细区域,用于调整眉毛粗细。取值范围为 [-100, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNone + (-1):默认值。无效区域,美型特效不生效。 + + + AgoraFaceShapeAreaHeadScale + (100):头部区域,用于实现小头效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaForehead + (101):额头区域,用于调整发际线高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaFaceContour + (102):脸型轮廓区域,用于实现瘦脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaFaceLength + (103):脸长区域,用于拉长脸部。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaFaceWidth + (104):脸宽区域,用于实现窄脸效果。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaCheekbone + (105):颧骨区域,用于调整颧骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaCheek + (106):面颊区域,用于调整面颊宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMandible + (107):下颌骨区域,用于调整下颌骨宽度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaChin + (108):下巴区域,用于调整下巴长度。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyeScale + (200):眼睛区域,用于实现大眼效果。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyeDistance + (201):眼距区域,用于调整两眼间距。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyePosition + (202):眼睛位置区域,用于调整眼睛上下位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaLowerEyelid + (203):下眼睑区域,用于调整下眼睑形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyePupils + (204):瞳孔区域,用于调整瞳孔大小。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyeInnerCorner + (205):内眼角区域,用于调整内眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyeOuterCorner + (206):外眼角区域,用于调整外眼角形态。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaNoseLength + (300):鼻子长度区域,用于拉长鼻子。取值范围为 [-100, 100],默认值为 0。 + + + AgoraFaceShapeAreaNoseWidth + (301):鼻子宽度区域,用于实现瘦鼻效果。取值范围为 [0, 100],默认值为 0。数值越大,瘦鼻效果越明显。 + + + AgoraFaceShapeAreaNoseWing + (302):鼻翼区域,用于调整鼻翼宽度。取值范围为 [0, 100],默认值为 10。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseRoot + (303):鼻根区域,用于调整鼻根高度。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseBridge + (304):鼻梁区域,用于调整鼻梁高度。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseTip + (305):鼻尖区域,用于调整鼻尖形态。取值范围为 [0, 100],默认值为 50。数值越大,调整越明显。 + + + AgoraFaceShapeAreaNoseGeneral + (306):整体鼻子区域,用于统一调整鼻部形态。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaMouthScale + (400):嘴巴区域,用于实现大嘴效果。取值范围为 [-100, 100],默认值为 20。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaMouthPosition + (401):嘴巴位置区域,用于调整嘴巴上下位置。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMouthSmile + (402):嘴角微笑区域,用于调整嘴角上扬程度。取值范围为 [0, 1],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaMouthLip + (403):唇形区域,用于调整唇部形态。取值范围为 [0, 100],默认值为 0。数值越大,调整越明显。 + + + AgoraFaceShapeAreaEyebrowPosition + (500):眉毛位置区域,用于调整眉毛上下位置。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整越明显。负值表示相反方向。 + + + AgoraFaceShapeAreaEyebrowThickness + (501):眉毛粗细区域,用于调整眉毛粗细。取值范围为 [-100, 100],默认值为 0。数值越大,调整越明显。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_faceshapebeautystyle.dita b/dita/RTC-AIDOC/API/enum_faceshapebeautystyle.dita new file mode 100644 index 00000000000..7844659d3dc --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_faceshapebeautystyle.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="FACE_SHAPE_BEAUTY_STYLE"/> + 美型风格妆特效选项。面部增强风格选项。面部增强风格选项。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + FACE_SHAPE_BEAUTY_STYLE_FEMALE + (0):(默认)女性风格妆特效。 + + + FACE_SHAPE_BEAUTY_STYLE_MALE + (1):男性风格妆特效。 + + + FACE_SHAPE_BEAUTY_STYLE_NATURAL + (2):自然风格妆特效,仅对面部特征进行最小调整。 + + + AgoraFaceShapeStyleFemale + (0):(默认)女性风格。 + + + AgoraFaceShapeStyleMale + (1):男性风格。 + + + AgoraFaceShapeStyleNatural + (2):自然风格。 + + + AgoraFaceShapeStyleFemale + (0):(默认)女性风格。 + + + AgoraFaceShapeStyleMale + (1):男性风格。 + + + AgoraFaceShapeStyleNatural + (2):自然风格。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_featuretype.dita b/dita/RTC-AIDOC/API/enum_featuretype.dita new file mode 100644 index 00000000000..36466e94b87 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_featuretype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="FeatureType"/> + 高级特性类型。高级功能类型。高级功能类型。 + +
+ 枚举值 + + + VIDEO_VIRTUAL_BACKGROUND + (1):虚拟背景功能。 + + + VIDEO_BEAUTY_EFFECT + (2):图像增强功能。 + + + AgoraVideoPreprocessVirtualBackground + (1):虚拟背景功能。 + + + AgoraVideoPreprocessBeauty + (2):图像增强功能。 + + + AgoraVideoPreprocessVirtualBackground + (1):虚拟背景功能。 + + + AgoraVideoPreprocessBeauty + (2):图像增强功能。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_framerate.dita b/dita/RTC-AIDOC/API/enum_framerate.dita new file mode 100644 index 00000000000..0ff0a490744 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_framerate.dita @@ -0,0 +1,127 @@ + + + + <ph keyref="FRAME_RATE"/> + 视频帧率。视频帧率。视频帧率。视频帧率。 + +
+ 枚举值 + + + FRAME_RATE_FPS_1 + (1):1 帧每秒。 + + + FRAME_RATE_FPS_7 + (7):7 帧每秒。 + + + FRAME_RATE_FPS_10 + (10):10 帧每秒。 + + + FRAME_RATE_FPS_15 + (15):15 帧每秒。 + + + FRAME_RATE_FPS_24 + (24):24 帧每秒。 + + + FRAME_RATE_FPS_30 + (30):30 帧每秒。 + + + FRAME_RATE_FPS_60 + (60):60 帧每秒。 + 仅适用于 Windows 和 macOS。 + + + + FRAME_RATE_FPS_1 + (1):1 帧/秒。 + + + FRAME_RATE_FPS_7 + (7):7 帧/秒。 + + + FRAME_RATE_FPS_10 + (10):10 帧/秒。 + + + FRAME_RATE_FPS_15 + (15):15 帧/秒。 + + + FRAME_RATE_FPS_24 + (24):24 帧/秒。 + + + FRAME_RATE_FPS_30 + (30):30 帧/秒。 + + + FRAME_RATE_FPS_60 + (60):不支持。 + + + AgoraVideoFrameRateFps1 + (1):每秒 1 帧。 + + + AgoraVideoFrameRateFps7 + (7):每秒 7 帧。 + + + AgoraVideoFrameRateFps10 + (10):每秒 10 帧。 + + + AgoraVideoFrameRateFps15 + (15):每秒 15 帧。 + + + AgoraVideoFrameRateFps24 + (24):每秒 24 帧。 + + + AgoraVideoFrameRateFps30 + (30):每秒 30 帧。 + + + AgoraVideoFrameRateFps60 + (60):每秒 60 帧。(仅适用于 macOS 平台) + + + AgoraVideoFrameRateFps1 + (1):每秒 1 帧。 + + + AgoraVideoFrameRateFps7 + (7):每秒 7 帧。 + + + AgoraVideoFrameRateFps10 + (10):每秒 10 帧。 + + + AgoraVideoFrameRateFps15 + (15):每秒 15 帧。 + + + AgoraVideoFrameRateFps24 + (24):每秒 24 帧。 + + + AgoraVideoFrameRateFps30 + (30):每秒 30 帧。 + + + AgoraVideoFrameRateFps60 + (60):每秒 60 帧。(仅适用于 macOS 平台) + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_headphoneequalizerpreset.dita b/dita/RTC-AIDOC/API/enum_headphoneequalizerpreset.dita new file mode 100644 index 00000000000..c3cb5df512b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_headphoneequalizerpreset.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="HEADPHONE_EQUALIZER_PRESET"/> + 预设的耳机均衡器类型。预设的耳机均衡器类型。预设的耳机均衡器类型。 + +
+ 枚举值 + + + HEADPHONE_EQUALIZER_OFF + (0x00000000):关闭耳机均衡器,播放原始音频。 + + + HEADPHONE_EQUALIZER_OVEREAR + (0x04000001):启用适用于头戴式耳机的均衡器。 + + + HEADPHONE_EQUALIZER_INEAR + (0x04000002):启用适用于入耳式耳机的均衡器。 + + + AgoraAudioHeadphoneEQPresetOff + (0x00000000):关闭耳机均衡器,播放原始音频。 + + + AgoraAudioHeadphoneEQPresetOverear + (0x04000001):为头戴式耳机启用均衡器。 + + + AgoraAudioHeadphoneEQPresetInear + (0x04000002):为入耳式耳机启用均衡器。 + + + AgoraAudioHeadphoneEQPresetOff + (0x00000000):关闭耳机均衡器,播放原始音频。 + + + AgoraAudioHeadphoneEQPresetOverear + (0x04000001):为头戴式耳机启用均衡器。 + + + AgoraAudioHeadphoneEQPresetInear + (0x04000002):为入耳式耳机启用均衡器。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_hwencoderaccelerating.dita b/dita/RTC-AIDOC/API/enum_hwencoderaccelerating.dita new file mode 100644 index 00000000000..13626dc9226 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_hwencoderaccelerating.dita @@ -0,0 +1,29 @@ + + + + <ph keyref="hwEncoderAccelerating"/> + 本地视频编码的加速方式。本地视频编码的加速方式。 + +
+ 枚举值 + + + AgoraVideoHwEncoderSoftware + (0):使用软件编码,不启用加速。 + + + AgoraVideoHwEncoderHardware + (1):使用硬件编码,启用加速。 + + + AgoraVideoHwEncoderSoftware + (0):使用软件编码,不启用加速。 + + + AgoraVideoHwEncoderHardware + (1):使用硬件编码,启用加速。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_interfaceidtype.dita b/dita/RTC-AIDOC/API/enum_interfaceidtype.dita new file mode 100644 index 00000000000..ebbc225845f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_interfaceidtype.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="INTERFACE_ID_TYPE"/> + 接口类类型。 + +
+ 枚举值 + + + AGORA_IID_AUDIO_DEVICE_MANAGER + (1): 接口类。 + + + AGORA_IID_VIDEO_DEVICE_MANAGER + (2): 接口类。 + + + AGORA_IID_PARAMETER_ENGINE + (3):该接口类已废弃。 + + + AGORA_IID_MEDIA_ENGINE + (4): 接口类。 + + + AGORA_IID_AUDIO_ENGINE + (5):IAudioEngine 接口类。 + + + AGORA_IID_VIDEO_ENGINE + (6):IVideoEngine 接口类。 + + + AGORA_IID_RTC_CONNECTION + (7):IRtcConnection 接口类。 + + + AGORA_IID_SIGNALING_ENGINE + (8):该接口类已废弃。 + + + AGORA_IID_MEDIA_ENGINE_REGULATOR + (9):IMediaEngineRegulator 接口类。 + + + AGORA_IID_LOCAL_SPATIAL_AUDIO + (11):ILocalSpatialAudio 接口类。 + + + AGORA_IID_STATE_SYNC + (13):IStateSync 接口类。 + + + AGORA_IID_META_SERVICE + (14):IMetaService 接口类。 + + + AGORA_IID_MUSIC_CONTENT_CENTER + (15): 接口类。 + + + AGORA_IID_H265_TRANSCODER + (16):IH265Transcoder 接口类。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_lastmileproberesultstate.dita b/dita/RTC-AIDOC/API/enum_lastmileproberesultstate.dita new file mode 100644 index 00000000000..8ced5ce7b11 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_lastmileproberesultstate.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="LASTMILE_PROBE_RESULT_STATE"/> + Last-mile 网络探测测试的状态。Last-mile 网络探测测试的状态。Last-mile 网络探测测试的状态。 + +
+ 枚举值 + + + LASTMILE_PROBE_RESULT_COMPLETE + (1): Last-mile 网络探测测试已完成。 + + + LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE + (2): Last-mile 网络探测测试未完成,因测试资源有限,无法进行带宽估计。可能的原因是测试资源暂时受限。 + + + LASTMILE_PROBE_RESULT_UNAVAILABLE + (3):未执行 Last-mile 网络探测测试,可能由于网络状况较差。 + + + AgoraLastmileProbeResultComplete + (1): Last-mile 网络探测测试完成。 + + + AgoraLastmileProbeResultIncompleteNoBwe + (2): Last-mile 网络探测测试未完成,因测试资源有限,无法进行带宽估计。 + + + AgoraLastmileProbeResultUnavailable + (3):未进行 Last-mile 网络探测测试,可能由于网络状况较差。 + + + AgoraLastmileProbeResultComplete + (1): Last-mile 网络探测测试完成。 + + + AgoraLastmileProbeResultIncompleteNoBwe + (2): Last-mile 网络探测测试未完成,因测试资源有限,无法进行带宽估计。 + + + AgoraLastmileProbeResultUnavailable + (3):未进行 Last-mile 网络探测测试,可能由于网络状况较差。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_lighteningcontrastlevel.dita b/dita/RTC-AIDOC/API/enum_lighteningcontrastlevel.dita new file mode 100644 index 00000000000..1b43c4e26e1 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_lighteningcontrastlevel.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="LIGHTENING_CONTRAST_LEVEL"/> + 对比度等级。对比度等级。对比度等级。 + +
+ 枚举值 + + + LIGHTENING_CONTRAST_LOW + (0):低对比度等级。 + + + LIGHTENING_CONTRAST_NORMAL + (1):(默认)正常对比度等级。 + + + LIGHTENING_CONTRAST_HIGH + (2):高对比度等级。 + + + AgoraLighteningContrastLow + (0):低对比度等级。 + + + AgoraLighteningContrastNormal + (1):(默认)正常对比度等级。 + + + AgoraLighteningContrastHigh + (2):高对比度等级。 + + + AgoraLighteningContrastLow + (0):低对比度等级。 + + + AgoraLighteningContrastNormal + (1):(默认)正常对比度等级。 + + + AgoraLighteningContrastHigh + (2):高对比度等级。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_localaudiostreamreason.dita b/dita/RTC-AIDOC/API/enum_localaudiostreamreason.dita new file mode 100644 index 00000000000..a9a2b1a4c02 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_localaudiostreamreason.dita @@ -0,0 +1,129 @@ + + + + <ph keyref="LOCAL_AUDIO_STREAM_REASON"/> + 本地音频状态变化的原因。本地音频状态变化的原因。本地音频状态变化的原因。 + +
+ 枚举值 + + + LOCAL_AUDIO_STREAM_REASON_OK + (0):本地音频状态正常。 + + + LOCAL_AUDIO_STREAM_REASON_FAILURE + (1):本地音频异常,原因不明确。建议用户尝试重新加入频道。 + + + LOCAL_AUDIO_STREAM_REASON_DEVICE_NO_PERMISSION + (2):无权限使用本地音频采集设备。建议用户授予麦克风权限。 + + + LOCAL_AUDIO_STREAM_REASON_DEVICE_BUSY + (3):仅适用于 Android 和 iOS 平台,本地音频采集设备被占用。建议用户检查是否有其他应用占用麦克风。麦克风空闲约五秒后音频采集会自动恢复,也可在麦克风空闲后重新加入频道。 + + + LOCAL_AUDIO_STREAM_REASON_RECORD_FAILURE + (4):本地音频采集失败。 + + + LOCAL_AUDIO_STREAM_REASON_ENCODE_FAILURE + (5):本地音频编码失败。 + + + LOCAL_AUDIO_STREAM_REASON_NO_RECORDING_DEVICE + (6):仅适用于 Windows 和 macOS 平台,未检测到本地音频采集设备。建议用户在设备控制面板中检查麦克风是否正确连接或工作正常。 + + + LOCAL_AUDIO_STREAM_REASON_NO_PLAYOUT_DEVICE + (7):仅适用于 Windows 和 macOS 平台,未检测到本地音频播放设备。建议用户在设备控制面板中检查扬声器是否正确连接或工作正常。 + + + LOCAL_AUDIO_STREAM_REASON_INTERRUPTED + (8):仅适用于 Android 和 iOS 平台,本地音频采集被系统电话、智能助手或闹钟中断。如需继续采集音频,建议用户结束相关任务。 + + + LOCAL_AUDIO_STREAM_REASON_RECORD_INVALID_ID + (9):仅适用于 Windows 平台,本地音频采集设备的 ID 无效。建议用户检查音频采集设备 ID 是否正确。 + + + LOCAL_AUDIO_STREAM_REASON_PLAYOUT_INVALID_ID + (10):仅适用于 Windows 平台,本地音频播放设备的 ID 无效。建议用户检查音频播放设备 ID 是否正确。 + + + AgoraAudioLocalReasonOK + (0):本地音频状态正常。 + + + AgoraAudioLocalReasonFailure + (1):本地音频异常,原因不明确。请提示用户尝试重新加入频道。 + + + AgoraAudioLocalReasonDeviceNoPermission + (2):无权限使用本地音频采集设备。请提示用户授予麦克风权限。 + + + AgoraAudioLocalReasonDeviceBusy + (3):(仅适用于 iOS 平台)本地音频采集设备被占用。请提示用户检查是否有其他应用占用了麦克风。麦克风空闲约五秒后音频采集会自动恢复,或可在麦克风空闲后重新加入频道。 + + + AgoraAudioLocalReasonRecordFailure + (4):本地音频采集失败。 + + + AgoraAudioLocalReasonEncodeFailure + (5):本地音频编码失败。 + + + AgoraAudioLocalReasonNoRecordingDevice + (6):(仅适用于 macOS 平台)无本地音频采集设备。请提示用户在系统设置中检查麦克风是否正确连接或工作正常。 + + + AgoraAudioLocalReasonNoPlayoutDevice + (7):(仅适用于 macOS 平台)无本地音频播放设备。请提示用户在系统设置中检查扬声器是否正确连接或工作正常。 + + + AgoraAudioLocalReasonInterrupted + (8):(仅适用于 iOS 平台)本地音频采集被系统电话、智能助手或闹钟中断。如需继续采集,请提示用户结束相关任务。 + + + AgoraAudioLocalReasonOK + (0):本地音频状态正常。 + + + AgoraAudioLocalReasonFailure + (1):本地音频异常,原因不明确。请提示用户尝试重新加入频道。 + + + AgoraAudioLocalReasonDeviceNoPermission + (2):无权限使用本地音频采集设备。请提示用户授予麦克风权限。 + + + AgoraAudioLocalReasonDeviceBusy + (3):(仅适用于 iOS 平台)本地音频采集设备被占用。请提示用户检查是否有其他应用占用了麦克风。麦克风空闲约五秒后音频采集会自动恢复,或可在麦克风空闲后重新加入频道。 + + + AgoraAudioLocalReasonRecordFailure + (4):本地音频采集失败。 + + + AgoraAudioLocalReasonEncodeFailure + (5):本地音频编码失败。 + + + AgoraAudioLocalReasonNoRecordingDevice + (6):(仅适用于 macOS 平台)无本地音频采集设备。请提示用户在系统设置中检查麦克风是否正确连接或工作正常。 + + + AgoraAudioLocalReasonNoPlayoutDevice + (7):(仅适用于 macOS 平台)无本地音频播放设备。请提示用户在系统设置中检查扬声器是否正确连接或工作正常。 + + + AgoraAudioLocalReasonInterrupted + (8):(仅适用于 iOS 平台)本地音频采集被系统电话、智能助手或闹钟中断。如需继续采集,请提示用户结束相关任务。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_localaudiostreamstate.dita b/dita/RTC-AIDOC/API/enum_localaudiostreamstate.dita new file mode 100644 index 00000000000..468033a3959 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_localaudiostreamstate.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="LOCAL_AUDIO_STREAM_STATE"/> + 本地音频状态。本地音频状态。本地音频状态。 + +
+ 枚举值 + + + LOCAL_AUDIO_STREAM_STATE_STOPPED + (0):本地音频处于初始状态。 + + + LOCAL_AUDIO_STREAM_STATE_RECORDING + (1):本地音频采集设备已成功启动。 + + + LOCAL_AUDIO_STREAM_STATE_ENCODING + (2):首帧音频已成功编码。 + + + LOCAL_AUDIO_STREAM_STATE_FAILED + (3):本地音频启动失败。 + + + AgoraAudioLocalStateStopped + (0):本地音频处于初始状态。 + + + AgoraAudioLocalStateRecording + (1):本地音频采集设备已成功启动。 + + + AgoraAudioLocalStateEncoding + (2):首帧音频已成功编码。 + + + AgoraAudioLocalStateFailed + (3):本地音频启动失败。 + + + AgoraAudioLocalStateStopped + (0):本地音频处于初始状态。 + + + AgoraAudioLocalStateRecording + (1):本地音频采集设备已成功启动。 + + + AgoraAudioLocalStateEncoding + (2):首帧音频已成功编码。 + + + AgoraAudioLocalStateFailed + (3):本地音频启动失败。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_localproxymode.dita b/dita/RTC-AIDOC/API/enum_localproxymode.dita new file mode 100644 index 00000000000..7bbf36260e6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_localproxymode.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="LOCAL_PROXY_MODE"/> + 与声网私有媒体服务器的连接模式。连接声网私有媒体服务器的模式。连接声网私有媒体服务器的模式。 + +
+ 枚举值 + + + ConnectivityFirst + (0):SDK 优先尝试连接指定的声网私有媒体服务器;若连接失败,则连接声网 SD-RTN™。 + + + LocalOnly + (1):SDK 仅尝试连接指定的声网私有媒体服务器。 + + + AgoraConnectivityFirst + (0):SDK 优先尝试连接指定的声网私有媒体服务器;若连接失败,则连接声网 SD-RTN™。 + + + AgoraLocalOnly + (1):SDK 仅尝试连接指定的声网私有媒体服务器。 + + + AgoraConnectivityFirst + (0):SDK 优先尝试连接指定的声网私有媒体服务器;若连接失败,则连接声网 SD-RTN™。 + + + AgoraLocalOnly + (1):SDK 仅尝试连接指定的声网私有媒体服务器。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_localvideostreamreason.dita b/dita/RTC-AIDOC/API/enum_localvideostreamreason.dita new file mode 100644 index 00000000000..eb209dbbaab --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_localvideostreamreason.dita @@ -0,0 +1,279 @@ + + + + <ph keyref="LOCAL_VIDEO_STREAM_REASON"/> + 本地视频状态变化的原因。本地视频状态变化的原因。本地视频状态变化的原因。 + +
+ 枚举值 + + + LOCAL_VIDEO_STREAM_REASON_OK + (0):本地视频状态正常。 + + + LOCAL_VIDEO_STREAM_REASON_FAILURE + (1):本地视频出现异常,未指定具体原因。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_NO_PERMISSION + (2):无权限使用本地视频采集设备。请提示用户授予权限并重新加入频道。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_BUSY + (3):本地视频采集设备被占用。请提示用户检查摄像头是否被其他应用占用,或尝试重新加入频道。 + + + LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE + (4):本地视频采集失败。请提示用户检查视频采集设备是否正常工作,摄像头是否被其他应用占用,或尝试重新加入频道。 + + + LOCAL_VIDEO_STREAM_REASON_CODEC_NOT_SUPPORT + (5):本地视频编码失败。 + + + LOCAL_VIDEO_STREAM_REASON_CAPTURE_INBACKGROUND + (6):(仅适用于 iOS 平台)应用处于后台状态。请提示用户,应用在后台时无法正常采集视频。 + + + LOCAL_VIDEO_STREAM_REASON_CAPTURE_MULTIPLE_FOREGROUND_APPS + (7):(仅适用于 iOS 平台)当前应用窗口处于 Slide Over、Split View 或画中画模式,且摄像头被其他应用占用。请提示用户,在上述模式下若摄像头被其他应用占用,应用将无法正常采集视频。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND + (8):未找到本地视频采集设备。请提示用户检查摄像头是否正确连接或正常工作,并重新加入频道。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED + (9):(仅适用于 macOS 和 Windows 平台)当前使用的视频采集设备已断开连接(例如被拔出)。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_INVALID_ID + (10):(仅适用于 macOS 和 Windows 平台)SDK 在视频设备列表中找不到该视频设备。请检查视频设备的 ID 是否有效。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT + (14):(仅适用于 Android 平台)视频采集被中断。可能原因包括:摄像头被其他应用占用;当前应用切换到后台。你可以使用前台服务通知操作系统,确保应用切换到后台后仍能采集视频。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR + (15):(仅适用于 Android 平台)视频采集设备发生错误。请提示用户关闭并重启摄像头以恢复功能。如果问题仍未解决,请检查摄像头是否存在硬件故障。 + + + LOCAL_VIDEO_STREAM_REASON_DEVICE_SYSTEM_PRESSURE + (101):当前视频采集设备因系统压力过大而不可用。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED + (11):(仅适用于 macOS 和 Windows 平台)调用 方法共享窗口时,被共享窗口已最小化。SDK 无法共享最小化的窗口。请提示用户取消最小化该窗口。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED + (12):(仅适用于 macOS 和 Windows 平台)被共享的窗口已关闭,或全屏窗口退出了全屏模式。退出全屏后,远端用户将无法看到共享窗口。为避免远端用户看到黑屏,建议立即停止屏幕共享。常见场景包括:本地用户关闭共享窗口;本地用户先全屏播放幻灯片再共享幻灯片窗口,退出全屏后触发该错误码;本地用户先全屏观看网页视频或文档再共享其窗口,退出全屏后触发该错误码。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_OCCLUDED + (13):(仅适用于 Windows 平台)被共享的窗口被其他窗口遮挡,SDK 会将被遮挡区域置黑。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED + (20):不支持本地屏幕共享窗口。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE + (21):(仅适用于 Windows 和 Android 平台)当前被采集的窗口无数据。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_NO_PERMISSION + (22):(仅适用于 Windows 和 macOS 平台)无屏幕共享权限。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_AUTO_FALLBACK + (24):(仅适用于 Windows 平台)屏幕共享过程中发生异常错误(可能由于窗口遮挡失败),导致性能下降,但屏幕共享过程本身未受影响。 + 在屏幕共享过程中,如果由于设备驱动问题导致遮挡特定窗口失败,SDK 会上报此事件并自动回退为共享整个屏幕。如果你的使用场景需要遮挡特定窗口以保护隐私,建议监听此事件并在触发时实现额外的隐私保护机制。 + + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_HIDDEN + (25):(仅适用于 Windows 平台)当前屏幕共享的窗口被隐藏,在当前屏幕上不可见。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN + (26):(仅适用于 Windows 平台)屏幕共享的窗口已从隐藏状态恢复。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED + (27):(仅适用于 macOS 和 Windows 平台)屏幕共享的窗口已从最小化状态恢复。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_PAUSED + (28):(仅适用于 Windows 平台)屏幕共享已暂停。常见场景包括:当前屏幕切换到安全桌面,例如 UAC 对话框或 Winlogon 桌面。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_RESUMED + (29):(仅适用于 Windows 平台)屏幕共享已从暂停状态恢复。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED + (30):(仅适用于 Windows 和 macOS 平台)用于屏幕共享的显示器已断开连接,当前屏幕共享已暂停。请提示用户重新开始屏幕共享。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_STOPPED_BY_USER + (31):(仅适用于鸿蒙平台)屏幕共享被用户停止。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_INTERRUPTED_BY_OTHER + (32):(仅适用于鸿蒙平台)屏幕共享被其他屏幕共享中断。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_STOPPED_BY_CALL + (33):(仅适用于鸿蒙平台)屏幕共享因 SIM 通话被停止。 + + + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_EXCLUDE_WINDOW_FAILED + (34):(仅适用于 Windows 平台)屏幕共享时,排除窗口列表中的某些窗口排除失败。 + + + AgoraLocalVideoStreamReasonOK + (0):本地视频状态正常。 + + + AgoraLocalVideoStreamReasonFailure + (1):本地视频失败,原因不明确。 + + + AgoraLocalVideoStreamReasonDeviceNoPermission + (2):无权限使用本地视频采集设备。请提示用户授予权限并重新加入频道。 + + + AgoraLocalVideoStreamReasonDeviceBusy + (3):本地视频采集设备被占用。请提示用户检查摄像头是否被其他 App 占用,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCaptureFailure + (4):本地视频采集失败。请提示用户检查视频采集设备是否正常工作,摄像头是否被其他 App 占用,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCodecNotSupport + (5):本地视频编码失败。 + + + AgoraLocalVideoStreamReasonCaptureInBackGround + (6):(仅适用于 iOS 平台)App 处于后台运行状态,无法正常进行视频采集。请提示用户切换至前台。 + + + AgoraLocalVideoStreamReasonCaptureMultipleForegroundApps + (7):(仅适用于 iOS 平台)App 处于 Slide Over、Split View 或画中画模式,且摄像头被其他 App 占用,无法正常进行视频采集。请提示用户退出上述模式。 + + + AgoraLocalVideoStreamReasonCaptureNoDeviceFound + (8):SDK 无法找到本地视频采集设备。请检查摄像头是否连接正常、是否正常工作,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCaptureDeviceDisconnected + (9):(仅适用于 macOS 平台)当前使用的视频采集设备已断开连接(如被拔出)。 + + + AgoraLocalVideoStreamReasonCaptureDeviceInvalidId + (10):(仅适用于 macOS 平台)SDK 无法在视频设备列表中找到该设备。请检查视频设备 ID 是否有效。 + + + AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized + (11):(仅适用于 macOS 平台)调用 startScreenCaptureByWindowId:regionRect:captureParams: 方法共享窗口时,被共享窗口已最小化,无法进行共享。请提示用户取消最小化该窗口。 + + + AgoraLocalVideoStreamReasonScreenCaptureWindowClosed + (12):(仅适用于 macOS 平台)被共享的窗口已关闭,或全屏窗口退出了全屏模式,远端用户将无法看到共享内容。为避免黑屏,建议立即停止屏幕共享。常见场景包括: +
    +
  • 本地用户关闭共享窗口;
  • +
  • 本地用户先全屏播放幻灯片再共享该窗口,退出全屏后触发该错误码;
  • +
  • 本地用户先全屏观看网页视频或文档再共享该窗口,退出全屏后触发该错误码。
  • +
+
+
+ + AgoraLocalVideoStreamReasonScreenCaptureNoPermission + (22):无屏幕采集权限。 + + + AgoraLocalVideoStreamReasonScreenCaptureRecoverFromMinimized + (27):(仅适用于 macOS 平台)屏幕采集的窗口已从最小化状态恢复。 + + + AgoraLocalVideoStreamReasonScreenCaptureDisplayDisconnected + (30):(仅适用于 macOS 平台)用于屏幕采集的显示器已断开连接,当前屏幕共享已暂停。请提示用户重新开始屏幕共享。 + + + AgoraLocalVideoStreamReasonOK + (0):本地视频状态正常。 + + + AgoraLocalVideoStreamReasonFailure + (1):本地视频失败,原因不明确。 + + + AgoraLocalVideoStreamReasonDeviceNoPermission + (2):无权限使用本地视频采集设备。请提示用户授予权限并重新加入频道。 + + + AgoraLocalVideoStreamReasonDeviceBusy + (3):本地视频采集设备被占用。请提示用户检查摄像头是否被其他 App 占用,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCaptureFailure + (4):本地视频采集失败。请提示用户检查视频采集设备是否正常工作,摄像头是否被其他 App 占用,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCodecNotSupport + (5):本地视频编码失败。 + + + AgoraLocalVideoStreamReasonCaptureInBackGround + (6):(仅适用于 iOS 平台)App 处于后台运行状态,无法正常进行视频采集。请提示用户切换至前台。 + + + AgoraLocalVideoStreamReasonCaptureMultipleForegroundApps + (7):(仅适用于 iOS 平台)App 处于 Slide Over、Split View 或画中画模式,且摄像头被其他 App 占用,无法正常进行视频采集。请提示用户退出上述模式。 + + + AgoraLocalVideoStreamReasonCaptureNoDeviceFound + (8):SDK 无法找到本地视频采集设备。请检查摄像头是否连接正常、是否正常工作,或尝试重新加入频道。 + + + AgoraLocalVideoStreamReasonCaptureDeviceDisconnected + (9):(仅适用于 macOS 平台)当前使用的视频采集设备已断开连接(如被拔出)。 + + + AgoraLocalVideoStreamReasonCaptureDeviceInvalidId + (10):(仅适用于 macOS 平台)SDK 无法在视频设备列表中找到该设备。请检查视频设备 ID 是否有效。 + + + AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized + (11):(仅适用于 macOS 平台)调用 方法共享窗口时,被共享窗口已最小化,无法进行共享。请提示用户取消最小化该窗口。 + + + AgoraLocalVideoStreamReasonScreenCaptureWindowClosed + (12):(仅适用于 macOS 平台)被共享的窗口已关闭,或全屏窗口退出了全屏模式,远端用户将无法看到共享内容。为避免黑屏,建议立即停止屏幕共享。常见场景包括: +
    +
  • 本地用户关闭共享窗口;
  • +
  • 本地用户先全屏播放幻灯片再共享该窗口,退出全屏后触发该错误码;
  • +
  • 本地用户先全屏观看网页视频或文档再共享该窗口,退出全屏后触发该错误码。
  • +
+
+
+ + AgoraLocalVideoStreamReasonScreenCaptureNoPermission + (22):无屏幕采集权限。 + + + AgoraLocalVideoStreamReasonScreenCaptureRecoverFromMinimized + (27):(仅适用于 macOS 平台)屏幕采集的窗口已从最小化状态恢复。 + + + AgoraLocalVideoStreamReasonScreenCaptureDisplayDisconnected + (30):(仅适用于 macOS 平台)用于屏幕采集的显示器已断开连接,当前屏幕共享已暂停。请提示用户重新开始屏幕共享。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_localvideostreamstate.dita b/dita/RTC-AIDOC/API/enum_localvideostreamstate.dita new file mode 100644 index 00000000000..2a1dc8d3035 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_localvideostreamstate.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="LOCAL_VIDEO_STREAM_STATE"/> + 本地视频流的状态。本地视频的状态类型。本地视频的状态类型。 + +
+ 枚举值 + + + LOCAL_VIDEO_STREAM_STATE_STOPPED + (0):本地视频处于初始状态。 + + + LOCAL_VIDEO_STREAM_STATE_CAPTURING + (1):本地视频采集设备启动成功。当调用 共享最大化窗口时,SDK 也会报告此状态。 + + + LOCAL_VIDEO_STREAM_STATE_ENCODING + (2):首帧视频编码成功。 + + + LOCAL_VIDEO_STREAM_STATE_FAILED + (3):启动本地视频失败。 + + + AgoraVideoLocalStateStopped + (0):本地视频处于初始状态。 + + + AgoraVideoLocalStateCapturing + (1):本地视频采集设备已成功启动。 + + + AgoraVideoLocalStateEncoding + (2):首帧视频已成功编码。 + + + AgoraVideoLocalStateFailed + (3):本地视频启动失败。 + + + AgoraVideoLocalStateStopped + (0):本地视频处于初始状态。 + + + AgoraVideoLocalStateCapturing + (1):本地视频采集设备已成功启动。 + + + AgoraVideoLocalStateEncoding + (2):首帧视频已成功编码。 + + + AgoraVideoLocalStateFailed + (3):本地视频启动失败。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_logfiltertype.dita b/dita/RTC-AIDOC/API/enum_logfiltertype.dita new file mode 100644 index 00000000000..890deac7b89 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_logfiltertype.dita @@ -0,0 +1,89 @@ + + + + <ph keyref="LOG_FILTER_TYPE"/> + 设置 SDK 的输出日志级别。设置 SDK 的输出日志级别。设置 SDK 的输出日志级别。 + +
+ 枚举值 + + + LOG_FILTER_OFF + (0):不输出任何日志信息。 + + + LOG_FILTER_DEBUG + (0x080f):输出所有级别的日志信息。若需获取最完整的日志文件,建议将日志过滤级别设置为该值。 + + + LOG_FILTER_INFO + (0x000f):输出 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARNLOG_FILTER_INFO 级别的日志信息。推荐设置为该级别。 + + + LOG_FILTER_WARN + (0x000e):输出 LOG_FILTER_CRITICALLOG_FILTER_ERRORLOG_FILTER_WARN 级别的日志信息。 + + + LOG_FILTER_ERROR + (0x000c):输出 LOG_FILTER_CRITICALLOG_FILTER_ERROR 级别的日志信息。 + + + LOG_FILTER_CRITICAL + (0x0008):仅输出 LOG_FILTER_CRITICAL 级别的日志信息。 + + + LOG_FILTER_MASK + (0x80f):日志过滤掩码。 + + + AgoraLogFilterOff + (0):不输出任何日志信息。 + + + AgoraLogFilterDebug + (0x080f):输出所有级别的日志信息。若需获取最完整的日志文件,建议将日志过滤器设置为该级别。 + + + AgoraLogFilterInfo + (0x000f):输出 AgoraLogFilterCritical、AgoraLogFilterError、AgoraLogFilterWarning 和 AgoraLogFilterInfo 级别的日志信息。推荐将日志过滤器设置为该级别。 + + + AgoraLogFilterWarning + (0x000e):输出 AgoraLogFilterCritical、AgoraLogFilterError 和 AgoraLogFilterWarning 级别的日志信息。 + + + AgoraLogFilterError + (0x000c):输出 AgoraLogFilterCritical 和 AgoraLogFilterError 级别的日志信息。 + + + AgoraLogFilterCritical + (0x0008):输出 AgoraLogFilterCritical 级别的日志信息。 + + + AgoraLogFilterOff + (0):不输出任何日志信息。 + + + AgoraLogFilterDebug + (0x080f):输出所有级别的日志信息。若需获取最完整的日志文件,建议将日志过滤器设置为该级别。 + + + AgoraLogFilterInfo + (0x000f):输出 AgoraLogFilterCritical、AgoraLogFilterError、AgoraLogFilterWarning 和 AgoraLogFilterInfo 级别的日志信息。推荐将日志过滤器设置为该级别。 + + + AgoraLogFilterWarning + (0x000e):输出 AgoraLogFilterCritical、AgoraLogFilterError 和 AgoraLogFilterWarning 级别的日志信息。 + + + AgoraLogFilterError + (0x000c):输出 AgoraLogFilterCritical 和 AgoraLogFilterError 级别的日志信息。 + + + AgoraLogFilterCritical + (0x0008):输出 AgoraLogFilterCritical 级别的日志信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_loglevel.dita b/dita/RTC-AIDOC/API/enum_loglevel.dita new file mode 100644 index 00000000000..2279f31f185 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_loglevel.dita @@ -0,0 +1,101 @@ + + + + <ph keyref="LOG_LEVEL"/> + 设置 SDK 的日志输出级别。SDK 的输出日志等级。SDK 的输出日志级别。SDK 的输出日志级别。 + +
+ 枚举值 + + + LOG_LEVEL_NONE + (0x0000):不输出任何日志信息。 + + + LOG_LEVEL_INFO + (0x0001):(默认)输出 FATAL、ERROR、WARN 和 INFO 级别的日志信息。建议将日志过滤器设置为该级别。 + + + LOG_LEVEL_WARN + (0x0002):输出 FATAL、ERROR 和 WARN 级别的日志信息。 + + + LOG_LEVEL_ERROR + (0x0004):输出 FATAL 和 ERROR 级别的日志信息。 + + + LOG_LEVEL_FATAL + (0x0008):输出 FATAL 级别的日志信息。 + + + LOG_LEVEL_API_CALL + (0x0010):输出 API 调用相关的日志信息。 + + + LOG_LEVEL_DEBUG + (0x0020):输出调试级别的日志信息。 + + + LOG_LEVEL_NONE + (0x0000):输出等级为 NONE,仅用于不输出任何日志信息。 + + + LOG_LEVEL_INFO + (0x0001):(默认)输出等级为 INFO,输出 FATALERRORWARNINFO 级别的日志信息。建议将日志过滤器设置为该等级。 + + + LOG_LEVEL_WARN + (0x0002):输出等级为 WARN,输出 FATALERRORWARN 级别的日志信息。 + + + LOG_LEVEL_ERROR + (0x0004):输出等级为 ERROR,输出 FATALERROR 级别的日志信息。 + + + LOG_LEVEL_FATAL + (0x0008):输出等级为 FATAL,仅输出 FATAL 级别的日志信息。 + + + AgoraLogLevelNone + (0x0000):输出级别为 NONE,不输出任何日志信息。 + + + AgoraLogLevelInfo + (0x0001):(默认)输出级别为 INFO,输出 FATAL、ERROR、WARN 和 INFO 级别的日志信息。建议将日志过滤器设置为该级别。 + + + AgoraLogLevelWarn + (0x0002):输出级别为 WARN,输出 FATAL、ERROR 和 WARN 级别的日志信息。 + + + AgoraLogLevelError + (0x0004):输出级别为 ERROR,输出 FATAL 和 ERROR 级别的日志信息。 + + + AgoraLogLevelFatal + (0x0008):输出级别为 FATAL,仅输出 FATAL 级别的日志信息。 + + + AgoraLogLevelNone + (0x0000):输出级别为 NONE,不输出任何日志信息。 + + + AgoraLogLevelInfo + (0x0001):(默认)输出级别为 INFO,输出 FATAL、ERROR、WARN 和 INFO 级别的日志信息。建议将日志过滤器设置为该级别。 + + + AgoraLogLevelWarn + (0x0002):输出级别为 WARN,输出 FATAL、ERROR 和 WARN 级别的日志信息。 + + + AgoraLogLevelError + (0x0004):输出级别为 ERROR,输出 FATAL 和 ERROR 级别的日志信息。 + + + AgoraLogLevelFatal + (0x0008):输出级别为 FATAL,仅输出 FATAL 级别的日志信息。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_lowlightenhancelevel.dita b/dita/RTC-AIDOC/API/enum_lowlightenhancelevel.dita new file mode 100644 index 00000000000..2ed71ec090b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_lowlightenhancelevel.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="LOW_LIGHT_ENHANCE_LEVEL"/> + 低光增强等级。低光增强等级。低光增强等级。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+
+
+ 枚举值 + + + LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY + (0):(默认)在低光增强过程中优先提升视频质量。处理视频图像的亮度、细节和噪声,性能消耗适中,处理速度适中,整体视频质量最佳。 + + + LOW_LIGHT_ENHANCE_LEVEL_FAST + (1):在低光增强过程中优先提升处理性能。处理视频图像的亮度和细节,处理速度更快。 + + + AgoraLowlightEnhanceLevelQuality + (0):(默认)在低光增强过程中优先提升视频质量。处理图像的亮度、细节和噪声,性能消耗和处理速度适中,整体视频质量最佳。 + + + AgoraLowlightEnhanceLevelFast + (1):在低光增强过程中优先提升处理性能。处理图像的亮度和细节,处理速度更快。 + + + AgoraLowlightEnhanceLevelQuality + (0):(默认)在低光增强过程中优先提升视频质量。处理图像的亮度、细节和噪声,性能消耗和处理速度适中,整体视频质量最佳。 + + + AgoraLowlightEnhanceLevelFast + (1):在低光增强过程中优先提升处理性能。处理图像的亮度和细节,处理速度更快。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_lowlightenhancemode.dita b/dita/RTC-AIDOC/API/enum_lowlightenhancemode.dita new file mode 100644 index 00000000000..503043bfffb --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_lowlightenhancemode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="LOW_LIGHT_ENHANCE_MODE"/> + 低光增强模式。低光增强模式。低光增强模式。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+
+
+ 枚举值 + + + LOW_LIGHT_ENHANCE_AUTO + (0):自动模式(默认)。SDK 会根据环境光自动启用或关闭低光增强功能,以补偿光照水平或防止过度曝光。 + + + LOW_LIGHT_ENHANCE_MANUAL + (1):手动模式。用户需手动启用或关闭低光增强功能。 + + + AgoraLowlightEnhanceModeAuto + (0):(默认)自动模式。SDK 会根据环境光自动启用或关闭低光增强功能,以补偿光照不足或防止过度曝光。 + + + AgoraLowlightEnhanceModeManual + (1):手动模式。需由用户手动启用或关闭低光增强功能。 + + + AgoraLowlightEnhanceModeAuto + (0):(默认)自动模式。SDK 会根据环境光自动启用或关闭低光增强功能,以补偿光照不足或防止过度曝光。 + + + AgoraLowlightEnhanceModeManual + (1):手动模式。需由用户手动启用或关闭低光增强功能。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_maxdeviceidlengthtype.dita b/dita/RTC-AIDOC/API/enum_maxdeviceidlengthtype.dita new file mode 100644 index 00000000000..fe33e798eb1 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_maxdeviceidlengthtype.dita @@ -0,0 +1,17 @@ + + + + <ph keyref="MAX_DEVICE_ID_LENGTH_TYPE"/> + 设备 ID 的最大长度。 + +
+ 枚举值 + + + MAX_DEVICE_ID_LENGTH + (512):设备 ID 的最大长度为 512 字节。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_maxuseraccountlengthtype.dita b/dita/RTC-AIDOC/API/enum_maxuseraccountlengthtype.dita new file mode 100644 index 00000000000..ece409d5c5b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_maxuseraccountlengthtype.dita @@ -0,0 +1,17 @@ + + + + <ph keyref="MAX_USER_ACCOUNT_LENGTH_TYPE"/> + 用户 User Account 的最大长度。 + +
+ 枚举值 + + + MAX_USER_ACCOUNT_LENGTH + (256):用户 User Account 的最大长度为 256 字节。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediadevicestatetype.dita b/dita/RTC-AIDOC/API/enum_mediadevicestatetype.dita new file mode 100644 index 00000000000..6ccfaf2928c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediadevicestatetype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="MEDIA_DEVICE_STATE_TYPE"/> + 媒体设备状态。 + +
+ 枚举值 + + + MEDIA_DEVICE_STATE_IDLE + (0):设备处于空闲状态,可供使用。 + + + MEDIA_DEVICE_STATE_ACTIVE + (1):设备正在被使用。 + + + MEDIA_DEVICE_STATE_DISABLED + (2):设备已被禁用,无法使用。 + + + MEDIA_DEVICE_STATE_PLUGGED_IN + (3):设备已连接。 + + + MEDIA_DEVICE_STATE_NOT_PRESENT + (4):未检测到设备。 + + + MEDIA_DEVICE_STATE_UNPLUGGED + (8):设备已断开连接。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediadevicetype.dita b/dita/RTC-AIDOC/API/enum_mediadevicetype.dita new file mode 100644 index 00000000000..9a90eb772bd --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediadevicetype.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="MEDIA_DEVICE_TYPE"/> + 媒体设备类型。媒体设备类型。 + +
+ 枚举值 + + + UNKNOWN_AUDIO_DEVICE + (-1):未知设备类型。 + + + AUDIO_PLAYOUT_DEVICE + (0):音频播放设备。 + + + AUDIO_RECORDING_DEVICE + (1):音频采集设备。 + + + VIDEO_RENDER_DEVICE + (2):视频渲染设备(显卡)。 + + + VIDEO_CAPTURE_DEVICE + (3):视频采集设备。 + + + AUDIO_APPLICATION_PLAYOUT_DEVICE + (4):应用程序的音频播放设备。 + + + AUDIO_VIRTUAL_PLAYOUT_DEVICE + (5):仅适用于 macOS 平台,虚拟音频播放设备(虚拟声卡)。 + + + AUDIO_VIRTUAL_RECORDING_DEVICE + (6):仅适用于 macOS 平台,虚拟音频采集设备(虚拟声卡)。 + + + AgoraMediaDeviceTypeAudioUnknown + (-1):未知设备类型。 + + + AgoraMediaDeviceTypeAudioPlayout + (0):音频播放设备。 + + + AgoraMediaDeviceTypeAudioRecording + (1):音频采集设备。 + + + AgoraMediaDeviceTypeVideoRender + (2):视频渲染设备(显卡)。 + + + AgoraMediaDeviceTypeVideoCapture + (3):视频采集设备。 + + + AgoraMediaDeviceTypeAudioApplicationPlayout + (4):应用程序音频播放设备。 + + + AgoraMediaDeviceTypeAudioVirtualPlayout + (5):虚拟音频播放设备(虚拟声卡)。 + + + AgoraMediaDeviceTypeAudioVirtualRecording + (6):虚拟音频采集设备(虚拟声卡)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediaplayerevent.dita b/dita/RTC-AIDOC/API/enum_mediaplayerevent.dita new file mode 100644 index 00000000000..1e4a950d2f6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediaplayerevent.dita @@ -0,0 +1,305 @@ + + + + <ph keyref="MEDIA_PLAYER_EVENT"/> + 媒体播放器事件。媒体播放器事件。媒体播放器事件。媒体播放器事件。 + +
+ 枚举值 + + + PLAYER_EVENT_SEEK_BEGIN + (0):开始跳转到新的播放位置。 + + + PLAYER_EVENT_SEEK_COMPLETE + (1):完成跳转到新的播放位置。 + + + PLAYER_EVENT_SEEK_ERROR + (2):跳转到新的播放位置时发生错误。 + + + PLAYER_EVENT_AUDIO_TRACK_CHANGED + (5):音轨已更改。 + + + PLAYER_EVENT_BUFFER_LOW + (6):缓冲数据不足,无法支持播放。 + + + PLAYER_EVENT_BUFFER_RECOVER + (7):缓冲数据刚好足以支持播放。 + + + PLAYER_EVENT_FREEZE_START + (8):音视频播放卡顿。 + + + PLAYER_EVENT_FREEZE_STOP + (9):音视频播放恢复流畅。 + + + PLAYER_EVENT_SWITCH_BEGIN + (10):开始切换媒体资源。 + + + PLAYER_EVENT_SWITCH_COMPLETE + (11):媒体资源切换完成。 + + + PLAYER_EVENT_SWITCH_ERROR + (12):媒体资源切换失败。 + + + PLAYER_EVENT_FIRST_DISPLAYED + (13):首帧视频已渲染。 + + + PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT + (14):缓存的媒体文件数量达到上限。 + + + PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE + (15):缓存的媒体文件总大小达到上限。 + + + PLAYER_EVENT_TRY_OPEN_START + (16):开始重试打开媒体。 + + + PLAYER_EVENT_TRY_OPEN_SUCCEED + (17):重试打开媒体成功。 + + + PLAYER_EVENT_TRY_OPEN_FAILED + (18):重试打开媒体失败。 + + + PLAYER_EVENT_HTTP_REDIRECT + (19):发生 HTTP 重定向。(技术预览) + + + PLAYER_EVENT_UNKNOWN + (-1):未知事件。 + + + PLAYER_EVENT_SEEK_BEGIN + (0):开始跳转到新的播放位置。 + + + PLAYER_EVENT_SEEK_COMPLETE + (1):完成跳转到新的播放位置。 + + + PLAYER_EVENT_SEEK_ERROR + (2):跳转到新的播放位置时发生错误。 + + + PLAYER_EVENT_AUDIO_TRACK_CHANGED + (5):音轨已更改。 + + + PLAYER_EVENT_BUFFER_LOW + (6):缓冲数据不足,无法支持播放。 + + + PLAYER_EVENT_BUFFER_RECOVER + (7):缓冲数据刚好足以支持播放。 + + + PLAYER_EVENT_FREEZE_START + (8):播放卡顿。 + + + PLAYER_EVENT_FREEZE_STOP + (9):播放恢复流畅。 + + + PLAYER_EVENT_SWITCH_BEGIN + (10):开始切换媒体资源。 + + + PLAYER_EVENT_SWITCH_COMPLETE + (11):媒体资源切换完成。 + + + PLAYER_EVENT_SWITCH_ERROR + (12):媒体资源切换失败。 + + + PLAYER_EVENT_FIRST_DISPLAYED + (13):首帧视频已渲染。 + + + PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT + (14):缓存的媒体文件数量达到上限。 + + + PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE + (15):缓存的媒体文件总大小达到上限。 + + + PLAYER_EVENT_TRY_OPEN_START + (16):开始重试打开媒体。 + + + PLAYER_EVENT_TRY_OPEN_SUCCEED + (17):重试打开媒体成功。 + + + PLAYER_EVENT_TRY_OPEN_FAILED + (18):重试打开媒体失败。 + + + PLAYER_EVENT_HTTP_REDIRECT + (19):发生 HTTP 重定向事件。 + + + 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):缓存的媒体文件总大小达到上限。 + + + AgoraMediaPlayerEventTryOpenStart + (16):开始重试打开媒体资源。 + + + AgoraMediaPlayerEventTryOpenSucceed + (17):重试打开媒体资源成功。 + + + AgoraMediaPlayerEventTryOpenFailed + (18):重试打开媒体资源失败。 + + + AgoraMediaPlayerEventHttpRedirect + (19):发生 HTTP 重定向。 + + + 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):缓存的媒体文件总大小达到上限。 + + + AgoraMediaPlayerEventTryOpenStart + (16):开始重试打开媒体资源。 + + + AgoraMediaPlayerEventTryOpenSucceed + (17):重试打开媒体资源成功。 + + + AgoraMediaPlayerEventTryOpenFailed + (18):重试打开媒体资源失败。 + + + AgoraMediaPlayerEventHttpRedirect + (19):发生 HTTP 重定向。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediaplayermetadatatype.dita b/dita/RTC-AIDOC/API/enum_mediaplayermetadatatype.dita index 527c153b94a..7ece8801677 100644 --- a/dita/RTC-AIDOC/API/enum_mediaplayermetadatatype.dita +++ b/dita/RTC-AIDOC/API/enum_mediaplayermetadatatype.dita @@ -1,11 +1,45 @@ - - <ph keyref="MEDIA_PLAYER_METADATA_TYPE"/> - - - 媒体元数据类型。 - - + <ph keyref="MEDIA_PLAYER_METADATA_TYPE"/> + 媒体元数据类型。媒体元数据类型。媒体元数据类型。媒体元数据类型。 + +
+ 枚举值 + + + PLAYER_METADATA_TYPE_UNKNOWN + (0):未知类型。 + + + PLAYER_METADATA_TYPE_SEI + (1):SEI 类型。 + + + PLAYER_METADATA_TYPE_UNKNOWN + (0):未知类型。 + + + PLAYER_METADATA_TYPE_SEI + (1):SEI 类型。 + + + AgoraMediaPlayerMetaDataTypeUnknown + (0):未知类型。 + + + AgoraMediaPlayerMetaDataTypeSEI + (1):SEI 类型。 + + + AgoraMediaPlayerMetaDataTypeUnknown + (0):未知类型。 + + + AgoraMediaPlayerMetaDataTypeSEI + (1):SEI 类型。 + + +
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediaplayerreason.dita b/dita/RTC-AIDOC/API/enum_mediaplayerreason.dita new file mode 100644 index 00000000000..6d9a550a4bc --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediaplayerreason.dita @@ -0,0 +1,301 @@ + + + + <ph keyref="MEDIA_PLAYER_REASON"/> + 媒体播放器状态变更的原因。媒体播放器状态变更的原因。媒体播放器状态变更的原因。媒体播放器状态变更的原因。 + +
+ 枚举值 + + + PLAYER_REASON_NONE + (0):无错误。 + + + PLAYER_REASON_INVALID_ARGUMENTS + (-1):参数无效。 + + + PLAYER_REASON_INTERNAL + (-2):内部错误。 + + + PLAYER_REASON_NO_RESOURCE + (-3):资源不足。 + + + PLAYER_REASON_INVALID_MEDIA_SOURCE + (-4):媒体资源无效。 + + + PLAYER_REASON_UNKNOWN_STREAM_TYPE + (-5):媒体流类型未知。 + + + PLAYER_REASON_OBJ_NOT_INITIALIZED + (-6):对象未初始化。 + + + PLAYER_REASON_CODEC_NOT_SUPPORTED + (-7):不支持该编解码器。 + + + PLAYER_REASON_VIDEO_RENDER_FAILED + (-8):渲染器无效。 + + + PLAYER_REASON_INVALID_STATE + (-9):播放器内部状态错误。 + + + PLAYER_REASON_URL_NOT_FOUND + (-10):找不到媒体资源的 URL。 + + + PLAYER_REASON_INVALID_CONNECTION_STATE + (-11):播放器与声网服务器之间的连接状态无效。 + + + PLAYER_REASON_SRC_BUFFER_UNDERFLOW + (-12):播放缓冲区不足。 + + + PLAYER_REASON_INTERRUPTED + (-13):播放被中断。 + + + PLAYER_REASON_NOT_SUPPORTED + (-14):SDK 不支持调用的方法。 + + + PLAYER_REASON_TOKEN_EXPIRED + (-15):Token 已过期。 + + + PLAYER_REASON_IP_EXPIRED + (-16):IP 已过期。 + + + PLAYER_REASON_UNKNOWN + (-17):未知错误。 + + + PLAYER_REASON_NONE + (0):无错误。 + + + PLAYER_REASON_INVALID_ARGUMENTS + (-1):参数无效。 + + + PLAYER_REASON_INTERNAL + (-2):内部错误。 + + + PLAYER_REASON_NO_RESOURCE + (-3):资源不足。 + + + PLAYER_REASON_INVALID_MEDIA_SOURCE + (-4):媒体资源无效。 + + + PLAYER_REASON_UNKNOWN_STREAM_TYPE + (-5):媒体流类型未知。 + + + PLAYER_REASON_OBJ_NOT_INITIALIZED + (-6):对象未初始化。 + + + PLAYER_REASON_CODEC_NOT_SUPPORTED + (-7):不支持的编解码器。 + + + PLAYER_REASON_VIDEO_RENDER_FAILED + (-8):渲染器无效。 + + + PLAYER_REASON_INVALID_STATE + (-9):播放器内部状态错误。 + + + PLAYER_REASON_URL_NOT_FOUND + (-10):找不到媒体资源的 URL。 + + + PLAYER_REASON_INVALID_CONNECTION_STATE + (-11):播放器与声网服务器之间的连接状态无效。 + + + PLAY_REASON_SRC_BUFFER_UNDERFLOW + (-12):播放缓冲区不足。 + + + PLAYER_REASON_INTERRUPTED + (-13):播放被中断。 + + + PLAYER_REASON_NOT_SUPPORTED + (-14):SDK 不支持调用的方法。 + + + PLAYER_REASON_TOKEN_EXPIRED + (-15):媒体资源的鉴权信息已过期。 + + + PLAYER_REASON_IP_EXPIRED + (-16):IP 已过期。 + + + PLAYER_REASON_UNKNOWN + (-17):未知错误。 + + + AgoraMediaPlayerReasonNone + (0):无错误。 + + + AgoraMediaPlayerReasonInvalidArguments + (-1):参数无效。 + + + AgoraMediaPlayerReasonInternal + (-2):内部错误。 + + + AgoraMediaPlayerReasonNoSource + (-3):无媒体资源。 + + + AgoraMediaPlayerReasonInvalidMediaSource + (-4):媒体资源无效。 + + + AgoraMediaPlayerReasonUnknowStreamType + (-5):媒体流类型未知。 + + + AgoraMediaPlayerReasonObjNotInitialized + (-6):对象未初始化。 + + + AgoraMediaPlayerReasonCodecNotSupported + (-7):不支持的编解码器。 + + + AgoraMediaPlayerReasonVideoRenderFailed + (-8):渲染器无效。 + + + AgoraMediaPlayerReasonInvalidState + (-9):播放器内部状态错误。 + + + AgoraMediaPlayerReasonUrlNotFound + (-10):找不到媒体资源的 URL。 + + + AgoraMediaPlayerReasonInvalidConnectState + (-11):播放器与声网服务器之间的连接无效。 + + + AgoraMediaPlayerReasonSrcBufferUnderflow + (-12):播放缓冲区不足。 + + + AgoraMediaPlayerReasonInterrupted + (-13):播放被中断。 + + + AgoraMediaPlayerReasonNotSupported + (-14):SDK 不支持调用的方法。 + + + AgoraMediaPlayerReasonTokenExpired + (-15):媒体资源的鉴权信息已过期。 + + + AgoraMediaPlayerReasonIpExpired + (-16):IP 已过期。 + + + AgoraMediaPlayerReasonUnknown + (-17):未知错误。 + + + AgoraMediaPlayerReasonNone + (0):无错误。 + + + AgoraMediaPlayerReasonInvalidArguments + (-1):参数无效。 + + + AgoraMediaPlayerReasonInternal + (-2):内部错误。 + + + AgoraMediaPlayerReasonNoSource + (-3):无媒体资源。 + + + AgoraMediaPlayerReasonInvalidMediaSource + (-4):媒体资源无效。 + + + AgoraMediaPlayerReasonUnknowStreamType + (-5):媒体流类型未知。 + + + AgoraMediaPlayerReasonObjNotInitialized + (-6):对象未初始化。 + + + AgoraMediaPlayerReasonCodecNotSupported + (-7):不支持的编解码器。 + + + AgoraMediaPlayerReasonVideoRenderFailed + (-8):渲染器无效。 + + + AgoraMediaPlayerReasonInvalidState + (-9):播放器内部状态错误。 + + + AgoraMediaPlayerReasonUrlNotFound + (-10):找不到媒体资源的 URL。 + + + AgoraMediaPlayerReasonInvalidConnectState + (-11):播放器与声网服务器之间的连接无效。 + + + AgoraMediaPlayerReasonSrcBufferUnderflow + (-12):播放缓冲区不足。 + + + AgoraMediaPlayerReasonInterrupted + (-13):播放被中断。 + + + AgoraMediaPlayerReasonNotSupported + (-14):SDK 不支持调用的方法。 + + + AgoraMediaPlayerReasonTokenExpired + (-15):媒体资源的鉴权信息已过期。 + + + AgoraMediaPlayerReasonIpExpired + (-16):IP 已过期。 + + + AgoraMediaPlayerReasonUnknown + (-17):未知错误。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediaplayerstate.dita b/dita/RTC-AIDOC/API/enum_mediaplayerstate.dita new file mode 100644 index 00000000000..605c18d3938 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediaplayerstate.dita @@ -0,0 +1,273 @@ + + + + <ph keyref="MEDIA_PLAYER_STATE"/> + 播放状态。播放状态。播放状态。播放状态。 + +
+ 枚举值 + + + PLAYER_STATE_IDLE + (0):默认状态。媒体播放器在打开媒体资源前或停止播放后处于该状态。 + + + PLAYER_STATE_OPENING + (1):正在打开媒体资源。 + + + PLAYER_STATE_OPEN_COMPLETED + (2):已成功打开媒体资源。 + + + PLAYER_STATE_PLAYING + (3):媒体资源正在播放中。 + + + PLAYER_STATE_PAUSED + (4):播放已暂停。 + + + PLAYER_STATE_PLAYBACK_COMPLETED + (5):播放已完成。 + + + PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED + (6):循环播放已完成。 + + + PLAYER_STATE_STOPPED + (7):播放已停止。 + + + PLAYER_STATE_PAUSING_INTERNAL + (50):播放器暂停中(内部状态)。 + + + PLAYER_STATE_STOPPING_INTERNAL + (51):播放器停止中(内部状态)。 + + + PLAYER_STATE_SEEKING_INTERNAL + (52):播放器跳转中(内部状态)。 + + + PLAYER_STATE_GETTING_INTERNAL + (53):播放器获取中(内部状态)。 + + + PLAYER_STATE_NONE_INTERNAL + (54):状态机的空状态(内部状态)。 + + + PLAYER_STATE_DO_NOTHING_INTERNAL + (55):状态机的无操作状态(内部状态)。 + + + PLAYER_STATE_SET_TRACK_INTERNAL + (56):播放器设置轨道中(内部状态)。 + + + PLAYER_STATE_FAILED + (100):媒体播放器播放媒体资源失败。 + + + PLAYER_STATE_UNKNOWN + (-1):播放器状态未知。 + + + PLAYER_STATE_IDLE + (0):默认状态。打开媒体资源前或停止播放后,播放器处于该状态。 + + + PLAYER_STATE_OPENING + (1):正在打开媒体资源。 + + + PLAYER_STATE_OPEN_COMPLETED + (2):媒体资源打开成功。 + + + PLAYER_STATE_PLAYING + (3):正在播放媒体资源。 + + + PLAYER_STATE_PAUSED + (4):播放已暂停。 + + + PLAYER_STATE_PLAYBACK_COMPLETED + (5):播放已完成。 + + + PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED + (6):循环播放已完成。 + + + PLAYER_STATE_STOPPED + (7):播放已停止。 + + + PLAYER_STATE_PAUSING_INTERNAL + (50):播放器暂停中(内部状态)。 + + + PLAYER_STATE_STOPPING_INTERNAL + (51):播放器停止中(内部状态)。 + + + PLAYER_STATE_SEEKING_INTERNAL + (52):播放器跳转中(内部状态)。 + + + PLAYER_STATE_GETTING_INTERNAL + (53):播放器获取中(内部状态)。 + + + PLAYER_STATE_NONE_INTERNAL + (54):状态机的空状态(内部状态)。 + + + PLAYER_STATE_DO_NOTHING_INTERNAL + (55):状态机的无操作状态(内部状态)。 + + + PLAYER_STATE_SET_TRACK_INTERNAL + (56):播放器设置轨道中(内部状态)。 + + + PLAYER_STATE_FAILED + (100):播放媒体资源失败。 + + + AgoraMediaPlayerStateIdle + (0):默认状态。媒体播放器在打开媒体资源前或停止播放后处于该状态。 + + + AgoraMediaPlayerStateOpening + (1):正在打开媒体资源。 + + + AgoraMediaPlayerStateOpenCompleted + (2):成功打开媒体资源。 + + + AgoraMediaPlayerStatePlaying + (3):媒体资源正在播放。 + + + AgoraMediaPlayerStatePaused + (4):播放已暂停。 + + + AgoraMediaPlayerStatePlayBackCompleted + (5):播放已完成。 + + + AgoraMediaPlayerStatePlayBackAllLoopsCompleted + (6):循环播放已完成。 + + + AgoraMediaPlayerStateStopped + (7):播放已停止。 + + + AgoraMediaPlayerStatePausingInternal + (50):播放器暂停中(内部状态)。 + + + AgoraMediaPlayerStateStoppingInternal + (51):播放器停止中(内部状态)。 + + + AgoraMediaPlayerStateSeekingInternal + (52):播放器跳转中(内部状态)。 + + + AgoraMediaPlayerStateGettingInternal + (53):播放器获取状态中(内部状态)。 + + + AgoraMediaPlayerStateNoneInternal + (54):状态机的空状态(内部状态)。 + + + AgoraMediaPlayerStateDoNothingInternal + (55):状态机的无操作状态(内部状态)。 + + + AgoraMediaPlayerStateSetTrackInternal + (56):播放器设置音轨状态(内部状态)。 + + + AgoraMediaPlayerStateFailed + (100):媒体播放器播放媒体资源失败。 + + + AgoraMediaPlayerStateIdle + (0):默认状态。媒体播放器在打开媒体资源前或停止播放后处于该状态。 + + + AgoraMediaPlayerStateOpening + (1):正在打开媒体资源。 + + + AgoraMediaPlayerStateOpenCompleted + (2):成功打开媒体资源。 + + + AgoraMediaPlayerStatePlaying + (3):媒体资源正在播放。 + + + AgoraMediaPlayerStatePaused + (4):播放已暂停。 + + + AgoraMediaPlayerStatePlayBackCompleted + (5):播放已完成。 + + + AgoraMediaPlayerStatePlayBackAllLoopsCompleted + (6):循环播放已完成。 + + + AgoraMediaPlayerStateStopped + (7):播放已停止。 + + + AgoraMediaPlayerStatePausingInternal + (50):播放器暂停中(内部状态)。 + + + AgoraMediaPlayerStateStoppingInternal + (51):播放器停止中(内部状态)。 + + + AgoraMediaPlayerStateSeekingInternal + (52):播放器跳转中(内部状态)。 + + + AgoraMediaPlayerStateGettingInternal + (53):播放器获取状态中(内部状态)。 + + + AgoraMediaPlayerStateNoneInternal + (54):状态机的空状态(内部状态)。 + + + AgoraMediaPlayerStateDoNothingInternal + (55):状态机的无操作状态(内部状态)。 + + + AgoraMediaPlayerStateSetTrackInternal + (56):播放器设置音轨状态(内部状态)。 + + + AgoraMediaPlayerStateFailed + (100):媒体播放器播放媒体资源失败。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediarecordercontainerformat.dita b/dita/RTC-AIDOC/API/enum_mediarecordercontainerformat.dita new file mode 100644 index 00000000000..ef407cb5e9e --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediarecordercontainerformat.dita @@ -0,0 +1,33 @@ + + + + <ph keyref="MediaRecorderContainerFormat"/> + 录制文件的封装格式。录制文件的容器格式。录制文件的容器格式。 + +
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 枚举值 + + + FORMAT_MP4 + (1):(默认)MP4 格式。 + + + AgoraMediaRecorderContainerFormatMP4 + (1):(默认)MP4 格式。 + + + AgoraMediaRecorderContainerFormatMP4 + (1):(默认)MP4 格式。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediarecorderstreamtype.dita b/dita/RTC-AIDOC/API/enum_mediarecorderstreamtype.dita new file mode 100644 index 00000000000..a75013b52fe --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediarecorderstreamtype.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="MediaRecorderStreamType"/> + 录制内容类型。录制内容类型。录制内容类型。 + +
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 枚举值 + + + STREAM_TYPE_AUDIO + (0x01):仅录制音频。 + + + STREAM_TYPE_VIDEO + (0x02):仅录制视频。 + + + STREAM_TYPE_BOTH + (0x03):录制音频和视频(默认)。 + + + AgoraMediaRecorderStreamTypeAudio + (1):仅录制音频。 + + + AgoraMediaRecorderStreamTypeVideo + (2):仅录制视频。 + + + AgoraMediaRecorderStreamTypeBoth + (3):录制音频和视频(默认)。 + + + AgoraMediaRecorderStreamTypeAudio + (1):仅录制音频。 + + + AgoraMediaRecorderStreamTypeVideo + (2):仅录制视频。 + + + AgoraMediaRecorderStreamTypeBoth + (3):录制音频和视频(默认)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediasourcetype.dita b/dita/RTC-AIDOC/API/enum_mediasourcetype.dita new file mode 100644 index 00000000000..6fc6d22729c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediasourcetype.dita @@ -0,0 +1,253 @@ + + + + <ph keyref="MEDIA_SOURCE_TYPE"/> + 媒体源类型。媒体源类型。媒体源类型。媒体源类型。 + +
+ 枚举值 + + + AUDIO_PLAYOUT_SOURCE + (0):音频播放设备。 + + + AUDIO_RECORDING_SOURCE + (1):音频采集设备。 + + + PRIMARY_CAMERA_SOURCE + (2):主摄像头采集的视频。 + + + SECONDARY_CAMERA_SOURCE + (3):副摄像头采集的视频。 + + + PRIMARY_SCREEN_SOURCE + (4):主屏幕采集器采集的视频流。 + + + SECONDARY_SCREEN_SOURCE + (5):副屏幕采集器采集的视频流。 + + + CUSTOM_VIDEO_SOURCE + (6):自定义视频源。 + + + MEDIA_PLAYER_SOURCE + (7):媒体播放器共享的视频流。 + + + RTC_IMAGE_PNG_SOURCE + (8):用于 PNG 图像的视频流。 + + + RTC_IMAGE_JPEG_SOURCE + (9):用于 JPEG 图像的视频流。 + + + RTC_IMAGE_GIF_SOURCE + (10):用于 GIF 图像的视频流。 + + + REMOTE_VIDEO_SOURCE + (11):从网络接收的远端视频流。 + + + TRANSCODED_VIDEO_SOURCE + (12):转码后的视频流。 + + + SPEECH_DRIVEN_VIDEO_SOURCE + (13):由语音驱动扩展处理的视频流。 + + + UNKNOWN_MEDIA_SOURCE + (100):未知的媒体源。 + + + AUDIO_PLAYOUT_SOURCE + (0):音频播放设备。 + + + AUDIO_RECORDING_SOURCE + (1):音频采集设备。 + + + PRIMARY_CAMERA_SOURCE + (2):主摄像头采集的视频。 + + + SECONDARY_CAMERA_SOURCE + (3):次摄像头采集的视频。 + + + PRIMARY_SCREEN_SOURCE + (4):主屏幕采集器采集的视频。 + + + SECONDARY_SCREEN_SOURCE + (5):次屏幕采集器采集的视频。 + + + CUSTOM_VIDEO_SOURCE + (6):自定义视频源采集的视频。 + + + MEDIA_PLAYER_SOURCE + (7):媒体播放器共享的视频。 + + + RTC_IMAGE_PNG_SOURCE + (8):PNG 图像生成的视频。 + + + RTC_IMAGE_JPEG_SOURCE + (9):JPEG 图像生成的视频。 + + + RTC_IMAGE_GIF_SOURCE + (10):GIF 图像生成的视频。 + + + REMOTE_VIDEO_SOURCE + (11):从网络接收的远端视频。 + + + TRANSCODED_VIDEO_SOURCE + (12):转码后的视频。 + + + SPEECH_DRIVEN_VIDEO_SOURCE + (13):由语音驱动扩展处理生成的视频。 + + + UNKNOWN_MEDIA_SOURCE + (100):未知媒体源。 + + + AgoraMediaSourceTypeAudioPlayout + (0):音频播放设备。 + + + AgoraMediaSourceTypeRecording + (1):音频采集设备。 + + + AgoraMediaSourceTypePrimaryCamera + (2):主摄像头。 + + + AgoraMediaSourceTypeSecondaryCamera + (3):副摄像头。 + + + AgoraMediaSourceTypePrimaryScreen + (4):主屏幕采集器采集的视频。 + + + AgoraMediaSourceTypeSecondaryScreen + (5):副屏幕采集器采集的视频。 + + + AgoraMediaSourceTypeCustomVideo + (6):自定义视频源。 + + + AgoraMediaSourceTypeMediaPlayer + (7):媒体播放器共享的视频。 + + + AgoraMediaSourceTypeRtcImagePng + (8):PNG 图像生成的视频。 + + + AgoraMediaSourceTypeRtcImageJpeg + (9):JPEG 图像生成的视频。 + + + AgoraMediaSourceTypeRtcImageGif + (10):GIF 图像生成的视频。 + + + AgoraMediaSourceTypeRemoteVideo + (11):从网络接收的远端视频。 + + + AgoraMediaSourceTypeTranscodedVideo + (12):转码后的视频。 + + + AgoraMediaSourceTypeSpeechDriven + (13):由语音驱动扩展处理的视频。 + + + AgoraMediaSourceTypeUnknown + (100):未知媒体源。 + + + AgoraMediaSourceTypeAudioPlayout + (0):音频播放设备。 + + + AgoraMediaSourceTypeRecording + (1):音频采集设备。 + + + AgoraMediaSourceTypePrimaryCamera + (2):主摄像头。 + + + AgoraMediaSourceTypeSecondaryCamera + (3):副摄像头。 + + + AgoraMediaSourceTypePrimaryScreen + (4):主屏幕采集器采集的视频。 + + + AgoraMediaSourceTypeSecondaryScreen + (5):副屏幕采集器采集的视频。 + + + AgoraMediaSourceTypeCustomVideo + (6):自定义视频源。 + + + AgoraMediaSourceTypeMediaPlayer + (7):媒体播放器共享的视频。 + + + AgoraMediaSourceTypeRtcImagePng + (8):PNG 图像生成的视频。 + + + AgoraMediaSourceTypeRtcImageJpeg + (9):JPEG 图像生成的视频。 + + + AgoraMediaSourceTypeRtcImageGif + (10):GIF 图像生成的视频。 + + + AgoraMediaSourceTypeRemoteVideo + (11):从网络接收的远端视频。 + + + AgoraMediaSourceTypeTranscodedVideo + (12):转码后的视频。 + + + AgoraMediaSourceTypeSpeechDriven + (13):由语音驱动扩展处理的视频。 + + + AgoraMediaSourceTypeUnknown + (100):未知媒体源。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediastreamtype.dita b/dita/RTC-AIDOC/API/enum_mediastreamtype.dita new file mode 100644 index 00000000000..e2cfbe6fb3d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediastreamtype.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="MEDIA_STREAM_TYPE"/> + 媒体流类型。媒体流类型。媒体流类型。媒体流类型。 + +
+ 枚举值 + + + STREAM_TYPE_UNKNOWN + (0):未知类型。 + + + STREAM_TYPE_VIDEO + (1):视频流类型。 + + + STREAM_TYPE_AUDIO + (2):音频流类型。 + + + STREAM_TYPE_SUBTITLE + (3):字幕流类型。 + + + STREAM_TYPE_UNKNOWN + (0):未知类型。 + + + STREAM_TYPE_VIDEO + (1):视频流。 + + + STREAM_TYPE_AUDIO + (2):音频流。 + + + STREAM_TYPE_SUBTITLE + (3):字幕流。 + + + AgoraMediaStreamTypeUnknown + (0):未知类型。 + + + AgoraMediaStreamTypeVideo + (1):视频流。 + + + AgoraMediaStreamTypeAudio + (2):音频流。 + + + AgoraMediaStreamTypeSubtitle + (3):字幕流。 + + + AgoraMediaStreamTypeUnknown + (0):未知类型。 + + + AgoraMediaStreamTypeVideo + (1):视频流。 + + + AgoraMediaStreamTypeAudio + (2):音频流。 + + + AgoraMediaStreamTypeSubtitle + (3):字幕流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_mediatraceevent.dita b/dita/RTC-AIDOC/API/enum_mediatraceevent.dita new file mode 100644 index 00000000000..82a5ca7305d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_mediatraceevent.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="MEDIA_TRACE_EVENT"/> + 媒体帧的渲染状态。媒体帧的渲染状态。媒体帧的渲染状态。媒体帧的渲染状态。 + +
+ 枚举值 + + + MEDIA_TRACE_EVENT_VIDEO_RENDERED + (0):视频帧已渲染。 + + + MEDIA_TRACE_EVENT_VIDEO_DECODED + (1):视频帧已解码。 + + + MEDIA_TRACE_EVENT_VIDEO_RENDERED + (0):视频帧已渲染。 + + + MEDIA_TRACE_EVENT_VIDEO_DECODED + (1):视频帧已解码。 + + + AgoraMediaTraceEventVideoRendered + (0):视频帧已渲染。 + + + AgoraMediaTraceEventVideoDecoded + (1):视频帧已解码。 + + + AgoraMediaTraceEventVideoRendered + (0):视频帧已渲染。 + + + AgoraMediaTraceEventVideoDecoded + (1):视频帧已解码。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_metadatatype.dita b/dita/RTC-AIDOC/API/enum_metadatatype.dita new file mode 100644 index 00000000000..91773baa87e --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_metadatatype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="METADATA_TYPE"/> + observer 的元数据类型。观察器的元数据类型。观察器的元数据类型。 + +
+ 枚举值 + + + UNKNOWN_METADATA + (-1):元数据类型为未知。 + + + VIDEO_METADATA + (0):元数据类型为视频。 + + + AgoraMetadataTypeUnknown + (-1):元数据类型未知。 + + + AgoraMetadataTypeVideo + (0):元数据类型为视频。 + + + AgoraMetadataTypeUnknown + (-1):元数据类型未知。 + + + AgoraMetadataTypeVideo + (0):元数据类型为视频。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_multipathmode.dita b/dita/RTC-AIDOC/API/enum_multipathmode.dita new file mode 100644 index 00000000000..c6a2908e7f4 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_multipathmode.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="MultipathMode"/> + 多路径数据传输的模式。多网络路径的数据传输模式。多网络路径的数据传输模式。多网络路径的数据传输模式。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + Duplicate + (0):冗余发送模式,相同的数据会通过所有可用路径进行冗余传输。 + + + Dynamic + (1):动态发送模式,SDK 会根据当前网络状况动态选择最优路径进行数据传输,以提升传输性能。 + + + MULTIPATH_MODE_DUPLICATE + (0):冗余发送模式,数据同时通过多条路径发送,提升传输的冗余性和可靠性。 + + + MULTIPATH_MODE_DYNAMIC + (1):动态发送模式,SDK 会根据当前网络状况动态选择最优路径进行数据传输,提升传输性能。 + + + AgoraMultipathModeDuplicate + (0):冗余发送模式,数据同时通过多个路径发送。 + + + AgoraMultipathModeDynamic + (1):动态发送模式,SDK 动态选择最优路径进行数据传输,以提升传输性能。 + + + AgoraMultipathModeDuplicate + (0):冗余发送模式,数据同时通过多个路径发送。 + + + AgoraMultipathModeDynamic + (1):动态发送模式,SDK 动态选择最优路径进行数据传输,以提升传输性能。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_multipathtype.dita b/dita/RTC-AIDOC/API/enum_multipathtype.dita new file mode 100644 index 00000000000..5f3b520e39c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_multipathtype.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="MultipathType"/> + 多路径传输使用的网络路径类型。多路径传输使用的网络路径类型。多路径传输使用的网络路径类型。多路径传输使用的网络路径类型。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + LAN + (0):局域网(LAN)路径。 + + + WIFI + (1):Wi-Fi 路径。 + + + Mobile + (2):移动网络路径。 + + + Unknown + (99):未知或未指定的网络路径。 + + + MULTIPATH_TYPE_LAN + (0):局域网类型,表示数据通过局域网传输,适用于高速、低延迟的连接。 + + + MULTIPATH_TYPE_WIFI + (1):Wi-Fi 类型,表示数据通过 Wi-Fi 网络传输,适用于无线连接且延迟适中的场景。 + + + MULTIPATH_TYPE_MOBILE + (2):移动网络类型,表示数据通过移动网络传输,适用于延迟较高且连接不稳定的场景。 + + + MULTIPATH_TYPE_UNKNOWN + (99):未知类型,表示未识别的路径类型,可用于错误处理或回退场景。 + + + AgoraMultipathTypeLAN + (0):局域网类型,表示数据通过局域网传输。 + + + AgoraMultipathTypeWIFI + (1):Wi-Fi 类型,表示数据通过 Wi-Fi 网络传输。 + + + AgoraMultipathTypeMobile + (2):移动网络类型,表示数据通过移动网络传输。 + + + AgoraMultipathTypeUnknown + (99):未知类型,表示无法识别的网络路径类型。 + + + AgoraMultipathTypeLAN + (0):局域网类型,表示数据通过局域网传输。 + + + AgoraMultipathTypeWIFI + (1):Wi-Fi 类型,表示数据通过 Wi-Fi 网络传输。 + + + AgoraMultipathTypeMobile + (2):移动网络类型,表示数据通过移动网络传输。 + + + AgoraMultipathTypeUnknown + (99):未知类型,表示无法识别的网络路径类型。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_musiccachestatustype.dita b/dita/RTC-AIDOC/API/enum_musiccachestatustype.dita new file mode 100644 index 00000000000..02a3d65f0ff --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_musiccachestatustype.dita @@ -0,0 +1,29 @@ + + + + <ph keyref="MUSIC_CACHE_STATUS_TYPE"/> + 音乐资源的缓存状态。音乐资源的缓存状态。 + +
+ 枚举值 + + + MUSIC_CACHE_STATUS_TYPE_CACHED + (0):音乐资源已缓存。 + + + MUSIC_CACHE_STATUS_TYPE_CACHING + (1):音乐资源正在缓存中。 + + + AgoraMusicCacheStatusTypeCached + (0):音乐资源已缓存。 + + + AgoraMusicCacheStatusTypeCaching + (1):音乐资源正在缓存中。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_musiccontentcenterstatereason.dita b/dita/RTC-AIDOC/API/enum_musiccontentcenterstatereason.dita new file mode 100644 index 00000000000..55296506c83 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_musiccontentcenterstatereason.dita @@ -0,0 +1,77 @@ + + + + <ph keyref="MusicContentCenterStateReason"/> + 音乐内容中心的请求状态码。音乐内容中心的请求状态码。 + +
+ 枚举值 + + + kMusicContentCenterReasonOk + (0):请求成功。 + + + kMusicContentCenterReasonError + (1):通用错误,无具体原因。 + + + kMusicContentCenterReasonGateway + (2):网关错误。可能的原因包括:Token 已过期,请重新生成;Token 无效,请确保使用的是 RTM Token;网络异常,请检查网络连接。 + + + kMusicContentCenterReasonPermissionAndResource + (3):权限错误或音乐资源不存在。请确保项目已启用音乐内容中心功能。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + kMusicContentCenterReasonInternalDataParse + (4):内部数据解析错误。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + kMusicContentCenterReasonMusicLoading + (5):加载音乐资源时发生错误。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + kMusicContentCenterReasonMusicDecryption + (6):解密音乐资源时发生错误。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + kMusicContentCenterReasonHttpInternalError + (7):内部 HTTP 错误。请稍后重试。 + + + AgoraMusicContentCenterStateReasonOK + (0):请求成功。 + + + AgoraMusicContentCenterStateReasonError + (1):通用错误,无具体原因。 + + + AgoraMusicContentCenterStateReasonErrorGateway + (2):网关错误。可能原因包括:Token 已过期,请重新生成;Token 无效,请确认使用的是临时 Token;或网络异常,请检查网络连接。 + + + AgoraMusicContentCenterStateReasonErrorPermissionAndResource + (3):权限错误或音乐资源不存在。请确认项目已启用声网版权音乐内容中心权限。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + AgoraMusicContentCenterStateReasonErrorInternalDataParse + (4):内部数据解析错误。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + AgoraMusicContentCenterStateReasonErrorMusicLoading + (5):加载音乐资源时出错。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + AgoraMusicContentCenterStateReasonErrorMusicDecryption + (6):解密音乐资源时出错。如需帮助,请[联系技术支持](https://ticket.shengwang.cn/)。 + + + AgoraMusicContentCenterStateReasonErrorHttpInternalError + (7):内部 HTTP 错误。请稍后重试。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_musicplaymode.dita b/dita/RTC-AIDOC/API/enum_musicplaymode.dita new file mode 100644 index 00000000000..038e2a9ae48 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_musicplaymode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="MusicPlayMode"/> + 音乐资源的播放模式。音乐资源的播放模式。音乐资源的播放模式。 + +
+ 枚举值 + + + kMusicPlayModeOriginal + (0):原唱模式,即播放包含原始人声的音轨。 + + + kMusicPlayModeAccompany + (1):伴奏模式,即播放去除人声的伴奏音轨。 + + + kMusicPlayModeLeadSing + (2):导唱模式,即播放带有引导人声的音轨,适用于练唱场景。 + + + AgoraMusicPlayModeOriginal + (0):原唱模式。 + + + AgoraMusicPlayModeAccompany + (1):伴奏模式。 + + + AgoraMusicPlayModeLeadsing + (2):导唱模式。 + + + MUSIC_PLAY_MODE_ORIGINAL + (0):原唱模式。 + + + MUSIC_PLAY_MODE_ACCOMPANY + (1):伴奏模式。 + + + MUSIC_PLAY_MODE_LEAD_SING + (2):伴奏导唱模式。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_networktype.dita b/dita/RTC-AIDOC/API/enum_networktype.dita new file mode 100644 index 00000000000..19f53e0a7c4 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_networktype.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="NETWORK_TYPE"/> + 网络类型。网络类型。网络类型。 + +
+ 枚举值 + + + NETWORK_TYPE_UNKNOWN + (-1):未知网络类型。 + + + NETWORK_TYPE_DISCONNECTED + (0):SDK 与网络已断开连接。 + + + NETWORK_TYPE_LAN + (1):局域网(LAN)类型网络。 + + + NETWORK_TYPE_WIFI + (2):Wi-Fi 类型网络(包括热点)。 + + + NETWORK_TYPE_MOBILE_2G + (3):移动 2G 网络。 + + + NETWORK_TYPE_MOBILE_3G + (4):移动 3G 网络。 + + + NETWORK_TYPE_MOBILE_4G + (5):移动 4G 网络。 + + + NETWORK_TYPE_MOBILE_5G + (6):移动 5G 网络。 + + + AgoraNetworkTypeUnknown + (-1):未知网络类型。 + + + AgoraNetworkTypeDisconnected + (0):网络已断开连接。 + + + AgoraNetworkTypeLAN + (1):局域网网络类型。 + + + AgoraNetworkTypeWIFI + (2):Wi-Fi 网络类型(包括热点)。 + + + AgoraNetworkType2G + (3):移动 2G 网络类型。 + + + AgoraNetworkType3G + (4):移动 3G 网络类型。 + + + AgoraNetworkType4G + (5):移动 4G 网络类型。 + + + AgoraNetworkType5G + (6):移动 5G 网络类型。 + + + AgoraNetworkTypeUnknown + (-1):未知网络类型。 + + + AgoraNetworkTypeDisconnected + (0):网络已断开连接。 + + + AgoraNetworkTypeLAN + (1):局域网网络类型。 + + + AgoraNetworkTypeWIFI + (2):Wi-Fi 网络类型(包括热点)。 + + + AgoraNetworkType2G + (3):移动 2G 网络类型。 + + + AgoraNetworkType3G + (4):移动 3G 网络类型。 + + + AgoraNetworkType4G + (5):移动 4G 网络类型。 + + + AgoraNetworkType5G + (6):移动 5G 网络类型。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_orientationmode.dita b/dita/RTC-AIDOC/API/enum_orientationmode.dita new file mode 100644 index 00000000000..775f06c4d63 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_orientationmode.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="ORIENTATION_MODE"/> + 视频输出方向模式。视频输出方向模式。视频输出方向模式。视频输出方向模式。 + +
+ 枚举值 + + + ORIENTATION_MODE_ADAPTIVE + (0):(默认)输出视频始终跟随采集视频的方向,接收端会接收来自视频编码器传递的旋转信息。适用于接收端可根据旋转信息调整视频方向的场景。 +
    +
  • 采集视频为横屏时,输出视频为横屏。
  • +
  • 采集视频为竖屏时,输出视频为竖屏。
  • +
+
+
+ + ORIENTATION_MODE_FIXED_LANDSCAPE + (1):输出视频始终为横屏模式。若采集视频为竖屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + + + ORIENTATION_MODE_FIXED_PORTRAIT + (2):输出视频始终为竖屏模式。若采集视频为横屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + + + ORIENTATION_MODE_ADAPTIVE + (0):(默认)输出视频方向始终与采集视频方向保持一致,接收端会接收来自视频编码器的旋转信息。适用于接收端支持调整视频方向的场景。 +
    +
  • 如果采集的视频为横屏,输出视频为横屏。
  • +
  • 如果采集的视频为竖屏,输出视频为竖屏。
  • +
+
+
+ + ORIENTATION_MODE_FIXED_LANDSCAPE + (1):输出视频始终为横屏模式。如果采集的视频为竖屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播推流。 + + + ORIENTATION_MODE_FIXED_PORTRAIT + (2):输出视频始终为竖屏模式。如果采集的视频为横屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播推流。 + + + AgoraVideoOutputOrientationModeAdaptative + (0):输出视频始终跟随采集视频的方向。接收端根据视频编码器传递的旋转信息进行处理,适用于接收端可调整视频方向的场景。 +
    +
  • 采集视频为横屏时,输出视频为横屏。
  • +
  • 采集视频为竖屏时,输出视频为竖屏。
  • +
+
+
+ + AgoraVideoOutputOrientationModeFixedLandscape + (1):SDK 始终以横屏模式输出视频。若采集视频为竖屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + + + AgoraVideoOutputOrientationModeFixedPortrait + (2):SDK 始终以竖屏模式输出视频。若采集视频为横屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + + + AgoraVideoOutputOrientationModeAdaptative + (0):输出视频始终跟随采集视频的方向。接收端根据视频编码器传递的旋转信息进行处理,适用于接收端可调整视频方向的场景。 +
    +
  • 采集视频为横屏时,输出视频为横屏。
  • +
  • 采集视频为竖屏时,输出视频为竖屏。
  • +
+
+
+ + AgoraVideoOutputOrientationModeFixedLandscape + (1):SDK 始终以横屏模式输出视频。若采集视频为竖屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + + + AgoraVideoOutputOrientationModeFixedPortrait + (2):SDK 始终以竖屏模式输出视频。若采集视频为横屏,视频编码器会对其进行裁剪以适配输出。适用于接收端无法处理旋转信息的场景,例如 CDN 直播。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_permissiontype.dita b/dita/RTC-AIDOC/API/enum_permissiontype.dita new file mode 100644 index 00000000000..bea779afb71 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_permissiontype.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="PERMISSION_TYPE"/> + 设备权限类型。设备权限类型。设备权限类型。 + +
+ 枚举值 + + + RECORD_AUDIO + (0):音频采集设备权限。 + + + CAMERA + (1):摄像头权限。 + + + SCREEN_CAPTURE + (2):屏幕共享权限(仅适用于 Android 平台)。 + + + AgoraPermissionTypeRecordAudio + (0):音频采集设备权限。 + + + AgoraPermissionTypeCamera + (1):摄像头权限。 + + + AgoraPermissionTypeRecordAudio + (0):音频采集设备权限。 + + + AgoraPermissionTypeCamera + (1):摄像头权限。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_playerpreloadevent.dita b/dita/RTC-AIDOC/API/enum_playerpreloadevent.dita new file mode 100644 index 00000000000..7976edae013 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_playerpreloadevent.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="PLAYER_PRELOAD_EVENT"/> + 媒体资源预加载过程中的事件。媒体资源预加载过程中的事件。预加载媒体资源过程中触发的事件。预加载媒体资源过程中触发的事件。 + +
+ 枚举值 + + + PLAYER_PRELOAD_EVENT_BEGIN + (0):开始预加载媒体资源。 + + + PLAYER_PRELOAD_EVENT_COMPLETE + (1):预加载媒体资源完成。 + + + PLAYER_PRELOAD_EVENT_ERROR + (2):预加载媒体资源过程中发生错误。 + + + PLAYER_PRELOAD_EVENT_BEGIN + (0):开始预加载媒体资源。 + + + PLAYER_PRELOAD_EVENT_COMPLETE + (1):媒体资源预加载完成。 + + + PLAYER_PRELOAD_EVENT_ERROR + (2):预加载媒体资源时发生错误。 + + + AgoraMediaPlayerPreloadEventBegin + (0):开始预加载媒体资源。 + + + AgoraMediaPlayerPreloadEventComplete + (1):媒体资源预加载完成。 + + + AgoraMediaPlayerPreloadEventError + (2):预加载媒体资源过程中发生错误。 + + + AgoraMediaPlayerPreloadEventBegin + (0):开始预加载媒体资源。 + + + AgoraMediaPlayerPreloadEventComplete + (1):媒体资源预加载完成。 + + + AgoraMediaPlayerPreloadEventError + (2):预加载媒体资源过程中发生错误。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_preloadstate.dita b/dita/RTC-AIDOC/API/enum_preloadstate.dita new file mode 100644 index 00000000000..03495ad47e6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_preloadstate.dita @@ -0,0 +1,45 @@ + + + + <ph keyref="PreloadState"/> + 音乐资源的加载状态。音乐资源的加载状态。 + +
+ 枚举值 + + + kPreloadStateCompleted + (0):音乐资源加载完成。 + + + kPreloadStateFailed + (1):音乐资源加载失败。 + + + kPreloadStatePreloading + (2):音乐资源正在加载中。 + + + kPreloadStateRemoved + (3):音乐资源缓存已移除。 + + + AgoraMusicContentCenterPreloadStateOK + (0):音乐资源加载完成。 + + + AgoraMusicContentCenterPreloadStateError + (1):音乐资源加载失败。 + + + AgoraMusicContentCenterPreloadStatePreloading + (2):音乐资源加载中。 + + + AgoraMusicContentCenterPreloadStateRemoveCache + (3):音乐资源缓存已移除。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_proxytype.dita b/dita/RTC-AIDOC/API/enum_proxytype.dita new file mode 100644 index 00000000000..079822bb5a9 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_proxytype.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="PROXY_TYPE"/> + 云代理类型。云代理类型。云代理类型。 + +
+ 枚举值 + + + NONE_PROXY_TYPE + (0):预留,供未来使用。 + + + UDP_PROXY_TYPE + (1):UDP 协议云代理,强制使用 UDP 云代理模式。在该模式下,SDK 始终通过 UDP 传输数据。 + + + TCP_PROXY_TYPE + (2):TCP(加密)协议云代理,强制使用 TCP 云代理模式。在该模式下,SDK 始终通过 TCP/TLS 443 传输数据。 + + + LOCAL_PROXY_TYPE + (3):预留,供未来使用。 + + + TCP_PROXY_AUTO_FALLBACK_TYPE + (4):自动模式。SDK 会尝试直接连接 SD-RTN™,若连接失败则自动切换为 TCP/TLS 443。 + + + HTTP_PROXY_TYPE + (5):HTTP 代理。 + + + HTTPS_PROXY_TYPE + (6):HTTPS 代理。 + + + AgoraNoneProxyType + (0):预留用于未来扩展。 + + + AgoraUdpProxyType + (1):UDP 协议云代理,即强制使用 UDP 云代理模式。在该模式下,SDK 始终通过 UDP 传输数据。 + + + AgoraTcpProxyType + (2):TCP(加密)协议云代理,即强制使用 TCP 云代理模式。在该模式下,SDK 始终通过 TCP/TLS 443 传输数据。 + + + AgoraLocalProxyType + (3):预留用于未来扩展。 + + + AgoraTcpProxyAutoFallbackType + (4):自动模式。在该模式下,SDK 会尝试直接连接 SD-RTN™,若连接失败则自动切换为 TCP/TLS 443。 + + + AgoraHttpProxyType + (5):HTTP 代理。 + + + AgoraHttpsProxyType + (6):HTTPS 代理。 + + + AgoraNoneProxyType + (0):预留用于未来扩展。 + + + AgoraUdpProxyType + (1):UDP 协议云代理,即强制使用 UDP 云代理模式。在该模式下,SDK 始终通过 UDP 传输数据。 + + + AgoraTcpProxyType + (2):TCP(加密)协议云代理,即强制使用 TCP 云代理模式。在该模式下,SDK 始终通过 TCP/TLS 443 传输数据。 + + + AgoraLocalProxyType + (3):预留用于未来扩展。 + + + AgoraTcpProxyAutoFallbackType + (4):自动模式。在该模式下,SDK 会尝试直接连接 SD-RTN™,若连接失败则自动切换为 TCP/TLS 443。 + + + AgoraHttpProxyType + (5):HTTP 代理。 + + + AgoraHttpsProxyType + (6):HTTPS 代理。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_qualityadaptindication.dita b/dita/RTC-AIDOC/API/enum_qualityadaptindication.dita new file mode 100644 index 00000000000..36a9ea8a60f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_qualityadaptindication.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="QUALITY_ADAPT_INDICATION"/> + 本地视频在目标帧率和目标码率方面的质量变化。自上次统计以来,本地视频在目标帧率和目标码率方面的质量变化。自上次统计以来,本地视频在目标帧率和目标码率方面的质量变化。 + +
+ 枚举值 + + + ADAPT_NONE + (0):本地视频质量保持不变。 + + + ADAPT_UP_BANDWIDTH + (1):由于网络带宽增加,本地视频质量提升。 + + + ADAPT_DOWN_BANDWIDTH + (2):由于网络带宽下降,本地视频质量下降。 + + + AgoraVideoQualityAdaptNone + (0):本地视频质量无变化。 + + + AgoraVideoQualityAdaptUpBandwidth + (1):网络带宽增加,导致本地视频质量提升。 + + + AgoraVideoQualityAdaptDownBandwidth + (2):网络带宽下降,导致本地视频质量下降。 + + + AgoraVideoQualityAdaptNone + (0):本地视频质量无变化。 + + + AgoraVideoQualityAdaptUpBandwidth + (1):网络带宽增加,导致本地视频质量提升。 + + + AgoraVideoQualityAdaptDownBandwidth + (2):网络带宽下降,导致本地视频质量下降。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_qualitytype.dita b/dita/RTC-AIDOC/API/enum_qualitytype.dita new file mode 100644 index 00000000000..68325a3495c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_qualitytype.dita @@ -0,0 +1,121 @@ + + + + <ph keyref="QUALITY_TYPE"/> + 网络质量类型。网络质量类型。网络质量类型。 + +
+ 枚举值 + + + QUALITY_UNKNOWN + (0):网络质量未知。 + + + QUALITY_EXCELLENT + (1):网络质量极佳,通话体验最佳。 + + + QUALITY_GOOD + (2):网络质量较好,通话基本流畅,码率可能略低于极佳。 + + + QUALITY_POOR + (3):网络质量一般,用户可能感受到通话质量轻微下降。 + + + QUALITY_BAD + (4):网络质量较差,用户无法流畅通话。 + + + QUALITY_VBAD + (5):网络质量极差,用户几乎无法进行通话。 + + + QUALITY_DOWN + (6):网络连接已断开,用户完全无法通话。 + + + QUALITY_UNSUPPORTED + (7):(预留)无法检测网络质量。 + + + QUALITY_DETECTING + (8):正在进行 Last-mile 网络探测测试。 + + + AgoraNetworkQualityUnknown + (0):网络质量未知。 + + + AgoraNetworkQualityExcellent + (1):网络质量极佳。 + + + AgoraNetworkQualityGood + (2):网络质量较好,但码率可能略低于极佳。 + + + AgoraNetworkQualityPoor + (3):网络质量一般,用户可能感受到通话质量轻微下降。 + + + AgoraNetworkQualityBad + (4):网络质量较差,用户无法流畅通话。 + + + AgoraNetworkQualityVBad + (5):网络质量极差,用户几乎无法通话。 + + + AgoraNetworkQualityDown + (6):网络连接中断,用户完全无法通话。 + + + AgoraNetworkQualityUnsupported + (7):无法检测网络质量(该值未使用)。 + + + AgoraNetworkQualityDetecting + (8):正在进行 Last-mile 网络探测。 + + + AgoraNetworkQualityUnknown + (0):网络质量未知。 + + + AgoraNetworkQualityExcellent + (1):网络质量极佳。 + + + AgoraNetworkQualityGood + (2):网络质量较好,但码率可能略低于极佳。 + + + AgoraNetworkQualityPoor + (3):网络质量一般,用户可能感受到通话质量轻微下降。 + + + AgoraNetworkQualityBad + (4):网络质量较差,用户无法流畅通话。 + + + AgoraNetworkQualityVBad + (5):网络质量极差,用户几乎无法通话。 + + + AgoraNetworkQualityDown + (6):网络连接中断,用户完全无法通话。 + + + AgoraNetworkQualityUnsupported + (7):无法检测网络质量(该值未使用)。 + + + AgoraNetworkQualityDetecting + (8):正在进行 Last-mile 网络探测。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rawaudioframeopmodetype.dita b/dita/RTC-AIDOC/API/enum_rawaudioframeopmodetype.dita new file mode 100644 index 00000000000..65645845a32 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rawaudioframeopmodetype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="RAW_AUDIO_FRAME_OP_MODE_TYPE"/> + 音频数据的使用模式。音频数据的使用模式。音频数据的使用模式。 + +
+ 枚举值 + + + RAW_AUDIO_FRAME_OP_MODE_READ_ONLY + (0):只读模式,用户仅从 中读取原始数据,不进行任何修改。例如,用户通过声网 SDK 获取数据后进行媒体推流。 + + + RAW_AUDIO_FRAME_OP_MODE_READ_WRITE + (2):读写模式,用户从 中读取数据,修改后再播放。例如,用户使用自有音效处理模块进行语音预处理,如变声。 + + + AgoraAudioRawFrameOperationModeReadOnly + (0):只读模式。例如,用户通过 Agora SDK 获取音频数据后进行媒体推流。 + + + AgoraAudioRawFrameOperationModeReadWrite + (2):读写模式。例如,用户使用自有音效处理模块对音频进行预处理,如变声。 + + + AgoraAudioRawFrameOperationModeReadOnly + (0):只读模式。例如,用户通过 Agora SDK 获取音频数据后进行媒体推流。 + + + AgoraAudioRawFrameOperationModeReadWrite + (2):读写模式。例如,用户使用自有音效处理模块对音频进行预处理,如变声。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_recorderreasoncode.dita b/dita/RTC-AIDOC/API/enum_recorderreasoncode.dita new file mode 100644 index 00000000000..a8e1289b979 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_recorderreasoncode.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="RecorderReasonCode"/> + 状态变更的原因。状态变更的原因。状态变更的原因。 + +
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 枚举值 + + + RECORDER_REASON_NONE + (0):无错误。 + + + RECORDER_REASON_WRITE_FAILED + (1):录制数据写入文件失败。 + + + RECORDER_REASON_NO_STREAM + (2):未检测到音视频流,或录制过程中音视频流中断超过 5 秒。 + + + RECORDER_REASON_OVER_MAX_DURATION + (3):录制时长超过上限。 + + + RECORDER_REASON_CONFIG_CHANGED + (4):录制配置发生变更。 + + + AgoraMediaRecorderReasonCodeNoError + (0):无错误。 + + + AgoraMediaRecorderReasonCodeWriteFailed + (1):无法将录制数据写入文件。 + + + AgoraMediaRecorderReasonCodeNoStream + (2):未检测到音视频流,或录制过程中音视频流中断超过 5 秒。 + + + AgoraMediaRecorderReasonCodeOverMaxDuration + (3):录制时长超过上限。 + + + AgoraMediaRecorderReasonCodeConfigChange + (4):录制配置发生变更。 + + + AgoraMediaRecorderReasonCodeNoError + (0):无错误。 + + + AgoraMediaRecorderReasonCodeWriteFailed + (1):无法将录制数据写入文件。 + + + AgoraMediaRecorderReasonCodeNoStream + (2):未检测到音视频流,或录制过程中音视频流中断超过 5 秒。 + + + AgoraMediaRecorderReasonCodeOverMaxDuration + (3):录制时长超过上限。 + + + AgoraMediaRecorderReasonCodeConfigChange + (4):录制配置发生变更。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_recorderstate.dita b/dita/RTC-AIDOC/API/enum_recorderstate.dita new file mode 100644 index 00000000000..be78af2821f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_recorderstate.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="RecorderState"/> + 当前的录制状态。当前音视频录制的状态。当前音视频录制的状态。 + +
+
+ +
自从
+
自 v3.5.2 版本新增。
+
+
+
+
+ 枚举值 + + + RECORDER_STATE_ERROR + (-1):录制过程中发生错误。详见 + + + RECORDER_STATE_START + (2):开始音视频录制。 + + + RECORDER_STATE_STOP + (3):停止音视频录制。 + + + AgoraMediaRecorderStateError + (-1):录制过程中发生错误。详见 + + + AgoraMediaRecorderStateStarted + (2):开始音视频录制。 + + + AgoraMediaRecorderStateStopped + (3):停止音视频录制。 + + + AgoraMediaRecorderStateError + (-1):录制过程中发生错误。详见 + + + AgoraMediaRecorderStateStarted + (2):开始音视频录制。 + + + AgoraMediaRecorderStateStopped + (3):停止音视频录制。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_recorderstreamtype.dita b/dita/RTC-AIDOC/API/enum_recorderstreamtype.dita new file mode 100644 index 00000000000..267dd8e52be --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_recorderstreamtype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="RecorderStreamType"/> + 录制的视频流类型。录制的视频流类型。录制的视频流类型。 + +
+ 枚举值 + + + RTC + (0):频道中的视频流(默认)。 + + + PREVIEW + (1):加入频道前的本地预览视频流。 + + + AgoraRecorderStreamTypeRtc + (0):(默认)源频道中的视频流。 + + + AgoraRecorderStreamTypePreview + (1):加入频道前本地视频采集预览的视频流。 + + + AgoraRecorderStreamTypeRtc + (0):(默认)源频道中的视频流。 + + + AgoraRecorderStreamTypePreview + (1):加入频道前本地视频采集预览的视频流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_remoteaudiostate.dita b/dita/RTC-AIDOC/API/enum_remoteaudiostate.dita new file mode 100644 index 00000000000..c1f7facb3cd --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_remoteaudiostate.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="REMOTE_AUDIO_STATE"/> + 远端音频状态。远端音频状态。远端音频状态。 + +
+ 枚举值 + + + REMOTE_AUDIO_STATE_STOPPED + (0):远端音频处于初始状态。当出现 REMOTE_AUDIO_REASON_LOCAL_MUTEDREMOTE_AUDIO_REASON_REMOTE_MUTEDREMOTE_AUDIO_REASON_REMOTE_OFFLINE 时,SDK 会报告该状态。 + + + REMOTE_AUDIO_STATE_STARTING + (1):已接收到首个远端音频数据包。 + + + REMOTE_AUDIO_STATE_DECODING + (2):远端音频流已解码并正常播放。当出现 REMOTE_AUDIO_REASON_NETWORK_RECOVERYREMOTE_AUDIO_REASON_LOCAL_UNMUTEDREMOTE_AUDIO_REASON_REMOTE_UNMUTED 时,SDK 会报告该状态。 + + + REMOTE_AUDIO_STATE_FROZEN + (3):远端音频卡顿。当出现 REMOTE_AUDIO_REASON_NETWORK_CONGESTION 时,SDK 会报告该状态。 + + + REMOTE_AUDIO_STATE_FAILED + (4):远端音频启动失败。当出现 REMOTE_AUDIO_REASON_INTERNAL 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateStopped + (0):远端音频处于初始状态。当出现 AgoraAudioRemoteReasonLocalMutedAgoraAudioRemoteReasonRemoteMutedAgoraAudioRemoteReasonRemoteOffline 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateStarting + (1):已接收到首个远端音频包。 + + + AgoraAudioRemoteStateDecoding + (2):远端音频流已解码并正常播放。当出现 AgoraAudioRemoteReasonNetworkRecoveryAgoraAudioRemoteReasonLocalUnmutedAgoraAudioRemoteReasonRemoteUnmuted 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateFrozen + (3):远端音频卡顿。当出现 AgoraAudioRemoteReasonNetworkCongestion 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateFailed + (4):远端音频启动失败。当出现 AgoraAudioRemoteReasonInternal 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateStopped + (0):远端音频处于初始状态。当出现 AgoraAudioRemoteReasonLocalMutedAgoraAudioRemoteReasonRemoteMutedAgoraAudioRemoteReasonRemoteOffline 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateStarting + (1):已接收到首个远端音频包。 + + + AgoraAudioRemoteStateDecoding + (2):远端音频流已解码并正常播放。当出现 AgoraAudioRemoteReasonNetworkRecoveryAgoraAudioRemoteReasonLocalUnmutedAgoraAudioRemoteReasonRemoteUnmuted 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateFrozen + (3):远端音频卡顿。当出现 AgoraAudioRemoteReasonNetworkCongestion 时,SDK 会报告该状态。 + + + AgoraAudioRemoteStateFailed + (4):远端音频启动失败。当出现 AgoraAudioRemoteReasonInternal 时,SDK 会报告该状态。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_remoteaudiostatereason.dita b/dita/RTC-AIDOC/API/enum_remoteaudiostatereason.dita new file mode 100644 index 00000000000..9e68d61f793 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_remoteaudiostatereason.dita @@ -0,0 +1,117 @@ + + + + <ph keyref="REMOTE_AUDIO_STATE_REASON"/> + 远端音频状态变化的原因。远端音频状态变化的原因。远端音频状态变化的原因。 + +
+ 枚举值 + + + REMOTE_AUDIO_REASON_INTERNAL + (0):远端音频状态发生变化时,SDK 上报该原因。 + + + REMOTE_AUDIO_REASON_NETWORK_CONGESTION + (1):网络拥塞导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_NETWORK_RECOVERY + (2):网络恢复导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_LOCAL_MUTED + (3):本地用户停止接收远端音频流或关闭音频模块,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_LOCAL_UNMUTED + (4):本地用户恢复接收远端音频流或开启音频模块,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_REMOTE_MUTED + (5):远端用户停止发送音频流或关闭音频模块,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_REMOTE_UNMUTED + (6):远端用户恢复发送音频流或开启音频模块,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_REMOTE_OFFLINE + (7):远端用户离开频道,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_NO_PACKET_RECEIVE + (8):本地用户未收到远端用户的任何音频数据包,导致远端音频状态发生变化。 + + + REMOTE_AUDIO_REASON_LOCAL_PLAY_FAILED + (9):本地用户收到远端音频数据包但播放失败,导致远端音频状态发生变化。 + + + AgoraAudioRemoteReasonInternal + (0):远端音频状态发生变化时,SDK 上报该原因。 + + + AgoraAudioRemoteReasonNetworkCongestion + (1):网络拥塞导致远端音频状态变化。 + + + AgoraAudioRemoteReasonNetworkRecovery + (2):网络恢复导致远端音频状态变化。 + + + AgoraAudioRemoteReasonLocalMuted + (3):本地用户停止接收远端音频流或关闭音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonLocalUnmuted + (4):本地用户恢复接收远端音频流或开启音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteMuted + (5):远端用户停止发送音频流或关闭音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteUnmuted + (6):远端用户恢复发送音频流或开启音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteOffline + (7):远端用户离开频道,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonInternal + (0):远端音频状态发生变化时,SDK 上报该原因。 + + + AgoraAudioRemoteReasonNetworkCongestion + (1):网络拥塞导致远端音频状态变化。 + + + AgoraAudioRemoteReasonNetworkRecovery + (2):网络恢复导致远端音频状态变化。 + + + AgoraAudioRemoteReasonLocalMuted + (3):本地用户停止接收远端音频流或关闭音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonLocalUnmuted + (4):本地用户恢复接收远端音频流或开启音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteMuted + (5):远端用户停止发送音频流或关闭音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteUnmuted + (6):远端用户恢复发送音频流或开启音频模块,导致远端音频状态变化。 + + + AgoraAudioRemoteReasonRemoteOffline + (7):远端用户离开频道,导致远端音频状态变化。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_remotevideostate.dita b/dita/RTC-AIDOC/API/enum_remotevideostate.dita new file mode 100644 index 00000000000..afa7bda57bb --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_remotevideostate.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="REMOTE_VIDEO_STATE"/> + 远端视频流状态。远端视频流的状态。远端视频流的状态。 + +
+ 枚举值 + + + REMOTE_VIDEO_STATE_STOPPED + (0):远端视频处于初始状态。出现 REMOTE_VIDEO_STATE_REASON_LOCAL_MUTEDREMOTE_VIDEO_STATE_REASON_REMOTE_MUTEDREMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE 时,SDK 会报告该状态。 + + + REMOTE_VIDEO_STATE_STARTING + (1):已接收到首个远端视频包。 + + + REMOTE_VIDEO_STATE_DECODING + (2):远端视频流已解码并正常播放。出现 REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERYREMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTEDREMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTEDREMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY 时,SDK 会报告该状态。 + + + REMOTE_VIDEO_STATE_FROZEN + (3):远端视频卡顿。出现 REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTIONREMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK 时,SDK 会报告该状态。 + + + REMOTE_VIDEO_STATE_FAILED + (4):远端视频启动失败。出现 REMOTE_VIDEO_STATE_REASON_INTERNAL 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateStopped + (0):远端视频处于初始状态。当出现 AgoraVideoRemoteReasonLocalMutedAgoraVideoRemoteReasonRemoteMutedAgoraVideoRemoteReasonRemoteOffline 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateStarting + (1):接收到首个远端视频包。 + + + AgoraVideoRemoteStateDecoding + (2):远端视频流已解码并正常播放。当出现 AgoraVideoRemoteReasonRecoveryAgoraVideoRemoteReasonLocalUnmutedAgoraVideoRemoteReasonRemoteUnmutedAgoraVideoRemoteReasonAudioFallbackRecovery 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateFrozen + (3):远端视频卡顿。当出现 AgoraVideoRemoteReasonCongestionAgoraVideoRemoteReasonAudioFallback 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateFailed + (4):远端视频启动失败。当出现 AgoraVideoRemoteReasonInternal 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateStopped + (0):远端视频处于初始状态。当出现 AgoraVideoRemoteReasonLocalMutedAgoraVideoRemoteReasonRemoteMutedAgoraVideoRemoteReasonRemoteOffline 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateStarting + (1):接收到首个远端视频包。 + + + AgoraVideoRemoteStateDecoding + (2):远端视频流已解码并正常播放。当出现 AgoraVideoRemoteReasonRecoveryAgoraVideoRemoteReasonLocalUnmutedAgoraVideoRemoteReasonRemoteUnmutedAgoraVideoRemoteReasonAudioFallbackRecovery 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateFrozen + (3):远端视频卡顿。当出现 AgoraVideoRemoteReasonCongestionAgoraVideoRemoteReasonAudioFallback 时,SDK 会报告该状态。 + + + AgoraVideoRemoteStateFailed + (4):远端视频启动失败。当出现 AgoraVideoRemoteReasonInternal 时,SDK 会报告该状态。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_remotevideostatereason.dita b/dita/RTC-AIDOC/API/enum_remotevideostatereason.dita new file mode 100644 index 00000000000..fcdca311b72 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_remotevideostatereason.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="REMOTE_VIDEO_STATE_REASON"/> + 远端视频状态变化的原因。远端视频状态变化的原因。远端视频状态变化的原因。 + +
+ 枚举值 + + + REMOTE_VIDEO_STATE_REASON_INTERNAL + (0):远端视频状态发生变化时,SDK 上报该原因。 + + + REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION + (1):网络拥塞导致远端视频状态变化。 + + + REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY + (2):网络恢复导致远端视频状态变化。 + + + REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED + (3):本地用户停止接收远端视频流或关闭视频模块。 + + + REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED + (4):本地用户恢复接收远端视频流或开启视频模块。 + + + REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED + (5):远端用户停止发送视频流或关闭视频模块。 + + + REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED + (6):远端用户恢复发送视频流或开启视频模块。 + + + REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE + (7):远端用户离开频道。 + + + REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK + (8):由于网络较差,远端音视频流降级为纯音频流。 + + + REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY + (9):网络改善后,远端纯音频流恢复为音视频流。 + + + REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW + (10):(仅供内部使用)远端视频流类型切换为低质量流。 + + + REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH + (11):(仅供内部使用)远端视频流类型切换为高质量流。 + + + REMOTE_VIDEO_STATE_REASON_SDK_IN_BACKGROUND + (12):(仅适用于 iOS 平台)远端用户的应用切换到后台。 + + + REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT + (13):本地视频解码器不支持解码远端视频流。 + + + AgoraVideoRemoteReasonInternal + (0):远端视频状态发生变化时,SDK 上报该原因。 + + + AgoraVideoRemoteReasonCongestion + (1):网络出现拥塞。 + + + AgoraVideoRemoteReasonRecovery + (2):网络恢复正常。 + + + AgoraVideoRemoteReasonLocalMuted + (3):本地用户停止接收远端视频流或关闭视频模块。 + + + AgoraVideoRemoteReasonLocalUnmuted + (4):本地用户恢复接收远端视频流或开启视频模块。 + + + AgoraVideoRemoteReasonRemoteMuted + (5):远端用户停止发送视频流或关闭视频模块。 + + + AgoraVideoRemoteReasonRemoteUnmuted + (6):远端用户恢复发送视频流或开启视频模块。 + + + AgoraVideoRemoteReasonRemoteOffline + (7):远端用户离开频道。 + + + AgoraVideoRemoteReasonAudioFallback + (8):由于网络较差,远端音视频流降级为纯音频流。 + + + AgoraVideoRemoteReasonAudioFallbackRecovery + (9):网络改善后,远端纯音频流恢复为音视频流。 + + + AgoraVideoRemoteReasonSDKInBackground + (12):(仅适用于 iOS 平台)远端用户的应用切换到后台。当远端用户使用 iOS 应用且应用处于后台时,SDK 会向本地用户报告该错误码。此时,本地用户看到远端用户视频卡住。 + + + AgoraVideoRemoteReasonCodecNotSupport + (13):本地视频解码器不支持解码远端视频流。 + + + AgoraVideoRemoteReasonInternal + (0):远端视频状态发生变化时,SDK 上报该原因。 + + + AgoraVideoRemoteReasonCongestion + (1):网络出现拥塞。 + + + AgoraVideoRemoteReasonRecovery + (2):网络恢复正常。 + + + AgoraVideoRemoteReasonLocalMuted + (3):本地用户停止接收远端视频流或关闭视频模块。 + + + AgoraVideoRemoteReasonLocalUnmuted + (4):本地用户恢复接收远端视频流或开启视频模块。 + + + AgoraVideoRemoteReasonRemoteMuted + (5):远端用户停止发送视频流或关闭视频模块。 + + + AgoraVideoRemoteReasonRemoteUnmuted + (6):远端用户恢复发送视频流或开启视频模块。 + + + AgoraVideoRemoteReasonRemoteOffline + (7):远端用户离开频道。 + + + AgoraVideoRemoteReasonAudioFallback + (8):由于网络较差,远端音视频流降级为纯音频流。 + + + AgoraVideoRemoteReasonAudioFallbackRecovery + (9):网络改善后,远端纯音频流恢复为音视频流。 + + + AgoraVideoRemoteReasonSDKInBackground + (12):(仅适用于 iOS 平台)远端用户的应用切换到后台。当远端用户使用 iOS 应用且应用处于后台时,SDK 会向本地用户报告该错误码。此时,本地用户看到远端用户视频卡住。 + + + AgoraVideoRemoteReasonCodecNotSupport + (13):本地视频解码器不支持解码远端视频流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rendermodetype.dita b/dita/RTC-AIDOC/API/enum_rendermodetype.dita new file mode 100644 index 00000000000..97099fa6d61 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rendermodetype.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="RENDER_MODE_TYPE"/> + 视频显示模式。视频显示模式。视频显示模式。 + +
+ 枚举值 + + + RENDER_MODE_HIDDEN + (1):隐藏模式。优先填满窗口,超出窗口尺寸的视频部分将被裁剪。 + + + RENDER_MODE_FIT + (2):适应模式。优先完整显示全部视频内容,未填满窗口的区域以黑色填充。 + + + RENDER_MODE_ADAPTIVE + (3):自适应模式。该枚举已废弃,不推荐使用 + + + AgoraVideoRenderModeHidden + (1):隐藏模式。优先填满窗口,超出窗口尺寸的视频部分将被裁剪。 + + + AgoraVideoRenderModeFit + (2):适应模式。优先完整显示视频内容,未填满窗口的区域以黑色填充。 + + + AgoraVideoRenderModeAdaptive + (3):自适应模式。该模式已废弃。 + + + AgoraVideoRenderModeHidden + (1):隐藏模式。优先填满窗口,超出窗口尺寸的视频部分将被裁剪。 + + + AgoraVideoRenderModeFit + (2):适应模式。优先完整显示视频内容,未填满窗口的区域以黑色填充。 + + + AgoraVideoRenderModeAdaptive + (3):自适应模式。该模式已废弃。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_renewtokenerrorcode.dita b/dita/RTC-AIDOC/API/enum_renewtokenerrorcode.dita new file mode 100644 index 00000000000..8fa63e30dfd --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_renewtokenerrorcode.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="RENEW_TOKEN_ERROR_CODE"/> + 调用 后的错误码。调用 后的错误码。调用 后的错误码。调用 后的错误码。 + +
+
+ +
自从
+
自 4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + RENEW_TOKEN_SUCCESS + (0):Token 更新成功。 + + + RENEW_TOKEN_FAILURE + (1):由于未知的服务器错误,Token 更新失败。建议检查用于生成 Token 的参数,重新生成 Token,并重试 + + + RENEW_TOKEN_TOKEN_EXPIRED + (2):由于提供的 Token 已过期,Token 更新失败。建议生成一个过期时间更长的新 Token,并重试 + + + RENEW_TOKEN_INVALID_TOKEN + (3):由于提供的 Token 无效,Token 更新失败。常见原因包括:项目在声网控制台启用了 App 证书但加入频道时未使用 Token;joinChannel 中指定的 uid 与生成 Token 时使用的 uid 不一致;joinChannel 中指定的频道名与生成 Token 时使用的频道名不一致。建议检查 Token 的生成流程,重新生成 Token,并重试 + + + RENEW_TOKEN_INVALID_CHANNEL_NAME + (4):由于 Token 中的频道名与当前频道不一致,Token 更新失败。建议检查频道名,重新生成 Token,并重试 + + + RENEW_TOKEN_INCONSISTENT_APPID + (5):由于 Token 中的 App ID 与当前 App ID 不一致,Token 更新失败。建议检查 App ID,重新生成 Token,并重试 + + + RENEW_TOKEN_CANCELED_BY_NEW_REQUEST + (6):由于发起了新的请求,之前的 Token 更新请求被取消。 + + + RENEW_TOKEN_SUCCESS + (0):Token 更新成功。 + + + RENEW_TOKEN_FAILURE + (1):Token 更新失败。建议生成新的 Token 并重试调用 + + + RENEW_TOKEN_TOKEN_EXPIRED + (2):Token 更新失败,原因是传入的 Token 已过期。建议生成一个过期时间更长的 Token 并重试调用 + + + RENEW_TOKEN_INVALID_TOKEN + (3):Token 更新失败,原因是传入的 Token 无效。常见原因包括:项目在声网控制台启用了 App 证书但加入频道时未使用 Token;调用 joinChannel 时指定的 uid 与生成 Token 时使用的 uid 不一致;调用 joinChannel 时指定的频道名与生成 Token 时使用的频道名不一致。建议检查 Token 的生成流程,生成新的 Token 并重试调用 + + + RENEW_TOKEN_INVALID_CHANNEL_NAME + (4):Token 更新失败,原因是 Token 中的频道名与当前频道不一致。建议检查频道名,生成新的 Token 并重试调用 + + + RENEW_TOKEN_INCONSISTENT_APPID + (5):Token 更新失败,原因是 Token 中的 App ID 与当前 App ID 不一致。建议检查 App ID,生成新的 Token 并重试调用 + + + RENEW_TOKEN_CANCELED_BY_NEW_REQUEST + (6):Token 更新被取消,原因是发起了新的请求,前一个请求被取消。 + + + AgoraRenewTokenSuccess + (0):Token 更新成功。 + + + AgoraRenewTokenFailure + (1):Token 更新失败。建议重新生成新的 Token 并重试 + + + AgoraRenewTokenExpiredToken + (2):Token 更新失败,传入的 Token 已过期。建议生成一个过期时间更长的新 Token 并重试 + + + AgoraRenewTokenInvalidToken + (3):Token 更新失败,传入的 Token 无效。常见原因包括:项目在声网控制台启用了 App Certificate,但加入频道时未使用 Token;joinChannel 中指定的 uid 与生成 Token 时使用的 uid 不一致;joinChannel 中指定的频道名与生成 Token 时使用的频道名不一致。建议检查 Token 的生成流程,重新生成 Token 并重试 + + + AgoraRenewTokenInvalidChannelName + (4):Token 更新失败,Token 中的频道名与当前频道不一致。建议检查频道名,重新生成 Token 并重试 + + + AgoraRenewTokenInconsistentAppId + (5):Token 更新失败,Token 中的 App ID 与当前 App ID 不一致。建议检查 App ID,重新生成 Token 并重试 + + + AgoraRenewTokenCanceledByNewRequest + (6):Token 更新请求已取消,因为发起了新的请求。 + + + AgoraRenewTokenSuccess + (0):Token 更新成功。 + + + AgoraRenewTokenFailure + (1):Token 更新失败。建议重新生成新的 Token 并重试 + + + AgoraRenewTokenExpiredToken + (2):Token 更新失败,传入的 Token 已过期。建议生成一个过期时间更长的新 Token 并重试 + + + AgoraRenewTokenInvalidToken + (3):Token 更新失败,传入的 Token 无效。常见原因包括:项目在声网控制台启用了 App Certificate,但加入频道时未使用 Token;joinChannel 中指定的 uid 与生成 Token 时使用的 uid 不一致;joinChannel 中指定的频道名与生成 Token 时使用的频道名不一致。建议检查 Token 的生成流程,重新生成 Token 并重试 + + + AgoraRenewTokenInvalidChannelName + (4):Token 更新失败,Token 中的频道名与当前频道不一致。建议检查频道名,重新生成 Token 并重试 + + + AgoraRenewTokenInconsistentAppId + (5):Token 更新失败,Token 中的 App ID 与当前 App ID 不一致。建议检查 App ID,重新生成 Token 并重试 + + + AgoraRenewTokenCanceledByNewRequest + (6):Token 更新请求已取消,因为发起了新的请求。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rhythmplayerreason.dita b/dita/RTC-AIDOC/API/enum_rhythmplayerreason.dita new file mode 100644 index 00000000000..e8c4dd468fc --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rhythmplayerreason.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="RHYTHM_PLAYER_REASON"/> + 虚拟节拍器错误码。虚拟节拍器错误码。虚拟节拍器错误码。 + +
+ 枚举值 + + + RHYTHM_PLAYER_REASON_OK + (0):节拍文件正常播放,无错误。 + + + RHYTHM_PLAYER_REASON_FAILED + (1):发生通用错误,无具体原因。 + + + RHYTHM_PLAYER_REASON_CAN_NOT_OPEN + (801):打开节拍文件时发生错误。 + + + RHYTHM_PLAYER_REASON_CAN_NOT_PLAY + (802):播放节拍文件时发生错误。 + + + RHYTHM_PLAYER_REASON_FILE_OVER_DURATION_LIMIT + (803):节拍文件的时长超过限制。最大时长为 1.2 秒。 + + + AgoraRhythmPlayerReasonOK + (0):节拍文件播放正常,无错误。 + + + AgoraRhythmPlayerReasonFailed + (1):通用错误,无具体原因。 + + + AgoraRhythmPlayerReasonCanNotOpen + (801):打开节拍文件时出错。 + + + AgoraRhythmPlayerReasonCanNotPlay + (802):播放节拍文件时出错。 + + + AgoraRhythmPlayerReasonFileOverDurationLimit + (803):节拍文件时长超过限制,最大支持 1.2 秒。 + + + AgoraRhythmPlayerReasonOK + (0):节拍文件播放正常,无错误。 + + + AgoraRhythmPlayerReasonFailed + (1):通用错误,无具体原因。 + + + AgoraRhythmPlayerReasonCanNotOpen + (801):打开节拍文件时出错。 + + + AgoraRhythmPlayerReasonCanNotPlay + (802):播放节拍文件时出错。 + + + AgoraRhythmPlayerReasonFileOverDurationLimit + (803):节拍文件时长超过限制,最大支持 1.2 秒。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rhythmplayerstatetype.dita b/dita/RTC-AIDOC/API/enum_rhythmplayerstatetype.dita new file mode 100644 index 00000000000..041c2e1f266 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rhythmplayerstatetype.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="RHYTHM_PLAYER_STATE_TYPE"/> + 虚拟节拍器状态。虚拟节拍器状态。虚拟节拍器状态。 + +
+ 枚举值 + + + RHYTHM_PLAYER_STATE_IDLE + (810):虚拟节拍器未启用或已被禁用。 + + + RHYTHM_PLAYER_STATE_OPENING + (811):正在打开节拍文件。 + + + RHYTHM_PLAYER_STATE_DECODING + (812):正在解码节拍文件。 + + + RHYTHM_PLAYER_STATE_PLAYING + (813):节拍文件播放中。 + + + RHYTHM_PLAYER_STATE_FAILED + (814):虚拟节拍器启动失败。可通过返回的 errorCode 排查错误原因,或尝试重新启动虚拟节拍器。 + + + AgoraRhythmPlayerStateIdle + (810):虚拟节拍器未启用或已被禁用。 + + + AgoraRhythmPlayerStateOpening + (811):正在打开节拍文件。 + + + AgoraRhythmPlayerStateDecoding + (812):正在解码节拍文件。 + + + AgoraRhythmPlayerStatePlaying + (813):正在播放节拍文件。 + + + AgoraRhythmPlayerStateFailed + (814):虚拟节拍器启动失败。你可以使用返回的 errorCode 排查错误原因,或尝试重新启动虚拟节拍器。 + + + AgoraRhythmPlayerStateIdle + (810):虚拟节拍器未启用或已被禁用。 + + + AgoraRhythmPlayerStateOpening + (811):正在打开节拍文件。 + + + AgoraRhythmPlayerStateDecoding + (812):正在解码节拍文件。 + + + AgoraRhythmPlayerStatePlaying + (813):正在播放节拍文件。 + + + AgoraRhythmPlayerStateFailed + (814):虚拟节拍器启动失败。你可以使用返回的 errorCode 排查错误原因,或尝试重新启动虚拟节拍器。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteabrfallbacklayer.dita b/dita/RTC-AIDOC/API/enum_rteabrfallbacklayer.dita new file mode 100644 index 00000000000..7aea2b7480d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteabrfallbacklayer.dita @@ -0,0 +1,191 @@ + + + + <ph keyref="RteAbrFallbackLayer"/> + 视频流的回退质量层级。视频流回退的质量层级。设置视频流回退时的质量层级。设置视频流回退时的质量层级。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+ +
    +
  • 若要使用 kRteAbrFallbackLayer1kRteAbrFallbackLayer6,你必须[联系技术支持](https://ticket.shengwang.cn/)以启用 ABR 功能。启用后,你可以自定义每一层的分辨率,并选择任意一层作为视频回退的最低分辨率。当网络状况较差时,SDK 会在该范围内动态调整分辨率,并以所选层为下限。
  • +
  • 自定义分辨率时,请确保将视频质量层按分辨率从高到低排序。如果分辨率相同,则按帧率从高到低排序。
  • +
+
+ 注意事项: +
    +
  • 如需使用 LAYER1LAYER6,请[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,你可以自定义每个层级的分辨率,并选择任意层级作为视频流回退的最低分辨率。当网络状况较差时,SDK 会以该层级为下限,在此范围内根据网络状况动态调整分辨率。
  • +
  • 自定义分辨率时,请确保按分辨率从高到低的顺序排列视频质量层级(Layer)。如果分辨率相同,则按帧率从高到低排序。
  • +
+
+ 要使用 AgoraRteAbrFallbackLayer1AgoraRteAbrFallbackLayer6,需[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,你可以自定义每一层的分辨率,并选择任意一层作为视频流回退的最低分辨率。当网络状况较差时,SDK 会以该分辨率为下限,并根据网络状况在该范围内动态调整分辨率。自定义分辨率时,请确保按分辨率从高到低的顺序排列视频质量层;若分辨率相同,则按帧率从高到低排序。 + 要使用 AgoraRteAbrFallbackLayer1AgoraRteAbrFallbackLayer6,需[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后,你可以自定义每一层的分辨率,并选择任意一层作为视频流回退的最低分辨率。当网络状况较差时,SDK 会以该分辨率为下限,并根据网络状况在该范围内动态调整分辨率。自定义分辨率时,请确保按分辨率从高到低的顺序排列视频质量层;若分辨率相同,则按帧率从高到低排序。 +
+
+ 枚举值 + + + kRteAbrFallbackDisabled + (0):不进行音视频流回退,但不保证质量。 + + + kRteAbrFallbackLow + (1):(默认)回退至最低质量的视频流,该层具有最低分辨率。 + + + kRteAbrFallbackAudioOnly + (2):优先接收最低质量的视频流;若网络差到无法显示视频,则回退为仅接收已订阅的音频流。 + + + kRteAbrFallbackLayer1 + (3):回退至视频质量层级 1,该层的分辨率和码率略低于最高订阅的视频质量。 + + + kRteAbrFallbackLayer2 + (4):回退至视频质量层级 2,该层的分辨率略低于层级 1。 + + + kRteAbrFallbackLayer3 + (5):回退至视频质量层级 3,该层的分辨率略低于层级 2。 + + + kRteAbrFallbackLayer4 + (6):回退至视频质量层级 4,该层的分辨率略低于层级 3。 + + + kRteAbrFallbackLayer5 + (7):回退至视频质量层级 5,该层的分辨率略低于层级 4。 + + + kRteAbrFallbackLayer6 + (8):回退至视频质量层级 6,该层的分辨率略低于层级 5。 + + + DISABLED + (0):不进行音视频流的回退处理,但无法保证音视频流的质量。 + + + LOW + (1):(默认)回退至视频小流,该层级具有最低分辨率。 + + + AUDIO_ONLY + (2):优先尝试接收视频小流;若因网络状况差无法显示视频,则回退为仅接收已订阅的远端音频流。 + + + LAYER1 + (3):回退至视频质量层级 1,该层级的分辨率和码率仅低于所订阅的最视频大流。 + + + LAYER2 + (4):回退至视频质量层级 2,该层级的分辨率仅低于层级 1。 + + + LAYER3 + (5):回退至视频质量层级 3,该层级的分辨率略低于层级 2。 + + + LAYER4 + (6):回退至视频质量层级 4,该层级的分辨率仅低于层级 3。 + + + LAYER5 + (7):回退至视频质量层级 5,该层级的分辨率略低于层级 4。 + + + LAYER6 + (8):回退至视频质量层级 6,该层级的分辨率略低于层级 5。 + + + AgoraRteAbrFallbackDisabled + (0):不对音视频流进行回退处理,但无法保证音视频流质量。 + + + AgoraRteAbrFallbackLow + (1):(默认)回退至视频小流。该层具有最低分辨率。 + + + AgoraRteAbrFallbackAudioOnly + (2):优先接收视频小流;若因网络状况差无法显示视频,则回退为仅接收已订阅的远端音频流。 + + + AgoraRteAbrFallbackLayer1 + (3):回退至视频质量层级 1。该层的分辨率和码率仅低于所订阅的最高质量多层视频流。 + + + AgoraRteAbrFallbackLayer2 + (4):回退至视频质量层级 2。该层的分辨率仅低于层级 1。 + + + AgoraRteAbrFallbackLayer3 + (5):回退至视频质量层级 3。该层的分辨率仅低于层级 2。 + + + AgoraRteAbrFallbackLayer4 + (6):回退至视频质量层级 4。该层的分辨率仅低于层级 3。 + + + AgoraRteAbrFallbackLayer5 + (7):回退至视频质量层级 5。该层的分辨率仅低于层级 4。 + + + AgoraRteAbrFallbackLayer6 + (8):回退至视频质量层级 6。该层的分辨率仅低于层级 5。 + + + AgoraRteAbrFallbackDisabled + (0):不对音视频流进行回退处理,但无法保证音视频流质量。 + + + AgoraRteAbrFallbackLow + (1):(默认)回退至视频小流。该层具有最低分辨率。 + + + AgoraRteAbrFallbackAudioOnly + (2):优先接收视频小流;若因网络状况差无法显示视频,则回退为仅接收已订阅的远端音频流。 + + + AgoraRteAbrFallbackLayer1 + (3):回退至视频质量层级 1。该层的分辨率和码率仅低于所订阅的最高质量多层视频流。 + + + AgoraRteAbrFallbackLayer2 + (4):回退至视频质量层级 2。该层的分辨率仅低于层级 1。 + + + AgoraRteAbrFallbackLayer3 + (5):回退至视频质量层级 3。该层的分辨率仅低于层级 2。 + + + AgoraRteAbrFallbackLayer4 + (6):回退至视频质量层级 4。该层的分辨率仅低于层级 3。 + + + AgoraRteAbrFallbackLayer5 + (7):回退至视频质量层级 5。该层的分辨率仅低于层级 4。 + + + AgoraRteAbrFallbackLayer6 + (8):回退至视频质量层级 6。该层的分辨率仅低于层级 5。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteabrsubscriptionlayer.dita b/dita/RTC-AIDOC/API/enum_rteabrsubscriptionlayer.dita new file mode 100644 index 00000000000..be1469e0be8 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteabrsubscriptionlayer.dita @@ -0,0 +1,165 @@ + + + + <ph keyref="RteAbrSubscriptionLayer"/> + 订阅端视频流的质量层级。订阅端视频流的质量层级。订阅端视频流的质量层级。订阅端视频流的质量层级。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+ 如需自定义 kRteAbrSubscriptionLayer1kRteAbrSubscriptionLayer6 层的分辨率并进行订阅,请[联系技术支持](https://ticket.shengwang.cn/)以启用 ABR 功能。 + 如果你需要自定义订阅 LAYER1LAYER6 的视频分辨率,请[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。 + 如果你需要自定义 AgoraRteAbrSubscriptionLayer1AgoraRteAbrSubscriptionLayer6 的视频分辨率并进行订阅,请[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。 + 如果你需要自定义 AgoraRteAbrSubscriptionLayer1AgoraRteAbrSubscriptionLayer6 的视频分辨率并进行订阅,请[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。 +
+
+ 枚举值 + + + kRteAbrSubscriptionHigh + (0):最高质量层。该层具有最高分辨率。 + + + kRteAbrSubscriptionLow + (1):(默认)最低质量层。该层具有最低分辨率。 + + + kRteAbrSubscriptionLayer1 + (2):质量层级 1。该层的分辨率略低于 kRteAbrSubscriptionHigh + + + kRteAbrSubscriptionLayer2 + (3):质量层级 2。该层的分辨率低于 kRteAbrSubscriptionLayer1 + + + kRteAbrSubscriptionLayer3 + (4):质量层级 3。该层的分辨率低于 kRteAbrSubscriptionLayer2 + + + kRteAbrSubscriptionLayer4 + (5):质量层级 4。该层的分辨率低于 kRteAbrSubscriptionLayer3 + + + kRteAbrSubscriptionLayer5 + (6):质量层级 5。该层的分辨率低于 kRteAbrSubscriptionLayer4 + + + kRteAbrSubscriptionLayer6 + (7):质量层级 6。该层的分辨率低于 kRteAbrSubscriptionLayer5 + + + HIGH + (0):最高质量的视频流,提供最高分辨率。 + + + LOW + (1):(默认)最低质量的视频流,提供最低分辨率。 + + + LAYER1 + (2):视频质量层级 1,分辨率仅次于 HIGH + + + LAYER2 + (3):视频质量层级 2,分辨率低于 LAYER1 + + + LAYER3 + (4):视频质量层级 3,分辨率低于 LAYER2 + + + LAYER4 + (5):视频质量层级 4,分辨率低于 LAYER3 + + + LAYER5 + (6):视频质量层级 5,分辨率低于 LAYER4 + + + LAYER6 + (7):视频质量层级 6,分辨率低于 LAYER5 + + + AgoraRteAbrSubscriptionHigh + (0):高质量层级,分辨率最高。 + + + AgoraRteAbrSubscriptionLow + (1):(默认)低质量层级,分辨率最低。 + + + AgoraRteAbrSubscriptionLayer1 + (2):质量层级 1,分辨率仅低于(0)AgoraRteAbrSubscriptionHigh + + + AgoraRteAbrSubscriptionLayer2 + (3):质量层级 2,分辨率低于(2)AgoraRteAbrSubscriptionLayer1 + + + AgoraRteAbrSubscriptionLayer3 + (4):质量层级 3,分辨率低于(3)AgoraRteAbrSubscriptionLayer2 + + + AgoraRteAbrSubscriptionLayer4 + (5):质量层级 4,分辨率低于(4)AgoraRteAbrSubscriptionLayer3 + + + AgoraRteAbrSubscriptionLayer5 + (6):质量层级 5,分辨率低于(5)AgoraRteAbrSubscriptionLayer4 + + + AgoraRteAbrSubscriptionLayer6 + (7):质量层级 6,分辨率低于(6)AgoraRteAbrSubscriptionLayer5 + + + AgoraRteAbrSubscriptionHigh + (0):高质量层级,分辨率最高。 + + + AgoraRteAbrSubscriptionLow + (1):(默认)低质量层级,分辨率最低。 + + + AgoraRteAbrSubscriptionLayer1 + (2):质量层级 1,分辨率仅低于(0)AgoraRteAbrSubscriptionHigh + + + AgoraRteAbrSubscriptionLayer2 + (3):质量层级 2,分辨率低于(2)AgoraRteAbrSubscriptionLayer1 + + + AgoraRteAbrSubscriptionLayer3 + (4):质量层级 3,分辨率低于(3)AgoraRteAbrSubscriptionLayer2 + + + AgoraRteAbrSubscriptionLayer4 + (5):质量层级 4,分辨率低于(4)AgoraRteAbrSubscriptionLayer3 + + + AgoraRteAbrSubscriptionLayer5 + (6):质量层级 5,分辨率低于(5)AgoraRteAbrSubscriptionLayer4 + + + AgoraRteAbrSubscriptionLayer6 + (7):质量层级 6,分辨率低于(6)AgoraRteAbrSubscriptionLayer5 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteerrorcode.dita b/dita/RTC-AIDOC/API/enum_rteerrorcode.dita new file mode 100644 index 00000000000..bed9929736c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteerrorcode.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="RteErrorCode"/> + RTE 相关的状态和错误码。与 RTE 相关的状态码和错误码。RTE 相关的状态码和错误码。RTE 相关的状态码和错误码。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRteOk + (0):操作成功。 + + + kRteErrorDefault + (1):通用错误,未提供具体原因。 + + + kRteErrorInvalidArgument + (2):方法参数无效,例如包含非法字符或传入对象为 null。请重新设置参数。 + + + kRteErrorInvalidOperation + (3):当前状态不支持该操作,例如对象已被销毁或无效。 + + + kRteErrorNetworkError + (4):网络错误。请检查网络连接。 + + + kRteErrorAuthenticationFailed + (5):Token 鉴权失败,可能原因包括 Token 无效或已过期。请检查 Token。 + + + kRteErrorStreamNotFound + (6):未找到媒体流,例如加入频道后 10 秒内未接收到主播端的媒体流。 + + + OK + (0):操作成功。 + + + DEFAULT + (1):通用错误,错误原因未明确分类。 + + + INVALID_ARGUMENT + (2):方法中设置了无效参数,例如参数包含非法字符,或传入的对象为 null。请重新设置参数。 + + + INVALID_OPERATION + (3):当前状态不支持该操作,例如对象已被销毁或无效。 + + + NETWORK_ERROR + (4):网络错误。请检查网络连接。 + + + AUTHENTICATION_FAILED + (5):Token 鉴权失败,可能原因包括 Token 无效或已过期。请检查 Token。 + + + STREAM_NOT_FOUND + (6):未找到媒体流,例如加入频道后超过 10 秒未收到主播的媒体流。 + + + AgoraRteOk + (0):操作成功。 + + + AgoraRteErrorDefault + (1):通用错误,错误原因未明确分类。 + + + AgoraRteErrorInvalidArgument + (2):方法中设置了无效参数,例如参数包含非法字符,或传入的对象为 null。 + + + AgoraRteErrorInvalidOperation + (3):当前状态不支持该操作,例如对象已被销毁或无效。 + + + AgoraRteErrorNetworkError + (4):网络错误,请检查网络连接。 + + + AgoraRteErrorAuthenticationFailed + (5):Token 鉴权失败,可能原因包括 Token 无效或已过期。 + + + AgoraRteErrorStreamNotFound + (6):未找到媒体流,例如加入频道后超过 10 秒未从主播接收到媒体流。 + + + AgoraRteOk + (0):操作成功。 + + + AgoraRteErrorDefault + (1):通用错误,错误原因未明确分类。 + + + AgoraRteErrorInvalidArgument + (2):方法中设置了无效参数,例如参数包含非法字符,或传入的对象为 null。 + + + AgoraRteErrorInvalidOperation + (3):当前状态不支持该操作,例如对象已被销毁或无效。 + + + AgoraRteErrorNetworkError + (4):网络错误,请检查网络连接。 + + + AgoraRteErrorAuthenticationFailed + (5):Token 鉴权失败,可能原因包括 Token 无效或已过期。 + + + AgoraRteErrorStreamNotFound + (6):未找到媒体流,例如加入频道后超过 10 秒未从主播接收到媒体流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteplayerevent.dita b/dita/RTC-AIDOC/API/enum_rteplayerevent.dita new file mode 100644 index 00000000000..0d39d21968b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteplayerevent.dita @@ -0,0 +1,369 @@ + + + + <ph keyref="RtePlayerEvent"/> + 播放器事件类型。媒体播放器事件类型。媒体播放器事件类型。媒体播放器事件类型。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRtePlayerEventSeekBegin + (0):开始跳转到指定位置播放。 + + + kRtePlayerEventSeekComplete + (1):跳转到指定位置完成。 + + + kRtePlayerEventSeekError + (2):跳转到指定位置时发生错误。 + + + kRtePlayerEventBufferLow + (3):当前缓冲区不足,无法支持播放。 + + + kRtePlayerEventBufferRecover + (4):当前缓冲区已恢复至可播放状态。 + + + kRtePlayerEventFreezeStart + (5):检测到音视频卡顿。 + + + kRtePlayerEventFreezeStop + (6):音视频卡顿结束。 + + + kRtePlayerEventOneLoopPlaybackCompleted + (7):完成一次循环播放。 + + + kRtePlayerEventAuthenticationWillExpire + (8):Token 即将过期。你需要重新生成新的 Token,并通过 更新 URL。 + + + kRtePlayerEventAbrFallbackToAudioOnlyLayer + (9):由于网络问题,从接收音视频降级为仅接收音频。 + + + kRtePlayerEventAbrRecoverFromAudioOnlyLayer + (10):网络恢复后,从仅接收音频恢复为接收音视频。 + + + kRtePlayerEventSwitchBegin + (11):开始切换到新 URL。 + + + kRtePlayerEventSwitchComplete + (12):切换到新 URL 完成。 + + + kRtePlayerEventSwitchError + (13):切换到新 URL 时发生错误。 + + + kRtePlayerEventFirstDisplayed + (14):首帧视频已显示。 + + + kRtePlayerEventReachCacheFileMaxCount + (15):达到缓存文件数量上限。 + + + kRtePlayerEventReachCacheFileMaxSize + (16):达到缓存文件大小上限。 + + + kRtePlayerEventTryOpenStart + (17):开始尝试打开新 URL。 + + + kRtePlayerEventTryOpenSucceed + (18):成功打开新 URL。 + + + kRtePlayerEventTryOpenFailed + (19):打开新 URL 失败。 + + + kRtePlayerEventAudioTrackChanged + (20):当前音轨已变更。 + + + SEEK_BEGIN + (0):开始跳转到指定播放位置。 + + + SEEK_COMPLETE + (1):跳转到指定播放位置完成。 + + + SEEK_ERROR + (2):跳转到指定播放位置时发生错误。 + + + BUFFER_LOW + (3):当前缓冲数据不足,无法支持播放。 + + + BUFFER_RECOVER + (4):当前缓冲数据刚好足以支持播放。 + + + FREEZE_START + (5):音频或视频发生卡顿。 + + + FREEZE_STOP + (6):音频或视频卡顿结束。 + + + ONE_LOOP_PLAYBACK_COMPLETED + (7):单次循环播放完成。 + + + AUTHENTICATION_WILL_EXPIRE + (8):Token 即将过期。收到该事件后,需要重新生成新的 Token,并通过 更新 URL。 + + + ABR_FALLBACK_TO_AUDIO_ONLY_LAYER + (9):由于网络问题,从接收音视频流降级为仅接收远端音频流。 + + + ABR_RECOVER_FROM_AUDIO_ONLY_LAYER + (10):网络恢复后,从仅接收远端音频流恢复为接收音视频流。 + + + SWITCH_BEGIN + (11):开始切换到新 URL。 + + + SWITCH_COMPLETE + (12):切换到新 URL 完成。 + + + SWITCH_ERROR + (13):切换到新 URL 时发生错误。 + + + FIRST_DISPLAYED + (14):首帧视频已显示。 + + + REACH_CACHE_FILE_MAX_COUNT + (15):缓存文件数量达到上限。 + + + REACH_CACHE_FILE_MAX_SIZE + (16):缓存文件大小达到上限。 + + + TRY_OPEN_START + (17):开始尝试打开新 URL。 + + + TRY_OPEN_SUCCEED + (18):成功打开新 URL。 + + + TRY_OPEN_FAILED + (19):打开新 URL 失败。 + + + AUDIO_TRACK_CHANGED + (20):当前音轨发生变化。 + + + AgoraRtePlayerEventSeekBegin + (0):开始跳转到指定位置播放。 + + + AgoraRtePlayerEventSeekComplete + (1):跳转到指定位置完成。 + + + AgoraRtePlayerEventSeekError + (2):跳转到指定位置时发生错误。 + + + AgoraRtePlayerEventBufferLow + (3):当前缓冲数据不足,无法继续播放。 + + + AgoraRtePlayerEventBufferRecover + (4):当前缓冲数据已恢复,可继续播放。 + + + AgoraRtePlayerEventFreezeStart + (5):音频或视频发生卡顿。 + + + AgoraRtePlayerEventFreezeStop + (6):音频或视频卡顿结束。 + + + AgoraRtePlayerEventOneLoopPlaybackCompleted + (7):完成一次循环播放。 + + + AgoraRtePlayerEventAuthenticationWillExpire + (8):Token 即将过期。收到该事件后需生成新的 Token,并通过 更新 URL。 + + + AgoraRtePlayerEventAbrFallbackToAudioOnlyLayer + (9):因网络问题,从接收音视频流降级为仅接收远端音频流。 + + + AgoraRtePlayerEventAbrRecoverFromAudioOnlyLayer + (10):网络恢复后,从仅接收远端音频流恢复为接收音视频流。 + + + AgoraRtePlayerEventSwitchBegin + (11):开始切换到新 URL。 + + + AgoraRtePlayerEventSwitchComplete + (12):切换到新 URL 完成。 + + + AgoraRtePlayerEventSwitchError + (13):切换到新 URL 时发生错误。 + + + AgoraRtePlayerEventFirstDisplayed + (14):首帧视频已显示。 + + + AgoraRtePlayerEventReachCacheFileMaxCount + (15):缓存文件数量达到上限。 + + + AgoraRtePlayerEventReachCacheFileMaxSize + (16):缓存文件大小达到上限。 + + + AgoraRtePlayerEventTryOpenStart + (17):开始尝试打开新 URL。 + + + AgoraRtePlayerEventTryOpenSucceed + (18):成功打开新 URL。 + + + AgoraRtePlayerEventTryOpenFailed + (19):打开新 URL 失败。 + + + AgoraRtePlayerEventAudioTrackChanged + (20):当前音轨已切换。 + + + AgoraRtePlayerEventSeekBegin + (0):开始跳转到指定位置播放。 + + + AgoraRtePlayerEventSeekComplete + (1):跳转到指定位置完成。 + + + AgoraRtePlayerEventSeekError + (2):跳转到指定位置时发生错误。 + + + AgoraRtePlayerEventBufferLow + (3):当前缓冲数据不足,无法继续播放。 + + + AgoraRtePlayerEventBufferRecover + (4):当前缓冲数据已恢复,可继续播放。 + + + AgoraRtePlayerEventFreezeStart + (5):音频或视频发生卡顿。 + + + AgoraRtePlayerEventFreezeStop + (6):音频或视频卡顿结束。 + + + AgoraRtePlayerEventOneLoopPlaybackCompleted + (7):完成一次循环播放。 + + + AgoraRtePlayerEventAuthenticationWillExpire + (8):Token 即将过期。收到该事件后需生成新的 Token,并通过 更新 URL。 + + + AgoraRtePlayerEventAbrFallbackToAudioOnlyLayer + (9):因网络问题,从接收音视频流降级为仅接收远端音频流。 + + + AgoraRtePlayerEventAbrRecoverFromAudioOnlyLayer + (10):网络恢复后,从仅接收远端音频流恢复为接收音视频流。 + + + AgoraRtePlayerEventSwitchBegin + (11):开始切换到新 URL。 + + + AgoraRtePlayerEventSwitchComplete + (12):切换到新 URL 完成。 + + + AgoraRtePlayerEventSwitchError + (13):切换到新 URL 时发生错误。 + + + AgoraRtePlayerEventFirstDisplayed + (14):首帧视频已显示。 + + + AgoraRtePlayerEventReachCacheFileMaxCount + (15):缓存文件数量达到上限。 + + + AgoraRtePlayerEventReachCacheFileMaxSize + (16):缓存文件大小达到上限。 + + + AgoraRtePlayerEventTryOpenStart + (17):开始尝试打开新 URL。 + + + AgoraRtePlayerEventTryOpenSucceed + (18):成功打开新 URL。 + + + AgoraRtePlayerEventTryOpenFailed + (19):打开新 URL 失败。 + + + AgoraRtePlayerEventAudioTrackChanged + (20):当前音轨已切换。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteplayermetadatatype.dita b/dita/RTC-AIDOC/API/enum_rteplayermetadatatype.dita new file mode 100644 index 00000000000..9b0bcad8d01 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteplayermetadatatype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="RtePlayerMetadataType"/> + 媒体流的元数据类型。媒体流关联的元数据类型。媒体流关联的元数据类型。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRtePlayerMetadataTypeSei + (0):SEI(Supplemental Enhancement Information)类型。 + + + AgoraRtePlayerMetadataTypeSei + (0):SEI(补充增强信息)类型。 + + + AgoraRtePlayerMetadataTypeSei + (0):SEI(补充增强信息)类型。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rteplayerstate.dita b/dita/RTC-AIDOC/API/enum_rteplayerstate.dita new file mode 100644 index 00000000000..680b045f10b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rteplayerstate.dita @@ -0,0 +1,161 @@ + + + + <ph keyref="RtePlayerState"/> + 播放器状态。媒体播放器的状态。媒体播放器的状态。媒体播放器的状态。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRtePlayerStateIdle + (0):空闲状态。 + + + kRtePlayerStateOpening + (1):正在打开 URL 资源。调用 后进入该状态。 + + + kRtePlayerStateOpenCompleted + (2):URL 资源打开成功。 成功打开资源后进入该状态。 + + + kRtePlayerStatePlaying + (3):正在播放。 + + + kRtePlayerStatePaused + (4):播放已暂停。成功调用 后进入该状态。 + + + kRtePlayerStatePlaybackCompleted + (5):播放已完成。 + + + kRtePlayerStateStopped + (6):播放已停止。成功调用 后进入该状态。 + + + kRtePlayerStateFailed + (7):失败状态。发生内部错误时进入该状态。收到该状态后,请先调用 ,再调用 重新打开资源。 + + + IDLE + (0):空闲状态。 + + + OPENING + (1):正在打开 URL 资源。调用 后会返回该状态码。 + + + OPEN_COMPLETED + (2):已成功打开 URL 资源。 成功打开资源后会返回该状态码。 + + + PLAYING + (3):正在播放。 + + + PAUSED + (4):播放已暂停。成功调用 后会返回该状态码。 + + + PLAYBACK_COMPLETED + (5):播放已完成。 + + + STOPPED + (6):播放已停止。成功调用 后会返回该状态码。 + + + FAILED + (7):播放失败。发生内部错误时会返回该状态码。收到该状态后需先调用 ,再调用 重新打开资源。 + + + AgoraRtePlayerStateIdle + (0):空闲状态。 + + + AgoraRtePlayerStateOpening + (1):正在打开 URL 资源。调用 后触发该状态。 + + + AgoraRtePlayerStateOpenCompleted + (2):成功打开 URL 资源。调用 成功后触发该状态。 + + + AgoraRtePlayerStatePlaying + (3):正在播放状态。 + + + AgoraRtePlayerStatePaused + (4):播放已暂停。成功调用 后触发该状态。 + + + AgoraRtePlayerStatePlaybackCompleted + (5):播放已完成。 + + + AgoraRtePlayerStateStopped + (6):播放已停止。成功调用 后触发该状态。 + + + AgoraRtePlayerStateFailed + (7):播放失败。发生内部错误时触发该状态。收到该状态后需先调用 ,再调用 重新打开资源。 + + + AgoraRtePlayerStateIdle + (0):空闲状态。 + + + AgoraRtePlayerStateOpening + (1):正在打开 URL 资源。调用 后触发该状态。 + + + AgoraRtePlayerStateOpenCompleted + (2):成功打开 URL 资源。调用 成功后触发该状态。 + + + AgoraRtePlayerStatePlaying + (3):正在播放状态。 + + + AgoraRtePlayerStatePaused + (4):播放已暂停。成功调用 后触发该状态。 + + + AgoraRtePlayerStatePlaybackCompleted + (5):播放已完成。 + + + AgoraRtePlayerStateStopped + (6):播放已停止。成功调用 后触发该状态。 + + + AgoraRtePlayerStateFailed + (7):播放失败。发生内部错误时触发该状态。收到该状态后需先调用 ,再调用 重新打开资源。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtevideomirrormode.dita b/dita/RTC-AIDOC/API/enum_rtevideomirrormode.dita new file mode 100644 index 00000000000..1e030b02871 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtevideomirrormode.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="RteVideoMirrorMode"/> + 视频镜像模式。视频镜像模式。视频镜像模式。视频镜像模式。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRteVideoMirrorModeAuto + (0):由 SDK 决定是否开启镜像模式。 +
    +
  • 本地视图镜像模式:使用前置摄像头时(默认)开启,使用后置摄像头时(默认)关闭。
  • +
  • 远端用户视图镜像模式:(默认)关闭。
  • +
+
+
+ + kRteVideoMirrorModeEnabled + (1):开启镜像模式。 + + + kRteVideoMirrorModeDisabled + (2):关闭镜像模式。 + + + AUTO + (0):由 SDK 决定是否开启镜像模式。 +
    +
  • 本地视频视图镜像模式:使用前置摄像头时,默认开启;使用后置摄像头时,默认关闭。
  • +
  • 远端用户视图镜像模式:默认关闭。
  • +
+
+
+ + ENABLED + (1):开启镜像模式。 + + + DISABLED + (2):关闭镜像模式。 + + + AgoraRteVideoMirrorModeAuto + (0):SDK 自动决定镜像模式。 +
    +
  • 本地视频视图镜像模式:使用前置摄像头时,默认启用镜像模式;使用后置摄像头时,默认关闭镜像模式。
  • +
  • 远端用户视图镜像模式:默认关闭镜像模式。
  • +
+
+
+ + AgoraRteVideoMirrorModeEnabled + (1):启用镜像模式。 + + + AgoraRteVideoMirrorModeDisabled + (2):关闭镜像模式。 + + + AgoraRteVideoMirrorModeAuto + (0):SDK 自动决定镜像模式。 +
    +
  • 本地视频视图镜像模式:使用前置摄像头时,默认启用镜像模式;使用后置摄像头时,默认关闭镜像模式。
  • +
  • 远端用户视图镜像模式:默认关闭镜像模式。
  • +
+
+
+ + AgoraRteVideoMirrorModeEnabled + (1):启用镜像模式。 + + + AgoraRteVideoMirrorModeDisabled + (2):关闭镜像模式。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtevideorendermode.dita b/dita/RTC-AIDOC/API/enum_rtevideorendermode.dita new file mode 100644 index 00000000000..472065b8495 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtevideorendermode.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="RteVideoRenderMode"/> + 视频渲染模式。视频渲染模式。视频渲染模式。视频渲染模式。 + +
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+ +
自从
+
自 v4.4.0 版本新增。
+
+
+
+
+ 枚举值 + + + kRteVideoRenderModeHidden + (0):视频按比例缩放以填满视图。若视频宽高比与视图不一致,超出视图的部分将被裁剪。 + + + kRteVideoRenderModeFit + (1):视频按比例缩放以适应视图。若视频宽高比与视图不一致,未被使用的区域将以黑边填充。 + + + HIDDEN + (0):按比例缩放视频尺寸,优先填满视口。若视频尺寸与视口不一致,超出部分将被裁剪。 + + + FIT + (1):按比例缩放视频尺寸,优先完整显示视频内容。若视频尺寸与视口不一致,未填满区域将显示黑边。 + + + AgoraRteVideoRenderModeHidden + (0):按比例缩放视频尺寸,优先填满视窗。若视频尺寸与视窗不一致,超出部分将被裁剪。 + + + AgoraRteVideoRenderModeFit + (1):按比例缩放视频尺寸,优先完整显示视频内容。若视频尺寸与视窗不一致,未填满区域将以黑色填充。 + + + AgoraRteVideoRenderModeHidden + (0):按比例缩放视频尺寸,优先填满视窗。若视频尺寸与视窗不一致,超出部分将被裁剪。 + + + AgoraRteVideoRenderModeFit + (1):按比例缩放视频尺寸,优先完整显示视频内容。若视频尺寸与视窗不一致,未填满区域将以黑色填充。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtmpstreamingevent.dita b/dita/RTC-AIDOC/API/enum_rtmpstreamingevent.dita new file mode 100644 index 00000000000..e89c66c1924 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtmpstreamingevent.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="RTMP_STREAMING_EVENT"/> + 旁路推流过程中的事件。旁路推流过程中的事件。旁路推流过程中的事件。 + +
+ 枚举值 + + + RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE + (1):在旁路推流过程中添加背景图或水印图失败。 + + + RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE + (2):该旁路推流地址已被占用。如需开启新的推流,请使用新的推流地址。 + + + RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT + (3):不支持该高级功能。 + + + RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN + (4):保留字段。 + + + AgoraRtmpStreamingEventFailedLoadImage + (1):在旁路推流中添加背景图或水印图时发生错误。 + + + AgoraRtmpStreamingEventUrlAlreadyInUse + (2):旁路推流地址已被使用。如需开启新的推流,请使用新的推流地址。 + + + AgoraRtmpStreamingEventAdvancedFeatureNotSupport + (3):不支持该功能。 + + + AgoraRtmpStreamingEventRequestTooOften + (4):保留字段。 + + + AgoraRtmpStreamingEventFailedLoadImage + (1):在旁路推流中添加背景图或水印图时发生错误。 + + + AgoraRtmpStreamingEventUrlAlreadyInUse + (2):旁路推流地址已被使用。如需开启新的推流,请使用新的推流地址。 + + + AgoraRtmpStreamingEventAdvancedFeatureNotSupport + (3):不支持该功能。 + + + AgoraRtmpStreamingEventRequestTooOften + (4):保留字段。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtmpstreamlifecycletype.dita b/dita/RTC-AIDOC/API/enum_rtmpstreamlifecycletype.dita new file mode 100644 index 00000000000..8dfb9ac56ac --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtmpstreamlifecycletype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="RTMP_STREAM_LIFE_CYCLE_TYPE"/> + CDN 推流生命周期类型。CDN 推流的生命周期。CDN 推流的生命周期。 + +
+ 枚举值 + + + RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL + (1):绑定到频道的生命周期。如果所有主播离开频道,CDN 推流将在 30 秒后停止。 + + + RTMP_STREAM_LIFE_CYCLE_BIND2OWNER + (2):绑定到 RTMP 流拥有者的生命周期。如果拥有者离开频道,CDN 推流将立即停止。 + + + AgoraRtmpStreamLifeCycleBindToChannel + (1):绑定到频道生命周期。如果所有主播离开频道,CDN 推流将在 30 秒后停止。 + + + AgoraRtmpStreamLifeCycleBindToOwner + (2):绑定到 RTMP 流的拥有者。如果拥有者离开频道,CDN 推流将立即停止。 + + + AgoraRtmpStreamLifeCycleBindToChannel + (1):绑定到频道生命周期。如果所有主播离开频道,CDN 推流将在 30 秒后停止。 + + + AgoraRtmpStreamLifeCycleBindToOwner + (2):绑定到 RTMP 流的拥有者。如果拥有者离开频道,CDN 推流将立即停止。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtmpstreampublishreason.dita b/dita/RTC-AIDOC/API/enum_rtmpstreampublishreason.dita new file mode 100644 index 00000000000..3b5bc109461 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtmpstreampublishreason.dita @@ -0,0 +1,217 @@ + + + + <ph keyref="RTMP_STREAM_PUBLISH_REASON"/> + RTMP 或 RTMPS 推流状态变更的原因。RTMP 或 RTMPS 推流状态变更的原因。RTMP 或 RTMPS 推流状态变更的原因。 + +
+ 枚举值 + + + RTMP_STREAM_PUBLISH_REASON_OK + (0):RTMP 或 RTMPS 推流尚未开始或已结束。 + + + RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT + (1):参数无效。请检查参数设置是否正确。 + + + RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED + (2):RTMP 或 RTMPS 推流为加密流,无法发布。 + + + RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT + (3):RTMP 或 RTMPS 推流连接超时。 + + + RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR + (4):声网推流服务器发生内部错误。 + + + RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR + (5):CDN 服务器发生错误。 + + + RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN + (6):RTMP 或 RTMPS 推流过于频繁。 + + + RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT + (7):主播发布的 URL 超过 10 条。请删除不必要的 URL 后再添加新 URL。 + + + RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED + (8):主播操作了其他主播的 URL,例如更新或停止其他主播的推流。请检查应用逻辑。 + + + RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND + (9):声网服务器未找到对应的 RTMP 或 RTMPS 推流。 + + + RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED + (10):RTMP 或 RTMPS 推流地址格式不支持。请检查地址格式是否正确。 + + + RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER + (11):用户角色不是主播,无法使用 CDN 直播功能。请检查应用代码逻辑。 + + + RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM + (13):在无转码推流场景中调用了 方法更新转码配置。请检查应用代码逻辑。 + + + RTMP_STREAM_PUBLISH_REASON_NET_DOWN + (14):主播端网络发生错误。 + + + RTMP_STREAM_PUBLISH_REASON_INVALID_APPID + (15):App ID 无权限使用 CDN 直播功能。 + + + RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE + (16):项目无权限使用推流服务。 + + + RTMP_STREAM_UNPUBLISH_REASON_OK + (100):推流已正常停止。调用停止媒体推送后,SDK 返回该值。 + + + AgoraRtmpStreamingReasonOK + (0):RTMP 或 RTMPS 推流尚未开始或已结束。 + + + AgoraRtmpStreamingReasonInvalidParameters + (1):参数无效。请检查参数设置是否正确。 + + + AgoraRtmpStreamingReasonEncryptedStreamNotAllowed + (2):推流为加密流,无法发布。 + + + AgoraRtmpStreamingReasonConnectionTimeout + (3):RTMP 或 RTMPS 推流连接超时。 + + + AgoraRtmpStreamingReasonInternalServerError + (4):声网推流服务器发生错误。 + + + AgoraRtmpStreamingReasonRtmpServerError + (5):CDN 服务器发生错误。 + + + AgoraRtmpStreamingReasonTooOften + (6):推流操作过于频繁。 + + + AgoraRtmpStreamingReasonReachLimit + (7):主播发布的 URL 超过 10 个。请删除不必要的 URL 后再添加新 URL。 + + + AgoraRtmpStreamingReasonNotAuthorized + (8):主播操作了其他主播的 URL,例如更新或停止其他主播的流。请检查应用逻辑。 + + + AgoraRtmpStreamingReasonStreamNotFound + (9):声网服务器未找到对应的 RTMP 或 RTMPS 推流。 + + + AgoraRtmpStreamingReasonFormatNotSupported + (10):推流地址格式不支持。请检查 URL 格式是否正确。 + + + AgoraRtmpStreamingReasonNotBroadcaster + (11):用户角色不是主播,无法使用 CDN 推流功能。请检查应用代码逻辑。 + + + AgoraRtmpStreamingReasonTranscodingNoMixStream + (13):在无转码推流场景中调用了 方法更新转码配置。请检查应用代码逻辑。 + + + AgoraRtmpStreamingReasonNetDown + (14):主播网络发生错误。 + + + AgoraRtmpStreamingReasonInvalidAppId + (15):用户的 AppId 未被授权推流。 + + + AgoraRtmpStreamingReasonInvalidPrivilege + (16):项目无权限使用推流服务。 + + + AgoraRtmpStreamingReasonUnpublishOK + (100):推流已正常停止。调用停止推流后,SDK 返回该值。 + + + AgoraRtmpStreamingReasonOK + (0):RTMP 或 RTMPS 推流尚未开始或已结束。 + + + AgoraRtmpStreamingReasonInvalidParameters + (1):参数无效。请检查参数设置是否正确。 + + + AgoraRtmpStreamingReasonEncryptedStreamNotAllowed + (2):推流为加密流,无法发布。 + + + AgoraRtmpStreamingReasonConnectionTimeout + (3):RTMP 或 RTMPS 推流连接超时。 + + + AgoraRtmpStreamingReasonInternalServerError + (4):声网推流服务器发生错误。 + + + AgoraRtmpStreamingReasonRtmpServerError + (5):CDN 服务器发生错误。 + + + AgoraRtmpStreamingReasonTooOften + (6):推流操作过于频繁。 + + + AgoraRtmpStreamingReasonReachLimit + (7):主播发布的 URL 超过 10 个。请删除不必要的 URL 后再添加新 URL。 + + + AgoraRtmpStreamingReasonNotAuthorized + (8):主播操作了其他主播的 URL,例如更新或停止其他主播的流。请检查应用逻辑。 + + + AgoraRtmpStreamingReasonStreamNotFound + (9):声网服务器未找到对应的 RTMP 或 RTMPS 推流。 + + + AgoraRtmpStreamingReasonFormatNotSupported + (10):推流地址格式不支持。请检查 URL 格式是否正确。 + + + AgoraRtmpStreamingReasonNotBroadcaster + (11):用户角色不是主播,无法使用 CDN 推流功能。请检查应用代码逻辑。 + + + AgoraRtmpStreamingReasonTranscodingNoMixStream + (13):在无转码推流场景中调用了 方法更新转码配置。请检查应用代码逻辑。 + + + AgoraRtmpStreamingReasonNetDown + (14):主播网络发生错误。 + + + AgoraRtmpStreamingReasonInvalidAppId + (15):用户的 AppId 未被授权推流。 + + + AgoraRtmpStreamingReasonInvalidPrivilege + (16):项目无权限使用推流服务。 + + + AgoraRtmpStreamingReasonUnpublishOK + (100):推流已正常停止。调用停止推流后,SDK 返回该值。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_rtmpstreampublishstate.dita b/dita/RTC-AIDOC/API/enum_rtmpstreampublishstate.dita new file mode 100644 index 00000000000..d0da53c1687 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_rtmpstreampublishstate.dita @@ -0,0 +1,100 @@ + + + + <ph keyref="RTMP_STREAM_PUBLISH_STATE"/> + 旁路推流状态。旁路推流状态。旁路推流状态。 + +
+ 枚举值 + + + RTMP_STREAM_PUBLISH_STATE_IDLE + (0):旁路推流未开始或已结束。 + + + RTMP_STREAM_PUBLISH_STATE_CONNECTING + (1):正在连接推流服务器和 CDN 服务器。 + + + RTMP_STREAM_PUBLISH_STATE_RUNNING + (2):RTMP 或 RTMPS 推流中。SDK 成功开始推流并返回该状态。 + + + RTMP_STREAM_PUBLISH_STATE_RECOVERING + (3):RTMP 或 RTMPS 推流恢复中。当 CDN 异常或推流中断时,SDK 会尝试恢复推流并返回该状态。 +
    +
  • 若恢复成功,返回 RTMP_STREAM_PUBLISH_STATE_RUNNING(2)。
  • +
  • 若 60 秒内未恢复或发生服务器错误,返回 RTMP_STREAM_PUBLISH_STATE_FAILURE(4)。如认为 60 秒过长,可主动尝试重连。
  • +
+
+
+ + RTMP_STREAM_PUBLISH_STATE_FAILURE + (4):RTMP 或 RTMPS 推流失败。你可通过返回的错误码排查失败原因。 + + + RTMP_STREAM_PUBLISH_STATE_DISCONNECTING + (5):SDK 正在断开与声网推流服务器和 CDN 的连接。调用 正常停止推流时,SDK 会依次上报状态为 RTMP_STREAM_PUBLISH_STATE_DISCONNECTINGRTMP_STREAM_PUBLISH_STATE_IDLE + + + AgoraRtmpStreamingStateIdle + (0):旁路推流未开始或已结束。 + + + AgoraRtmpStreamingStateConnecting + (1):正在连接推流服务器和 CDN 服务器。 + + + AgoraRtmpStreamingStateRunning + (2):RTMP 或 RTMPS 推流已发布。SDK 成功发布 RTMP 或 RTMPS 推流后返回该状态。 + + + AgoraRtmpStreamingStateRecovering + (3):RTMP 或 RTMPS 推流正在恢复。当 CDN 异常或推流中断时,SDK 会尝试恢复推流并返回该状态。 +
    +
  • 如果恢复成功,将返回 AgoraRtmpStreamingStateRunning(2)。
  • +
  • 如果在 60 秒内未恢复或发生服务器错误,将返回 AgoraRtmpStreamingStateFailure(4)。如认为 60 秒过长,也可主动尝试重连。
  • +
+
+
+ + AgoraRtmpStreamingStateFailure + (4):RTMP 或 RTMPS 推流失败。你可以通过返回的错误码排查失败原因。 + + + AgoraRtmpStreamingStateDisconnecting + (5):SDK 正在断开与声网推流服务器和 CDN 的连接。当调用 正常停止旁路推流时,SDK 会依次上报状态为 AgoraRtmpStreamingStateDisconnecting 和 AgoraRtmpStreamingStateIdle。 + + + AgoraRtmpStreamingStateIdle + (0):旁路推流未开始或已结束。 + + + AgoraRtmpStreamingStateConnecting + (1):正在连接推流服务器和 CDN 服务器。 + + + AgoraRtmpStreamingStateRunning + (2):RTMP 或 RTMPS 推流已发布。SDK 成功发布 RTMP 或 RTMPS 推流后返回该状态。 + + + AgoraRtmpStreamingStateRecovering + (3):RTMP 或 RTMPS 推流正在恢复。当 CDN 异常或推流中断时,SDK 会尝试恢复推流并返回该状态。 +
    +
  • 如果恢复成功,将返回 AgoraRtmpStreamingStateRunning(2)。
  • +
  • 如果在 60 秒内未恢复或发生服务器错误,将返回 AgoraRtmpStreamingStateFailure(4)。如认为 60 秒过长,也可主动尝试重连。
  • +
+
+
+ + AgoraRtmpStreamingStateFailure + (4):RTMP 或 RTMPS 推流失败。你可以通过返回的错误码排查失败原因。 + + + AgoraRtmpStreamingStateDisconnecting + (5):SDK 正在断开与声网推流服务器和 CDN 的连接。当调用 正常停止旁路推流时,SDK 会依次上报状态为 AgoraRtmpStreamingStateDisconnecting 和 AgoraRtmpStreamingStateIdle。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_screencaptureframeratecapability.dita b/dita/RTC-AIDOC/API/enum_screencaptureframeratecapability.dita new file mode 100644 index 00000000000..25e6e21ec6d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_screencaptureframeratecapability.dita @@ -0,0 +1,41 @@ + + + + <ph keyref="SCREEN_CAPTURE_FRAMERATE_CAPABILITY"/> + 屏幕共享设备所支持的最高帧率。屏幕共享设备支持的最高帧率。 + +
+ 枚举值 + + + SCREEN_CAPTURE_FRAMERATE_CAPABILITY_15_FPS + (0):设备支持最高 15 fps。 + + + SCREEN_CAPTURE_FRAMERATE_CAPABILITY_30_FPS + (1):设备支持最高 30 fps。 + + + SCREEN_CAPTURE_FRAMERATE_CAPABILITY_60_FPS + (2):设备支持最高 60 fps。 + + + AgoraScreenCaptureFrameRateUnKonw + (-1):未知帧率。 + + + AgoraScreenCaptureFrameRate15FPS + (0):设备支持的最高帧率为 15 fps。 + + + AgoraScreenCaptureFrameRate30FPS + (1):设备支持的最高帧率为 30 fps。 + + + AgoraScreenCaptureFrameRate60FPS + (2):设备支持的最高帧率为 60 fps。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_screencapturesourcetype.dita b/dita/RTC-AIDOC/API/enum_screencapturesourcetype.dita new file mode 100644 index 00000000000..1762cb2f47a --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_screencapturesourcetype.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="ScreenCaptureSourceType"/> + 共享目标的类型。共享目标的类型。 + +
+

中设置。

+

中设置。

+
+
+ 枚举值 + + + ScreenCaptureSourceType_Unknown + (-1):未知类型。 + + + ScreenCaptureSourceType_Window + (0):共享目标为窗口。 + + + ScreenCaptureSourceType_Screen + (1):共享目标为某个显示器的屏幕。 + + + ScreenCaptureSourceType_Custom + (2):保留参数。 + + + AgoraScreenCaptureSourceTypeUnknown + (-1):未知类型。 + + + AgoraScreenCaptureSourceTypeWindow + (0):共享目标为窗口。 + + + AgoraScreenCaptureSourceTypeScreen + (1):共享目标为某个显示器的屏幕。 + + + AgoraScreenCaptureSourceTypeCustom + (2):保留参数。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_screencolortype.dita b/dita/RTC-AIDOC/API/enum_screencolortype.dita new file mode 100644 index 00000000000..add578e2cc0 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_screencolortype.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="SCREEN_COLOR_TYPE"/> + 屏幕颜色类型。屏幕颜色类型。屏幕颜色类型。 + +
+ 枚举值 + + + SCREEN_COLOR_AUTO + (0):自动选择屏幕颜色。 + + + SCREEN_COLOR_GREEN + (1):绿色屏幕颜色。 + + + SCREEN_COLOR_BLUE + (2):蓝色屏幕颜色。 + + + ScreenColorAuto + (0):自动选择屏幕颜色类型。 + + + ScreenColorGreen + (1):使用绿色作为屏幕颜色类型。 + + + ScreenColorBlue + (2):使用蓝色作为屏幕颜色类型。 + + + ScreenColorAuto + (0):自动选择屏幕颜色类型。 + + + ScreenColorGreen + (1):使用绿色作为屏幕颜色类型。 + + + ScreenColorBlue + (2):使用蓝色作为屏幕颜色类型。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_screenscenariotype.dita b/dita/RTC-AIDOC/API/enum_screenscenariotype.dita new file mode 100644 index 00000000000..00c4f4ac4de --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_screenscenariotype.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="SCREEN_SCENARIO_TYPE"/> + 屏幕共享场景类型。屏幕共享场景类型。屏幕共享场景类型。屏幕共享场景类型。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+
+
+ 枚举值 + + + SCREEN_SCENARIO_DOCUMENT + (1):文档场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享文档、幻灯片和表格的场景。 + + + SCREEN_SCENARIO_GAMING + (2):游戏场景。优先保证屏幕共享的流畅性。适用于共享游戏画面的场景。 + + + SCREEN_SCENARIO_VIDEO + (3):视频场景。优先保证屏幕共享的流畅性。适用于共享电影或直播视频的场景。 + + + SCREEN_SCENARIO_RDC + (4):远程控制场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享被远程控制的设备桌面的场景。 + + + SCREEN_SCENARIO_DOCUMENT + (1):文档场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享文档、幻灯片和表格的场景。 + + + SCREEN_SCENARIO_GAMING + (2):游戏场景。优先保证屏幕共享的流畅性。适用于共享游戏的场景。 + + + SCREEN_SCENARIO_VIDEO + (3):视频场景。优先保证屏幕共享的流畅性。适用于共享电影或直播视频的场景。 + + + AgoraScreenScenarioDocument + (1):(默认)文档场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享文档、幻灯片和表格等内容。 + + + AgoraScreenScenarioGaming + (2):游戏场景。优先保证屏幕共享的流畅性。适用于共享游戏画面。 + + + AgoraScreenScenarioVideo + (3):视频场景。优先保证屏幕共享的流畅性。适用于共享电影或直播视频。 + + + AgoraScreenScenarioRDC + (4):远程控制场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享被远程控制的设备桌面。 + + + AgoraScreenScenarioDocument + (1):(默认)文档场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享文档、幻灯片和表格等内容。 + + + AgoraScreenScenarioGaming + (2):游戏场景。优先保证屏幕共享的流畅性。适用于共享游戏画面。 + + + AgoraScreenScenarioVideo + (3):视频场景。优先保证屏幕共享的流畅性。适用于共享电影或直播视频。 + + + AgoraScreenScenarioRDC + (4):远程控制场景。优先保证屏幕共享的视频质量,并降低接收端的共享视频延迟。适用于共享被远程控制的设备桌面。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_segmodeltype.dita b/dita/RTC-AIDOC/API/enum_segmodeltype.dita new file mode 100644 index 00000000000..ae42432e440 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_segmodeltype.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="SEG_MODEL_TYPE"/> + 背景处理所使用的算法类型。背景处理所使用的算法类型。背景处理所使用的算法类型。 + +
+ 枚举值 + + + SEG_MODEL_AI + (1):(默认)使用适用于所有场景的算法。 + + + SEG_MODEL_GREEN + (2):使用专为绿幕背景场景设计的算法。 + + + SegModelAgoraAi + (1)(默认):使用适用于所有场景的算法。 + + + SegModelAgoraGreen + (2):使用专为绿幕背景场景设计的算法。 + + + SegModelAgoraAi + (1)(默认):使用适用于所有场景的算法。 + + + SegModelAgoraGreen + (2):使用专为绿幕背景场景设计的算法。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_simulcaststreammode.dita b/dita/RTC-AIDOC/API/enum_simulcaststreammode.dita new file mode 100644 index 00000000000..58a0dc6a373 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_simulcaststreammode.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="SIMULCAST_STREAM_MODE"/> + 设置发送多质量层级视频流的模式。设置发送不同质量层级视频流的模式。设置发送不同质量层级视频流的模式。设置发送不同质量层级视频流的模式。 + +
+ 枚举值 + + + AUTO_SIMULCAST_STREAM + (-1):默认情况下,在接收端发出对视频小流的订阅请求之前,不发送视频小流;收到订阅请求后,自动开始发送视频小流。 + + + DISABLE_SIMULCAST_STREAM + (0):始终不发送视频小流。 + + + ENABLE_SIMULCAST_STREAM + (1):始终发送视频小流。 + + + AUTO_SIMULCAST_STREAM + (-1):默认不发送视频小流,收到接收端的订阅请求后自动开始发送。 + + + DISABLE_SIMULCAST_STREAM + (0):从不发送视频小流。 + + + ENABLE_SIMULCAST_STREAM + (1):始终发送视频小流。 + + + AgoraAutoSimulcastStream + (-1):默认情况下,在接收端发出对低质量层级视频流的订阅请求之前,不发送低质量层级视频流;收到订阅请求后,自动开始发送低质量层级视频流。 + + + AgoraDisableSimulcastStream + (0):从不发送低质量层级视频流。 + + + AgoraEnableSimulcastStream + (1):始终发送低质量层级视频流。 + + + AgoraAutoSimulcastStream + (-1):默认情况下,在接收端发出对低质量层级视频流的订阅请求之前,不发送低质量层级视频流;收到订阅请求后,自动开始发送低质量层级视频流。 + + + AgoraDisableSimulcastStream + (0):从不发送低质量层级视频流。 + + + AgoraEnableSimulcastStream + (1):始终发送低质量层级视频流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_streamfallbackoptions.dita b/dita/RTC-AIDOC/API/enum_streamfallbackoptions.dita new file mode 100644 index 00000000000..e29fde38cb5 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_streamfallbackoptions.dita @@ -0,0 +1,157 @@ + + + + <ph keyref="STREAM_FALLBACK_OPTIONS"/> + 网络较差时的音视频流回退处理选项。网络较差时的音视频流回退处理选项。网络较差时的音视频流回退处理选项。网络较差时的音视频流回退处理选项。 + +
+ 枚举值 + + + STREAM_FALLBACK_OPTION_DISABLED + (0):不进行音视频流回退处理,无法保证音视频质量。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW + (1):仅接收低质量(低分辨率、低码率)的视频流。 + + + STREAM_FALLBACK_OPTION_AUDIO_ONLY + (2):当网络较差时,优先接收视频小流;若网络极差导致无法显示视频,则回退为仅接收音频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 + (3):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_1 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 + (4):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_2 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 + (5):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_3 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 + (6):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_4 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 + (7):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_5 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 + (8):当网络较差时,若接收端调用了 且存在对应的多层级视频流,则接收 VIDEO_STREAM_LAYER_6 层的视频流。回退下限由 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_X 决定。 + + + STREAM_FALLBACK_OPTION_DISABLED + (0):不进行音视频流回退处理,无法保证音视频质量。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW + (1):仅接收低质量(低分辨率、低码率)的视频流。 + + + STREAM_FALLBACK_OPTION_AUDIO_ONLY + (2):当网络较差时,优先接收视频小流;若网络极差导致无法显示视频,则回退为仅接收音频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 + (3):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_1 的视频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 + (4):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_2 的视频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 + (5):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_3 的视频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 + (6):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_4 的视频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 + (7):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_5 的视频流。 + + + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 + (8):当网络较差且存在多质量层级视频流时,接收来自 VIDEO_STREAM_LAYER_6 的视频流。 + + + AgoraStreamFallbackOptionDisabled + (0):不进行音视频流回退处理,无法保证音视频质量。 + + + AgoraStreamFallbackOptionVideoStreamLow + (1):仅接收低质量(低分辨率、低码率)的视频流。 + + + AgoraStreamFallbackOptionAudioOnly + (2):当网络较差时,优先接收视频小流;若网络极差导致无法显示视频,则回退为仅接收音频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer1 + (3):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_1 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer2 + (4):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_2 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer3 + (5):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_3 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer4 + (6):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_4 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer5 + (7):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_5 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer6 + (8):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_6 的多质量层级视频流。 + + + AgoraStreamFallbackOptionDisabled + (0):不进行音视频流回退处理,无法保证音视频质量。 + + + AgoraStreamFallbackOptionVideoStreamLow + (1):仅接收低质量(低分辨率、低码率)的视频流。 + + + AgoraStreamFallbackOptionAudioOnly + (2):当网络较差时,优先接收视频小流;若网络极差导致无法显示视频,则回退为仅接收音频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer1 + (3):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_1 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer2 + (4):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_2 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer3 + (5):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_3 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer4 + (6):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_4 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer5 + (7):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_5 的多质量层级视频流。 + + + AgoraStreamFallbackOptionVideoStreamLayer6 + (8):当网络较差且相关层存在时,按顺序接收来自 agora::rtc::VIDEO_STREAM_LAYER_6 的多质量层级视频流。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_streampublishstate.dita b/dita/RTC-AIDOC/API/enum_streampublishstate.dita new file mode 100644 index 00000000000..72f5e16078c --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_streampublishstate.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="STREAM_PUBLISH_STATE"/> + 发布状态。发布状态。发布状态。 + +
+ 枚举值 + + + PUB_STATE_IDLE + (0):加入频道后处于初始发布状态。 + + + PUB_STATE_NO_PUBLISHED + (1):发布本地流失败。可能的原因包括: +
    +
  • 本地用户调用 muteLocalAudioStream(true)muteLocalVideoStream(true) 停止发送本地媒体流;
  • +
  • 调用 禁用本地音频或视频模块;
  • +
  • 调用 enableLocalAudio(false)enableLocalVideo(false) 禁用本地音视频采集;
  • +
  • 本地用户的角色为观众。
  • +
+
+
+ + PUB_STATE_PUBLISHING + (2):正在发布本地流。 + + + PUB_STATE_PUBLISHED + (3):本地流发布成功。 + + + AgoraStreamPublishStateIdle + (0):加入频道后处于初始发布状态。 + + + AgoraStreamPublishStateNoPublished + (1):本地流发布失败。可能的原因包括:本地用户调用 )或 )停止发送本地媒体流;调用 禁用本地音频或视频模块;调用 )或 )禁用本地音视频采集;或本地用户角色为观众。 + + + AgoraStreamPublishStatePublishing + (2):正在发布中。 + + + AgoraStreamPublishStatePublished + (3):发布成功。 + + + AgoraStreamPublishStateIdle + (0):加入频道后处于初始发布状态。 + + + AgoraStreamPublishStateNoPublished + (1):本地流发布失败。可能的原因包括:本地用户调用 )或 )停止发送本地媒体流;调用 禁用本地音频或视频模块;调用 )或 )禁用本地音视频采集;或本地用户角色为观众。 + + + AgoraStreamPublishStatePublishing + (2):正在发布中。 + + + AgoraStreamPublishStatePublished + (3):发布成功。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_streamsubscribestate.dita b/dita/RTC-AIDOC/API/enum_streamsubscribestate.dita new file mode 100644 index 00000000000..fb32ae7545b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_streamsubscribestate.dita @@ -0,0 +1,112 @@ + + + + <ph keyref="STREAM_SUBSCRIBE_STATE"/> + 订阅状态。订阅状态。订阅状态。 + +
+ 枚举值 + + + SUB_STATE_IDLE + (0):加入频道后的初始订阅状态。 + + + SUB_STATE_NO_SUBSCRIBED + (1):订阅远端流失败。可能的原因包括: +
    +
  • 远端用户: +
      +
    • 调用 muteLocalAudioStream(true)muteLocalVideoStream(true) 停止发送本地媒体流。
    • +
    • 调用 禁用本地音频或视频模块。
    • +
    • 调用 enableLocalAudio(false)enableLocalVideo(false) 禁用本地音视频采集。
    • +
    • 角色为观众。
    • +
    +
  • +
  • 本地用户: +
      +
    • 调用 muteRemoteAudioStream(true)muteAllRemoteAudioStreams(true) 停止接收远端音频流。
    • +
    • 调用 muteRemoteVideoStream(true)muteAllRemoteVideoStreams(true) 停止接收远端视频流。
    • +
    +
  • +
+
+
+ + SUB_STATE_SUBSCRIBING + (2):正在订阅远端流。 + + + SUB_STATE_SUBSCRIBED + (3):已成功接收远端流。 + + + AgoraStreamSubscribeStateIdle + (0):加入频道后的初始订阅状态。 + + + AgoraStreamSubscribeStateNoSubscribed + (1):订阅远端流失败。可能的原因包括: +
    +
  • 远端用户: +
      +
    • 调用 (YES)或 (YES)停止发送本地媒体流。
    • +
    • 调用 禁用本地音频或视频模块。
    • +
    • 调用 (NO)或 (NO)禁用本地音频或视频采集。
    • +
    • 角色为观众。
    • +
    +
  • +
  • 本地用户: +
      +
    • 调用 (YES)或 (YES)停止接收远端音频流。
    • +
    • 调用 (YES)或 (YES)停止接收远端视频流。
    • +
    +
  • +
+
+
+ + AgoraStreamSubscribeStateSubscribing + (2):正在订阅远端流。 + + + AgoraStreamSubscribeStateSubscribed + (3):已成功接收远端流。 + + + AgoraStreamSubscribeStateIdle + (0):加入频道后的初始订阅状态。 + + + AgoraStreamSubscribeStateNoSubscribed + (1):订阅远端流失败。可能的原因包括: +
    +
  • 远端用户: +
      +
    • 调用 (YES)或 (YES)停止发送本地媒体流。
    • +
    • 调用 禁用本地音频或视频模块。
    • +
    • 调用 (NO)或 (NO)禁用本地音频或视频采集。
    • +
    • 角色为观众。
    • +
    +
  • +
  • 本地用户: +
      +
    • 调用 (YES)或 (YES)停止接收远端音频流。
    • +
    • 调用 (YES)或 (YES)停止接收远端视频流。
    • +
    +
  • +
+
+
+ + AgoraStreamSubscribeStateSubscribing + (2):正在订阅远端流。 + + + AgoraStreamSubscribeStateSubscribed + (3):已成功接收远端流。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_userofflinereasontype.dita b/dita/RTC-AIDOC/API/enum_userofflinereasontype.dita new file mode 100644 index 00000000000..a5485e9377f --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_userofflinereasontype.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="USER_OFFLINE_REASON_TYPE"/> + 用户离线的原因。用户离线的原因。用户离线的原因。 + +
+ 枚举值 + + + USER_OFFLINE_QUIT + (0):用户主动退出通话。 + + + USER_OFFLINE_DROPPED + (1):在一定时间内未收到数据包,SDK 超时,用户掉线。 + 如果用户退出通话但未将消息传递给 SDK(由于信道不可靠),SDK 会认为用户掉线。 + + + + USER_OFFLINE_BECOME_AUDIENCE + (2):用户将客户端角色从主播切换为观众。 + + + AgoraUserOfflineReasonQuit + (0):用户主动退出通话。 + + + AgoraUserOfflineReasonDropped + (1):在一定时间内未收到数据包,SDK 超时,用户掉线。 + 如果用户退出通话但未将该消息传递给 SDK(由于信道不可靠),SDK 会认为该用户掉线。 + + + + AgoraUserOfflineReasonBecomeAudience + (2):用户将客户端角色从主播切换为观众。 + + + AgoraUserOfflineReasonQuit + (0):用户主动退出通话。 + + + AgoraUserOfflineReasonDropped + (1):在一定时间内未收到数据包,SDK 超时,用户掉线。 + 如果用户退出通话但未将该消息传递给 SDK(由于信道不可靠),SDK 会认为该用户掉线。 + + + + AgoraUserOfflineReasonBecomeAudience + (2):用户将客户端角色从主播切换为观众。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoapplicationscenariotype.dita b/dita/RTC-AIDOC/API/enum_videoapplicationscenariotype.dita new file mode 100644 index 00000000000..4c3b18e3cf2 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoapplicationscenariotype.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="VIDEO_APPLICATION_SCENARIO_TYPE"/> + 视频应用场景类型。视频应用场景类型。视频应用场景类型。视频应用场景类型。 + +
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+ +
自从
+
自 v4.2.0 版本新增。
+
+
+
+
+ 枚举值 + + + APPLICATION_SCENARIO_GENERAL + (0):默认通用场景。 + + + APPLICATION_SCENARIO_MEETING + + 如果用户调用了 setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) 并设置为不发送视频小流(DISABLE_SIMULCAST_STREAM),则会议场景下低质量流的动态调整将不生效。(1):会议场景。适用于会议场景,SDK 会自动启用以下策略: +
    +
  • 在需要视频小流具备高码率的场景中,SDK 会启用多种抗网络拥塞技术,提升低质量流性能,确保订阅端流畅接收;
  • +
  • SDK 实时监控视频大流的订阅人数,并动态调整配置: +
      +
    • 若无人订阅,自动降低码率和帧率以节省上行带宽;
    • +
    • 若有人订阅,则恢复为最近一次调用 设置的 配置,若未设置,则使用以下默认值: +
        +
      • Windows 和 macOS 分辨率为 1280 × 720,Android 和 iOS 为 960 × 540;
      • +
      • 帧率为 15 fps;
      • +
      • 码率为 Windows 和 macOS 为 1600 Kbps,Android 和 iOS 为 1000 Kbps。
      • +
      +
    • +
    +
  • +
  • SDK 还会监控视频小流的订阅人数,并根据订阅情况动态启用或禁用: +
      +
    • 若无人订阅,自动禁用以节省上行带宽;
    • +
    • 若有人订阅,则启用并恢复为最近一次调用 设置的 配置,若未设置,则使用以下默认值:分辨率为 480 × 272,帧率为 15 fps,码率为 500 Kbps。
    • +
    +
  • +
+
+
+ + APPLICATION_SCENARIO_1V1 + (2):1 对 1 视频通话场景。适用于一对一直播场景。为满足低延迟和高质量视频的需求,SDK 优化了策略,提升了视频质量、首帧渲染速度、中低端设备的延迟表现以及弱网下的流畅性。 + 该枚举值仅适用于主播对主播的场景。 + + + + APPLICATION_SCENARIO_LIVESHOW + (3):直播秀场景。适用于秀场类场景,强调快速渲染和高画质。SDK 进行了多项性能优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),并启用 B 帧编码以提升图像质量和带宽效率。即使在网络较差或低端设备上,也能提供更佳的视频质量和播放流畅性。 + + + APPLICATION_SCENARIO_GENERAL + (0):默认通用场景。 + + + APPLICATION_SCENARIO_MEETING + + 如果用户调用了 setDualStreamMode(Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig) 并设置为永不发送视频小流(DISABLE_SIMULCAST_STREAM),则会议场景下视频小流的动态调整将不生效。(1):适用于会议场景。SDK 会自动启用以下策略: +
    +
  • 在需要视频小流具备高码率的会议场景中,SDK 会启用多种网络拥塞应对技术,提升视频小流性能,确保订阅端流畅接收;
  • +
  • 实时监控视频大流的订阅人数,并动态调整配置: +
      +
    • 若无人订阅视频大流,SDK 会自动降低其码率和帧率以节省上行带宽;
    • +
    • 若有人订阅视频大流,SDK 会将其重置为最近一次调用 设置的 配置,若未设置,则使用以下默认值:分辨率为 960 × 540,帧率为 15 fps,码率为 1000 Kbps;
    • +
    +
  • +
  • 实时监控视频小流的订阅人数,并动态启用或禁用该流: +
      +
    • 若无人订阅视频小流,SDK 会自动禁用该流以节省上行带宽;
    • +
    • 若有人订阅视频小流,SDK 会启用该流并重置为最近一次调用 setDualStreamMode(Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig) 设置的 配置,若未设置,则使用以下默认值:分辨率为 480 × 272,帧率为 15 fps,码率为 500 Kbps。
    • +
    +
  • +
+
+
+ + APPLICATION_SCENARIO_1V1 + (2):适用于一对一直播场景。为满足低延迟和高质量视频的需求,SDK 优化了策略,在视频质量、首帧渲染、中低端设备延迟以及弱网环境下的流畅性方面提升了性能。 + 该枚举值仅适用于主播对主播的场景。 + + + + APPLICATION_SCENARIO_LIVESHOW + (3):适用于秀场场景。在该场景中,快速渲染和高画质至关重要。SDK 进行了多项优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),并启用 B 帧编码以提升图像质量和带宽效率。即使在网络较差或低端设备上,也能提供更高的视频质量和流畅播放体验。 + + + AgoraApplicationGeneralScenario + (0):通用场景(默认)。 + + + AgoraApplicationMeetingScenario + (1):会议场景。SDK 会自动启用多项策略:在需要视频小流具备高码率的场景中,SDK 启用多种抗网络拥塞技术,提升低质量流性能,确保订阅端流畅接收;实时监控视频大流的订阅人数并动态调整配置:若无人订阅,高质量流的码率和帧率将自动降低以节省上行带宽;若有人订阅,则恢复为最近一次调用 设置的 配置,若未设置,则默认参数为:iOS:分辨率 960 × 540,帧率 15 fps,码率 1000 Kbps;macOS:分辨率 1280 × 720,帧率 15 fps,码率 1600 Kbps。SDK 也会实时监控视频小流的订阅人数并动态启用或禁用该流:若无人订阅,自动禁用以节省带宽;若有人订阅,则启用并恢复为最近一次调用 设置的 配置,若未设置,则默认参数为:分辨率 480 × 272,帧率 15 fps,码率 500 Kbps。 + 如果调用了 并设置为从不发送视频小流(AgoraDisableSimulcastStream),则会议场景下低质量流的动态调整不生效。 + + + + AgoraApplication1V1Scenario + (2):一对一直播场景。为满足低延迟和高质量视频的需求,SDK 优化了策略,提升了视频质量、首帧渲染速度、中低端设备的延迟表现以及弱网下的流畅性。 + 该枚举值仅适用于主播对主播的场景。 + + + + AgoraApplicationLiveShowScenario + (3):Show Room 场景。该场景对快速渲染和高画质要求较高。SDK 进行了多项优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),启用 B 帧编码以提升图像质量和带宽效率,即使在弱网或低端设备上也能提供更好的视频质量和播放流畅性。 + + + AgoraApplicationGeneralScenario + (0):通用场景(默认)。 + + + AgoraApplicationMeetingScenario + (1):会议场景。SDK 会自动启用多项策略:在需要视频小流具备高码率的场景中,SDK 启用多种抗网络拥塞技术,提升低质量流性能,确保订阅端流畅接收;实时监控视频大流的订阅人数并动态调整配置:若无人订阅,高质量流的码率和帧率将自动降低以节省上行带宽;若有人订阅,则恢复为最近一次调用 设置的 配置,若未设置,则默认参数为:iOS:分辨率 960 × 540,帧率 15 fps,码率 1000 Kbps;macOS:分辨率 1280 × 720,帧率 15 fps,码率 1600 Kbps。SDK 也会实时监控视频小流的订阅人数并动态启用或禁用该流:若无人订阅,自动禁用以节省带宽;若有人订阅,则启用并恢复为最近一次调用 设置的 配置,若未设置,则默认参数为:分辨率 480 × 272,帧率 15 fps,码率 500 Kbps。 + 如果调用了 并设置为从不发送视频小流(AgoraDisableSimulcastStream),则会议场景下低质量流的动态调整不生效。 + + + + AgoraApplication1V1Scenario + (2):一对一直播场景。为满足低延迟和高质量视频的需求,SDK 优化了策略,提升了视频质量、首帧渲染速度、中低端设备的延迟表现以及弱网下的流畅性。 + 该枚举值仅适用于主播对主播的场景。 + + + + AgoraApplicationLiveShowScenario + (3):Show Room 场景。该场景对快速渲染和高画质要求较高。SDK 进行了多项优化,包括自动启用音视频帧加速渲染以最小化首帧延迟(无需调用 ),启用 B 帧编码以提升图像质量和带宽效率,即使在弱网或低端设备上也能提供更好的视频质量和播放流畅性。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videobuffertype.dita b/dita/RTC-AIDOC/API/enum_videobuffertype.dita new file mode 100644 index 00000000000..e7b81284377 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videobuffertype.dita @@ -0,0 +1,25 @@ + + + + <ph keyref="VIDEO_BUFFER_TYPE"/> + 视频缓冲区的类型。 + +
+ 枚举值 + + + VIDEO_BUFFER_RAW_DATA + (1):视频缓冲区格式为原始数据。 + + + VIDEO_BUFFER_ARRAY + (2):视频缓冲区格式为原始数据。 + + + VIDEO_BUFFER_TEXTURE + (3):视频缓冲区格式为 Texture + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videocodeccapabilitylevel.dita b/dita/RTC-AIDOC/API/enum_videocodeccapabilitylevel.dita new file mode 100644 index 00000000000..22c7f2b1ca6 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videocodeccapabilitylevel.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="VIDEO_CODEC_CAPABILITY_LEVEL"/> + 编解码能力等级。编解码能力等级。编解码能力等级。 + +
+ 枚举值 + + + CODEC_CAPABILITY_LEVEL_UNSPECIFIED + (-1):不支持的视频类型。目前仅支持 H.264 和 H.265 格式,若为其他格式,将返回该值。 + + + CODEC_CAPABILITY_LEVEL_BASIC_SUPPORT + (5):支持最高 1080p、30 fps 的视频编解码能力。 + + + CODEC_CAPABILITY_LEVEL_1080P30FPS + (10):支持最高 1080p、30 fps 的视频编解码能力。 + + + CODEC_CAPABILITY_LEVEL_1080P60FPS + (20):支持最高 1080p、60 fps 的视频编解码能力。 + + + CODEC_CAPABILITY_LEVEL_4K60FPS + (30):支持最高 4K、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevelUnspecified + (-1):不支持的视频类型。目前仅支持 H.264 和 H.265 格式,若视频为其他格式,将返回该值。 + + + AgoraVideoCodecCapabilityLevelBasicSupport + (5):支持最高 1080p、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel1080p30fps + (10):支持最高 1080p、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel1080p60fps + (20):支持最高 1080p、60 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel4k60fps + (30):支持最高 4K、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevelUnspecified + (-1):不支持的视频类型。目前仅支持 H.264 和 H.265 格式,若视频为其他格式,将返回该值。 + + + AgoraVideoCodecCapabilityLevelBasicSupport + (5):支持最高 1080p、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel1080p30fps + (10):支持最高 1080p、30 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel1080p60fps + (20):支持最高 1080p、60 fps 的视频编解码能力。 + + + AgoraVideoCodecCapabilityLevel4k60fps + (30):支持最高 4K、30 fps 的视频编解码能力。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videocodecprofiletype.dita b/dita/RTC-AIDOC/API/enum_videocodecprofiletype.dita new file mode 100644 index 00000000000..3e76d4d1eba --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videocodecprofiletype.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="VIDEO_CODEC_PROFILE_TYPE"/> + 视频编解码器配置文件类型。视频编解码器配置文件类型。视频编解码器配置文件类型。视频编解码器配置文件类型。 + +
+ 枚举值 + + + VIDEO_CODEC_PROFILE_BASELINE + (66):Baseline 视频编解码器配置文件,通常用于移动设备的视频通话。 + + + VIDEO_CODEC_PROFILE_MAIN + (77):Main 视频编解码器配置文件,通常用于主流电子设备,如 MP4 播放器、便携式视频播放器、PSP 和 iPad。 + + + VIDEO_CODEC_PROFILE_HIGH + (100):High(默认)视频编解码器配置文件,通常用于高分辨率的直播或电视场景。 + + + BASELINE + (66):Baseline 视频编解码器配置文件,通常用于移动设备的视频通话。 + + + MAIN + (77):Main 视频编解码器配置文件,通常用于主流电子设备,如 MP4 播放器、便携式视频播放器、PSP 和 iPad。 + + + HIGH + (100):High(默认)视频编解码器配置文件,通常用于高分辨率的直播或电视场景。 + + + AgoraVideoCodecProfileTypeBaseLine + (66):Baseline 视频编解码器配置文件,适用于移动设备的视频通话。 + + + AgoraVideoCodecProfileTypeMain + (77):Main 视频编解码器配置文件,适用于主流电子设备,如 MP4 播放器、便携式视频播放器、PSP 和 iPad。 + + + AgoraVideoCodecProfileTypeHigh + (100):(默认)High 视频编解码器配置文件,适用于高分辨率的直播或电视。 + + + AgoraVideoCodecProfileTypeBaseLine + (66):Baseline 视频编解码器配置文件,适用于移动设备的视频通话。 + + + AgoraVideoCodecProfileTypeMain + (77):Main 视频编解码器配置文件,适用于主流电子设备,如 MP4 播放器、便携式视频播放器、PSP 和 iPad。 + + + AgoraVideoCodecProfileTypeHigh + (100):(默认)High 视频编解码器配置文件,适用于高分辨率的直播或电视。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videocodectype.dita b/dita/RTC-AIDOC/API/enum_videocodectype.dita new file mode 100644 index 00000000000..25bb921b912 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videocodectype.dita @@ -0,0 +1,145 @@ + + + + <ph keyref="VIDEO_CODEC_TYPE"/> + 视频编解码器类型。视频编解码器类型。视频编解码器类型。视频编解码器类型。 + +
+ 枚举值 + + + VIDEO_CODEC_NONE + (0):(默认)未指定的编解码器格式。SDK 会根据当前视频流的分辨率和设备性能自动匹配合适的编解码器格式。 + + + VIDEO_CODEC_VP8 + (1):标准 VP8 编解码器。 + + + VIDEO_CODEC_H264 + (2):标准 H.264 编解码器。 + + + VIDEO_CODEC_H265 + (3):标准 H.265 编解码器。 + + + VIDEO_CODEC_GENERIC + (6):通用类型。用于传输原始视频数据,例如加密的视频帧。SDK 会在回调中返回此类型的视频帧,需由用户自行解码和渲染。 + + + VIDEO_CODEC_GENERIC_H264 + (7):通用 H.264 编解码器类型。该类型已废弃。 + + + VIDEO_CODEC_AV1 + (12):AV1 编解码器。 + + + VIDEO_CODEC_VP9 + (13):VP9 编解码器。 + + + VIDEO_CODEC_GENERIC_JPEG + (20):通用 JPEG 编解码器。该类型占用的计算资源最少,适用于灵隼物联网云平台设备。 + + + VIDEO_CODEC_NONE + (0):(默认)未指定的编解码器格式。SDK 会根据当前视频流的分辨率和设备性能自动匹配合适的编解码器格式。 + + + VIDEO_CODEC_VP8 + (1):标准 VP8 编解码器。 + + + VIDEO_CODEC_H264 + (2):标准 H.264 编解码器。 + + + VIDEO_CODEC_H265 + (3):标准 H.265 编解码器。 + + + VIDEO_CODEC_GENERIC + (6):通用类型。用于传输原始视频数据,例如加密的视频帧。SDK 会在回调中返回此类型的视频帧,需由用户自行解码和渲染。 + + + VIDEO_CODEC_AV1 + (12):AV1 编解码器。 + + + VIDEO_CODEC_VP9 + (13):VP9 编解码器。 + + + VIDEO_CODEC_GENERIC_JPEG + (20):通用 JPEG 编解码器。该类型占用的计算资源最少,适用于 IoT 设备。 + + + AgoraVideoCodecTypeNone + (0):(默认)未指定的编解码器格式。SDK 会根据当前视频流的分辨率和设备性能自动匹配合适的编解码器格式。 + + + AgoraVideoCodecTypeVP8 + (1):标准 VP8 编解码器格式。 + + + AgoraVideoCodecTypeH264 + (2):标准 H.264 编解码器格式。 + + + AgoraVideoCodecTypeH265 + (3):标准 H.265 编解码器格式。 + + + AgoraVideoCodecTypeGeneric + (6):通用类型。用于传输原始视频数据,例如加密的视频帧。SDK 会在回调中返回此类型的视频帧,需由用户自行解码和渲染。 + + + AgoraVideoCodecTypeAV1 + (12):AV1 编解码器格式(技术预览)。 + + + AgoraVideoCodecTypeVP9 + (13):标准 VP9 编解码器格式。 + + + AgoraVideoCodecTypeGenericJpeg + (20):通用 JPEG 编解码器格式。该类型计算资源消耗最少,适用于 IoT 设备。 + + + AgoraVideoCodecTypeNone + (0):(默认)未指定的编解码器格式。SDK 会根据当前视频流的分辨率和设备性能自动匹配合适的编解码器格式。 + + + AgoraVideoCodecTypeVP8 + (1):标准 VP8 编解码器格式。 + + + AgoraVideoCodecTypeH264 + (2):标准 H.264 编解码器格式。 + + + AgoraVideoCodecTypeH265 + (3):标准 H.265 编解码器格式。 + + + AgoraVideoCodecTypeGeneric + (6):通用类型。用于传输原始视频数据,例如加密的视频帧。SDK 会在回调中返回此类型的视频帧,需由用户自行解码和渲染。 + + + AgoraVideoCodecTypeAV1 + (12):AV1 编解码器格式(技术预览)。 + + + AgoraVideoCodecTypeVP9 + (13):标准 VP9 编解码器格式。 + + + AgoraVideoCodecTypeGenericJpeg + (20):通用 JPEG 编解码器格式。该类型计算资源消耗最少,适用于 IoT 设备。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videocodectypeforstream.dita b/dita/RTC-AIDOC/API/enum_videocodectypeforstream.dita new file mode 100644 index 00000000000..1d6ff40c5c0 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videocodectypeforstream.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="VIDEO_CODEC_TYPE_FOR_STREAM"/> + 输出视频的编解码格式类型。输出视频所使用的编解码器类型。输出视频所使用的编解码器类型。输出视频所使用的编解码器类型。 + +
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+ +
自从
+
自 v3.2.0 版本新增。
+
+
+
+
+ 枚举值 + + + VIDEO_CODEC_H264_FOR_STREAM + (1):(默认)使用 H.264 编码格式。 + + + VIDEO_CODEC_H265_FOR_STREAM + (2):使用 H.265 编码格式。 + + + H264 + (1):(默认)使用 H.264 编解码器。 + + + H265 + (2):使用 H.265 编解码器。 + + + AgoraVideoCodecTypeH264ForStream + (1):(默认)使用 H.264 编解码器。 + + + AgoraVideoCodecTypeH265ForStream + (2):使用 H.265 编解码器。 + + + AgoraVideoCodecTypeH264ForStream + (1):(默认)使用 H.264 编解码器。 + + + AgoraVideoCodecTypeH265ForStream + (2):使用 H.265 编解码器。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videocontenthint.dita b/dita/RTC-AIDOC/API/enum_videocontenthint.dita new file mode 100644 index 00000000000..0668b709ac3 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videocontenthint.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="VIDEO_CONTENT_HINT"/> + 屏幕共享内容的提示类型。屏幕共享内容的提示类型。 + +
+ 枚举值 + + + CONTENT_HINT_NONE + (默认):无内容提示。 + + + CONTENT_HINT_MOTION + :运动内容。适用于注重流畅性或共享视频片段、电影、视频游戏等场景。 + + + CONTENT_HINT_DETAILS + :静态内容。适用于注重清晰度或共享图片、PPT 幻灯片、文本等场景。 + + + AgoraVideoContentHintNone + (0):(默认)无内容提示。 + + + AgoraVideoContentHintMotion + (1):运动内容。适用于注重流畅性或共享视频片段、电影或视频游戏的场景。 + + + AgoraVideoContentHintDetails + (2):静态内容。适用于注重清晰度或共享图片、PPT 幻灯片或文本的场景。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videodenoiserlevel.dita b/dita/RTC-AIDOC/API/enum_videodenoiserlevel.dita new file mode 100644 index 00000000000..8c70e013387 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videodenoiserlevel.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="VIDEO_DENOISER_LEVEL"/> + 视频降噪等级。视频降噪等级。视频降噪等级。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+
+
+ 枚举值 + + + VIDEO_DENOISER_LEVEL_HIGH_QUALITY + (0):(默认)在视频降噪过程中提升视频质量,平衡性能消耗与降噪效果。该设置下性能消耗适中,降噪速度适中,整体视频质量最佳。 + + + VIDEO_DENOISER_LEVEL_FAST + (1):在视频降噪过程中降低性能消耗,优先考虑性能而非降噪质量。该设置下性能消耗较低,降噪速度更快。为避免处理后的视频出现明显拖影(即移动物体后方出现阴影),声网建议在摄像头固定时使用该设置。 + + + AgoraVideoDenoiserLevelHighQuality + (0):(默认)在视频降噪过程中提升视频质量,平衡性能消耗与降噪效果。该设置下性能消耗适中,降噪速度适中,整体视频质量最佳。 + + + AgoraVideoDenoiserLevelFast + (1):在视频降噪过程中降低性能消耗,优先考虑性能而非降噪质量。该设置下性能消耗较低,降噪速度更快。为避免处理后的视频出现明显拖影(移动物体后方出现阴影),声网建议在摄像头固定时使用该设置。 + + + AgoraVideoDenoiserLevelHighQuality + (0):(默认)在视频降噪过程中提升视频质量,平衡性能消耗与降噪效果。该设置下性能消耗适中,降噪速度适中,整体视频质量最佳。 + + + AgoraVideoDenoiserLevelFast + (1):在视频降噪过程中降低性能消耗,优先考虑性能而非降噪质量。该设置下性能消耗较低,降噪速度更快。为避免处理后的视频出现明显拖影(移动物体后方出现阴影),声网建议在摄像头固定时使用该设置。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videodenoisermode.dita b/dita/RTC-AIDOC/API/enum_videodenoisermode.dita new file mode 100644 index 00000000000..625a1019e85 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videodenoisermode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="VIDEO_DENOISER_MODE"/> + 视频降噪模式。视频降噪模式。视频降噪模式。 + +
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+ +
自从
+
自 v4.0.0 版本新增。
+
+
+
+
+ 枚举值 + + + VIDEO_DENOISER_AUTO + (0):(默认)自动模式。SDK 会根据环境光自动启用或关闭视频降噪功能。 + + + VIDEO_DENOISER_MANUAL + (1):手动模式。用户需手动启用或关闭视频降噪功能。 + + + AgoraVideoDenoiserModeAuto + (0)(默认):自动模式。SDK 会根据环境光线自动启用或关闭视频降噪功能。 + + + AgoraVideoDenoiserModeManual + (1):手动模式。需由用户手动启用或关闭视频降噪功能。 + + + AgoraVideoDenoiserModeAuto + (0)(默认):自动模式。SDK 会根据环境光线自动启用或关闭视频降噪功能。 + + + AgoraVideoDenoiserModeManual + (1):手动模式。需由用户手动启用或关闭视频降噪功能。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoeffectaction.dita b/dita/RTC-AIDOC/API/enum_videoeffectaction.dita new file mode 100644 index 00000000000..ae6ad55ec44 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoeffectaction.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="VIDEO_EFFECT_ACTION"/> + 对视频特效节点执行的操作类型。对视频特效节点执行的操作类型。对视频特效节点可执行的操作。对视频特效节点可执行的操作。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + SAVE + (1):保存当前视频特效的参数。 + + + RESET + (2):将视频特效重置为默认参数。 + + + SAVE + (1):保存当前视频特效节点的参数。 + + + RESET + (2):重置视频特效节点为默认参数。 + + + AgoraVideoEffectActionSave + (1):保存当前视频特效的参数。 + + + AgoraVideoEffectActionReset + (2):将视频特效重置为默认参数。 + + + AgoraVideoEffectActionSave + (1):保存当前视频特效的参数。 + + + AgoraVideoEffectActionReset + (2):将视频特效重置为默认参数。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoeffectnodeid.dita b/dita/RTC-AIDOC/API/enum_videoeffectnodeid.dita new file mode 100644 index 00000000000..a979abc2332 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoeffectnodeid.dita @@ -0,0 +1,81 @@ + + + + <ph keyref="VIDEO_EFFECT_NODE_ID"/> + 视频特效节点类型。视频特效节点类型。视频特效节点的类型。视频特效节点的类型。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + BEAUTY + (1):美颜特效节点。 + + + STYLE_MAKEUP + (2):风格妆特效节点。 + + + FILTER + (4):滤镜特效节点。 + + + BEAUTY + (1):美颜特效节点。 + + + STYLE_MAKEUP + (2):风格妆特效节点。 + + + FILTER + (4):滤镜特效节点。 + + + AgoraVideoEffectNodeBeauty + (1):美颜特效节点。 + + + AgoraVideoEffectNodeStyleMakeup + (2):风格妆特效节点。 + + + AgoraVideoEffectNodeFilter + (4):滤镜特效节点。 + + + AgoraVideoEffectNodeBeauty + (1):美颜特效节点。 + + + AgoraVideoEffectNodeStyleMakeup + (2):风格妆特效节点。 + + + AgoraVideoEffectNodeFilter + (4):滤镜特效节点。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoframeposition.dita b/dita/RTC-AIDOC/API/enum_videoframeposition.dita new file mode 100644 index 00000000000..414c135fa8b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoframeposition.dita @@ -0,0 +1,47 @@ + + + + <ph keyref="VIDEO_FRAME_POSITION"/> + 视频观察器的视频帧位置。视频观察器的视频帧位置。 + +
+ 枚举值 + + + AgoraVideoFramePositionPostCapture + (1):本地采集的视频数据在预处理后的位置,对应 回调。此位置的视频已应用视频预处理效果,可通过启用图像增强、虚拟背景或水印进行验证。 + + + AgoraVideoFramePositionPreRenderer + (2):渲染器前的位置,对应 回调中的视频数据。 + + + AgoraVideoFramePositionPreEncoder + (4):编码器前的位置,对应 回调中的视频数据。此位置的视频已应用视频预处理和编码前处理效果。 +
    +
  • 若要验证视频预处理效果,可启用图像增强、虚拟背景或水印。
  • +
  • 若要验证编码前处理效果,可设置较低帧率(如 5 fps)。
  • +
+
+
+ + AgoraVideoFramePositionPostCapture + (1):本地采集的视频数据在预处理后的位置,对应 回调。此位置的视频已应用视频预处理效果,可通过启用图像增强、虚拟背景或水印进行验证。 + + + AgoraVideoFramePositionPreRenderer + (2):渲染器前的位置,对应 回调中的视频数据。 + + + AgoraVideoFramePositionPreEncoder + (4):编码器前的位置,对应 回调中的视频数据。此位置的视频已应用视频预处理和编码前处理效果。 +
    +
  • 若要验证视频预处理效果,可启用图像增强、虚拟背景或水印。
  • +
  • 若要验证编码前处理效果,可设置较低帧率(如 5 fps)。
  • +
+
+
+
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoframeprocessmode.dita b/dita/RTC-AIDOC/API/enum_videoframeprocessmode.dita new file mode 100644 index 00000000000..3a28432568b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoframeprocessmode.dita @@ -0,0 +1,37 @@ + + + + <ph keyref="VIDEO_FRAME_PROCESS_MODE"/> + 视频帧的处理模式。视频帧的处理模式。视频帧的处理模式。 + +
+ 枚举值 + + + PROCESS_MODE_READ_ONLY + 只读模式。在此模式下不修改视频帧,视频帧观察器作为渲染器存在。 + + + PROCESS_MODE_READ_WRITE + 读写模式。在此模式下可修改视频帧,视频帧观察器作为视频滤镜存在,会影响 SDK 后续的视频帧处理。 + + + AgoraVideoFrameProcessModeReadOnly + :只读模式。在该模式下,视频帧不会被修改。视频帧观察者作为渲染器使用,不会修改原始帧。 + + + AgoraVideoFrameProcessModeReadWrite + :读写模式。在该模式下,视频帧可以被修改。视频帧观察者作为视频滤镜使用,会处理视频帧并影响 SDK 中后续的视频帧处理。 + + + AgoraVideoFrameProcessModeReadOnly + :只读模式。在该模式下,视频帧不会被修改。视频帧观察者作为渲染器使用,不会修改原始帧。 + + + AgoraVideoFrameProcessModeReadWrite + :读写模式。在该模式下,视频帧可以被修改。视频帧观察者作为视频滤镜使用,会处理视频帧并影响 SDK 中后续的视频帧处理。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoframetype.dita b/dita/RTC-AIDOC/API/enum_videoframetype.dita new file mode 100644 index 00000000000..325d9895ad0 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoframetype.dita @@ -0,0 +1,85 @@ + + + + <ph keyref="VIDEO_FRAME_TYPE"/> + 视频帧类型。视频帧类型。视频帧类型。 + +
+ 枚举值 + + + VIDEO_FRAME_TYPE_BLANK_FRAME + (0):黑帧。 + + + VIDEO_FRAME_TYPE_KEY_FRAME + (3):关键帧。 + + + VIDEO_FRAME_TYPE_DELTA_FRAME + (4):差值帧。 + + + VIDEO_FRAME_TYPE_B_FRAME + (5):B 帧。 + + + VIDEO_FRAME_TYPE_DROPPABLE_FRAME + (6):可丢弃帧。 + + + VIDEO_FRAME_TYPE_UNKNOW + 未知帧。 + + + AgoraVideoFrameTypeBlankFrame + (0):黑帧。 + + + AgoraVideoFrameTypeKeyFrame + (3):关键帧。 + + + AgoraVideoFrameTypeDeltaFrame + (4):差值帧。 + + + AgoraVideoFrameTypeBFrame + (5):B 帧。 + + + AgoraVideoFrameTypeDroppableFrame + (6):可丢弃帧。 + + + AgoraVideoFrameTypeUnknow + 未知帧。 + + + AgoraVideoFrameTypeBlankFrame + (0):黑帧。 + + + AgoraVideoFrameTypeKeyFrame + (3):关键帧。 + + + AgoraVideoFrameTypeDeltaFrame + (4):差值帧。 + + + AgoraVideoFrameTypeBFrame + (5):B 帧。 + + + AgoraVideoFrameTypeDroppableFrame + (6):可丢弃帧。 + + + AgoraVideoFrameTypeUnknow + 未知帧。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videomirrormodetype.dita b/dita/RTC-AIDOC/API/enum_videomirrormodetype.dita new file mode 100644 index 00000000000..e4b7a8dc930 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videomirrormodetype.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="VIDEO_MIRROR_MODE_TYPE"/> + 视频镜像模式。视频镜像模式。视频镜像模式。 + +
+ 枚举值 + + + VIDEO_MIRROR_MODE_AUTO + (0):由 SDK 决定是否启用镜像模式。 +
    +
  • 本地视频视图:使用前置摄像头时,默认启用镜像模式;使用后置摄像头时,默认关闭镜像模式。
  • +
  • 远端用户:默认关闭镜像模式。
  • +
+
+
+ + VIDEO_MIRROR_MODE_ENABLED + (1):启用镜像模式。 + + + VIDEO_MIRROR_MODE_DISABLED + (2):关闭镜像模式。 + + + AgoraVideoMirrorModeAuto + (0):由 SDK 决定是否启用镜像模式。 +
    +
  • 本地视频视图:使用前置摄像头时默认启用镜像模式,使用后置摄像头时默认关闭。
  • +
  • 远端用户视图:默认关闭镜像模式。
  • +
+
+
+ + AgoraVideoMirrorModeEnabled + (1):启用镜像模式。 + + + AgoraVideoMirrorModeDisabled + (2):关闭镜像模式。 + + + AgoraVideoMirrorModeAuto + (0):由 SDK 决定是否启用镜像模式。 +
    +
  • 本地视频视图:使用前置摄像头时默认启用镜像模式,使用后置摄像头时默认关闭。
  • +
  • 远端用户视图:默认关闭镜像模式。
  • +
+
+
+ + AgoraVideoMirrorModeEnabled + (1):启用镜像模式。 + + + AgoraVideoMirrorModeDisabled + (2):关闭镜像模式。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videomoduleposition.dita b/dita/RTC-AIDOC/API/enum_videomoduleposition.dita new file mode 100644 index 00000000000..916e469e385 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videomoduleposition.dita @@ -0,0 +1,97 @@ + + + + <ph keyref="VIDEO_MODULE_POSITION"/> + 视频观察器中视频帧的位置。视频观察器中视频帧的位置。视频观察器中视频帧的位置。视频观察器中视频帧的位置。 + +
+ 枚举值 + + + POSITION_POST_CAPTURER + (1):本地采集的视频数据在预处理之后的位置,对应 回调。此位置的视频已应用视频前处理效果,可通过启用图像增强、虚拟背景或水印进行验证。 + + + POSITION_PRE_RENDERER + (2):渲染前的位置,对应 回调中的视频数据。 + + + POSITION_PRE_ENCODER + (4):编码前的位置,对应 回调中的视频数据。此位置的视频已应用视频前处理和编码前处理效果。 +
    +
  • 若需验证视频前处理效果,可启用图像增强、虚拟背景或水印。
  • +
  • 若需验证编码前处理效果,可设置较低的帧率(例如 5 fps)。
  • +
+
+
+ + POSITION_POST_CAPTURER_ORIGIN + (8):本地视频采集之后、预处理之前的位置。此位置的视频未应用前处理效果,可通过启用图像增强、虚拟背景或水印进行验证。 + + + VIDEO_MODULE_POSITION_POST_CAPTURER + (1):本地采集的视频数据在预处理之后的位置,对应 回调。此位置的视频已应用视频预处理效果,可通过开启图像增强、虚拟背景或水印进行验证。 + + + VIDEO_MODULE_POSITION_PRE_RENDERER + (2):渲染前的位置,对应 回调中的视频数据。 + + + VIDEO_MODULE_POSITION_PRE_ENCODER + (4):编码前的位置,对应 回调中的视频数据。此位置的视频已应用视频预处理和编码前处理效果。 +
    +
  • 若需验证视频预处理效果,可开启图像增强、虚拟背景或水印。
  • +
  • 若需验证编码前处理效果,可设置较低帧率(如 5 fps)。
  • +
+
+
+ + VIDEO_MODULE_POSITION_POST_CAPTURER_ORIGIN + (8):本地视频采集之后、预处理之前的位置。此位置的视频未应用预处理效果,可通过开启图像增强、虚拟背景或水印进行验证。 + + + AgoraVideoModulePositionPostCapture + (1):本地采集的视频数据在预处理之后的位置,对应 回调。此位置的视频已应用图像增强、虚拟背景或水印等预处理效果。 + + + AgoraVideoModulePositionPreRenderer + (2):渲染器之前的位置,对应 回调。此位置的视频用于渲染前的处理。 + + + AgoraVideoModulePositionPreEncoder + (4):编码器之前的位置,对应 回调。此位置的视频已应用预处理和编码前处理效果。 +
    +
  • 若需验证预处理效果,可启用图像增强、虚拟背景或水印。
  • +
  • 若需验证编码前处理效果,可设置较低帧率(如 5 fps)。
  • +
+
+
+ + AgoraVideoModulePositionPostCaptureOrigin + (8):本地采集之后、预处理之前的位置。此位置的视频未应用图像增强、虚拟背景或水印等预处理效果。 + + + AgoraVideoModulePositionPostCapture + (1):本地采集的视频数据在预处理之后的位置,对应 回调。此位置的视频已应用图像增强、虚拟背景或水印等预处理效果。 + + + AgoraVideoModulePositionPreRenderer + (2):渲染器之前的位置,对应 回调。此位置的视频用于渲染前的处理。 + + + AgoraVideoModulePositionPreEncoder + (4):编码器之前的位置,对应 回调。此位置的视频已应用预处理和编码前处理效果。 +
    +
  • 若需验证预处理效果,可启用图像增强、虚拟背景或水印。
  • +
  • 若需验证编码前处理效果,可设置较低帧率(如 5 fps)。
  • +
+
+
+ + AgoraVideoModulePositionPostCaptureOrigin + (8):本地采集之后、预处理之前的位置。此位置的视频未应用图像增强、虚拟背景或水印等预处理效果。 + +
+
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoorientation.dita b/dita/RTC-AIDOC/API/enum_videoorientation.dita new file mode 100644 index 00000000000..193ee61f883 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoorientation.dita @@ -0,0 +1,61 @@ + + + + <ph keyref="VIDEO_ORIENTATION"/> + 视频顺时针旋转的角度。视频画面的顺时针旋转角度。视频画面的顺时针旋转角度。 + +
+ 枚举值 + + + VIDEO_ORIENTATION_0 + (0):(默认)不旋转。 + + + VIDEO_ORIENTATION_90 + (90):顺时针旋转 90°。 + + + VIDEO_ORIENTATION_180 + (180):顺时针旋转 180°。 + + + VIDEO_ORIENTATION_270 + (270):顺时针旋转 270°。 + + + AgoraVideoFrameOrientation0 + (0):(默认)不旋转。 + + + AgoraVideoFrameOrientation90 + (90):顺时针旋转 90 度。 + + + AgoraVideoFrameOrientation180 + (180):顺时针旋转 180 度。 + + + AgoraVideoFrameOrientation270 + (270):顺时针旋转 270 度。 + + + AgoraVideoFrameOrientation0 + (0):(默认)不旋转。 + + + AgoraVideoFrameOrientation90 + (90):顺时针旋转 90 度。 + + + AgoraVideoFrameOrientation180 + (180):顺时针旋转 180 度。 + + + AgoraVideoFrameOrientation270 + (270):顺时针旋转 270 度。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videopixelformat.dita b/dita/RTC-AIDOC/API/enum_videopixelformat.dita new file mode 100644 index 00000000000..a6a6e0a71c9 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videopixelformat.dita @@ -0,0 +1,171 @@ + + + + <ph keyref="VIDEO_PIXEL_FORMAT"/> + 视频像素格式。视频像素格式。视频像素格式。 + +
+ 枚举值 + + + VIDEO_PIXEL_DEFAULT + (0):默认格式,原始视频像素格式。 + + + VIDEO_PIXEL_I420 + (1):I420 像素格式。 + + + VIDEO_PIXEL_BGRA + (2):BGRA 像素格式。 + + + VIDEO_PIXEL_NV21 + (3):NV21 像素格式。 + + + VIDEO_PIXEL_RGBA + (4):RGBA 像素格式。 + + + VIDEO_PIXEL_NV12 + (8):NV12 像素格式。 + + + VIDEO_TEXTURE_2D + (10):GL_TEXTURE_2D 纹理格式。 + + + VIDEO_TEXTURE_OES + (11):GL_TEXTURE_OES 纹理格式。 + + + VIDEO_CVPIXEL_NV12 + (12):iOS 平台上 CVPixelBuffer 的 NV12 像素格式。 + + + VIDEO_CVPIXEL_I420 + (13):iOS 平台上 CVPixelBuffer 的 I420 像素格式。 + + + VIDEO_CVPIXEL_BGRA + (14):iOS 平台上 CVPixelBuffer 的 BGRA 像素格式。 + + + VIDEO_CVPIXEL_P010 + (15):iOS 平台上 CVPixelBuffer 的 P010 像素格式(10bit NV12)。 + + + VIDEO_PIXEL_I422 + (16):I422 像素格式。 + + + VIDEO_TEXTURE_ID3D11TEXTURE2D + (17):ID3D11TEXTURE2D 纹理格式。当前支持的类型包括 DXGI_FORMAT_B8G8R8A8_UNORMDXGI_FORMAT_B8G8R8A8_TYPELESSDXGI_FORMAT_NV12。 + 该枚举仅适用于屏幕采集场景;摄像头采集场景下不支持。 + + + + VIDEO_PIXEL_I010 + (18):I010 像素格式,10bit I420 数据。 + + + AgoraVideoFormatI420 + (1):I420 视频像素格式。 + + + AgoraVideoFormatBGRA + (2):BGRA 视频像素格式。 + + + AgoraVideoFormatNV21 + (3):NV21 视频像素格式。 + + + AgoraVideoFormatRGBA + (4):RGBA 视频像素格式。 + + + AgoraVideoFormatNV12 + (8):NV12 视频像素格式。 + + + AgoraVideoFormatCVPixelNV12 + (12):CVPixelBufferRef 类型的 NV12 视频像素格式。 + + + AgoraVideoFormatCVPixelI420 + (13):CVPixelBufferRef 类型的 I420 视频像素格式。 + + + AgoraVideoFormatCVPixelBGRA + (14):CVPixelBufferRef 类型的 BGRA 视频像素格式。 + + + AgoraVideoFormatCVPixelP010 + (15):CVPixelBufferRef 类型的 iOS 纹理 P010 视频像素格式。 + + + AgoraVideoFormatI422 + (16):I422 视频像素格式。 + + + AgoraVideoFormatI010 + (18):I010 视频像素格式。 + + + AgoraVideoFormatDefault + (0):原始视频像素格式(默认)。 + + + AgoraVideoFormatI420 + (1):I420 视频像素格式。 + + + AgoraVideoFormatBGRA + (2):BGRA 视频像素格式。 + + + AgoraVideoFormatNV21 + (3):NV21 视频像素格式。 + + + AgoraVideoFormatRGBA + (4):RGBA 视频像素格式。 + + + AgoraVideoFormatNV12 + (8):NV12 视频像素格式。 + + + AgoraVideoFormatCVPixelNV12 + (12):CVPixelBufferRef 类型的 NV12 视频像素格式。 + + + AgoraVideoFormatCVPixelI420 + (13):CVPixelBufferRef 类型的 I420 视频像素格式。 + + + AgoraVideoFormatCVPixelBGRA + (14):CVPixelBufferRef 类型的 BGRA 视频像素格式。 + + + AgoraVideoFormatCVPixelP010 + (15):CVPixelBufferRef 类型的 iOS 纹理 P010 视频像素格式。 + + + AgoraVideoFormatI422 + (16):I422 视频像素格式。 + + + AgoraVideoFormatI010 + (18):I010 视频像素格式。 + + + AgoraVideoFormatDefault + (0):原始视频像素格式(默认)。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videosourcetype.dita b/dita/RTC-AIDOC/API/enum_videosourcetype.dita new file mode 100644 index 00000000000..bd559daa09b --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videosourcetype.dita @@ -0,0 +1,285 @@ + + + + <ph keyref="VIDEO_SOURCE_TYPE"/> + 视频源类型。视频源类型。视频源类型。视频源类型。 + +
+ 枚举值 + + + VIDEO_SOURCE_CAMERA_PRIMARY + (0):默认主摄像头。 + + + VIDEO_SOURCE_CAMERA + (0):默认主摄像头。 + + + VIDEO_SOURCE_CAMERA_SECONDARY + (1):次摄像头。 + + + VIDEO_SOURCE_SCREEN_PRIMARY + (2):主屏幕。 + + + VIDEO_SOURCE_SCREEN + (2):主屏幕。 + + + VIDEO_SOURCE_SCREEN_SECONDARY + (3):次屏幕。 + + + VIDEO_SOURCE_CUSTOM + (4):自定义视频源。 + + + VIDEO_SOURCE_MEDIA_PLAYER + (5):媒体播放器。 + + + VIDEO_SOURCE_RTC_IMAGE_PNG + (6):PNG 格式图片。 + + + VIDEO_SOURCE_RTC_IMAGE_JPEG + (7):JPEG 格式图片。 + + + VIDEO_SOURCE_RTC_IMAGE_GIF + (8):GIF 格式图片。 + + + VIDEO_SOURCE_REMOTE + (9):通过网络获取的远端视频源。 + + + VIDEO_SOURCE_TRANSCODED + (10):转码后的视频源。 + + + VIDEO_SOURCE_CAMERA_THIRD + (11):第三个摄像头(仅适用于 Android、Windows 和 macOS 平台)。 + + + VIDEO_SOURCE_CAMERA_FOURTH + (12):第四个摄像头(仅适用于 Android、Windows 和 macOS 平台)。 + + + VIDEO_SOURCE_SCREEN_THIRD + (13):第三块屏幕(仅适用于 Windows 和 macOS 平台)。 + + + VIDEO_SOURCE_SCREEN_FOURTH + (14):第四块屏幕(仅适用于 Windows 和 macOS 平台)。 + + + VIDEO_SOURCE_SPEECH_DRIVEN + (15):由语音驱动扩展处理的视频源。 + + + VIDEO_SOURCE_UNKNOWN + (100):未知的视频源。 + + + VIDEO_SOURCE_CAMERA_PRIMARY + (0):默认主摄像头。 + + + VIDEO_SOURCE_CAMERA_SECONDARY + (1):次摄像头。 + + + VIDEO_SOURCE_SCREEN_PRIMARY + (2):主屏幕画面。 + + + VIDEO_SOURCE_SCREEN_SECONDARY + (3):次屏幕画面。 + + + VIDEO_SOURCE_CUSTOM + (4):自定义视频源。 + + + VIDEO_SOURCE_MEDIA_PLAYER + (5):媒体播放器输出的视频源。 + + + VIDEO_SOURCE_RTC_IMAGE_PNG + (6):PNG 格式的图片。 + + + VIDEO_SOURCE_RTC_IMAGE_JPEG + (7):JPEG 格式的图片。 + + + VIDEO_SOURCE_RTC_IMAGE_GIF + (8):GIF 格式的图片。 + + + VIDEO_SOURCE_REMOTE + (9):通过网络获取的远端视频源。 + + + VIDEO_SOURCE_TRANSCODED + (10):转码后的视频源。 + + + VIDEO_SOURCE_CAMERA_THIRD + (11):第三个摄像头。 + + + VIDEO_SOURCE_CAMERA_FOURTH + (12):第四个摄像头。 + + + VIDEO_SOURCE_SPEECH_DRIVEN + (15):由语音驱动扩展处理的视频源。 + + + VIDEO_SOURCE_UNKNOWN + (100):未知的视频源。 + + + AgoraVideoSourceTypeCamera + (0):默认主摄像头。 + + + AgoraVideoSourceTypeCameraSecondary + (1):次摄像头。 + + + AgoraVideoSourceTypeScreen + (2):主屏幕。 + + + AgoraVideoSourceTypeScreenSecondary + (3):次屏幕。 + + + AgoraVideoSourceTypeCustom + (4):自定义视频源。 + + + AgoraVideoSourceTypeMediaPlayer + (5):媒体播放器。 + + + AgoraVideoSourceTypeImagePNG + (6):PNG 图像。 + + + AgoraVideoSourceTypeImageJPEG + (7):JPEG 图像。 + + + AgoraVideoSourceTypeImageGIF + (8):GIF 图像。 + + + AgoraVideoSourceTypeRemote + (9):通过网络获取的远端视频。 + + + AgoraVideoSourceTypeTransCoded + (10):转码后的视频源。 + + + AgoraVideoSourceTypeCameraThird + (11):(仅适用于 macOS 平台)第三个摄像头。 + + + AgoraVideoSourceTypeCameraFourth + (12):(仅适用于 macOS 平台)第四个摄像头。 + + + AgoraVideoSourceTypeScreenThird + (13):(仅适用于 macOS 平台)第三个屏幕。 + + + AgoraVideoSourceTypeScreenFourth + (14):(仅适用于 macOS 平台)第四个屏幕。 + + + AgoraVideoSourceTypeSpeechDriven + (15):由语音驱动扩展处理的视频源。 + + + AgoraVideoSourceTypeUnknown + (100):未知的视频源。 + + + AgoraVideoSourceTypeCamera + (0):默认主摄像头。 + + + AgoraVideoSourceTypeCameraSecondary + (1):次摄像头。 + + + AgoraVideoSourceTypeScreen + (2):主屏幕。 + + + AgoraVideoSourceTypeScreenSecondary + (3):次屏幕。 + + + AgoraVideoSourceTypeCustom + (4):自定义视频源。 + + + AgoraVideoSourceTypeMediaPlayer + (5):媒体播放器。 + + + AgoraVideoSourceTypeImagePNG + (6):PNG 图像。 + + + AgoraVideoSourceTypeImageJPEG + (7):JPEG 图像。 + + + AgoraVideoSourceTypeImageGIF + (8):GIF 图像。 + + + AgoraVideoSourceTypeRemote + (9):通过网络获取的远端视频。 + + + AgoraVideoSourceTypeTransCoded + (10):转码后的视频源。 + + + AgoraVideoSourceTypeCameraThird + (11):(仅适用于 macOS 平台)第三个摄像头。 + + + AgoraVideoSourceTypeCameraFourth + (12):(仅适用于 macOS 平台)第四个摄像头。 + + + AgoraVideoSourceTypeScreenThird + (13):(仅适用于 macOS 平台)第三个屏幕。 + + + AgoraVideoSourceTypeScreenFourth + (14):(仅适用于 macOS 平台)第四个屏幕。 + + + AgoraVideoSourceTypeSpeechDriven + (15):由语音驱动扩展处理的视频源。 + + + AgoraVideoSourceTypeUnknown + (100):未知的视频源。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videostreamtype.dita b/dita/RTC-AIDOC/API/enum_videostreamtype.dita new file mode 100644 index 00000000000..8267e4c6270 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videostreamtype.dita @@ -0,0 +1,141 @@ + + + + <ph keyref="VIDEO_STREAM_TYPE"/> + 视频流类型。视频流类型。视频流类型。视频流类型。 + +
+ 枚举值 + + + VIDEO_STREAM_HIGH + (0):视频大流,分辨率和码率最高。 + + + VIDEO_STREAM_LOW + (1):视频小流,分辨率和码率最低。 + + + VIDEO_STREAM_LAYER_1 + (4):多质量层级视频流的第 1 层,分辨率仅次于(0)VIDEO_STREAM_HIGH。 + + + VIDEO_STREAM_LAYER_2 + (5):多质量层级视频流的第 2 层,分辨率仅次于(4)VIDEO_STREAM_LAYER_1。 + + + VIDEO_STREAM_LAYER_3 + (6):多质量层级视频流的第 3 层,分辨率仅次于(5)VIDEO_STREAM_LAYER_2。 + + + VIDEO_STREAM_LAYER_4 + (7):多质量层级视频流的第 4 层,分辨率仅次于(6)VIDEO_STREAM_LAYER_3。 + + + VIDEO_STREAM_LAYER_5 + (8):多质量层级视频流的第 5 层,分辨率仅次于(7)VIDEO_STREAM_LAYER_4。 + + + VIDEO_STREAM_LAYER_6 + (9):多质量层级视频流的第 6 层,分辨率仅次于(8)VIDEO_STREAM_LAYER_5。 + + + VIDEO_STREAM_HIGH + (0):视频大流,分辨率和码率最高。 + + + VIDEO_STREAM_LOW + (1):视频小流,分辨率和码率最低。 + + + VIDEO_STREAM_LAYER_1 + (4):多质量层级视频流的第 1 层,分辨率仅低于 VIDEO_STREAM_HIGH + + + VIDEO_STREAM_LAYER_2 + (5):多质量层级视频流的第 2 层,分辨率仅低于 VIDEO_STREAM_LAYER_1 + + + VIDEO_STREAM_LAYER_3 + (6):多质量层级视频流的第 3 层,分辨率仅低于 VIDEO_STREAM_LAYER_2 + + + VIDEO_STREAM_LAYER_4 + (7):多质量层级视频流的第 4 层,分辨率仅低于 VIDEO_STREAM_LAYER_3 + + + VIDEO_STREAM_LAYER_5 + (8):多质量层级视频流的第 5 层,分辨率仅低于 VIDEO_STREAM_LAYER_4 + + + VIDEO_STREAM_LAYER_6 + (9):多质量层级视频流的第 6 层,分辨率仅低于 VIDEO_STREAM_LAYER_5 + + + AgoraVideoStreamTypeHigh + (0):视频大流,分辨率和码率最高。 + + + AgoraVideoStreamTypeLow + (1):视频小流,分辨率和码率最低。 + + + AgoraVideoStreamTypeLayer1 + (4):第 1 层视频流,分辨率仅低于 AgoraVideoStreamTypeHigh + + + AgoraVideoStreamTypeLayer2 + (5):第 2 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer1 + + + AgoraVideoStreamTypeLayer3 + (6):第 3 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer2 + + + AgoraVideoStreamTypeLayer4 + (7):第 4 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer3 + + + AgoraVideoStreamTypeLayer5 + (8):第 5 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer4 + + + AgoraVideoStreamTypeLayer6 + (9):第 6 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer5 + + + AgoraVideoStreamTypeHigh + (0):视频大流,分辨率和码率最高。 + + + AgoraVideoStreamTypeLow + (1):视频小流,分辨率和码率最低。 + + + AgoraVideoStreamTypeLayer1 + (4):第 1 层视频流,分辨率仅低于 AgoraVideoStreamTypeHigh + + + AgoraVideoStreamTypeLayer2 + (5):第 2 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer1 + + + AgoraVideoStreamTypeLayer3 + (6):第 3 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer2 + + + AgoraVideoStreamTypeLayer4 + (7):第 4 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer3 + + + AgoraVideoStreamTypeLayer5 + (8):第 5 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer4 + + + AgoraVideoStreamTypeLayer6 + (9):第 6 层视频流,分辨率仅低于 AgoraVideoStreamTypeLayer5 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videotranscodererror.dita b/dita/RTC-AIDOC/API/enum_videotranscodererror.dita new file mode 100644 index 00000000000..39d18ccddb7 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videotranscodererror.dita @@ -0,0 +1,93 @@ + + + + <ph keyref="VIDEO_TRANSCODER_ERROR"/> + 本地合图失败的错误码。本地合图失败的错误码。本地合图失败的错误码。 + +
+ 枚举值 + + + VT_ERR_VIDEO_SOURCE_NOT_READY + (1):所选视频源尚未开始视频采集。需为该视频源创建视频轨道并启动采集。 + + + VT_ERR_INVALID_VIDEO_SOURCE_TYPE + (2):视频源类型无效。需重新指定支持的视频源类型。 + + + VT_ERR_INVALID_IMAGE_PATH + (3):图片路径无效。需重新指定正确的图片路径。 + + + VT_ERR_UNSUPPORT_IMAGE_FORMAT + (4):图片格式无效。请确保图片格式为 PNG、JPEG 或 GIF。 + + + VT_ERR_INVALID_LAYOUT + (5):视频合图后的编码分辨率无效。 + + + VT_ERR_INTERNAL + (20):未知的内部错误。 + + + AgoraVideoTranscoderErrorOK + (0):无错误。 + + + AgoraVideoTranscoderErrorVideoSourceNotReady + (1):所选视频源尚未开始采集。需为该视频源创建视频轨道并启动采集。 + + + AgoraVideoTranscoderErrorInvalidVideoSourceType + (2):视频源类型无效。需重新指定支持的视频源类型。 + + + AgoraVideoTranscoderErrorInvalidImagePath + (3):图片路径无效。需重新指定正确的图片路径。 + + + AgoraVideoTranscoderErrorUnsupportImageFormat + (4):图片格式无效。请确保图片格式为 PNG、JPEG 或 GIF。 + + + AgoraVideoTranscoderErrorInvalidLayout + (5):合图后的视频编码分辨率无效。 + + + AgoraVideoTranscoderErrorInternal + (20):未知的内部错误。 + + + AgoraVideoTranscoderErrorOK + (0):无错误。 + + + AgoraVideoTranscoderErrorVideoSourceNotReady + (1):所选视频源尚未开始采集。需为该视频源创建视频轨道并启动采集。 + + + AgoraVideoTranscoderErrorInvalidVideoSourceType + (2):视频源类型无效。需重新指定支持的视频源类型。 + + + AgoraVideoTranscoderErrorInvalidImagePath + (3):图片路径无效。需重新指定正确的图片路径。 + + + AgoraVideoTranscoderErrorUnsupportImageFormat + (4):图片格式无效。请确保图片格式为 PNG、JPEG 或 GIF。 + + + AgoraVideoTranscoderErrorInvalidLayout + (5):合图后的视频编码分辨率无效。 + + + AgoraVideoTranscoderErrorInternal + (20):未知的内部错误。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_videoviewsetupmode.dita b/dita/RTC-AIDOC/API/enum_videoviewsetupmode.dita new file mode 100644 index 00000000000..9dd7bbbe5a3 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_videoviewsetupmode.dita @@ -0,0 +1,55 @@ + + + + <ph keyref="VIDEO_VIEW_SETUP_MODE"/> + 视图的设置模式。视图的设置模式。视图的设置模式。 + +
+ 枚举值 + + + VIDEO_VIEW_SETUP_REPLACE + (0):(默认)清除所有已添加的视图,并替换为新视图。 + + + VIDEO_VIEW_SETUP_ADD + (1):添加一个视图。 + + + VIDEO_VIEW_SETUP_REMOVE + (2):删除一个视图。 + 当你不再需要使用某个视图时,建议通过将 setupMode 设置为 VIDEO_VIEW_SETUP_REMOVE 来删除该视图,否则可能会导致渲染资源泄漏。 + + + + AgoraVideoViewSetupReplace + (0):(默认)清除所有已添加的视图,并替换为新视图。 + + + AgoraVideoViewSetupAdd + (1):添加一个视图。 + + + AgoraVideoViewSetupRemove + (2):删除一个视图。 + 当你不再需要使用某个视图时,建议通过将 setupMode 设置为 AgoraVideoViewSetupRemove 来删除该视图,否则可能会导致渲染资源泄漏。 + + + + AgoraVideoViewSetupReplace + (0):(默认)清除所有已添加的视图,并替换为新视图。 + + + AgoraVideoViewSetupAdd + (1):添加一个视图。 + + + AgoraVideoViewSetupRemove + (2):删除一个视图。 + 当你不再需要使用某个视图时,建议通过将 setupMode 设置为 AgoraVideoViewSetupRemove 来删除该视图,否则可能会导致渲染资源泄漏。 + + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_voiceaitunertype.dita b/dita/RTC-AIDOC/API/enum_voiceaitunertype.dita new file mode 100644 index 00000000000..d9f29bdc653 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_voiceaitunertype.dita @@ -0,0 +1,173 @@ + + + + <ph keyref="VOICE_AI_TUNER_TYPE"/> + Voice AI 调音器的音色类型。语音 AI 调音器的音色类型。Voice AI 调音器的声音类型。Voice AI 调音器的声音类型。 + +
+ 枚举值 + + + VOICE_AI_TUNER_MATURE_MALE + (0):成熟男声,低沉且富有磁性。 + + + VOICE_AI_TUNER_FRESH_MALE + (1):清新男声,清爽且略带甜味。 + + + VOICE_AI_TUNER_ELEGANT_FEMALE + (2):优雅女声,低沉且富有魅力。 + + + VOICE_AI_TUNER_SWEET_FEMALE + (3):甜美女声,音调较高且富有可爱感。 + + + VOICE_AI_TUNER_WARM_MALE_SINGING + (4):温暖男声唱歌,声音温和悦耳。 + + + VOICE_AI_TUNER_GENTLE_FEMALE_SINGING + (5):柔和女声唱歌,声音细腻柔美。 + + + VOICE_AI_TUNER_HUSKY_MALE_SINGING + (6):沙哑男声唱歌,声音独特沙哑。 + + + VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING + (7):温暖优雅女声唱歌,声音温润成熟。 + + + VOICE_AI_TUNER_POWERFUL_MALE_SINGING + (8):有力男声唱歌,声音强劲有力。 + + + VOICE_AI_TUNER_DREAMY_FEMALE_SINGING + (9):梦幻女声唱歌,声音柔和梦幻。 + + + VOICE_AI_TUNER_MATURE_MALE + (0):成熟男声。音色低沉,富有磁性。 + + + VOICE_AI_TUNER_FRESH_MALE + (1):清新男声。音色清爽,略带甜味。 + + + VOICE_AI_TUNER_ELEGANT_FEMALE + (2):优雅女声。音色低沉,富有魅力。 + + + VOICE_AI_TUNER_SWEET_FEMALE + (3):甜美女声。音调较高,风格可爱。 + + + VOICE_AI_TUNER_WARM_MALE_SINGING + (4):温暖男声演唱。音色温暖,悦耳动听。 + + + VOICE_AI_TUNER_GENTLE_FEMALE_SINGING + (5):柔和女声演唱。音色柔和细腻。 + + + VOICE_AI_TUNER_HUSKY_MALE_SINGING + (6):沙哑男声演唱。音色沙哑,风格独特。 + + + VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING + (7):温暖优雅女声演唱。音色温暖成熟。 + + + VOICE_AI_TUNER_POWERFUL_MALE_SINGING + (8):有力男声演唱。音色强劲有力。 + + + VOICE_AI_TUNER_DREAMY_FEMALE_SINGING + (9):梦幻女声演唱。音色梦幻柔和。 + + + AgoraVoiceAITunerMatureMale + (0):成熟男声,声音低沉且富有磁性。 + + + AgoraVoiceAITunerFreshMale + (1):清新男声,声音清爽略带甜味。 + + + AgoraVoiceAITunerElegantFemale + (2):优雅女声,声音低沉且富有魅力。 + + + AgoraVoiceAITunerSweetFemale + (3):甜美女声,声音高亢可爱。 + + + AgoraVoiceAITunerWarmMaleSinging + (4):温暖男声演唱,声音温和悦耳。 + + + AgoraVoiceAITunerGentleFemaleSinging + (5):柔和女声演唱,声音细腻柔美。 + + + AgoraVoiceAITunerHuskyMaleSinging + (6):沙哑男声演唱,声音独特沙哑。 + + + AgoraVoiceAITunerWarmElegantFemaleSinging + (7):温暖优雅女声演唱,声音温润成熟。 + + + AgoraVoiceAITunerPowerfulMaleSinging + (8):有力男声演唱,声音强劲有力。 + + + AgoraVoiceAITunerDreamyFemaleSinging + (9):梦幻女声演唱,声音柔和梦幻。 + + + AgoraVoiceAITunerMatureMale + (0):成熟男声,声音低沉且富有磁性。 + + + AgoraVoiceAITunerFreshMale + (1):清新男声,声音清爽略带甜味。 + + + AgoraVoiceAITunerElegantFemale + (2):优雅女声,声音低沉且富有魅力。 + + + AgoraVoiceAITunerSweetFemale + (3):甜美女声,声音高亢可爱。 + + + AgoraVoiceAITunerWarmMaleSinging + (4):温暖男声演唱,声音温和悦耳。 + + + AgoraVoiceAITunerGentleFemaleSinging + (5):柔和女声演唱,声音细腻柔美。 + + + AgoraVoiceAITunerHuskyMaleSinging + (6):沙哑男声演唱,声音独特沙哑。 + + + AgoraVoiceAITunerWarmElegantFemaleSinging + (7):温暖优雅女声演唱,声音温润成熟。 + + + AgoraVoiceAITunerPowerfulMaleSinging + (8):有力男声演唱,声音强劲有力。 + + + AgoraVoiceAITunerDreamyFemaleSinging + (9):梦幻女声演唱,声音柔和梦幻。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_voicebeautifierpreset.dita b/dita/RTC-AIDOC/API/enum_voicebeautifierpreset.dita new file mode 100644 index 00000000000..4bebea30049 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_voicebeautifierpreset.dita @@ -0,0 +1,211 @@ + + + + <ph keyref="VOICE_BEAUTIFIER_PRESET"/> + SDK 预设的声动语聊美声效果选项。用于设置 SDK 预设的声动语聊美声效果。用于设置 SDK 预设的声动语聊美声效果。 + +
+ 枚举值 + + + VOICE_BEAUTIFIER_OFF + (0x00000000):关闭声动语聊美声效果,使用原始语音。 + + + CHAT_BEAUTIFIER_MAGNETIC + (0x01010100):更具磁性的声音。 + 声网建议用于处理男性音色,否则可能会出现声音失真。 + + + + CHAT_BEAUTIFIER_FRESH + (0x01010200):更清新的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + CHAT_BEAUTIFIER_VITALITY + (0x01010300):更有活力的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + SINGING_BEAUTIFIER + (0x01020100):歌唱美声效果。 + 调用 setVoiceBeautifierPreset(SINGING_BEAUTIFIER) 可美化男性音色并添加小房间混响效果,建议用于男性音色,否则可能出现声音失真。调用 setVoiceBeautifierParameters(SINGING_BEAUTIFIER, param1, param2) 可美化男性或女性音色并添加混响效果。 + + + + TIMBRE_TRANSFORMATION_VIGOROUS + (0x01030100):更有力量感的声音。 + + + TIMBRE_TRANSFORMATION_DEEP + (0x01030200):更深沉的声音。 + + + TIMBRE_TRANSFORMATION_MELLOW + (0x01030300):更圆润的声音。 + + + TIMBRE_TRANSFORMATION_FALSETTO + (0x01030400):假声效果。 + + + TIMBRE_TRANSFORMATION_FULL + (0x01030500):更饱满的声音。 + + + TIMBRE_TRANSFORMATION_CLEAR + (0x01030600):更清晰的声音。 + + + TIMBRE_TRANSFORMATION_RESOUNDING + (0x01030700):更洪亮的声音。 + + + TIMBRE_TRANSFORMATION_RINGING + (0x01030800):更响亮的声音。 + + + ULTRA_HIGH_QUALITY_VOICE + (0x01040100):超高音质效果,使音频更清晰并还原更多细节。 + 为获得更好的音效质量,建议在调用 前,将 setAudioProfile(AUDIO_PROFILE_TYPE profile)profile 设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5),并将 scenario 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。如果音频采集设备本身已具备高保真能力,建议不要启用超高音质,否则 SDK 可能会过度还原音频细节,导致无法获得预期的声音效果。 + + + + AgoraVoiceBeautifierPresetOff + (0x00000000):关闭声动语聊美声效果,使用原始语音。 + + + AgoraVoiceBeautifierPresetChatBeautifierMagnetic + (0x01010100):更具磁性的声音。 + 声网建议用于处理男性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetChatBeautifierFresh + (0x01010200):更清新的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetChatBeautifierVitality + (0x01010300):更有活力的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetSingingBeautifier + (0x01020100):歌唱美声效果。 + 如果调用 (AgoraVoiceBeautifierPresetSingingBeautifier),可美化男性音色并添加小房间混响效果。声网建议用于处理男性音色,否则可能会出现声音失真。若调用 (AgoraVoiceBeautifierPresetSingingBeautifier, param1, param2),可美化男性或女性音色并添加混响效果。 + + + + AgoraVoiceBeautifierTimbreTransformationVigorous + (0x01030100):更有力量感的声音。 + + + AgoraVoiceBeautifierTimbreTransformationDeep + (0x01030200):更深沉的声音。 + + + AgoraVoiceBeautifierTimbreTransformationMellow + (0x01030300):更圆润的声音。 + + + AgoraVoiceBeautifierTimbreTransformationFalsetto + (0x01030400):假声效果。 + + + AgoraVoiceBeautifierTimbreTransformationFull + (0x01030500):更饱满的声音。 + + + AgoraVoiceBeautifierTimbreTransformationClear + (0x01030600):更清晰的声音。 + + + AgoraVoiceBeautifierTimbreTransformationResounding + (0x01030700):更响亮的声音。 + + + AgoraVoiceBeautifierTimbreTransformatRinging + (0x01030800):更有穿透力的声音。 + + + AgoraVoiceBeautifierUltraHighQuality + (0x01040100):超高音质效果,使音频更清晰并还原更多细节。 + 为获得更好的音效质量,声网建议在调用 前,将 profile 设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5),并将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。如果你的音频采集设备已能高度还原音频细节,声网建议不要启用超高音质,否则 SDK 可能会过度还原音频细节,导致无法听到预期的声音效果。 + + + + AgoraVoiceBeautifierPresetOff + (0x00000000):关闭声动语聊美声效果,使用原始语音。 + + + AgoraVoiceBeautifierPresetChatBeautifierMagnetic + (0x01010100):更具磁性的声音。 + 声网建议用于处理男性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetChatBeautifierFresh + (0x01010200):更清新的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetChatBeautifierVitality + (0x01010300):更有活力的声音。 + 声网建议用于处理女性音色,否则可能会出现声音失真。 + + + + AgoraVoiceBeautifierPresetSingingBeautifier + (0x01020100):歌唱美声效果。 + 如果调用 (AgoraVoiceBeautifierPresetSingingBeautifier),可美化男性音色并添加小房间混响效果。声网建议用于处理男性音色,否则可能会出现声音失真。若调用 (AgoraVoiceBeautifierPresetSingingBeautifier, param1, param2),可美化男性或女性音色并添加混响效果。 + + + + AgoraVoiceBeautifierTimbreTransformationVigorous + (0x01030100):更有力量感的声音。 + + + AgoraVoiceBeautifierTimbreTransformationDeep + (0x01030200):更深沉的声音。 + + + AgoraVoiceBeautifierTimbreTransformationMellow + (0x01030300):更圆润的声音。 + + + AgoraVoiceBeautifierTimbreTransformationFalsetto + (0x01030400):假声效果。 + + + AgoraVoiceBeautifierTimbreTransformationFull + (0x01030500):更饱满的声音。 + + + AgoraVoiceBeautifierTimbreTransformationClear + (0x01030600):更清晰的声音。 + + + AgoraVoiceBeautifierTimbreTransformationResounding + (0x01030700):更响亮的声音。 + + + AgoraVoiceBeautifierTimbreTransformatRinging + (0x01030800):更有穿透力的声音。 + + + AgoraVoiceBeautifierUltraHighQuality + (0x01040100):超高音质效果,使音频更清晰并还原更多细节。 + 为获得更好的音效质量,声网建议在调用 前,将 profile 设置为 AgoraAudioProfileMusicHighQuality(4)或 AgoraAudioProfileMusicHighQualityStereo(5),并将 scenario 设置为 AgoraAudioScenarioGameStreaming(3)。如果你的音频采集设备已能高度还原音频细节,声网建议不要启用超高音质,否则 SDK 可能会过度还原音频细节,导致无法听到预期的声音效果。 + + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_voiceconversionpreset.dita b/dita/RTC-AIDOC/API/enum_voiceconversionpreset.dita new file mode 100644 index 00000000000..85fdca71f4d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_voiceconversionpreset.dita @@ -0,0 +1,205 @@ + + + + <ph keyref="VOICE_CONVERSION_PRESET"/> + SDK 预设的变声效果选项。SDK 预设的变声效果选项。SDK 预设的变声效果选项。 + +
+ 枚举值 + + + VOICE_CONVERSION_OFF + (0x00000000):关闭变声效果,使用原始声音。 + + + VOICE_CHANGER_NEUTRAL + (0x03010100):中性音色。为避免音频失真,建议用于处理女性音色。 + + + VOICE_CHANGER_SWEET + (0x03010200):甜美音色。为避免音频失真,建议用于处理女性音色。 + + + VOICE_CHANGER_SOLID + (0x03010300):沉稳音色。为避免音频失真,建议用于处理男性音色。 + + + VOICE_CHANGER_BASS + (0x03010400):低沉音色。为避免音频失真,建议用于处理男性音色。 + + + VOICE_CHANGER_CARTOON + (0x03010500):卡通角色音色。 + + + VOICE_CHANGER_CHILDLIKE + (0x03010600):童音效果。 + + + VOICE_CHANGER_PHONE_OPERATOR + (0x03010700):电话客服音色。 + + + VOICE_CHANGER_MONSTER + (0x03010800):怪兽音色。 + + + VOICE_CHANGER_TRANSFORMERS + (0x03010900):变形金刚音色。 + + + VOICE_CHANGER_GROOT + (0x03010A00):Groot 音色。 + + + VOICE_CHANGER_DARTH_VADER + (0x03010B00):Darth Vader 音色。 + + + VOICE_CHANGER_IRON_LADY + (0x03010C00):粗犷女性音色。 + + + VOICE_CHANGER_SHIN_CHAN + (0x03010D00):蜡笔小新音色。 + + + VOICE_CHANGER_GIRLISH_MAN + (0x03010E00):假声男音色。 + + + VOICE_CHANGER_CHIPMUNK + (0x03010F00):花栗鼠音色。 + + + AgoraVoiceConversionPresetOff + (0x00000000):关闭变声效果,使用原始声音。 + + + AgoraVoiceConversionPresetNeutral + (0x03010100):中性风格的声音。为避免音频失真,建议用于处理女性声音。 + + + AgoraVoiceConversionPresetSweet + (0x03010200):甜美风格的声音。为避免音频失真,建议用于处理女性声音。 + + + AgoraVoiceConversionPresetChangerSolid + (0x03010300):沉稳风格的声音。为避免音频失真,建议用于处理男性声音。 + + + AgoraVoiceConversionPresetChangerBass + (0x03010400):低沉风格的声音。为避免音频失真,建议用于处理男性声音。 + + + AgoraVoiceConversionPresetChangerCartoon + (0x03010500):卡通角色风格的声音。 + + + AgoraVoiceConversionPresetChangerChildlike + (0x03010600):孩童风格的声音。 + + + AgoraVoiceConversionPresetChangerPhoneOperator + (0x03010700):电话接线员风格的声音。 + + + AgoraVoiceConversionPresetChangerMonster + (0x03010800):怪物风格的声音。 + + + AgoraVoiceConversionPresetChangerTransformers + (0x03010900):变形金刚风格的声音。 + + + AgoraVoiceConversionPresetChangerGroot + (0x03010A00):Groot 风格的声音。 + + + AgoraVoiceConversionPresetChangerDarthVader + (0x03010B00):Darth Vader 风格的声音。 + + + AgoraVoiceConversionPresetChangerIronLady + (0x03010C00):粗犷女性风格的声音。 + + + AgoraVoiceConversionPresetChangerShinchan + (0x03010D00):蜡笔小新风格的声音。 + + + AgoraVoiceConversionPresetChangerGirlishMan + (0x03010E00):假声男高音风格的声音。 + + + AgoraVoiceConversionPresetChangerChipmunk + (0x03010F00):花栗鼠风格的声音。 + + + AgoraVoiceConversionPresetOff + (0x00000000):关闭变声效果,使用原始声音。 + + + AgoraVoiceConversionPresetNeutral + (0x03010100):中性风格的声音。为避免音频失真,建议用于处理女性声音。 + + + AgoraVoiceConversionPresetSweet + (0x03010200):甜美风格的声音。为避免音频失真,建议用于处理女性声音。 + + + AgoraVoiceConversionPresetChangerSolid + (0x03010300):沉稳风格的声音。为避免音频失真,建议用于处理男性声音。 + + + AgoraVoiceConversionPresetChangerBass + (0x03010400):低沉风格的声音。为避免音频失真,建议用于处理男性声音。 + + + AgoraVoiceConversionPresetChangerCartoon + (0x03010500):卡通角色风格的声音。 + + + AgoraVoiceConversionPresetChangerChildlike + (0x03010600):孩童风格的声音。 + + + AgoraVoiceConversionPresetChangerPhoneOperator + (0x03010700):电话接线员风格的声音。 + + + AgoraVoiceConversionPresetChangerMonster + (0x03010800):怪物风格的声音。 + + + AgoraVoiceConversionPresetChangerTransformers + (0x03010900):变形金刚风格的声音。 + + + AgoraVoiceConversionPresetChangerGroot + (0x03010A00):Groot 风格的声音。 + + + AgoraVoiceConversionPresetChangerDarthVader + (0x03010B00):Darth Vader 风格的声音。 + + + AgoraVoiceConversionPresetChangerIronLady + (0x03010C00):粗犷女性风格的声音。 + + + AgoraVoiceConversionPresetChangerShinchan + (0x03010D00):蜡笔小新风格的声音。 + + + AgoraVoiceConversionPresetChangerGirlishMan + (0x03010E00):假声男高音风格的声音。 + + + AgoraVoiceConversionPresetChangerChipmunk + (0x03010F00):花栗鼠风格的声音。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_watermarkbufferformat.dita b/dita/RTC-AIDOC/API/enum_watermarkbufferformat.dita new file mode 100644 index 00000000000..a7b73147264 --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_watermarkbufferformat.dita @@ -0,0 +1,57 @@ + + + + <ph keyref="WatermarkBufferFormat"/> + 水印缓冲区的数据格式。水印缓冲区的数据格式。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + WatermarkBufferFormatI420 + (1):使用 I420 格式的水印缓冲区。 + + + WatermarkBufferFormatBGRA + (2):使用 BGRA 格式的水印缓冲区。 + + + WatermarkBufferFormatNV21 + (3):使用 NV21 格式的水印缓冲区。 + + + WatermarkBufferFormatRGBA + (4):使用 RGBA 格式的水印缓冲区。 + + + WatermarkBufferFormatI420 + (1):使用 I420 格式的水印缓冲区。 + + + WatermarkBufferFormatBGRA + (2):使用 BGRA 格式的水印缓冲区。 + + + WatermarkBufferFormatNV21 + (3):使用 NV21 格式的水印缓冲区。 + + + WatermarkBufferFormatRGBA + (4):使用 RGBA 格式的水印缓冲区。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_watermarkfitmode.dita b/dita/RTC-AIDOC/API/enum_watermarkfitmode.dita new file mode 100644 index 00000000000..8933687b39e --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_watermarkfitmode.dita @@ -0,0 +1,21 @@ + + + + <ph keyref="WATERMARK_FIT_MODE"/> + 水印的适配模式。 + +
+ 枚举值 + + + FIT_MODE_COVER_POSITION + (0):使用在 中设置的 positionInLandscapeModepositionInPortraitMode 值, 中的设置无效。 + + + FIT_MODE_USE_IMAGE_RATIO + (1):使用在 中设置的值, 中的 positionInLandscapeModepositionInPortraitMode 设置无效。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/enum_watermarksourcetype.dita b/dita/RTC-AIDOC/API/enum_watermarksourcetype.dita new file mode 100644 index 00000000000..badba64c08d --- /dev/null +++ b/dita/RTC-AIDOC/API/enum_watermarksourcetype.dita @@ -0,0 +1,65 @@ + + + + <ph keyref="WATERMARK_SOURCE_TYPE"/> + 水印源类型。水印源类型。水印源类型。 + +
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+ +
自从
+
自 v4.6.0 版本新增。
+
+
+
+
+ 枚举值 + + + IMAGE + (0):水印源为图像。 + + + BUFFER + (1):水印源为缓冲区。 + + + LITERAL + (2):水印源为文本字面量。 + 仅支持在 Linux 平台使用。 + + + + TIMESTAMPS + (3):水印源为时间戳。 + 仅支持在 Linux 平台使用。 + + + + WatermarkTypeImage + (0):水印源为图像。 + + + WatermarkTypeBuffer + (1):水印源为缓冲区。 + + + WatermarkTypeImage + (0):水印源为图像。 + + + WatermarkTypeBuffer + (1):水印源为缓冲区。 + + +
+
+
\ No newline at end of file diff --git a/dita/RTC-AIDOC/API/rtc_api_data_type.dita b/dita/RTC-AIDOC/API/rtc_api_data_type.dita index 1c272989f74..98e23a15c45 100644 --- a/dita/RTC-AIDOC/API/rtc_api_data_type.dita +++ b/dita/RTC-AIDOC/API/rtc_api_data_type.dita @@ -1,59 +1,974 @@ - - <ph keyref="typedef"/> - - - 本页列出 所有 和 Enum 的定义。 - + <ph keyref="typedef"/> + 本页列出 所有 和 Enum 的定义。
- - <ph keyref="class"/> - + <ph keyref="class"/>
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
Enums
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
    -
  • - -
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
diff --git a/dita/RTC-AIDOC/API/rtc_api_overview_Android.dita b/dita/RTC-AIDOC/API/rtc_api_overview_Android.dita index 727dd464891..42636c3d2f2 100644 --- a/dita/RTC-AIDOC/API/rtc_api_overview_Android.dita +++ b/dita/RTC-AIDOC/API/rtc_api_overview_Android.dita @@ -2,41 +2,2678 @@ API 概览 - - 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 - + 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 +
+ 初始化相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 频道相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 发布和订阅 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人声音效 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 听声辨位 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 空间音频 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地音频合流 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 原始音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 自定义音频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频频谱 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 摄像头采集 + + + API + 描述 + + + + + + + + + + +
+
+ 屏幕采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地截图上传 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟背景 + + + API + 描述 + + + + + + + + + + +
+
+ 本地合图 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 视频增强 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人脸检测 + + + API + 描述 + + + + + + + + + + +
+
+ 直播水印 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 垫片推流 + + + API + 描述 + + + + + + +
+
+ 视频渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 原始视频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码视频数据 + + + API + 描述 + + + + + + + + + + +
+
+ 自定义视频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音乐文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音效文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟节拍器 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 初始化 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 媒体资源打开 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源播放和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 媒体播放器控制 + 播放器控制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 播放信息获取 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频观测器 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体播放器缓存 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 版权音乐 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频录制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 跨频道媒体流转发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 旁路推流 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 直推 CDN API 描述 - - - - - - + + + + + +
-
- 媒体播放器信息 +
+ 数据流 Datastream + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体流附属信息分发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频路由 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 插件 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 网络及其他 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/dita/RTC-AIDOC/API/rtc_api_overview_CPP.dita b/dita/RTC-AIDOC/API/rtc_api_overview_CPP.dita index 124286e37d3..9eef8d24967 100644 --- a/dita/RTC-AIDOC/API/rtc_api_overview_CPP.dita +++ b/dita/RTC-AIDOC/API/rtc_api_overview_CPP.dita @@ -2,41 +2,2866 @@ API 概览 - - 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 - + 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 +
+ 初始化相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 频道相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 发布和订阅 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人声音效 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 听声辨位 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 空间音频 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地音频合流 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 原始音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 自定义音频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频频谱 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 摄像头采集 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 屏幕采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地截图上传 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟背景 + + + API + 描述 + + + + + + +
+
+ 本地合图 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 视频增强 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人脸检测 + + + API + 描述 + + + + + + + + + + +
+
+ 人像锁定 + + + API + 描述 + + + + + + + + + + +
+
+ 直播水印 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 垫片推流 + + + API + 描述 + + + + + + +
+
+ 视频渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 原始视频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码视频数据 + + + API + 描述 + + + + + + + + + + +
+
+ 自定义视频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音乐文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音效文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 初始化 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 媒体资源打开 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源播放和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 媒体播放器控制 + 播放器控制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 播放信息获取 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频观测器 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体播放器缓存 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 版权音乐 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频录制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 跨频道媒体流转发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 旁路推流 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 直推 CDN + + + API + 描述 + + + + + + + + + + +
+
+ 数据流 Datastream + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体流附属信息分发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频路由 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 插件 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- 媒体播放器信息 +
+ 网络及其他 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/dita/RTC-AIDOC/API/rtc_api_overview_iOS.dita b/dita/RTC-AIDOC/API/rtc_api_overview_iOS.dita index 5383e2fe3c2..0f5050f91d0 100644 --- a/dita/RTC-AIDOC/API/rtc_api_overview_iOS.dita +++ b/dita/RTC-AIDOC/API/rtc_api_overview_iOS.dita @@ -2,41 +2,2627 @@ API 概览 - - 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 - + 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 +
+ 初始化相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 频道相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 发布和订阅 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人声音效 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 听声辨位 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 空间音频 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地音频合流 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 原始音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 自定义音频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频频谱 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 摄像头采集 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 屏幕采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地截图上传 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟背景 + + + API + 描述 + + + + + + + + + + +
+
+ 本地合图 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 视频增强 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人脸检测 + + + API + 描述 + + + + + + + + + + +
+
+ 人像锁定 + + + API + 描述 + + + + + + + + + + +
+
+ 直播水印 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 垫片推流 + + + API + 描述 + + + + + + +
+
+ 视频渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 原始视频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码视频数据 + + + API + 描述 + + + + + + + + + + +
+
+ 自定义视频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 音乐文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音效文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟节拍器 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 初始化 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源打开 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源播放和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 媒体播放器控制 + 播放器控制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 播放信息获取 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频观测器 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体播放器缓存 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 版权音乐 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频录制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 跨频道媒体流转发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 旁路推流 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- 媒体播放器信息 +
+ 直推 CDN + + + API + 描述 + + + + + + + + + + +
+
+ 数据流 Datastream + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体流附属信息分发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频路由 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 视频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 插件 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 网络及其他 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/dita/RTC-AIDOC/API/rtc_api_overview_macOS.dita b/dita/RTC-AIDOC/API/rtc_api_overview_macOS.dita index 86d9297209e..70638ab3475 100644 --- a/dita/RTC-AIDOC/API/rtc_api_overview_macOS.dita +++ b/dita/RTC-AIDOC/API/rtc_api_overview_macOS.dita @@ -2,41 +2,2486 @@ API 概览 - - 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 - + 声网通过全球部署的 SD-RTN™,提供可以灵活搭配的 API 组合,实现质量可靠的实时音视频通信。 +
+ 初始化相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 频道相关 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 发布和订阅 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人声音效 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 听声辨位 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 空间音频 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地音频合流 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 原始音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码音频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 自定义音频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频频谱 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频基础功能 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 摄像头采集 + + + API + 描述 + + + + + + + + + + +
+
+ 屏幕采集 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 本地截图上传 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟背景 + + + API + 描述 + + + + + + + + + + +
+
+ 本地合图 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 视频增强 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 人像锁定 + + + API + 描述 + + + + + + + + + + +
+
+ 直播水印 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 垫片推流 + + + API + 描述 + + + + + + +
+
+ 视频渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 原始视频数据 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 已编码视频数据 + + + API + 描述 + + + + + + + + + + +
+
+ 自定义视频采集和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 音乐文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音效文件播放 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 虚拟节拍器 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 初始化 + + + API + 描述 + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源打开 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体资源播放和渲染 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 媒体播放器控制 + 播放器控制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 播放信息获取 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频观测器 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体播放器缓存 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音视频录制 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 跨频道媒体流转发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 旁路推流 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 直推 CDN API 描述 - - - - - - + + + + + +
-
- 媒体播放器信息 +
+ 数据流 Datastream + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 媒体流附属信息分发 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + +
+
+ 音频路由 + + + API + 描述 + + + + + + +
+
+ 通用设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 视频设备管理 + + + API + 描述 + + + + + + + + + + + + + + +
+
+ 音频设备管理 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 插件 + + + API + 描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 网络及其他 API 描述 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/dita/RTC-AIDOC/API/rtc_api_sunset.dita b/dita/RTC-AIDOC/API/rtc_api_sunset.dita index 90b95bdb419..ad2efc1afff 100644 --- a/dita/RTC-AIDOC/API/rtc_api_sunset.dita +++ b/dita/RTC-AIDOC/API/rtc_api_sunset.dita @@ -2,9 +2,7 @@ API 下架说明 - - 本页介绍 SDK 中已废弃和删除的 API。 - + 本页介绍 SDK 中已废弃和删除的 API。
已废弃 API @@ -35,12 +33,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用服务端旁路推流功能。 v4.6.0 @@ -50,12 +43,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -65,12 +53,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -80,12 +63,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -95,12 +73,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -110,12 +83,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -125,12 +93,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -140,12 +103,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -185,12 +143,7 @@ - 请改用 - - - - - + 请改用 v4.6.0 @@ -324,7 +277,19 @@ v4.0.0 - + + + + + + + + + + + v4.0.0 + + @@ -425,12 +390,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -451,12 +460,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -477,12 +530,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -503,12 +600,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -781,12 +922,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -796,12 +932,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -811,12 +942,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -826,12 +952,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -841,12 +962,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -856,12 +972,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -871,12 +982,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -886,12 +992,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -901,12 +1002,7 @@ - 请改用 - - - - - 服务端旁路推流功能。 + 请改用 服务端旁路推流功能。 v4.6.0 @@ -916,12 +1012,7 @@ - 请改用 - - - - - + 请改用 v4.6.0 @@ -1043,7 +1134,7 @@ v4.0.0 - + @@ -1055,6 +1146,18 @@ v4.0.0 + + + + + + + + + + + v4.0.0 + @@ -1144,12 +1247,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -1170,12 +1317,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -1196,12 +1387,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -1222,12 +1457,56 @@ + + + + + + + + + + + + + + + + + + + + + + context config 参数 + + + + + + + + + + + + + + + + + + + + + + v4.0.0 @@ -1606,23 +1885,13 @@ CreateRendererView 创建 RendererView。 - Android 原生的 - - - - - 方法 + Android 原生的 SurfaceView 方法 v4.4.0 CreateTextureView 创建 TextureView。 - Android 原生的 - - - - - + Android 原生的 TextureView v4.4.0 @@ -1649,11 +1918,55 @@ + + + + + + + + + + + + + + + + + + + + + + degradationPreference 参数 + + + + + + + + + + + + + + + + + + + + + + v4.4.0 diff --git a/dita/RTC-AIDOC/API/rtc_interface_class.dita b/dita/RTC-AIDOC/API/rtc_interface_class.dita index 3245e5e32c2..165f76a413a 100644 --- a/dita/RTC-AIDOC/API/rtc_interface_class.dita +++ b/dita/RTC-AIDOC/API/rtc_interface_class.dita @@ -1,12 +1,8 @@ - - <ph keyref="full-api-title"/> - - - 本页列出 所有的接口类以及其中包含的 API。 - +<ph keyref="full-api-title"/> +本页列出 所有的接口类以及其中包含的 API。 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/rtc_lite_api.dita b/dita/RTC-AIDOC/API/rtc_lite_api.dita index fac7883103b..c4f6a422a34 100644 --- a/dita/RTC-AIDOC/API/rtc_lite_api.dita +++ b/dita/RTC-AIDOC/API/rtc_lite_api.dita @@ -1,15 +1,11 @@ - Lite SDK API 列表 - - 本页列出 Lite SDK 支持的 API 列表。 - - -
- 如果在本页中无法查询到你要使用的 API,则代表 Lite SDK 不支持该 API,调用该 API 时会返回错误码 -2。 -
-
+Lite SDK API 列表 +本页列出 Lite SDK 支持的 API 列表。 + +
如果在本页中无法查询到你要使用的 API,则代表 Lite SDK 不支持该 API,调用该 API 时会返回错误码 -2。
+
<apiname keyref="IRtcEngine"/> @@ -328,6 +324,28 @@ + + + + + + + + + + + + + + + + + + + + + +
  • publishScreenCaptureVideo @@ -351,6 +369,28 @@ + + + + + + + + + + + + + + + + + + + + + +
    • publishScreenCaptureVideo @@ -502,16 +542,82 @@ + + + + + + + + + + + + + + + + + + + + + + config 中的 + + + + + + + + + + + + + + + + + + + + + + encodingType 仅支持 OPUS 编码格式。 + + + + + + + + + + + + + + + + + + + + + +
    • @@ -995,6 +1101,28 @@ + + + + + + + + + + + + + + + + + + + + + +
      • publishScreenCaptureVideo @@ -1163,6 +1291,28 @@ + + + + + + + + + + + + + + + + + + + + + +
        • publishScreenCaptureVideo @@ -1652,6 +1802,28 @@ + + + + + + + + + + + + + + + + + + + + + + alphabuffer
          • diff --git a/dita/RTC-AIDOC/API/toc_audio.dita b/dita/RTC-AIDOC/API/toc_audio.dita index 1000a7fcf26..902a2fde042 100644 --- a/dita/RTC-AIDOC/API/toc_audio.dita +++ b/dita/RTC-AIDOC/API/toc_audio.dita @@ -1,6 +1,3 @@ - - 音频功能 - - \ No newline at end of file +音频功能 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_basic.dita b/dita/RTC-AIDOC/API/toc_audio_basic.dita index 473166f6f5b..d94a8919d5d 100644 --- a/dita/RTC-AIDOC/API/toc_audio_basic.dita +++ b/dita/RTC-AIDOC/API/toc_audio_basic.dita @@ -1,6 +1,3 @@ - - 音频基础功能 - - \ No newline at end of file +音频基础功能 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_capture.dita b/dita/RTC-AIDOC/API/toc_audio_capture.dita index 93092fd2607..221cdbf886c 100644 --- a/dita/RTC-AIDOC/API/toc_audio_capture.dita +++ b/dita/RTC-AIDOC/API/toc_audio_capture.dita @@ -1,6 +1,3 @@ - - 音频采集 - - \ No newline at end of file +音频采集 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_custom_capturenrendering.dita b/dita/RTC-AIDOC/API/toc_audio_custom_capturenrendering.dita index 8fbc926af50..1f295b5b74a 100644 --- a/dita/RTC-AIDOC/API/toc_audio_custom_capturenrendering.dita +++ b/dita/RTC-AIDOC/API/toc_audio_custom_capturenrendering.dita @@ -1,6 +1,3 @@ - - 自定义音频采集和渲染 - - \ No newline at end of file +自定义音频采集和渲染 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_device.dita b/dita/RTC-AIDOC/API/toc_audio_device.dita index f9a3ce7c9de..e9b6e2a6db7 100644 --- a/dita/RTC-AIDOC/API/toc_audio_device.dita +++ b/dita/RTC-AIDOC/API/toc_audio_device.dita @@ -1,6 +1,3 @@ - - 音频设备管理 - - \ No newline at end of file +音频设备管理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_device_management.dita b/dita/RTC-AIDOC/API/toc_audio_device_management.dita new file mode 100644 index 00000000000..597a23fe203 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_audio_device_management.dita @@ -0,0 +1,7 @@ + + + + 音频设备管理 + 介绍跟音频设备管理相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_effect.dita b/dita/RTC-AIDOC/API/toc_audio_effect.dita index 1543546bb8b..8d3180a3a69 100644 --- a/dita/RTC-AIDOC/API/toc_audio_effect.dita +++ b/dita/RTC-AIDOC/API/toc_audio_effect.dita @@ -1,6 +1,3 @@ - - 音效 - - \ No newline at end of file +人声音效 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_effect_file.dita b/dita/RTC-AIDOC/API/toc_audio_effect_file.dita index 9da3daff30e..70cb3034871 100644 --- a/dita/RTC-AIDOC/API/toc_audio_effect_file.dita +++ b/dita/RTC-AIDOC/API/toc_audio_effect_file.dita @@ -1,6 +1,3 @@ - - 音效文件播放 - - \ No newline at end of file +音效文件播放 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_encoded.dita b/dita/RTC-AIDOC/API/toc_audio_encoded.dita index 4ae9ab047ad..b1685bc1b38 100644 --- a/dita/RTC-AIDOC/API/toc_audio_encoded.dita +++ b/dita/RTC-AIDOC/API/toc_audio_encoded.dita @@ -1,6 +1,3 @@ - - 已编码音频数据 - - \ No newline at end of file +已编码音频数据 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_mixing.dita b/dita/RTC-AIDOC/API/toc_audio_mixing.dita index 1a48057b300..67aec6b8c01 100644 --- a/dita/RTC-AIDOC/API/toc_audio_mixing.dita +++ b/dita/RTC-AIDOC/API/toc_audio_mixing.dita @@ -1,6 +1,3 @@ - - 音乐文件播放 - - \ No newline at end of file +音乐文件播放 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_observer.dita b/dita/RTC-AIDOC/API/toc_audio_observer.dita new file mode 100644 index 00000000000..1f34da98e02 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_audio_observer.dita @@ -0,0 +1,7 @@ + + + + 音频观测器 + 介绍跟音频观测器相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_prenpost.dita b/dita/RTC-AIDOC/API/toc_audio_prenpost.dita index 742e33af9d2..6861f167c04 100644 --- a/dita/RTC-AIDOC/API/toc_audio_prenpost.dita +++ b/dita/RTC-AIDOC/API/toc_audio_prenpost.dita @@ -1,6 +1,3 @@ - - 音频前处理和后处理 - - \ No newline at end of file +音频前处理和后处理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_process.dita b/dita/RTC-AIDOC/API/toc_audio_process.dita new file mode 100644 index 00000000000..0e76a6ca7a2 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_audio_process.dita @@ -0,0 +1,7 @@ + + + + 音频处理 + 介绍跟音频处理相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_raw.dita b/dita/RTC-AIDOC/API/toc_audio_raw.dita index dd79fe2a415..bcb0399ecbc 100644 --- a/dita/RTC-AIDOC/API/toc_audio_raw.dita +++ b/dita/RTC-AIDOC/API/toc_audio_raw.dita @@ -1,6 +1,3 @@ - - 原始音频数据 - - \ No newline at end of file +原始音频数据 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_route.dita b/dita/RTC-AIDOC/API/toc_audio_route.dita index 1ad6e83970c..f7924654253 100644 --- a/dita/RTC-AIDOC/API/toc_audio_route.dita +++ b/dita/RTC-AIDOC/API/toc_audio_route.dita @@ -1,6 +1,3 @@ - - 音频路由 - - \ No newline at end of file +音频路由 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audio_spectrum.dita b/dita/RTC-AIDOC/API/toc_audio_spectrum.dita index b28b1a4aaff..381bccef60f 100644 --- a/dita/RTC-AIDOC/API/toc_audio_spectrum.dita +++ b/dita/RTC-AIDOC/API/toc_audio_spectrum.dita @@ -1,6 +1,3 @@ - - 音频频谱 - - \ No newline at end of file +音频频谱 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_audiomixer.dita b/dita/RTC-AIDOC/API/toc_audiomixer.dita index c94948a9b67..8fab560e9dc 100644 --- a/dita/RTC-AIDOC/API/toc_audiomixer.dita +++ b/dita/RTC-AIDOC/API/toc_audiomixer.dita @@ -1,6 +1,3 @@ - - 音频混音 - - \ No newline at end of file +本地音频合流 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_camera_capture.dita b/dita/RTC-AIDOC/API/toc_camera_capture.dita index 4ced869f694..fcbafaaa78f 100644 --- a/dita/RTC-AIDOC/API/toc_camera_capture.dita +++ b/dita/RTC-AIDOC/API/toc_camera_capture.dita @@ -1,6 +1,3 @@ - - 视频采集 - - \ No newline at end of file +摄像头采集 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_cdn_streaming.dita b/dita/RTC-AIDOC/API/toc_cdn_streaming.dita index abe068c1bb6..335895260ce 100644 --- a/dita/RTC-AIDOC/API/toc_cdn_streaming.dita +++ b/dita/RTC-AIDOC/API/toc_cdn_streaming.dita @@ -1,6 +1,3 @@ - - 直推 CDN - - \ No newline at end of file +直推 CDN \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_center_stage.dita b/dita/RTC-AIDOC/API/toc_center_stage.dita index 8ab3c673f87..3a71ceab58f 100644 --- a/dita/RTC-AIDOC/API/toc_center_stage.dita +++ b/dita/RTC-AIDOC/API/toc_center_stage.dita @@ -1,6 +1,3 @@ - - 人像居中 - - \ No newline at end of file +人像锁定 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_channel.dita b/dita/RTC-AIDOC/API/toc_channel.dita index b25df2e2524..b610a36f195 100644 --- a/dita/RTC-AIDOC/API/toc_channel.dita +++ b/dita/RTC-AIDOC/API/toc_channel.dita @@ -1,6 +1,3 @@ - - 频道相关 - - \ No newline at end of file +频道相关 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_channel_media_relay.dita b/dita/RTC-AIDOC/API/toc_channel_media_relay.dita index 6eff00d86cf..6d194e592e1 100644 --- a/dita/RTC-AIDOC/API/toc_channel_media_relay.dita +++ b/dita/RTC-AIDOC/API/toc_channel_media_relay.dita @@ -1,6 +1,3 @@ - - 跨频道媒体流转发 - - \ No newline at end of file +跨频道媒体流转发 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_cloud_media_relay.dita b/dita/RTC-AIDOC/API/toc_cloud_media_relay.dita index 920e220f541..8e39c79c5b3 100644 --- a/dita/RTC-AIDOC/API/toc_cloud_media_relay.dita +++ b/dita/RTC-AIDOC/API/toc_cloud_media_relay.dita @@ -1,6 +1,3 @@ - - 云端媒体流转发 - - \ No newline at end of file +媒体流云分发 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_common_device.dita b/dita/RTC-AIDOC/API/toc_common_device.dita new file mode 100644 index 00000000000..79c3b8e5c12 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_common_device.dita @@ -0,0 +1,3 @@ + + +通用设备管理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_core_method.dita b/dita/RTC-AIDOC/API/toc_core_method.dita new file mode 100644 index 00000000000..e14e7b83f8e --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_core_method.dita @@ -0,0 +1,7 @@ + + + + 核心方法和回调 + 介绍 RTC SDK 中的核心方法以及对应的回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_datastream.dita b/dita/RTC-AIDOC/API/toc_datastream.dita index 9a53b3ccb83..c7f51b6f610 100644 --- a/dita/RTC-AIDOC/API/toc_datastream.dita +++ b/dita/RTC-AIDOC/API/toc_datastream.dita @@ -1,6 +1,3 @@ - - 数据流 - - \ No newline at end of file +数据流 Datastream \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_device_management.dita b/dita/RTC-AIDOC/API/toc_device_management.dita index 3e96648ef70..74399cd3b4b 100644 --- a/dita/RTC-AIDOC/API/toc_device_management.dita +++ b/dita/RTC-AIDOC/API/toc_device_management.dita @@ -1,6 +1,3 @@ - - 设备管理 - - \ No newline at end of file +设备管理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_drm.dita b/dita/RTC-AIDOC/API/toc_drm.dita index 336e5cc96da..888a32a4187 100644 --- a/dita/RTC-AIDOC/API/toc_drm.dita +++ b/dita/RTC-AIDOC/API/toc_drm.dita @@ -1,6 +1,3 @@ - - 版权音乐 - - \ No newline at end of file +版权音乐 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_dual_stream.dita b/dita/RTC-AIDOC/API/toc_dual_stream.dita new file mode 100644 index 00000000000..1dc13246fbd --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_dual_stream.dita @@ -0,0 +1,7 @@ + + + + 视频双流 + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_extension.dita b/dita/RTC-AIDOC/API/toc_extension.dita index d21558427f9..f030f69ac31 100644 --- a/dita/RTC-AIDOC/API/toc_extension.dita +++ b/dita/RTC-AIDOC/API/toc_extension.dita @@ -1,6 +1,3 @@ - - 插件相关 - - \ No newline at end of file +插件 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_face_detection.dita b/dita/RTC-AIDOC/API/toc_face_detection.dita index 03175f7d92f..b4e39e97bac 100644 --- a/dita/RTC-AIDOC/API/toc_face_detection.dita +++ b/dita/RTC-AIDOC/API/toc_face_detection.dita @@ -1,6 +1,3 @@ - - 人脸检测 - - \ No newline at end of file +人脸检测 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_image_source.dita b/dita/RTC-AIDOC/API/toc_image_source.dita index 87971a3d518..273bdb16b1c 100644 --- a/dita/RTC-AIDOC/API/toc_image_source.dita +++ b/dita/RTC-AIDOC/API/toc_image_source.dita @@ -1,6 +1,3 @@ - - 图片源 - - \ No newline at end of file +垫片推流 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_initialize.dita b/dita/RTC-AIDOC/API/toc_initialize.dita index f2a223cb521..5f7a4767e01 100644 --- a/dita/RTC-AIDOC/API/toc_initialize.dita +++ b/dita/RTC-AIDOC/API/toc_initialize.dita @@ -1,6 +1,3 @@ - - 初始化相关 - - \ No newline at end of file +初始化相关 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_local_recording.dita b/dita/RTC-AIDOC/API/toc_local_recording.dita new file mode 100644 index 00000000000..3339de69d98 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_local_recording.dita @@ -0,0 +1,7 @@ + + + + 音视频流录制 + 介绍音视频流录制时使用的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_local_transcoder.dita b/dita/RTC-AIDOC/API/toc_local_transcoder.dita index 330e79014e8..f479dc098df 100644 --- a/dita/RTC-AIDOC/API/toc_local_transcoder.dita +++ b/dita/RTC-AIDOC/API/toc_local_transcoder.dita @@ -1,6 +1,3 @@ - - 本地合图 - - \ No newline at end of file +本地合图 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_media_push.dita b/dita/RTC-AIDOC/API/toc_media_push.dita index d1f250dd5f6..53956f52128 100644 --- a/dita/RTC-AIDOC/API/toc_media_push.dita +++ b/dita/RTC-AIDOC/API/toc_media_push.dita @@ -1,6 +1,3 @@ - - 旁路推流 - - \ No newline at end of file +旁路推流 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer.dita b/dita/RTC-AIDOC/API/toc_mediaplayer.dita index 7fe42685b37..2d65508eda8 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer.dita @@ -1,6 +1,3 @@ - - 媒体播放器 - - \ No newline at end of file +内置媒体播放器 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_cache.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_cache.dita index 301d6880433..b8f5d3f81c2 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_cache.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_cache.dita @@ -1,6 +1,3 @@ - - 媒体播放器缓存 - - \ No newline at end of file +媒体播放器缓存 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_control.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_control.dita index 434f30f1823..45c901ea53b 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_control.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_control.dita @@ -1,6 +1,3 @@ - - 媒体播放器控制 - - \ No newline at end of file +播放器控制 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_info.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_info.dita index fb8ecdb2a4c..5f35bd2b8a8 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_info.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_info.dita @@ -1,6 +1,3 @@ - - 媒体播放器信息 - - \ No newline at end of file +播放信息获取 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_initialize.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_initialize.dita index 4bccc73a63d..ab0b0c588f6 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_initialize.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_initialize.dita @@ -1,6 +1,3 @@ - - 媒体播放器初始化 - - \ No newline at end of file +初始化 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_observer.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_observer.dita index 1c31af28a0c..5c37ed3444b 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_observer.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_observer.dita @@ -1,6 +1,3 @@ - - 媒体播放器回调 - - \ No newline at end of file +音视频观测器 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_open.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_open.dita index daae9c03b36..41c825945b6 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_open.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_open.dita @@ -1,6 +1,3 @@ - - 媒体播放器打开 - - \ No newline at end of file +媒体资源打开 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mediaplayer_playnrender.dita b/dita/RTC-AIDOC/API/toc_mediaplayer_playnrender.dita index 71998ff2474..74d7a8e1469 100644 --- a/dita/RTC-AIDOC/API/toc_mediaplayer_playnrender.dita +++ b/dita/RTC-AIDOC/API/toc_mediaplayer_playnrender.dita @@ -1,6 +1,3 @@ - - 媒体播放器播放和渲染 - - \ No newline at end of file +媒体资源播放和渲染 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_metadata.dita b/dita/RTC-AIDOC/API/toc_metadata.dita index abf45988fc3..b70b21700cf 100644 --- a/dita/RTC-AIDOC/API/toc_metadata.dita +++ b/dita/RTC-AIDOC/API/toc_metadata.dita @@ -1,6 +1,3 @@ - - 元数据 - - \ No newline at end of file +Metadata 观测器 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_metadata_observer.dita b/dita/RTC-AIDOC/API/toc_metadata_observer.dita index 855feb64635..3e4526cc00f 100644 --- a/dita/RTC-AIDOC/API/toc_metadata_observer.dita +++ b/dita/RTC-AIDOC/API/toc_metadata_observer.dita @@ -1,6 +1,3 @@ - - Metadata (SEI) - - \ No newline at end of file +媒体流附属信息分发 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_mobile_camera.dita b/dita/RTC-AIDOC/API/toc_mobile_camera.dita new file mode 100644 index 00000000000..d06fdbb3ace --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_mobile_camera.dita @@ -0,0 +1,7 @@ + + + + <ph props="cpp unreal bp unity flutter">移动端</ph>摄像头管理 + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_multi_channel.dita b/dita/RTC-AIDOC/API/toc_multi_channel.dita new file mode 100644 index 00000000000..9b858a9e1d7 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_multi_channel.dita @@ -0,0 +1,12 @@ + + + + 多频道管理 + 介绍跟多频道相关的方法和回调。 + +
            +

            RTC SDK 支持用户同时加入多个频道,可以同时在多个频道中接收和发布音视频流。

            + 声网建议你在调用 加入多频道后,再调用多频道相关的方法。 +
            +
            +
            \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_network.dita b/dita/RTC-AIDOC/API/toc_network.dita index 43a24d31565..f546fdcf010 100644 --- a/dita/RTC-AIDOC/API/toc_network.dita +++ b/dita/RTC-AIDOC/API/toc_network.dita @@ -1,6 +1,3 @@ - - 网络及其他 - - \ No newline at end of file +网络及其他 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_pc_audio_device_management.dita b/dita/RTC-AIDOC/API/toc_pc_audio_device_management.dita new file mode 100644 index 00000000000..b21fe7a2203 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_pc_audio_device_management.dita @@ -0,0 +1,7 @@ + + + + 桌面端音频设备管理 + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_pc_video_device_management.dita b/dita/RTC-AIDOC/API/toc_pc_video_device_management.dita new file mode 100644 index 00000000000..ef561f7646e --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_pc_video_device_management.dita @@ -0,0 +1,7 @@ + + + + 桌面端视频设备管理 + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_play.dita b/dita/RTC-AIDOC/API/toc_play.dita index 776eb57265d..2d365d89740 100644 --- a/dita/RTC-AIDOC/API/toc_play.dita +++ b/dita/RTC-AIDOC/API/toc_play.dita @@ -1,6 +1,3 @@ - - 媒体播放 - - \ No newline at end of file +播放相关 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_publishnsubscribe.dita b/dita/RTC-AIDOC/API/toc_publishnsubscribe.dita index 414c6e0cddd..78f593acbba 100644 --- a/dita/RTC-AIDOC/API/toc_publishnsubscribe.dita +++ b/dita/RTC-AIDOC/API/toc_publishnsubscribe.dita @@ -1,6 +1,3 @@ - - 发布和订阅 - - \ No newline at end of file +发布和订阅 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_recording.dita b/dita/RTC-AIDOC/API/toc_recording.dita index 0727e2214eb..929ab274f0c 100644 --- a/dita/RTC-AIDOC/API/toc_recording.dita +++ b/dita/RTC-AIDOC/API/toc_recording.dita @@ -1,6 +1,3 @@ - - 音视频录制 - - \ No newline at end of file +音视频录制 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_rhythmplayer.dita b/dita/RTC-AIDOC/API/toc_rhythmplayer.dita index 17f62964414..db5257c70ee 100644 --- a/dita/RTC-AIDOC/API/toc_rhythmplayer.dita +++ b/dita/RTC-AIDOC/API/toc_rhythmplayer.dita @@ -1,6 +1,3 @@ - - 虚拟节拍器 - - \ No newline at end of file +虚拟节拍器 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_rte_player.dita b/dita/RTC-AIDOC/API/toc_rte_player.dita index 3ffd7715ce0..8966486e6db 100644 --- a/dita/RTC-AIDOC/API/toc_rte_player.dita +++ b/dita/RTC-AIDOC/API/toc_rte_player.dita @@ -1,6 +1,3 @@ - - RTE 播放器 - - \ No newline at end of file +URL 拉流播放 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_screen_share.dita b/dita/RTC-AIDOC/API/toc_screen_share.dita new file mode 100644 index 00000000000..83f49c88e75 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_screen_share.dita @@ -0,0 +1,7 @@ + + + + 屏幕共享 + 介绍跟屏幕共享相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_screencapture.dita b/dita/RTC-AIDOC/API/toc_screencapture.dita index 87d6b4f9a0e..dfa93f165da 100644 --- a/dita/RTC-AIDOC/API/toc_screencapture.dita +++ b/dita/RTC-AIDOC/API/toc_screencapture.dita @@ -1,6 +1,3 @@ - - 屏幕共享 - - \ No newline at end of file +屏幕采集 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_snapshot.dita b/dita/RTC-AIDOC/API/toc_snapshot.dita index 487e452966d..ef20cba83c5 100644 --- a/dita/RTC-AIDOC/API/toc_snapshot.dita +++ b/dita/RTC-AIDOC/API/toc_snapshot.dita @@ -1,6 +1,3 @@ - - 视频截图 - - \ No newline at end of file +本地截图上传 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_sound_position.dita b/dita/RTC-AIDOC/API/toc_sound_position.dita index 2ddba8f9781..6b999ccad36 100644 --- a/dita/RTC-AIDOC/API/toc_sound_position.dita +++ b/dita/RTC-AIDOC/API/toc_sound_position.dita @@ -1,6 +1,3 @@ - - 立体声 - - \ No newline at end of file +听声辨位 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_spatial_audio.dita b/dita/RTC-AIDOC/API/toc_spatial_audio.dita index d498f1dd90e..7ee8bec17a7 100644 --- a/dita/RTC-AIDOC/API/toc_spatial_audio.dita +++ b/dita/RTC-AIDOC/API/toc_spatial_audio.dita @@ -1,6 +1,3 @@ - - 空间音频 - - \ No newline at end of file +空间音频 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_speech_driven.dita b/dita/RTC-AIDOC/API/toc_speech_driven.dita index 2b1d9719602..07eaacbe274 100644 --- a/dita/RTC-AIDOC/API/toc_speech_driven.dita +++ b/dita/RTC-AIDOC/API/toc_speech_driven.dita @@ -1,6 +1,3 @@ - - 语音驱动 - - \ No newline at end of file +语音驱动 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_stream_management.dita b/dita/RTC-AIDOC/API/toc_stream_management.dita new file mode 100644 index 00000000000..716ea2ec8ad --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_stream_management.dita @@ -0,0 +1,7 @@ + + + + 音视频流管理 + 介绍音视频数据流的管理方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_streaming.dita b/dita/RTC-AIDOC/API/toc_streaming.dita new file mode 100644 index 00000000000..48e37f00d97 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_streaming.dita @@ -0,0 +1,7 @@ + + + + 推流 + 介绍跟推流相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video.dita b/dita/RTC-AIDOC/API/toc_video.dita index dcdfe5671c9..b71ea144057 100644 --- a/dita/RTC-AIDOC/API/toc_video.dita +++ b/dita/RTC-AIDOC/API/toc_video.dita @@ -1,6 +1,3 @@ - - 视频功能 - - \ No newline at end of file +视频功能 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_basic.dita b/dita/RTC-AIDOC/API/toc_video_basic.dita index fd58be24ef7..bf14ff9b0a3 100644 --- a/dita/RTC-AIDOC/API/toc_video_basic.dita +++ b/dita/RTC-AIDOC/API/toc_video_basic.dita @@ -1,6 +1,3 @@ - - 视频基础功能 - - \ No newline at end of file +视频基础功能 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_codec.dita b/dita/RTC-AIDOC/API/toc_video_codec.dita new file mode 100644 index 00000000000..98f43107d52 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_video_codec.dita @@ -0,0 +1,7 @@ + + + + 视频编码功能 + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_custom_capturenrendering.dita b/dita/RTC-AIDOC/API/toc_video_custom_capturenrendering.dita index d010384e9b9..68a3c6a87b2 100644 --- a/dita/RTC-AIDOC/API/toc_video_custom_capturenrendering.dita +++ b/dita/RTC-AIDOC/API/toc_video_custom_capturenrendering.dita @@ -1,6 +1,3 @@ - - 自定义视频采集和渲染 - - \ No newline at end of file +自定义视频采集和渲染 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_device.dita b/dita/RTC-AIDOC/API/toc_video_device.dita index 9f4a56fbe41..c806ef7cc86 100644 --- a/dita/RTC-AIDOC/API/toc_video_device.dita +++ b/dita/RTC-AIDOC/API/toc_video_device.dita @@ -1,6 +1,3 @@ - - 视频设备管理 - - \ No newline at end of file +视频设备管理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_encoded.dita b/dita/RTC-AIDOC/API/toc_video_encoded.dita index 35986497ffa..09fc615f158 100644 --- a/dita/RTC-AIDOC/API/toc_video_encoded.dita +++ b/dita/RTC-AIDOC/API/toc_video_encoded.dita @@ -1,6 +1,3 @@ - - 已编码视频数据 - - \ No newline at end of file +已编码视频数据 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_enhance_option.dita b/dita/RTC-AIDOC/API/toc_video_enhance_option.dita index fa22a6ad8a3..9620db8c894 100644 --- a/dita/RTC-AIDOC/API/toc_video_enhance_option.dita +++ b/dita/RTC-AIDOC/API/toc_video_enhance_option.dita @@ -1,6 +1,3 @@ - - 视频增强 - - \ No newline at end of file +视频增强 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_observer.dita b/dita/RTC-AIDOC/API/toc_video_observer.dita new file mode 100644 index 00000000000..73f49618a89 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_video_observer.dita @@ -0,0 +1,7 @@ + + + + 视频观测器 + 介绍跟视频观测器相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_prenpro.dita b/dita/RTC-AIDOC/API/toc_video_prenpro.dita index 159613476a1..9324a5fdec9 100644 --- a/dita/RTC-AIDOC/API/toc_video_prenpro.dita +++ b/dita/RTC-AIDOC/API/toc_video_prenpro.dita @@ -1,6 +1,3 @@ - - 视频前处理和后处理 - - \ No newline at end of file +视频前处理和后处理 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_process.dita b/dita/RTC-AIDOC/API/toc_video_process.dita new file mode 100644 index 00000000000..088636ebcc1 --- /dev/null +++ b/dita/RTC-AIDOC/API/toc_video_process.dita @@ -0,0 +1,7 @@ + + + + 视频处理 + 介绍跟视频处理相关的方法和回调。 + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_raw.dita b/dita/RTC-AIDOC/API/toc_video_raw.dita index 72504c24f77..d95798c382f 100644 --- a/dita/RTC-AIDOC/API/toc_video_raw.dita +++ b/dita/RTC-AIDOC/API/toc_video_raw.dita @@ -1,6 +1,3 @@ - - 原始视频数据 - - \ No newline at end of file +原始视频数据 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_video_rendering.dita b/dita/RTC-AIDOC/API/toc_video_rendering.dita index 5286f6e9347..1d0f46ff9b4 100644 --- a/dita/RTC-AIDOC/API/toc_video_rendering.dita +++ b/dita/RTC-AIDOC/API/toc_video_rendering.dita @@ -1,6 +1,3 @@ - - 视频渲染 - - \ No newline at end of file +视频渲染 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_virtualbackground.dita b/dita/RTC-AIDOC/API/toc_virtualbackground.dita index ff1f4990559..9588d9bbe05 100644 --- a/dita/RTC-AIDOC/API/toc_virtualbackground.dita +++ b/dita/RTC-AIDOC/API/toc_virtualbackground.dita @@ -1,6 +1,3 @@ - - 虚拟背景 - - \ No newline at end of file +虚拟背景 \ No newline at end of file diff --git a/dita/RTC-AIDOC/API/toc_watermark.dita b/dita/RTC-AIDOC/API/toc_watermark.dita index 4f02c93df98..9956b86bd09 100644 --- a/dita/RTC-AIDOC/API/toc_watermark.dita +++ b/dita/RTC-AIDOC/API/toc_watermark.dita @@ -1,6 +1,3 @@ - - 水印 - - \ No newline at end of file +直播水印 \ No newline at end of file diff --git a/dita/RTC-AIDOC/RTC_NG_API_Android.ditamap b/dita/RTC-AIDOC/RTC_NG_API_Android.ditamap index a8eae950655..bf0bff75b5a 100644 --- a/dita/RTC-AIDOC/RTC_NG_API_Android.ditamap +++ b/dita/RTC-AIDOC/RTC_NG_API_Android.ditamap @@ -8,92 +8,852 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file diff --git a/dita/RTC-AIDOC/RTC_NG_API_CPP.ditamap b/dita/RTC-AIDOC/RTC_NG_API_CPP.ditamap index 3e9421fb7c6..e2fec6971bc 100644 --- a/dita/RTC-AIDOC/RTC_NG_API_CPP.ditamap +++ b/dita/RTC-AIDOC/RTC_NG_API_CPP.ditamap @@ -8,92 +8,894 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file diff --git a/dita/RTC-AIDOC/RTC_NG_API_iOS.ditamap b/dita/RTC-AIDOC/RTC_NG_API_iOS.ditamap index 3679a168173..ada15965a03 100644 --- a/dita/RTC-AIDOC/RTC_NG_API_iOS.ditamap +++ b/dita/RTC-AIDOC/RTC_NG_API_iOS.ditamap @@ -8,92 +8,811 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file diff --git a/dita/RTC-AIDOC/RTC_NG_API_macOS.ditamap b/dita/RTC-AIDOC/RTC_NG_API_macOS.ditamap index 6cf998d984a..a4889098f48 100644 --- a/dita/RTC-AIDOC/RTC_NG_API_macOS.ditamap +++ b/dita/RTC-AIDOC/RTC_NG_API_macOS.ditamap @@ -8,92 +8,771 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file diff --git a/dita/RTC-AIDOC/config/keys-rtc-ng-api-cpp.ditamap b/dita/RTC-AIDOC/config/keys-rtc-ng-api-cpp.ditamap index ac9419edd64..fd7b47852aa 100644 --- a/dita/RTC-AIDOC/config/keys-rtc-ng-api-cpp.ditamap +++ b/dita/RTC-AIDOC/config/keys-rtc-ng-api-cpp.ditamap @@ -63,6 +63,90 @@ + + + + Canvas + + + + + + + CanvasConfig + + + + + + + IAudioDeviceCollection + + + + + + + IAudioDeviceManager + + + + + + + IAudioEncodedFrameObserver + + + + + + + IAudioFrameObserver + + + + + + + IAudioFrameObserverBase + + + + + + + IAudioPcmFrameSink + + + + + + + IAudioSpectrumObserver + + + + + + + IDirectCdnStreamingEventHandler + + + + + + + ILocalSpatialAudioEngine + + + + + + + IMediaEngine + + + @@ -70,6 +154,20 @@ + + + + IMediaPlayerCacheManager + + + + + + + IMediaPlayerCustomDataProvider + + + @@ -77,39 +175,7123 @@ + + + + IMediaRecorder + + + + + + + IMediaRecorderObserver + + + + + + + IMetadataObserver + + + + + + + IMusicContentCenter + + + + + + + IMusicContentCenterEventHandler + + + + + + + IMusicPlayer + + + + + + + IPacketObserver + + + + + + + IRtcEngine + + + + + + + IRtcEngineEventHandler + + + + + + + IRtcEngineEventHandlerEx + + + + + + + IRtcEngineEx + + + + + + + IScreenCaptureSourceList + + + + + + + IVideoDeviceCollection + + + + + + + IVideoDeviceManager + + + + + + + IVideoEffectObject + + + + + + + IVideoEncodedFrameObserver + + + + + + + IVideoFrameObserver + + + + + + + MusicChartCollection + + + + + + + Player + + + + + + + PlayerObserver + + + + + + + Rte + + + - + - adjustPlayoutVolume + AbrSubscriptionLayer - - - + - onPlayerPlaybackStats + AddView - - - + - PlayerPlaybackStats + AudioBitsPerSample - - - + - MEDIA_PLAYER_METADATA_TYPE + AudioChannels + + + + + + + AudioSampleRate + + + + + + + Canvas + + + + + + + Code + + + + + + + CurrentUrl + + + + + + + Destroy + + + + + + + Duration + + + + + + + GetAbrFallbackLayer + + + + + + + GetAbrSubscriptionLayer + + + + + + + GetAppId + + + + + + + GetAutoPlay + + + + + + + GetConfigs [3/3] + + + + + + + GetConfigs [2/3] + + + + + + + GetConfigs [1/3] + + + + + + + GetFromBridge + + + + + + + GetInfo + + + + + + + GetJsonParameter + + + + + + + GetLoopCount + + + + + + + GetMirrorMode + + + + + + + GetPlaybackSpeed + + + + + + + GetPlayoutVolume + + + + + + + GetPosition + + + + + + + GetRenderMode + + + + + + + GetStats + + + + + + + HasAudio + + + + + + + HasVideo + + + + + + + InitMediaEngine + + + + + + + IsAudioMuted + + + + + + + IsVideoMuted + + + + + + + Message + + + + + + + MuteAudio + + + + + + + MuteVideo + + + + + + + OpenWithUrl + + + + + + + Pause + + + + + + + Play + + + + + + + Player + + + + + + + PreloadWithUrl + + + + + + + RegisterObserver + + + + + + + RemoveView + + + + + + + RtcEngineReleaseCallback + + + + + + + Rte + + + + + + + Seek + + + + + + + SetAbrFallbackLayer + + + + + + + SetAbrSubscriptionLayer + + + + + + + SetAppId + + + + + + + SetAutoPlay + + + + + + + SetCanvas + + + + + + + SetConfigs [3/3] + + + + + + + SetConfigs [2/3] + + + + + + + SetConfigs [1/3] + + + + + + + SetJsonParameter + + + + + + + SetLoopCount + + + + + + + SetMirrorMode + + + + + + + SetPlaybackSpeed + + + + + + + SetPlayoutVolume + + + + + + + SetRenderMode + + + + + + + State + + + + + + + Stop + + + + + + + StreamCount + + + + + + + SwitchWithUrl + + + + + + + UnregisterObserver + + + + + + + VideoHeight + + + + + + + VideoWidth + + + + + + + addOrUpdateVideoEffect + + + + + + + addVideoWatermark [1/3] + + + + + + + addVideoWatermark [2/3] + + + + + + + addVideoWatermark [3/3] + + + + + + + addVideoWatermarkEx [1/2] + + + + + + + addVideoWatermarkEx [2/2] + + + + + + + adjustAudioMixingPlayoutVolume + + + + + + + adjustAudioMixingPublishVolume + + + + + + + adjustAudioMixingVolume + + + + + + + adjustCustomAudioPlayoutVolume + + + + + + + adjustCustomAudioPublishVolume + + + + + + + adjustLoopbackSignalVolume + + + + + + + adjustPlaybackSignalVolume + + + + + + + adjustPlayoutVolume + + + + + + + adjustPublishSignalVolume + + + + + + + adjustRecordingSignalVolume + + + + + + + adjustUserPlaybackSignalVolume + + + + + + + adjustUserPlaybackSignalVolumeEx + + + + + + + clearRemotePositions + + + + + + + clearVideoWatermarkEx + + + + + + + clearVideoWatermarks + + + + + + + complain + + + + + + + configRhythmPlayer + + + + + + + createAgoraRtcEngine + + + + + + + createCustomAudioTrack + + + + + + + createCustomVideoTrack + + + + + + + createDataStream [1/2] + + + + + + + createDataStream [2/2] + + + + + + + createDataStreamEx [1/2] + + + + + + + createDataStreamEx [2/2] + + + + + + + createMediaPlayer + + + + + + + createMediaRecorder + + + + + + + createMusicPlayer + + + + + + + createVideoEffectObject + + + + + + + destroyCustomAudioTrack + + + + + + + destroyCustomVideoTrack + + + + + + + destroyMediaPlayer + + + + + + + destroyMediaRecorder + + + + + + + destroyMusicPlayer + + + + + + + destroyVideoEffectObject + + + + + + + disableAudio + + + + + + + disableAudioSpectrumMonitor + + + + + + + disableVideo + + + + + + + enableAudio + + + + + + + enableAudioSpectrumMonitor + + + + + + + enableAudioVolumeIndication + + + + + + + enableAudioVolumeIndicationEx + + + + + + + enableAutoRemoveCache + + + + + + + enableCameraCenterStage + + + + + + + enableContentInspect + + + + + + + enableContentInspectEx + + + + + + + enableCustomAudioLocalPlayback + + + + + + + enableDualStreamMode [1/2] + + + + + + + enableDualStreamMode [2/2] + + + + + + + enableDualStreamModeEx + + + + + + + enableEncryption + + + + + + + enableEncryptionEx + + + + + + + enableExtension + + + + + + + enableFaceDetection + + + + + + + enableInEarMonitoring + + + + + + + enableInstantMediaRendering + + + + + + + enableLocalAudio + + + + + + + enableLocalVideo + + + + + + + enableLoopbackRecording + + + + + + + enableLoopbackRecordingEx + + + + + + + enableMultiCamera + + + + + + + enableSoundPositionIndication + + + + + + + enableSpatialAudio + + + + + + + enableVideo + + + + + + + enableVideoImageSource + + + + + + + enableVirtualBackground + + + + + + + enableVoiceAITuner + + + + + + + enableWebSdkInteroperability + + + + + + + enumeratePlaybackDevices + + + + + + + enumerateRecordingDevices + + + + + + + enumerateVideoDevices + + + + + + + followSystemLoopbackDevice + + + + + + + followSystemPlaybackDevice + + + + + + + followSystemRecordingDevice + + + + + + + get + + + + + + + getApplicationVolume + + + + + + + getAudioDeviceInfo + + + + + + + getAudioMixingCurrentPosition + + + + + + + getAudioMixingDuration + + + + + + + getAudioMixingPlayoutVolume + + + + + + + getAudioMixingPublishVolume + + + + + + + getAudioTrackCount + + + + + + + getCacheDir + + + + + + + getCacheFileCount + + + + + + + getCaches + + + + + + + getCallId + + + + + + + getCallIdEx + + + + + + + getCameraMaxZoomFactor + + + + + + + getCapability + + + + + + + getConnectionState + + + + + + + getConnectionStateEx + + + + + + + getCount + + + + + + + getCount + + + + + + + getCount + + + + + + + getCount [1/2] + + + + + + + getCount [2/2] + + + + + + + getCurrentMonotonicTimeInMs + + + + + + + getDefaultDevice [2/2] + + + + + + + getDefaultDevice [1/2] + + + + + + + getDevice [2/2] + + + + + + + getDevice [1/2] + + + + + + + getDevice + + + + + + + getDevice + + + + + + + getDuration + + + + + + + getEarMonitoringAudioParams + + + + + + + getEffectCurrentPosition + + + + + + + getEffectDuration + + + + + + + getEffectsVolume + + + + + + + getErrorDescription + + + + + + + getExtensionProperty + + + + + + + getFaceShapeAreaOptions + + + + + + + getFaceShapeBeautyOptions + + + + + + + getInternalSongCode + + + + + + + getLoopbackDevice + + + + + + + getLyric + + + + + + + getMaxCacheFileCount + + + + + + + getMaxCacheFileSize + + + + + + + getMaxMetadataSize + + + + + + + getMediaPlayerCacheManager + + + + + + + getMediaPlayerId + + + + + + + getMirrorApplied + + + + + + + getMixedAudioParams + + + + + + + getMusicCharts + + + + + + + getMusicCollectionByMusicChartId + + + + + + + getMusic + + + + + + + getMute + + + + + + + getNetworkType + + + + + + + getNtpWallTimeInMs + + + + + + + getObservedAudioFramePosition + + + + + + + getObservedFramePosition + + + + + + + getPageSize + + + + + + + getPage + + + + + + + getPlayPosition + + + + + + + getPlaySrc + + + + + + + getPlaybackAudioParams + + + + + + + getPlaybackDevice + + + + + + + getPlaybackDeviceInfo [1/2] + + + + + + + getPlaybackDeviceInfo [2/2] + + + + + + + getPlaybackDeviceMute + + + + + + + getPlaybackDeviceVolume + + + + + + + getPlayoutVolume + + + + + + + getPublishSignalVolume + + + + + + + getRecordAudioParams + + + + + + + getRecordingDevice + + + + + + + getRecordingDeviceInfo [1/2] + + + + + + + getRecordingDeviceInfo [2/2] + + + + + + + getRecordingDeviceMute + + + + + + + getRecordingDeviceVolume + + + + + + + getRotationApplied + + + + + + + getScreenCaptureSources + + + + + + + getSongSimpleInfo + + + + + + + getSourceInfo + + + + + + + getState + + + + + + + getStreamCount + + + + + + + getStreamInfo + + + + + + + getTotal + + + + + + + getUserInfoByUid + + + + + + + getUserInfoByUidEx + + + + + + + getUserInfoByUserAccount + + + + + + + getUserInfoByUserAccountEx + + + + + + + getVersion + + + + + + + getVideoEffectBoolParam + + + + + + + getVideoEffectFloatParam + + + + + + + getVideoEffectIntParam + + + + + + + getVideoFormatPreference + + + + + + + getVideoFrameProcessMode + + + + + + + getVolumeOfEffect + + + + + + + initialize + + + + + + + initialize + + + + + + + initialize + + + + + + + isApplicationMute + + + + + + + isCameraAutoExposureFaceModeSupported + + + + + + + isCameraAutoFocusFaceModeSupported + + + + + + + isCameraCenterStageSupported + + + + + + + isCameraExposurePositionSupported + + + + + + + isCameraExposureSupported + + + + + + + isCameraFaceDetectSupported + + + + + + + isCameraFocusSupported + + + + + + + isCameraTorchSupported + + + + + + + isCameraZoomSupported + + + + + + + isFeatureAvailableOnDevice + + + + + + + isPreloaded + + + + + + + isSpeakerphoneEnabled + + + + + + + joinChannel [1/2] + + + + + + + joinChannel [2/2] + + + + + + + joinChannelEx + + + + + + + joinChannelWithUserAccount [1/2] + + + + + + + joinChannelWithUserAccount [2/2] + + + + + + + joinChannelWithUserAccountEx + + + + + + + leaveChannel [1/2] + + + + + + + leaveChannel [2/2] + + + + + + + leaveChannelEx [1/2] + + + + + + + leaveChannelEx [2/2] + + + + + + + loadExtensionProvider + + + + + + + mute + + + + + + + muteAllRemoteAudioStreams + + + + + + + muteAllRemoteAudioStreamsEx + + + + + + + muteAllRemoteAudioStreams + + + + + + + muteAllRemoteVideoStreams + + + + + + + muteAllRemoteVideoStreamsEx + + + + + + + muteLocalAudioStream + + + + + + + muteLocalAudioStreamEx + + + + + + + muteLocalAudioStream + + + + + + + muteLocalVideoStream + + + + + + + muteLocalVideoStreamEx + + + + + + + muteRecordingSignal + + + + + + + muteRemoteAudioStream + + + + + + + muteRemoteAudioStreamEx + + + + + + + muteRemoteAudioStream + + + + + + + muteRemoteVideoStream + + + + + + + muteRemoteVideoStreamEx + + + + + + + numberOfCapabilities + + + + + + + open + + + + + + + openWithMediaSource + + + + + + + open + + + + + + + pause + + + + + + + pauseAllChannelMediaRelay + + + + + + + pauseAllChannelMediaRelayEx + + + + + + + pauseAllEffects + + + + + + + pauseAudioMixing + + + + + + + pauseEffect + + + + + + + performVideoEffectAction + + + + + + + play + + + + + + + playAllEffects + + + + + + + playEffect + + + + + + + playEffectEx + + + + + + + playPreloadedSrc + + + + + + + preload [1/2] + + + + + + + preload [2/2] + + + + + + + preloadChannel + + + + + + + preloadChannelWithUserAccount + + + + + + + preloadEffect + + + + + + + preloadEffectEx + + + + + + + preloadSrc + + + + + + + pullAudioFrame + + + + + + + pushAudioFrame + + + + + + + pushVideoFrame + + + + + + + queryCameraFocalLengthCapability + + + + + + + queryCodecCapability + + + + + + + queryDeviceScore + + + + + + + queryInterface + + + + + + + queryScreenCaptureCapability + + + + + + + rate + + + + + + + registerAudioEncodedFrameObserver + + + + + + + registerAudioFrameObserver [1/2] + + + + + + + registerAudioFrameObserver [2/2] + + + + + + + registerAudioFrameObserver + + + + + + + registerAudioSpectrumObserver + + + + + + + registerEventHandler + + + + + + + registerExtension + + + + + + + registerLocalUserAccount + + + + + + + registerMediaMetadataObserver + + + + + + + registerPacketObserver + + + + + + + registerPlayerSourceObserver + + + + + + + registerVideoEncodedFrameObserver + + + + + + + registerVideoFrameObserver + + + + + + + registerVideoFrameObserver + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + release + + + + + + + removeAllCaches + + + + + + + removeCache + + + + + + + removeCacheByUri + + + + + + + removeOldCache + + + + + + + removeRemotePosition + + + + + + + removeVideoEffect + + + + + + + removeVideoWatermark + + + + + + + removeVideoWatermarkEx + + + + + + + renewToken + + + + + + + renewToken + + + + + + + resume + + + + + + + resumeAllChannelMediaRelay + + + + + + + resumeAllChannelMediaRelayEx + + + + + + + resumeAllEffects + + + + + + + resumeAudioMixing + + + + + + + resumeEffect + + + + + + + searchMusic + + + + + + + seek + + + + + + + selectAudioTrack [1/2] + + + + + + + selectAudioTrack [2/2] + + + + + + + selectMultiAudioTrack + + + + + + + sendCustomReportMessage + + + + + + + sendCustomReportMessageEx + + + + + + + sendStreamMessage + + + + + + + sendStreamMessageEx + + + + + + + setAINSMode + + + + + + + setAVSyncSource + + + + + + + setAdvancedAudioOptions + + + + + + + setApplicationMute + + + + + + + setApplicationVolume + + + + + + + setAudioDualMonoMode + + + + + + + setAudioEffectParameters + + + + + + + setAudioEffectPreset + + + + + + + setAudioMixingDualMonoMode + + + + + + + setAudioMixingPitch + + + + + + + setAudioMixingPlaybackSpeed + + + + + + + setAudioMixingPosition + + + + + + + setAudioPitch + + + + + + + setAudioProfile [1/2] + + + + + + + setAudioProfile [2/2] + + + + + + + setAudioRecvRange + + + + + + + setAudioScenario + + + + + + + setAudioSessionOperationRestriction + + + + + + + setBeautyEffectOptions + + + + + + + setCacheDir + + + + + + + setCameraAutoExposureFaceModeEnabled + + + + + + + setCameraAutoFocusFaceModeEnabled + + + + + + + setCameraCapturerConfiguration + + + + + + + setCameraDeviceOrientation + + + + + + + setCameraExposureFactor + + + + + + + setCameraExposurePosition + + + + + + + setCameraFocusPositionInPreview + + + + + + + setCameraStabilizationMode + + + + + + + setCameraTorchOn + + + + + + + setCameraZoomFactor + + + + + + + setChannelProfile + + + + + + + setClientRole [1/2] + + + + + + + setClientRole [2/2] + + + + + + + setCloudProxy + + + + + + + setColorEnhanceOptions + + + + + + + setDefaultAudioRouteToSpeakerphone + + + + + + + setDevice + + + + + + + setDevice + + + + + + + setDevice + + + + + + + setDirectCdnStreamingAudioConfiguration + + + + + + + setDirectCdnStreamingVideoConfiguration + + + + + + + setDistanceUnit + + + + + + + setDualStreamMode [1/2] + + + + + + + setDualStreamMode [2/2] + + + + + + + setDualStreamModeEx + + + + + + + setEarMonitoringAudioFrameParameters + + + + + + + setEffectPosition + + + + + + + setEffectsVolume + + + + + + + setEnableSpeakerphone + + + + + + + setExtensionProperty + + + + + + + setExtensionProviderProperty + + + + + + + setExternalAudioSink + + + + + + + setExternalAudioSource + + + + + + + setExternalMediaProjection + + + + + + + setExternalRemoteEglContext + + + + + + + setExternalVideoSource + + + + + + + setFaceShapeAreaOptions + + + + + + + setFaceShapeBeautyOptions + + + + + + + setFilterEffectOptions + + + + + + + setHeadphoneEQParameters + + + + + + + setHeadphoneEQPreset + + + + + + + setInEarMonitoringVolume + + + + + + + setLocalAccessPoint + + + + + + + setLocalRenderMode [1/2] + + + + + + + setLocalRenderMode [2/2] + + + + + + + setLocalRenderTargetFps + + + + + + + setLocalVideoMirrorMode + + + + + + + setLocalVoiceEqualization + + + + + + + setLocalVoiceFormant + + + + + + + setLocalVoicePitch + + + + + + + setLocalVoiceReverb + + + + + + + setLogFile + + + + + + + setLogFileSize + + + + + + + setLogFilter + + + + + + + setLogLevel + + + + + + + setLoopCount + + + + + + + setLoopbackDevice + + + + + + + setLowlightEnhanceOptions + + + + + + + setMaxAudioRecvCount + + + + + + + setMaxCacheFileCount + + + + + + + setMaxCacheFileSize + + + + + + + setMediaRecorderObserver + + + + + + + setMixedAudioFrameParameters + + + + + + + setParameters + + + + + + + setPlayMode + + + + + + + setPlaybackAudioFrameBeforeMixingParameters [1/2] + + + + + + + setPlaybackAudioFrameBeforeMixingParameters [2/2] + + + + + + + setPlaybackAudioFrameParameters + + + + + + + setPlaybackDevice + + + + + + + setPlaybackDeviceMute + + + + + + + setPlaybackDeviceVolume + + + + + + + setPlaybackSpeed + + + + + + + setPlayerAttenuation + + + + + + + setPlayerOption [1/2] + + + + + + + setPlayerOption [2/2] + + + + + + + setRecordingAudioFrameParameters + + + + + + + setRecordingDevice + + + + + + + setRecordingDeviceMute + + + + + + + setRecordingDeviceVolume + + + + + + + setRemoteAudioAttenuation + + + + + + + setRemoteDefaultVideoStreamType + + + + + + + setRemoteRenderMode + + + + + + + setRemoteRenderModeEx + + + + + + + setRemoteRenderTargetFps + + + + + + + setRemoteSubscribeFallbackOption + + + + + + + setRemoteUserSpatialAudioParams + + + + + + + setRemoteVideoStreamType + + + + + + + setRemoteVideoStreamTypeEx + + + + + + + setRemoteVideoSubscriptionOptions + + + + + + + setRemoteVideoSubscriptionOptionsEx + + + + + + + setRemoteVoicePosition + + + + + + + setRemoteVoicePositionEx + + + + + + + setRenderMode + + + + + + + setRouteInCommunicationMode + + + + + + + setScreenCaptureContentHint + + + + + + + setScreenCaptureScenario + + + + + + + setSpatialAudioParams + + + + + + + setSubscribeAudioAllowlist + + + + + + + setSubscribeAudioAllowlistEx + + + + + + + setSubscribeAudioBlocklist + + + + + + + setSubscribeAudioBlocklistEx + + + + + + + setSubscribeVideoAllowlist + + + + + + + setSubscribeVideoAllowlistEx + + + + + + + setSubscribeVideoBlocklist + + + + + + + setSubscribeVideoBlocklistEx + + + + + + + setVideoDenoiserOptions + + + + + + + setVideoEffectBoolParam + + + + + + + setVideoEffectFloatParam + + + + + + + setVideoEffectIntParam + + + + + + + setVideoEncoderConfiguration + + + + + + + setVideoEncoderConfigurationEx + + + + + + + setVideoScenario + + + + + + + setView + + + + + + + setVoiceBeautifierParameters + + + + + + + setVoiceBeautifierPreset + + + + + + + setVoiceConversionPreset + + + + + + + setVolumeOfEffect + + + + + + + setZones + + + + + + + setupLocalVideo + + + + + + + setupRemoteVideo + + + + + + + setupRemoteVideoEx + + + + + + + startAudioDeviceLoopbackTest + + + + + + + startAudioMixing [1/2] + + + + + + + startAudioMixing [2/2] + + + + + + + startAudioRecording [1/3] + + + + + + + startAudioRecording [2/3] + + + + + + + startAudioRecording [3/3] + + + + + + + startCameraCapture + + + + + + + startDirectCdnStreaming + + + + + + + startEchoTest + + + + + + + startLastmileProbeTest + + + + + + + startLocalAudioMixer + + + + + + + startLocalVideoTranscoder + + + + + + + startMediaRenderingTracing + + + + + + + startMediaRenderingTracingEx + + + + + + + startOrUpdateChannelMediaRelay + + + + + + + startOrUpdateChannelMediaRelayEx + + + + + + + startPlaybackDeviceTest + + + + + + + startPreview [1/2] + + + + + + + startPreview [2/2] + + + + + + + startRecording + + + + + + + startRecordingDeviceTest + + + + + + + startRhythmPlayer + + + + + + + startRtmpStreamWithTranscoding + + + + + + + startRtmpStreamWithTranscodingEx + + + + + + + startRtmpStreamWithoutTranscoding + + + + + + + startRtmpStreamWithoutTranscodingEx + + + + + + + startScreenCapture [1/2] + + + + + + + startScreenCapture [2/2] + + + + + + + startScreenCaptureByDisplayId + + + + + + + startScreenCaptureByScreenRect + + + + + + + startScreenCaptureByWindowId + + + + + + + stop + + + + + + + stopAllEffects + + + + + + + stopAudioDeviceLoopbackTest + + + + + + + stopAudioMixing + + + + + + + stopAudioRecording + + + + + + + stopCameraCapture + + + + + + + stopChannelMediaRelay + + + + + + + stopChannelMediaRelayEx + + + + + + + stopDirectCdnStreaming + + + + + + + stopEchoTest + + + + + + + stopEffect + + + + + + + stopLastmileProbeTest + + + + + + + stopLocalAudioMixer + + + + + + + stopLocalVideoTranscoder + + + + + + + stopPlaybackDeviceTest + + + + + + + stopPreview [1/2] + + + + + + + stopPreview [2/2] + + + + + + + stopRecording + + + + + + + stopRecordingDeviceTest + + + + + + + stopRhythmPlayer + + + + + + + stopRtmpStream + + + + + + + stopRtmpStreamEx + + + + + + + stopScreenCapture [1/2] + + + + + + + stopScreenCapture [2/2] + + + + + + + switchCamera + + + + + + + switchSrc + + + + + + + takeSnapshot [1/2] + + + + + + + takeSnapshot [2/2] + + + + + + + takeSnapshotEx [1/2] + + + + + + + takeSnapshotEx [2/2] + + + + + + + unloadAllEffects + + + + + + + unloadEffect + + + + + + + unloadSrc + + + + + + + unregisterAudioFrameObserver + + + + + + + unregisterAudioSpectrumObserver + + + + + + + unregisterEventHandler + + + + + + + unregisterMediaMetadataObserver + + + + + + + unregisterPlayerSourceObserver + + + + + + + unregisterVideoFrameObserver + + + + + + + updateChannelMediaOptions + + + + + + + updateChannelMediaOptionsEx + + + + + + + updateLocalAudioMixerConfiguration + + + + + + + updateLocalTranscoderConfiguration + + + + + + + updatePlayerPositionInfo + + + + + + + updatePreloadChannelToken + + + + + + + updateRemotePosition + + + + + + + updateRtmpTranscoding + + + + + + + updateRtmpTranscodingEx + + + + + + + updateScreenCapture + + + + + + + updateScreenCaptureParameters + + + + + + + updateScreenCaptureRegion + + + + + + + updateSelfPosition + + + + + + + + + onActiveSpeaker + + + + + + + onAudioDeviceStateChanged + + + + + + + onAudioDeviceVolumeChanged + + + + + + + onAudioEffectFinished + + + + + + + onAudioMixingFinished + + + + + + + onAudioMixingPositionChanged + + + + + + + onAudioMixingStateChanged + + + + + + + onAudioPublishStateChanged + + + + + + + onAudioQuality + + + + + + + onAudioRoutingChanged + + + + + + + onAudioSubscribeStateChanged + + + + + + + onAudioVolumeIndication + + + + + + + onAudioVolumeIndication + + + + + + + onAudioVolumeIndication + + + + + + + onCameraExposureAreaChanged + + + + + + + onCameraFocusAreaChanged + + + + + + + onCameraReady + + + + + + + onCaptureVideoFrame + + + + + + + onChannelMediaRelayStateChanged + + + + + + + onClientRoleChangeFailed + + + + + + + onClientRoleChanged + + + + + + + onConnectionBanned + + + + + + + onConnectionInterrupted + + + + + + + onConnectionLost + + + + + + + onConnectionStateChanged + + + + + + + onDirectCdnStreamingStateChanged + + + + + + + onDirectCdnStreamingStats + + + + + + + onEarMonitoringAudioFrame + + + + + + + onEncodedVideoFrameReceived + + + + + + + onEncryptionError + + + + + + + onError + + + + + + + onEvent + + + + + + + onExtensionErrorWithContext + + + + + + + onExtensionEventWithContext + + + + + + + onExtensionStartedWithContext + + + + + + + onExtensionStoppedWithContext + + + + + + + onFacePositionChanged + + + + + + + onFirstLocalAudioFramePublished + + + + + + + onFirstLocalVideoFrame + + + + + + + onFirstLocalVideoFramePublished + + + + + + + onFirstRemoteAudioDecoded + + + + + + + onFirstRemoteAudioFrame + + + + + + + onFirstRemoteVideoDecoded + + + + + + + onFirstRemoteVideoFrame + + + + + + + onFrame + + + + + + + onFrame + + + + + + + onJoinChannelSuccess + + + + + + + onLastmileProbeResult + + + + + + + onLastmileQuality + + + + + + + onLeaveChannel + + + + + + + onLocalAudioSpectrum + + + + + + + onLocalAudioStateChanged + + + + + + + onLocalAudioStats + + + + + + + onLocalUserRegistered + + + + + + + onLocalVideoStateChanged + + + + + + + onLocalVideoStats + + + + + + + onLocalVideoTranscoderError + + + + + + + onLyricResult + + + + + + + onMetaData [1/2] + + + + + + + onMetadataReceived + + + + + + + onMetadata [2/2] + + + + + + + onMixedAudioEncodedFrame + + + + + + + onMixedAudioFrame + + + + + + + onMultipathStats + + + + + + + onMusicChartsResult + + + + + + + onMusicCollectionResult + + + + + + + onNetworkQuality + + + + + + + onNetworkTypeChanged + + + + + + + onPermissionError + + + + + + + onPlayBufferUpdated + + + + + + + onPlaybackAudioEncodedFrame + + + + + + + onPlaybackAudioFrameBeforeMixing + + + + + + + onPlaybackAudioFrame + + + + + + + onPlayerCacheStats + + + + + + + onPlayerEvent + + + + + + + onPlayerInfoUpdated [1/2] + + + + + + + onPlayerInfoUpdated [2/2] + + + + + + + onPlayerPlaybackStats + + + + + + + onPlayerSourceStateChanged + + + + + + + onPlayerSrcInfoChanged + + + + + + + onPositionChanged + + + + + + + onPositionChanged + + + + + + + onPreEncodeVideoFrame + + + + + + + onPreLoadEvent + + + + + + + onPreloadEvent + + + + + + + onProxyConnected + + + + + + + onReadData + + + + + + + onReadyToSendMetadata + + + + + + + onReceiveAudioPacket + + + + + + + onReceiveVideoPacket + + + + + + + onRecordAudioEncodedFrame + + + + + + + onRecordAudioFrame + + + + + + + onRecorderInfoUpdated + + + + + + + onRecorderStateChanged + + + + + + + onRejoinChannelSuccess + + + + + + + onRemoteAudioSpectrum + + + + + + + onRemoteAudioStateChanged + + + + + + + onRemoteAudioStats + + + + + + + onRemoteAudioTransportStats + + + + + + + onRemoteSubscribeFallbackToAudioOnly + + + + + + + onRemoteVideoStateChanged + + + + + + + onRemoteVideoStats + + + + + + + onRemoteVideoTransportStats + + + + + + + onRenderVideoFrame + + + + + + + onRenewTokenResult + + + + + + + onRequestToken + + + + + + + onResolutionChanged + + + + + + + onRhythmPlayerStateChanged + + + + + + + onRtcStats + + + + + + + onRtmpStreamingEvent + + + + + + + onRtmpStreamingStateChanged + + + + + + + onSeek + + + + + + + onSendAudioPacket + + + + + + + onSendVideoPacket + + + + + + + onSnapshotTaken + + + + + + + onSongSimpleInfoResult + + + + + + + onStateChanged + + + + + + + onStreamMessage + + + + + + + onStreamMessageError + + + + + + + onTokenPrivilegeWillExpire + + + + + + + onTranscodedStreamLayoutInfo + + + + + + + onTranscodingUpdated + + + + + + + onUplinkNetworkInfoUpdated + + + + + + + onUserEnableLocalVideo + + + + + + + onUserEnableVideo + + + + + + + onUserInfoUpdated + + + + + + + onUserJoined + + + + + + + onUserMuteAudio + + + + + + + onUserMuteVideo + + + + + + + onUserOffline + + + + + + + onVideoDeviceStateChanged + + + + + + + onVideoPublishStateChanged + + + + + + + onVideoRenderingTracingResult + + + + + + + onVideoSizeChanged + + + + + + + onVideoStopped + + + + + + + onVideoSubscribeStateChanged + + + + + + + + + AdvanceOptions + + + + + + + AdvancedAudioOptions + + + + + + + AdvancedConfigInfo + + + + + + + AgoraRhythmPlayerConfig + + + + + + + AudioEncodedFrameObserverConfig + + + + + + + AudioFrame + + + + + + + AudioParams + + + + + + + AudioPcmFrame + + + + + + + AudioRecordingConfiguration + + + + + + + AudioSpectrumData + + + + + + + AudioTrackConfig + + + + + + + AudioVolumeInfo + + + + + + + BeautyOptions + + + + + + + CacheStatistics + + + + + + + CameraCapturerConfiguration + + + + + + + ChannelMediaInfo + + + + + + + ChannelMediaOptions + + + + + + + ChannelMediaRelayConfiguration + + + + + + + ClientRoleOptions + + + + + + + ClimaxSegment + + + + + + + CodecCapInfo + + + + + + + CodecCapLevels + + + + + + + ColorEnhanceOptions + + + + + + + Config + + + + + + + ContentInspectConfig + + + + + + + ContentInspectModule + + + + + + + DataStreamConfig + + + + + + + DeviceInfo + + + + + + + DirectCdnStreamingMediaOptions + + + + + + + DirectCdnStreamingStats + + + + + + + EchoTestConfiguration + + + + + + + EncodedAudioFrameInfo + + + + + + + EncodedVideoFrameInfo + + + + + + + EncryptionConfig + + + + + + + Error + + + + + + + ExtensionContext + + + + + + + ExternalVideoFrame + + + + + + + FaceShapeAreaOptions + + + + + + + FaceShapeBeautyOptions + + + + + + + FilterEffectOptions + + + + + + + FocalLengthInfo + + + + + + + ImageTrackOptions + + + + + + + LastmileProbeConfig + + + + + + + LastmileProbeOneWayResult + + + + + + + LastmileProbeResult + + + + + + + LeaveChannelOptions + + + + + + + LiveStreamAdvancedFeature + + + + + + + LiveTranscoding + + + + + + + LocalAccessPointConfiguration + + + + + + + LocalAudioMixerConfiguration + + + + + + + LocalAudioStats + + + + + + + LocalSpatialAudioConfig + + + + + + + LocalTranscoderConfiguration + + + + + + + LocalVideoStats + + + + + + + LogConfig + + + + + + + LogUploadServerInfo + + + + + + + LowlightEnhanceOptions + + + + + + + MediaRecorderConfiguration + + + + + + + MediaSource + + + + + + + Metadata + + + + + + + MixedAudioStream + + + + + + + MultipathStats + + + + + + + Music + + + + + + + MusicCacheInfo + + + + + + + MusicChartInfo + + + + + + + MusicCollection + + + + + + + MusicContentCenterConfiguration + + + + + + + Packet + + + + + + + PathStats + + + + + + + PlayerConfig + + + + + + + PlayerPlaybackStats + + + + + + + PlayerStreamInfo + + + + + + + PlayerUpdatedInfo + + + + + + + RecorderInfo + + + + + + + RecorderStreamInfo + + + + + + + Rectangle + + + + + + + RemoteAudioStats + + + + + + + RemoteVideoStats + + + + + + + RemoteVoicePositionInfo + + + + + + + RtcConnection + + + + + + + RtcEngineContext + + + + + + + RtcImage + + + + + + + RtcStats + + + + + + + PlayerInfo + + + + + + + RtePlayerStats + + + + + + + ScreenAudioParameters + + + + + + + ScreenCaptureConfiguration + + + + + + + ScreenCaptureParameters + + + + + + + ScreenCaptureParameters2 + + + + + + + ScreenCaptureSourceInfo + + + + + + + ScreenVideoParameters + + + + + + + SegmentationProperty + + + + + + + SimulcastStreamConfig + + + + + + + SnapshotConfig + + + + + + + SpatialAudioParams + + + + + + + SpatialAudioZone + + + + + + + SrcInfo + + + + + + + ThumbImageBuffer + + + + + + + TranscodingUser + + + + + + + TranscodingVideoStream + + + + + + + UplinkNetworkInfo + + + + + + + UserAudioSpectrumInfo + + + + + + + UserInfo + + + + + + + VideoCanvas + + + + + + + VideoDenoiserOptions + + + + + + + VideoDimensions + + + + + + + VideoEncoderConfiguration + + + + + + + VideoFormat + + + + + + + VideoFrame + + + + + + + VideoLayout + + + + + + + VideoRenderingTracingInfo + + + + + + + VideoSubscriptionOptions + + + + + + + VirtualBackgroundSource + + + + + + + WatermarkBuffer + + + + + + + WatermarkConfig + + + + + + + WatermarkOptions + + + + + + + WatermarkRatio + + + + + + + + + ALPHA_STITCH_MODE + + + + + + + AREA_CODE + + + + + + + AUDIENCE_LATENCY_LEVEL_TYPE + + + + + + + AUDIO_AINS_MODE + + + + + + + AUDIO_CODEC_PROFILE_TYPE + + + + + + + AUDIO_CODEC_TYPE + + + + + + + AUDIO_DUAL_MONO_MODE + + + + + + + AUDIO_EFFECT_PRESET + + + + + + + AUDIO_ENCODED_FRAME_OBSERVER_POSITION + + + + + + + AUDIO_ENCODING_TYPE + + + + + + + AUDIO_EQUALIZATION_BAND_FREQUENCY + + + + + + + AUDIO_FILE_RECORDING_TYPE + + + + + + + AUDIO_FRAME_TYPE + + + + + + + AUDIO_MIXING_DUAL_MONO_MODE + + + + + + + AUDIO_MIXING_REASON_TYPE + + + + + + + AUDIO_MIXING_STATE_TYPE + + + + + + + AUDIO_PROFILE_TYPE + + + + + + + AUDIO_RECORDING_QUALITY_TYPE + + + + + + + AUDIO_REVERB_TYPE + + + + + + + AUDIO_SAMPLE_RATE_TYPE + + + + + + + AUDIO_SCENARIO_TYPE + + + + + + + AUDIO_SESSION_OPERATION_RESTRICTION + + + + + + + AUDIO_SOURCE_TYPE + + + + + + + AUDIO_TRACK_TYPE + + + + + + + AudioRoute + + + + + + + BACKGROUND_BLUR_DEGREE + + + + + + + BACKGROUND_SOURCE_TYPE + + + + + + + CAMERA_DIRECTION + + + + + + + CAMERA_FOCAL_LENGTH_TYPE + + + + + + + CAMERA_STABILIZATION_MODE + + + + + + + CAPTURE_BRIGHTNESS_LEVEL_TYPE + + + + + + + CHANNEL_MEDIA_RELAY_ERROR + + + + + + + CHANNEL_MEDIA_RELAY_STATE + + + + + + + CHANNEL_PROFILE_TYPE + + + + + + + CLIENT_ROLE_CHANGE_FAILED_REASON + + + + + + + CLIENT_ROLE_TYPE + + + + + + + CLOUD_PROXY_TYPE + + + + + + + CODEC_CAP_MASK + + + + + + + COMPRESSION_PREFERENCE + + + + + + + CONNECTION_CHANGED_REASON_TYPE + + + + + + + CONNECTION_STATE_TYPE + + + + + + + CONTENT_INSPECT_TYPE + + + + + + + DEGRADATION_PREFERENCE + + + + + + + DIRECT_CDN_STREAMING_REASON + + + + + + + DIRECT_CDN_STREAMING_STATE + + + + + + + EAR_MONITORING_FILTER_TYPE + + + + + + + ENCODING_PREFERENCE + + + + + + + ENCRYPTION_ERROR_TYPE + + + + + + + ENCRYPTION_MODE + + + + + + + ERROR_CODE_TYPE + + + + + + + EXPERIENCE_POOR_REASON + + + + + + + EXPERIENCE_QUALITY_TYPE + + + + + + + EXTERNAL_VIDEO_SOURCE_TYPE + + + + + + + FACE_SHAPE_AREA + + + + + + + FACE_SHAPE_BEAUTY_STYLE + + + + + + + FRAME_RATE + + + + + + + FeatureType + + + + + + + HEADPHONE_EQUALIZER_PRESET + + + + + + + INTERFACE_ID_TYPE + + + + + + + LASTMILE_PROBE_RESULT_STATE + + + + + + + LIGHTENING_CONTRAST_LEVEL + + + + + + + LOCAL_AUDIO_STREAM_REASON + + + + + + + LOCAL_AUDIO_STREAM_STATE + + + + + + + LOCAL_PROXY_MODE + + + + + + + LOCAL_VIDEO_STREAM_REASON + + + + + + + LOCAL_VIDEO_STREAM_STATE + + + + + + + LOG_FILTER_TYPE + + + + + + + LOG_LEVEL + + + + + + + LOW_LIGHT_ENHANCE_LEVEL + + + + + + + LOW_LIGHT_ENHANCE_MODE + + + + + + + MAX_DEVICE_ID_LENGTH_TYPE + + + + + + + MAX_USER_ACCOUNT_LENGTH_TYPE + + + + + + + MEDIA_DEVICE_STATE_TYPE + + + + + + + MEDIA_DEVICE_TYPE + + + + + + + MEDIA_PLAYER_EVENT + + + + + + + MEDIA_PLAYER_METADATA_TYPE + + + + + + + MEDIA_PLAYER_REASON + + + + + + + MEDIA_PLAYER_STATE + + + + + + + MEDIA_SOURCE_TYPE + + + + + + + MEDIA_STREAM_TYPE + + + + + + + MEDIA_TRACE_EVENT + + + + + + + METADATA_TYPE + + + + + + + MUSIC_CACHE_STATUS_TYPE + + + + + + + MediaRecorderContainerFormat + + + + + + + MediaRecorderStreamType + + + + + + + MultipathMode + + + + + + + MultipathType + + + + + + + MusicContentCenterStateReason + + + + + + + MusicPlayMode + + + + + + + NETWORK_TYPE + + + + + + + ORIENTATION_MODE + + + + + + + PERMISSION_TYPE + + + + + + + PLAYER_PRELOAD_EVENT + + + + + + + PROXY_TYPE + + + + + + + PreloadState + + + + + + + QUALITY_ADAPT_INDICATION + + + + + + + QUALITY_TYPE + + + + + + + RAW_AUDIO_FRAME_OP_MODE_TYPE + + + + + + + REMOTE_AUDIO_STATE + + + + + + + REMOTE_AUDIO_STATE_REASON + + + + + + + REMOTE_VIDEO_STATE + + + + + + + REMOTE_VIDEO_STATE_REASON + + + + + + + RENDER_MODE_TYPE + + + + + + + RENEW_TOKEN_ERROR_CODE + + + + + + + RHYTHM_PLAYER_REASON + + + + + + + RHYTHM_PLAYER_STATE_TYPE + + + + + + + RTMP_STREAMING_EVENT + + + + + + + RTMP_STREAM_LIFE_CYCLE_TYPE + + + + + + + RTMP_STREAM_PUBLISH_REASON + + + + + + + RTMP_STREAM_PUBLISH_STATE + + + + + + + RecorderReasonCode + + + + + + + RecorderState + + + + + + + RecorderStreamType + + + + + + + RteAbrFallbackLayer + + + + + + + RteAbrSubscriptionLayer + + + + + + + RteErrorCode + + + + + + + RtePlayerEvent + + + + + + + RtePlayerMetadataType + + + + + + + RtePlayerState + + + + + + + RteVideoMirrorMode + + + + + + + RteVideoRenderMode + + + + + + + SCREEN_CAPTURE_FRAMERATE_CAPABILITY + + + + + + + SCREEN_COLOR_TYPE + + + + + + + SCREEN_SCENARIO_TYPE + + + + + + + SEG_MODEL_TYPE + + + + + + + SIMULCAST_STREAM_MODE + + + + + + + STREAM_FALLBACK_OPTIONS + + + + + + + STREAM_PUBLISH_STATE + + + + + + + STREAM_SUBSCRIBE_STATE + + + + + + + ScreenCaptureSourceType + + + + + + + USER_OFFLINE_REASON_TYPE + + + + + + + VIDEO_APPLICATION_SCENARIO_TYPE + + + + + + + VIDEO_BUFFER_TYPE + + + + + + + VIDEO_CODEC_CAPABILITY_LEVEL + + + + + + + VIDEO_CODEC_PROFILE_TYPE + + + + + + + VIDEO_CODEC_TYPE + + + + + + + VIDEO_CODEC_TYPE_FOR_STREAM + + + + + + + VIDEO_CONTENT_HINT + + + + + + + VIDEO_DENOISER_LEVEL + + + + + + + VIDEO_DENOISER_MODE + + + + + + + VIDEO_EFFECT_ACTION + + + + + + + VIDEO_EFFECT_NODE_ID + + + + + + + VIDEO_FRAME_PROCESS_MODE + + + + + + + VIDEO_FRAME_TYPE + + + + + + + VIDEO_MIRROR_MODE_TYPE + + + + + + + VIDEO_MODULE_POSITION + + + + + + + VIDEO_ORIENTATION + + + + + + + VIDEO_PIXEL_FORMAT + + + + + + + VIDEO_SOURCE_TYPE + + + + + + + VIDEO_STREAM_TYPE + + + + + + + VIDEO_TRANSCODER_ERROR + + + + + + + VIDEO_VIEW_SETUP_MODE + + + + + + + VOICE_AI_TUNER_TYPE + + + + + + + VOICE_BEAUTIFIER_PRESET + + + + + + + VOICE_CONVERSION_PRESET + + + + + + + WATERMARK_FIT_MODE + + + + + + + WATERMARK_SOURCE_TYPE diff --git a/dita/RTC-AIDOC/config/keys-rtc-ng-api-ios.ditamap b/dita/RTC-AIDOC/config/keys-rtc-ng-api-ios.ditamap index 0cef36c8a14..9b378736f35 100644 --- a/dita/RTC-AIDOC/config/keys-rtc-ng-api-ios.ditamap +++ b/dita/RTC-AIDOC/config/keys-rtc-ng-api-ios.ditamap @@ -70,39 +70,6619 @@ + + + + AgoraMediaFilterExtensionDelegate + + + + + + + AgoraMediaMetadataDataSource + + + + + + + AgoraRtcMediaPlayerVideoFrameDelegate + + + + + + + AgoraRteCanvas + + + + + + + AgoraRteCanvasConfig + + + + + + + AgoraAudioEncodedFrameDelegate + + + + + + + AgoraAudioFrameDelegate + + + + + + + AgoraRtcMediaPlayerAudioFrameDelegate + + + + + + + AgoraAudioSpectrumDelegate + + + + + + + AgoraSpatialAudioKitBase + + + + + + + AgoraDirectCdnStreamingEventDelegate + + + + + + + AgoraLocalSpatialAudioKit + + + + + + + AgoraMediaFilterEventDelegate + + + + + + + AgoraRtcMediaPlayerProtocol + + + + + + + AgoraRtcMediaPlayerCacheManagerProtocol + + + + + + + AgoraRtcMediaPlayerDelegate + + + + + + + AgoraMediaRecorder + + + + + + + AgoraMediaRecorderDelegate + + + + + + + AgoraMediaMetadataDelegate + + + + + + + AgoraMusicContentCenter + + + + + + + AgoraMusicContentCenterEventDelegate + + + + + + + AgoraMusicPlayerProtocol + + + + + + + AgoraRtcEngineKit + + + + + + + AgoraRtcEngineDelegate + + + + + + + AgoraRtcEngineKit(Ex) + + + + + + + AgoraVideoEffectObject + + + + + + + AgoraEncodedVideoFrameDelegate + + + + + + + AgoraVideoFrameDelegate + + + + + + + AgoraRtePlayer + + + + + + + AgoraRtePlayerObserver + + + + + + + AgoraRte + + + - + - adjustPlayoutVolume: + addView:config:error: - - - + - AgoraRtcMediaPlayer:playbackStats: + AgoraRtcMediaPlayerGetVideoPixelFormat - - - + - AgoraMediaPlayerPlaybackStats + initWithRte:initialConfig: - - - + - AgoraMediaPlayerMetaDataType + code + + + + + + + destroy: + + + + + + + abrFallbackLayer: + + + + + + + abrSubscriptionLayer: + + + + + + + appId: + + + + + + + autoPlay: + + + + + + + getConfigs:error: + + + + + + + getConfigs:error: + + + + + + + getConfigs:error: + + + + + + + getFromBridge: + + + + + + + getInfo:error: + + + + + + + jsonParameter: + + + + + + + loopCount: + + + + + + + videoMirrorMode: + + + + + + + playbackSpeed: + + + + + + + playoutVolume: + + + + + + + getPosition: + + + + + + + videoRenderMode: + + + + + + + getStats: + + + + + + + initMediaEngine:error: + + + + + + + message + + + + + + + muteAudio:error: + + + + + + + muteVideo:error: + + + + + + + openWithUrl:startTime:cb: + + + + + + + pause: + + + + + + + play: + + + + + + + initWithRte:initialConfig: + + + + + + + preloadWithUrl:error: + + + + + + + registerObserver:error: + + + + + + + removeView:config:error: + + + + + + + initWithInitialConfig: + + + + + + + seek:error: + + + + + + + setAbrFallbackLayer:error: + + + + + + + setAbrSubscriptionLayer:error: + + + + + + + setAppId:error: + + + + + + + setAutoPlay:error: + + + + + + + setCanvas:error: + + + + + + + setConfigs:error: + + + + + + + setConfigs:error: + + + + + + + setConfigs:error: + + + + + + + setJsonParameter:error: + + + + + + + setLoopCount:error: + + + + + + + setVideoMirrorMode:error: + + + + + + + setPlaybackSpeed:error: + + + + + + + setPlayoutVolume:error: + + + + + + + setVideoRenderMode:error: + + + + + + + stop: + + + + + + + switchWithUrl:syncPts:cb: + + + + + + + unregisterObserver:error: + + + + + + + addOrUpdateVideoEffectWithNodeId:templateName: + + + + + + + addUser: + + + + + + + addVideoWatermark: + + + + + + + addVideoWatermark:options: + + + + + + + addVideoWatermarkWithConfig: + + + + + + + addVideoWatermarkEx:options:connection: + + + + + + + addVideoWatermarkEx:connection: + + + + + + + adjustAudioMixingPlayoutVolume: + + + + + + + adjustAudioMixingPublishVolume: + + + + + + + adjustAudioMixingVolume: + + + + + + + adjustCustomAudioPlayoutVolume:volume: + + + + + + + adjustCustomAudioPublishVolume:volume: + + + + + + + adjustPlaybackSignalVolume: + + + + + + + adjustPlayoutVolume: + + + + + + + adjustPublishSignalVolume: + + + + + + + adjustRecordingSignalVolume: + + + + + + + adjustUserPlaybackSignalVolume:volume: + + + + + + + adjustUserPlaybackSignalVolumeEx:volume:connection: + + + + + + + clearRemotePositions: + + + + + + + clearVideoWatermarkEx: + + + + + + + clearVideoWatermarks + + + + + + + complain:description: + + + + + + + configRhythmPlayer: + + + + + + + sharedEngineWithAppId:delegate: + + + + + + + createCustomAudioTrack:config: + + + + + + + createCustomVideoTrack + + + + + + + createDataStream:reliable:ordered: + + + + + + + createDataStream:config: + + + + + + + createDataStreamEx:reliable:ordered:connection: + + + + + + + createDataStreamEx:config:connection: + + + + + + + createMediaPlayerWithDelegate: + + + + + + + createMediaRecorder: + + + + + + + createMusicPlayerWithDelegate: + + + + + + + createVideoEffectObjectWithBundlePath:sourceType: + + + + + + + defaultTranscoding + + + + + + + delegate + + + + + + + destroy: + + + + + + + destroyCustomAudioTrack: + + + + + + + destroyCustomVideoTrack: + + + + + + + destroyMediaPlayer: + + + + + + + destroyMediaRecorder: + + + + + + + destroyMusicPlayer: + + + + + + + destroyVideoEffectObject: + + + + + + + destroy + + + + + + + AgoraRtcMediaPlayer:didReceivePixelBuffer: + + + + + + + AgoraRtcMediaPlayer:didReceiveVideoFrame: + + + + + + + disableAudio + + + + + + + disableAudioSpectrumMonitor + + + + + + + disableVideo + + + + + + + enableAudio + + + + + + + enableAudioSpectrumMonitor: + + + + + + + enableAudioVolumeIndication:smooth:reportVad: + + + + + + + enableAudioVolumeIndicationEx:smooth:reportVad:connection: + + + + + + + enableAutoRemoveCache: + + + + + + + enableCameraCenterStage: + + + + + + + enableContentInspect:config: + + + + + + + enableContentInspectEx:config:connection: + + + + + + + enableCustomAudioLocalPlayback:enabled: + + + + + + + enableDualStreamMode: + + + + + + + enableDualStreamMode:streamConfig: + + + + + + + enableDualStreamModeEx:streamConfig:connection: + + + + + + + enableEncryption:encryptionConfig: + + + + + + + enableEncryptionEx:encryptionConfig:connection: + + + + + + + enableExtensionWithVendor:extension:enabled:sourceType: + + + + + + + enableFaceDetection: + + + + + + + enableInEarMonitoring: + + + + + + + enableInEarMonitoring:includeAudioFilters: + + + + + + + enableInstantMediaRendering + + + + + + + enableLocalAudio: + + + + + + + enableLocalVideo: + + + + + + + enableMainQueueDispatch: + + + + + + + enableMainQueueDispatch: + + + + + + + enableMainQueueDispatch: + + + + + + + enableMultiCamera:config: + + + + + + + enableSoundPositionIndication: + + + + + + + enableSpatialAudio: + + + + + + + enableVideo + + + + + + + enableVideoImageSource:options: + + + + + + + enableVirtualBackground:backData:segData: + + + + + + + enableVirtualBackground:backData:segData:sourceType: + + + + + + + enableVoiceAITuner:type: + + + + + + + enableWebSdkInteroperability: + + + + + + + getAdvancedFeatures + + + + + + + getAudioMixingCurrentPosition + + + + + + + getAudioMixingDuration + + + + + + + getAudioMixingPlayoutVolume + + + + + + + getAudioMixingPublishVolume + + + + + + + getAudioTrackCount + + + + + + + cacheDir + + + + + + + cacheFileCount + + + + + + + getCaches + + + + + + + getCallId + + + + + + + getCallIdEx: + + + + + + + cameraMaxZoomFactor + + + + + + + getConnectionState + + + + + + + getConnectionStateEx: + + + + + + + getCurrentMonotonicTimeInMs + + + + + + + getDuration + + + + + + + getEarMonitoringAudioParams + + + + + + + getEffectCurrentPosition: + + + + + + + getEffectDuration: + + + + + + + getEffectsVolume + + + + + + + getErrorDescription: + + + + + + + getExtensionPropertyWithVendor:extension:key: + + + + + + + getExtensionPropertyWithVendor:extension:key:sourceType: + + + + + + + getFaceShapeAreaOptions:sourceType: + + + + + + + getFaceShapeAreaOptions: + + + + + + + getFaceShapeBeautyOptions: + + + + + + + getFaceShapeBeautyOptions + + + + + + + getInternalSongCode:jsonOption: + + + + + + + getLyricWithSongCode:lyricType: + + + + + + + maxCacheFileCount + + + + + + + maxCacheFileSize + + + + + + + createMediaPlayerCacheManager + + + + + + + getMediaPlayerId + + + + + + + getMirrorApplied + + + + + + + getMixedAudioParams + + + + + + + getMusicCharts + + + + + + + getMusicCollectionWithMusicChartId:page:pageSize:jsonOption: + + + + + + + getMute + + + + + + + getNativeHandle + + + + + + + getNetworkType + + + + + + + getNtpWallTimeInMs + + + + + + + getObservedAudioFramePosition + + + + + + + getObservedFramePosition + + + + + + + getPosition + + + + + + + getPlaySrc + + + + + + + getPlaybackAudioParams + + + + + + + getPlayoutVolume + + + + + + + getPublishSignalVolume + + + + + + + getRecordAudioParams + + + + + + + getRotationApplied + + + + + + + getSongSimpleInfoWithSongCode: + + + + + + + getPlayerState + + + + + + + getStreamCount + + + + + + + getStreamByIndex: + + + + + + + getUserInfoByUid:withError: + + + + + + + getUserInfoByUidEx:connection:withError: + + + + + + + getUserInfoByUserAccount:withError: + + + + + + + getUserInfoByUserAccountEx:connection:withError: + + + + + + + getSdkVersion + + + + + + + getVideoEffectBoolParamWithOption:key: + + + + + + + getVideoEffectFloatParamWithOption:key: + + + + + + + getVideoEffectIntParamWithOption:key: + + + + + + + getVideoFormatPreference + + + + + + + getVideoFrameProcessMode + + + + + + + getVolumeOfEffect: + + + + + + + initWithSize:frameRate:bitrate:orientationMode:mirrorMode: + + + + + + + initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode: + + + + + + + sharedEngineWithConfig:delegate: + + + + + + + sharedLocalSpatialAudioWithConfig: + + + + + + + sharedContentCenterWithConfig: + + + + + + + isCameraAutoExposureFaceModeSupported + + + + + + + isCameraAutoFocusFaceModeSupported + + + + + + + isCameraCenterStageSupported + + + + + + + isCameraExposurePositionSupported + + + + + + + isCameraExposureSupported + + + + + + + isCameraFocusPositionInPreviewSupported + + + + + + + isCameraTorchSupported + + + + + + + isCameraZoomSupported + + + + + + + isFeatureAvailableOnDevice: + + + + + + + isPreloadedWithSongCode: + + + + + + + isSpeakerphoneEnabled + + + + + + + joinChannelByToken:channelId:info:uid:joinSuccess: + + + + + + + joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: + + + + + + + joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: + + + + + + + joinChannelByToken:channelId:userAccount:joinSuccess: + + + + + + + joinChannelByToken:channelId:userAccount:mediaOptions:joinSuccess: + + + + + + + joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess: + + + + + + + leaveChannel: + + + + + + + leaveChannel:leaveChannelBlock: + + + + + + + leaveChannelEx:leaveChannelBlock: + + + + + + + leaveChannelEx:options:leaveChannelBlock: + + + + + + + metadataMaxSize + + + + + + + mute: + + + + + + + muteAllRemoteAudioStreams: + + + + + + + muteAllRemoteAudioStreamsEx:connection: + + + + + + + muteAllRemoteAudioStreams: + + + + + + + muteAllRemoteVideoStreams: + + + + + + + muteAllRemoteVideoStreamsEx:connection: + + + + + + + muteLocalAudioStream: + + + + + + + muteLocalAudioStreamEx:connection: + + + + + + + muteLocalAudioStream: + + + + + + + muteLocalVideoStream: + + + + + + + muteLocalVideoStreamEx:connection: + + + + + + + muteRecordingSignal: + + + + + + + muteRemoteAudioStream:mute: + + + + + + + muteRemoteAudioStreamEx:mute:connection: + + + + + + + muteRemoteAudioStream:mute: + + + + + + + muteRemoteVideoStream:mute: + + + + + + + muteRemoteVideoStreamEx:mute:connection: + + + + + + + open:startPos: + + + + + + + openWithMediaSource: + + + + + + + openMediaWithSongCode:startPos: + + + + + + + pause + + + + + + + pauseAllChannelMediaRelay + + + + + + + pauseAllChannelMediaRelayEx: + + + + + + + pauseAllEffects + + + + + + + pauseAudioMixing + + + + + + + pauseEffect: + + + + + + + performVideoEffectActionWithNodeId:actionId: + + + + + + + play + + + + + + + playAllEffectsWithLoopCount:pitch:pan:gain:publish: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain:publish: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain:publish:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:publish:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:publish: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain: + + + + + + + playPreloadedSrc: + + + + + + + preloadWithSongCode:jsonOption: + + + + + + + preloadWithSongCode: + + + + + + + preloadChannelByToken:channelId:uid: + + + + + + + preloadChannelByTokenWithUserAccount:channelId:userAccount: + + + + + + + preloadEffect:filePath:startPos: + + + + + + + preloadEffect:filePath: + + + + + + + preloadEffectEx:soundId:filePath:startPos: + + + + + + + preloadEffectEx:soundId:filePath: + + + + + + + preloadSrc:startPos: + + + + + + + pullPlaybackAudioFrameRawData:lengthInByte: + + + + + + + pullPlaybackAudioFrameSampleBufferByLengthInByte: + + + + + + + pushExternalAudioFrameRawData:samples:sampleRate:channels:trackId:timestamp: + + + + + + + pushExternalAudioFrameSampleBuffer: + + + + + + + pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: + + + + + + + pushExternalVideoFrame:videoTrackId: + + + + + + + pushExternalVideoFrame: + + + + + + + queryCameraFocalLengthCapability + + + + + + + queryCodecCapability + + + + + + + queryDeviceScore + + + + + + + queryScreenCaptureCapability + + + + + + + rate:rating:description: + + + + + + + readyToSendMetadataAtTimestamp:sourceType: + + + + + + + setAudioEncodedFrameDelegate:config: + + + + + + + setAudioFrameDelegate: + + + + + + + registerAudioSpectrumDelegate: + + + + + + + registerEventDelegate: + + + + + + + registerExtensionWithVendor:extension:sourceType: + + + + + + + registerLocalUserAccount:appId: + + + + + + + setMediaMetadataDelegate:withType: + + + + + + + setEncodedVideoFrameDelegate: + + + + + + + setVideoFrameDelegate: + + + + + + + destroy + + + + + + + destroy + + + + + + + removeAllCaches + + + + + + + removeCacheWithSongCode: + + + + + + + removeCacheByUri: + + + + + + + removeDestinationInfoForChannelName: + + + + + + + removeOldCache + + + + + + + removeRemotePosition: + + + + + + + removeUser: + + + + + + + removeVideoEffectWithNodeId: + + + + + + + removeVideoWatermark: + + + + + + + removeVideoWatermarkEx:connection: + + + + + + + renewToken: + + + + + + + renewToken: + + + + + + + resume + + + + + + + resumeAllChannelMediaRelay + + + + + + + resumeAllChannelMediaRelayEx: + + + + + + + resumeAllEffects + + + + + + + resumeAudioMixing + + + + + + + resumeEffect: + + + + + + + searchMusicWithKeyWord:page:pageSize:jsonOption: + + + + + + + seekToPosition: + + + + + + + selectAudioTrack: + + + + + + + selectAudioTrack: + + + + + + + selectMultiAudioTrack:publishTrackIndex: + + + + + + + sendCustomReportMessage:category:event:label:value: + + + + + + + sendCustomReportMessageEx:category:event:label:value:connection: + + + + + + + sendStreamMessage:data: + + + + + + + setAINSMode:mode: + + + + + + + setAVSyncSource:uid: + + + + + + + setAdvancedAudioOptions: + + + + + + + setAdvancedFeatures:opened: + + + + + + + setAudioDualMonoMode: + + + + + + + setAudioEffectParameters:param1:param2: + + + + + + + setAudioEffectPreset: + + + + + + + setAudioMixingDualMonoMode: + + + + + + + setAudioMixingPitch: + + + + + + + setAudioMixingPlaybackSpeed: + + + + + + + setAudioMixingPosition: + + + + + + + setAudioPitch: + + + + + + + setAudioProfile:scenario: + + + + + + + setAudioProfile: + + + + + + + setAudioRecvRange: + + + + + + + setAudioScenario: + + + + + + + setAudioSessionOperationRestriction: + + + + + + + setBeautyEffectOptions:options: + + + + + + + setBeautyEffectOptions:options:sourceType: + + + + + + + setCacheDir: + + + + + + + setCameraAutoExposureFaceModeEnabled: + + + + + + + setCameraAutoFocusFaceModeEnabled: + + + + + + + setCameraCapturerConfiguration: + + + + + + + setCameraExposureFactor: + + + + + + + setCameraExposurePosition: + + + + + + + setCameraFocusPositionInPreview: + + + + + + + setCameraStabilizationMode: + + + + + + + setCameraTorchOn: + + + + + + + setCameraZoomFactor: + + + + + + + setChannelProfile: + + + + + + + setClientRole: + + + + + + + setClientRole:options: + + + + + + + setCloudProxy: + + + + + + + setColorEnhanceOptions:options: + + + + + + + setColorEnhanceOptions:options:sourceType: + + + + + + + setDefaultAudioRouteToSpeakerphone: + + + + + + + setDestinationInfo:forChannelName: + + + + + + + setDirectCdnStreamingAudioConfiguration: + + + + + + + setDirectCdnStreamingVideoConfiguration: + + + + + + + setDistanceUnit: + + + + + + + setDualStreamMode: + + + + + + + setDualStreamMode:streamConfig: + + + + + + + setDualStreamModeEx:streamConfig:connection: + + + + + + + setEarMonitoringAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setEffectPosition:pos: + + + + + + + setEffectsVolume: + + + + + + + setEnableSpeakerphone: + + + + + + + setExtensionPropertyWithVendor:extension:key:value: + + + + + + + setExtensionProviderPropertyWithVendor:key:value: + + + + + + + enableExternalAudioSink:sampleRate:channels: + + + + + + + setExternalAudioSource:sampleRate:channels: + + + + + + + setExternalAudioSource:sampleRate:channels:localPlayback:publish: + + + + + + + setExternalVideoSource:useTexture:sourceType: + + + + + + + setFaceShapeAreaOptions:sourceType: + + + + + + + setFaceShapeAreaOptions: + + + + + + + setFaceShapeBeautyOptions:options:sourceType: + + + + + + + setFaceShapeBeautyOptions:options: + + + + + + + setFilterEffectOptions:options:sourceType: + + + + + + + setFilterEffectOptions:options: + + + + + + + setHeadphoneEQParameters:highGain: + + + + + + + setHeadphoneEQPreset: + + + + + + + setInEarMonitoringVolume: + + + + + + + setLocalAccessPoint: + + + + + + + setLocalRenderMode:mode: + + + + + + + setLocalRenderMode:mirror: + + + + + + + setLocalRenderTargetFps:targetFps: + + + + + + + setLocalVideoMirrorMode: + + + + + + + setLocalVoiceEqualizationOfBandFrequency:withGain: + + + + + + + setLocalVoiceFormant: + + + + + + + setLocalVoicePitch: + + + + + + + setLocalVoiceReverbOfType:withValue: + + + + + + + setLogFile: + + + + + + + setLogFileSize: + + + + + + + setLogFilter: + + + + + + + setLogLevel: + + + + + + + setLoopCount: + + + + + + + setLowlightEnhanceOptions:options: + + + + + + + setLowlightEnhanceOptions:options:sourceType: + + + + + + + setMaxAudioRecvCount: + + + + + + + setMaxCacheFileCount: + + + + + + + setMaxCacheFileSize: + + + + + + + setMediaMetadataDataSource:withType: + + + + + + + setMediaRecorderDelegate: + + + + + + + setMixedAudioFrameParametersWithSampleRate:channel:samplesPerCall: + + + + + + + setParameters: + + + + + + + setPlayMode: + + + + + + + setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel: + + + + + + + setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:samplesPerCall: + + + + + + + setPlaybackAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setPlaybackSpeed: + + + + + + + setPlayerAttenuation:playerId:forceSet: + + + + + + + setPlayerOption:value: + + + + + + + setPlayerOptionString:value: + + + + + + + setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setRemoteAudioAttenuation:uid:forceSet: + + + + + + + setRemoteDefaultVideoStreamType: + + + + + + + setRemoteRenderMode:mode:mirror: + + + + + + + setRemoteRenderModeEx:mode:mirror:connection: + + + + + + + setRemoteRenderTargetFps: + + + + + + + setRemoteSubscribeFallbackOption: + + + + + + + setRemoteUserSpatialAudioParams:params: + + + + + + + setRemoteVideoStream:type: + + + + + + + setRemoteVideoStreamEx:type:connection: + + + + + + + setRemoteVideoSubscriptionOptions:options: + + + + + + + setRemoteVideoSubscriptionOptionsEx:options:connection: + + + + + + + setRemoteVoicePosition:pan:gain: + + + + + + + setRemoteVoicePositionEx:pan:gain:connection: + + + + + + + setRenderMode: + + + + + + + setScreenCaptureScenario: + + + + + + + setSpatialAudioParams: + + + + + + + setSubscribeAudioAllowlist: + + + + + + + setSubscribeAudioAllowlistEx:connection: + + + + + + + setSubscribeAudioBlocklist: + + + + + + + setSubscribeAudioBlocklistEx:connection: + + + + + + + setSubscribeVideoAllowlist: + + + + + + + setSubscribeVideoAllowlistEx:connection: + + + + + + + setSubscribeVideoBlocklist: + + + + + + + setSubscribeVideoBlocklistEx:connection: + + + + + + + setVideoDenoiserOptions:options: + + + + + + + setVideoDenoiserOptions:options:sourceType: + + + + + + + setVideoEffectBoolParamWithOption:key:boolValue: + + + + + + + setVideoEffectFloatParamWithOption:key:floatValue: + + + + + + + setVideoEffectIntParamWithOption:key:intValue: + + + + + + + setVideoEncoderConfiguration: + + + + + + + setVideoEncoderConfigurationEx:connection: + + + + + + + setVideoFrameDelegate: + + + + + + + setVideoResolution:andFrameRate:bitrate: + + + + + + + setVideoScenario: + + + + + + + setView: + + + + + + + setVoiceBeautifierParameters:param1:param2: + + + + + + + setVoiceBeautifierPreset: + + + + + + + setVoiceConversionPreset: + + + + + + + setVolumeOfEffect:withVolume: + + + + + + + setZones: + + + + + + + setupLocalVideo: + + + + + + + setupRemoteVideo: + + + + + + + setupRemoteVideoEx:connection: + + + + + + + sharedInstance + + + + + + + startAudioMixing:loopback:cycle: + + + + + + + startAudioMixing:loopback:cycle:startPos: + + + + + + + startAudioRecording:quality: + + + + + + + startAudioRecordingWithConfig: + + + + + + + startCameraCapture:config: + + + + + + + startDirectCdnStreaming:publishUrl:mediaOptions: + + + + + + + startEchoTestWithConfig: + + + + + + + startLastmileProbeTest: + + + + + + + startLocalAudioMixer: + + + + + + + startLocalVideoTranscoder: + + + + + + + startMediaRenderingTracing + + + + + + + startMediaRenderingTracingEx: + + + + + + + startOrUpdateChannelMediaRelay: + + + + + + + startOrUpdateChannelMediaRelayEx:connection: + + + + + + + startPlaybackDeviceTest: + + + + + + + startPreview + + + + + + + startPreview: + + + + + + + startRecording: + + + + + + + startRecordingDeviceTest: + + + + + + + startRhythmPlayer:sound2:config: + + + + + + + startRtmpStreamWithTranscoding:transcoding: + + + + + + + startRtmpStreamWithTranscodingEx:transcoding:connection: + + + + + + + startRtmpStreamWithoutTranscoding: + + + + + + + startRtmpStreamWithoutTranscodingEx:connection: + + + + + + + startScreenCapture: + + + + + + + stop: + + + + + + + stopAllEffects + + + + + + + stopAudioMixing + + + + + + + stopAudioRecording + + + + + + + stopCameraCapture: + + + + + + + stopChannelMediaRelay + + + + + + + stopChannelMediaRelayEx: + + + + + + + stopDirectCdnStreaming + + + + + + + stopEchoTest + + + + + + + stopEffect: + + + + + + + stopLastmileProbeTest + + + + + + + stopLocalAudioMixer + + + + + + + stopLocalVideoTranscoder + + + + + + + stopPlaybackDeviceTest + + + + + + + stopPreview + + + + + + + stopPreview: + + + + + + + stopRecording + + + + + + + stopRecordingDeviceTest + + + + + + + stopRhythmPlayer + + + + + + + stopRtmpStream: + + + + + + + stopRtmpStreamEx:connection: + + + + + + + stopScreenCapture + + + + + + + switchCamera + + + + + + + switchSrc:syncPts: + + + + + + + takeSnapshot:filePath: + + + + + + + takeSnapshotWithConfig:config: + + + + + + + takeSnapshotEx:uid:filePath: + + + + + + + takeSnapshotExWithConfig:uid:config: + + + + + + + unloadEffect: + + + + + + + unloadSrc: + + + + + + + unregisterAudioSpectrumDelegate: + + + + + + + updateChannelWithMediaOptions: + + + + + + + updateChannelExWithMediaOptions:connection: + + + + + + + updateLocalAudioMixerConfiguration: + + + + + + + updateLocalTranscoderConfiguration: + + + + + + + updatePlayerPositionInfo:positionInfo: + + + + + + + updatePreloadChannelToken: + + + + + + + updateRemotePosition:positionInfo: + + + + + + + updateRtmpTranscoding: + + + + + + + updateRtmpTranscodingEx:connection: + + + + + + + updateScreenCapture: + + + + + + + updateSelfPosition:axisForward:axisRight:axisUp: + + + + + + + updateSelfTransform: + + + + + + + + + rtcEngine:activeSpeaker: + + + + + + + rtcEngineDidAudioEffectFinish:soundId: + + + + + + + rtcEngineLocalAudioMixingDidFinish: + + + + + + + rtcEngine:audioMixingPositionChanged: + + + + + + + rtcEngine:audioMixingStateChanged:reasonCode: + + + + + + + rtcEngine:didAudioPublishStateChange:oldState:newState:elapseSinceLastState: + + + + + + + audioQualityBlock: + + + + + + + rtcEngine:didAudioRouteChanged: + + + + + + + rtcEngine:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState: + + + + + + + rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: + + + + + + + AgoraRtcMediaPlayer:volumeIndicationDidReceive: + + + + + + + onAudioVolumeIndication: + + + + + + + rtcEngine:cameraExposureDidChangedToRect: + + + + + + + rtcEngine:cameraFocusDidChangedToRect: + + + + + + + rtcEngineCameraDidReady: + + + + + + + onCaptureVideoFrame:sourceType: + + + + + + + rtcEngine:channelMediaRelayStateDidChange:error: + + + + + + + rtcEngine:didClientRoleChangeFailed:currentRole: + + + + + + + rtcEngine:didClientRoleChanged:newRole:newRoleOptions: + + + + + + + rtcEngineConnectionDidBanned: + + + + + + + rtcEngineConnectionDidInterrupted: + + + + + + + rtcEngineConnectionDidLost: + + + + + + + rtcEngine:connectionChangedToState:reason: + + + + + + + onDirectCdnStreamingStateChanged:reason:message: + + + + + + + onDirectCdnStreamingStats: + + + + + + + onEarMonitoringAudioFrame: + + + + + + + onEncodedVideoFrameReceived:length:info:channelId:uid: + + + + + + + rtcEngine:didOccurEncryptionError: + + + + + + + rtcEngine:didOccurError: + + + + + + + onEvent: + + + + + + + onExtensionErrorWithContext:error:message: + + + + + + + onEventWithContext:key:value: + + + + + + + onExtensionStartedWithContext: + + + + + + + onExtensionStoppedWithContext: + + + + + + + rtcEngine:facePositionDidChangeWidth:previewHeight:faces: + + + + + + + rtcEngine:firstLocalAudioFramePublished: + + + + + + + rtcEngine:firstLocalVideoFrameWithSize:elapsed:sourceType: + + + + + + + rtcEngine:firstLocalVideoFramePublishedWithElapsed:sourceType: + + + + + + + rtcEngine:firstRemoteAudioFrameDecodedOfUid:elapsed: + + + + + + + rtcEngine:firstRemoteAudioFrameOfUid:elapsed: + + + + + + + rtcEngine:firstRemoteVideoDecodedOfUid:size:elapsed: + + + + + + + rtcEngine:firstRemoteVideoFrameOfUid:size:elapsed: + + + + + + + AgoraRtcMediaPlayer:didReceiveAudioFrame: + + + + + + + rtcEngine:didJoinChannel:withUid:elapsed: + + + + + + + rtcEngine:lastmileProbeTestResult: + + + + + + + rtcEngine:lastmileQuality: + + + + + + + rtcEngine:didLeaveChannelWithStats: + + + + + + + onLocalAudioSpectrum: + + + + + + + rtcEngine:localAudioStateChanged:reason: + + + + + + + rtcEngine:localAudioStats: + + + + + + + rtcEngine:didLocalUserRegisteredWithUserId:userAccount: + + + + + + + rtcEngine:localVideoStateChangedOfState:reason:sourceType: + + + + + + + rtcEngine:localVideoStats:sourceType: + + + + + + + rtcEngine:didLocalVideoTranscoderErrorWithStream:errorCode: + + + + + + + onLyricResult:songCode:lyricUrl:reason: + + + + + + + AgoraRtcMediaPlayer:didReceiveData:length: + + + + + + + didMetadataReceived: + + + + + + + onMetadata:data: + + + + + + + onMixedEncodedAudioFrame:info: + + + + + + + onMixedAudioFrame:channelId: + + + + + + + rtcEngine:multiPathStats: + + + + + + + onMusicChartsResult:result:reason: + + + + + + + onMusicCollectionResult:result:reason: + + + + + + + rtcEngine:networkQuality:txQuality:rxQuality: + + + + + + + rtcEngine:networkTypeChanged: + + + + + + + rtcEngine:permissionError: + + + + + + + AgoraRtcMediaPlayer:didPlayBufferUpdated: + + + + + + + onPlaybackEncodedAudioFrame:info: + + + + + + + onPlaybackAudioFrame:channelId: + + + + + + + onPlaybackAudioFrameBeforeMixing:channelId:uid: + + + + + + + AgoraRtcMediaPlayer:cacheStats: + + + + + + + AgoraRtcMediaPlayer:didOccurEvent:elapsedTime:message: + + + + + + + AgoraRtcMediaPlayer:infoUpdated: + + + + + + + onPlayerInfoUpdated: + + + + + + + AgoraRtcMediaPlayer:playbackStats: + + + + + + + AgoraRtcMediaPlayer:didChangedToState:reason: + + + + + + + AgoraRtcMediaPlayer:playerSrcInfoDidChange:from: + + + + + + + AgoraRtcMediaPlayer:didChangedToPosition:atTimestamp: + + + + + + + onPositionChanged:utcTime: + + + + + + + onPreEncodeVideoFrame:sourceType: + + + + + + + onPreLoadEvent:songCode:percent:lyricUrl:state:reason: + + + + + + + AgoraRtcMediaPlayer:didPreloadEvent: + + + + + + + rtcEngine:didProxyConnected:withUid:proxyType:localProxyIp:elapsed: + + + + + + + onRecordEncodedAudioFrame:info: + + + + + + + onRecordAudioFrame:channelId: + + + + + + + mediaRecorder:informationDidUpdated:uid:info: + + + + + + + mediaRecorder:stateDidChanged:uid:state:reason: + + + + + + + rtcEngine:didRejoinChannel:withUid:elapsed: + + + + + + + onRemoteAudioSpectrum: + + + + + + + rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed: + + + + + + + rtcEngine:remoteAudioStats: + + + + + + + rtcEngine:audioTransportStatsOfUid:delay:lost:rxKBitRate: + + + + + + + rtcEngine:didRemoteSubscribeFallbackToAudioOnly:byUid: + + + + + + + rtcEngine:remoteVideoStateChangedOfUid:state:reason:elapsed: + + + + + + + rtcEngine:remoteVideoStats: + + + + + + + rtcEngine:videoTransportStatsOfUid:delay:lost:rxKBitRate: + + + + + + + onRenderVideoFrame:uid:channelId: + + + + + + + rtcEngine:renewTokenResult:code: + + + + + + + rtcEngineRequestToken: + + + + + + + onResolutionChanged:height: + + + + + + + rtcEngine:didRhythmPlayerStateChanged:reason: + + + + + + + rtcEngine:reportRtcStats: + + + + + + + rtcEngine:rtmpStreamingEventWithUrl:eventCode: + + + + + + + rtcEngine:rtmpStreamingChangedToState:state:reason: + + + + + + + rtcEngine:snapshotTaken:filePath:width:height:errCode: + + + + + + + onSongSimpleInfoResult:songCode:simpleInfo:reason: + + + + + + + onStateChanged:newState:error: + + + + + + + rtcEngine:receiveStreamMessageFromUid:streamId:data: + + + + + + + rtcEngine:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached: + + + + + + + rtcEngine:tokenPrivilegeWillExpire: + + + + + + + rtcEngine:didTranscodedStreamLayoutInfoUpdatedWithUserId:videoLayoutInfo: + + + + + + + rtcEngineTranscodingUpdated: + + + + + + + rtcEngine:uplinkNetworkInfoUpdate: + + + + + + + rtcEngine:didLocalVideoEnabled:byUid: + + + + + + + rtcEngine:didVideoEnabled:byUid: + + + + + + + rtcEngine:didUserInfoUpdatedWithUserId:userInfo: + + + + + + + rtcEngine:didJoinedOfUid:elapsed: + + + + + + + rtcEngine:didAudioMuted:byUid: + + + + + + + rtcEngine:didVideoMuted:byUid: + + + + + + + rtcEngine:didOfflineOfUid:reason: + + + + + + + rtcEngine:didVideoPublishStateChange:sourceType:oldState:newState:elapseSinceLastState: + + + + + + + rtcEngine:videoRenderingTracingResultOfUid:currentEvent:tracingInfo: + + + + + + + rtcEngine:videoSizeChangedOfSourceType:uid:size:rotation: + + + + + + + rtcEngineVideoDidStop: + + + + + + + rtcEngine:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState: + + + + + + + + + AgoraAdvancedVideoOptions + + + + + + + AgoraAdvancedAudioOptions + + + + + + + AdvancedConfigInfo + + + + + + + AgoraFacePositionInfo + + + + + + + AgoraRhythmPlayerConfig + + + + + + + AgoraAudioEncodedFrameDelegateConfig + + + + + + + AgoraAudioFrame + + + + + + + AgoraAudioParams + + + + + + + AgoraAudioRecordingConfiguration + + + + + + + AgoraAudioTrackConfig + + + + + + + AgoraRtcAudioVolumeInfo + + + + + + + AgoraBeautyOptions + + + + + + + AgoraMediaPlayerCacheStatistics + + + + + + + AgoraCameraCapturerConfiguration + + + + + + + AgoraChannelMediaRelayInfo + + + + + + + AgoraRtcChannelMediaOptions + + + + + + + AgoraChannelMediaRelayConfiguration + + + + + + + AgoraClientRoleOptions + + + + + + + AgoraClimaxSegment + + + + + + + AgoraVideoCodecCapInfo + + + + + + + AgoraVideoCodecCapLevels + + + + + + + AgoraColorEnhanceOptions + + + + + + + AgoraRteConfig + + + + + + + AgoraContentInspectConfig + + + + + + + AgoraContentInspectModule + + + + + + + AgoraDataStreamConfig + + + + + + + AgoraDirectCdnStreamingMediaOptions + + + + + + + AgoraDirectCdnStreamingStats + + + + + + + AgoraEchoTestConfiguration + + + + + + + AgoraEncodedAudioFrameInfo + + + + + + + AgoraEncodedVideoFrameInfo + + + + + + + AgoraEncryptionConfig + + + + + + + AgoraRteError + + + + + + + AgoraExtensionContext + + + + + + + AgoraVideoFrame + + + + + + + AgoraFaceShapeAreaOptions + + + + + + + AgoraFaceShapeBeautyOptions + + + + + + + AgoraFilterEffectOptions + + + + + + + AgoraFocalLengthInfo + + + + + + + AgoraImageTrackOptions + + + + + + + AgoraLastmileProbeConfig + + + + + + + AgoraLastmileProbeOneWayResult + + + + + + + AgoraLastmileProbeResult + + + + + + + AgoraLeaveChannelOptions + + + + + + + AgoraLiveStreamAdvancedFeature + + + + + + + AgoraLiveTranscoding + + + + + + + AgoraLocalAccessPointConfiguration + + + + + + + AgoraLocalAudioMixerConfiguration + + + + + + + AgoraRtcLocalAudioStats + + + + + + + AgoraLocalSpatialAudioConfig + + + + + + + AgoraLocalTranscoderConfiguration + + + + + + + AgoraRtcLocalVideoStats + + + + + + + AgoraLogConfig + + + + + + + LogUploadServerInfo + + + + + + + AgoraLowlightEnhanceOptions + + + + + + + AgoraMediaRecorderConfiguration + + + + + + + AgoraMediaSource + + + + + + + AgoraMetadata + + + + + + + AgoraMixedAudioStream + + + + + + + AgoraMultipathStats + + + + + + + AgoraMusic + + + + + + + AgoraMusicCacheInfo + + + + + + + AgoraMusicChartInfo + + + + + + + AgoraMusicCollection + + + + + + + AgoraMusicContentCenterConfig + + + + + + + AgoraPathStats + + + + + + + AgoraRtePlayerConfig + + + + + + + AgoraMediaPlayerPlaybackStats + + + + + + + AgoraRtcMediaStreamInfo + + + + + + + AgoraMediaPlayerUpdatedInfo + + + + + + + AgoraMediaRecorderInfo + + + + + + + AgoraRecorderStreamInfo + + + + + + + AgoraRtcRemoteAudioStats + + + + + + + AgoraRtcRemoteVideoStats + + + + + + + AgoraRemoteVoicePositionInfo + + + + + + + AgoraRtcConnection + + + + + + + AgoraRtcEngineConfig + + + + + + + AgoraImage + + + + + + + AgoraChannelStats + + + + + + + AgoraRtePlayerInfo + + + + + + + AgoraRtePlayerStats + + + + + + + AgoraScreenAudioParameters + + + + + + + AgoraScreenCaptureParameters + + + + + + + AgoraScreenVideoParameters + + + + + + + AgoraSegmentationProperty + + + + + + + AgoraSimulcastStreamConfig + + + + + + + AgoraSnapshotConfig + + + + + + + AgoraSpatialAudioParams + + + + + + + AgoraSpatialAudioZone + + + + + + + AgoraMediaPlayerSrcInfo + + + + + + + AgoraLiveTranscodingUser + + + + + + + AgoraTranscodingVideoStream + + + + + + + AgoraUplinkNetworkInfo + + + + + + + AgoraAudioSpectrumInfo + + + + + + + AgoraUserInfo + + + + + + + AgoraRtcVideoCanvas + + + + + + + AgoraVideoDenoiserOptions + + + + + + + AgoraVideoEncoderConfiguration + + + + + + + AgoraOutputVideoFrame + + + + + + + AgoraVideoLayoutInfo + + + + + + + AgoraVideoLayoutInfo + + + + + + + AgoraVideoRenderingTracingInfo + + + + + + + AgoraVideoSubscriptionOptions + + + + + + + AgoraVirtualBackgroundSource + + + + + + + WatermarkBuffer + + + + + + + WatermarkConfig + + + + + + + WatermarkOptions + + + + + + + + + AgoraAlphaStitchMode + + + + + + + AgoraAreaCodeType + + + + + + + AgoraAudienceLatencyLevelType + + + + + + + AUDIO_AINS_MODE + + + + + + + AgoraAudioCodecProfileType + + + + + + + AgoraAudioCodecType + + + + + + + AgoraAudioDualMonoMode + + + + + + + AgoraAudioEffectPreset + + + + + + + AgoraAudioEncodedFrameDelegatePosition + + + + + + + AgoraAudioEncodingType + + + + + + + AgoraAudioEqualizationBandFrequency + + + + + + + AgoraAudioFileRecordingType + + + + + + + AgoraAudioMixingDualMonoMode + + + + + + + AgoraAudioMixingReasonCode + + + + + + + AgoraAudioMixingStateType + + + + + + + AgoraAudioProcessChannels + + + + + + + AgoraAudioProfile + + + + + + + AgoraAudioRecordingQuality + + + + + + + AgoraAudioReverbType + + + + + + + AgoraAudioSampleRateType + + + + + + + AgoraAudioScenario + + + + + + + AgoraAudioSessionOperationRestriction + + + + + + + AgoraAudioSourceType + + + + + + + AgoraAudioTrackType + + + + + + + AgoraMediaPlayerRenderMode + + + + + + + AgoraAudioOutputRouting + + + + + + + AgoraBlurDegree + + + + + + + AgoraVirtualBackgroundSourceType + + + + + + + AgoraCameraDirection + + + + + + + AgoraFocalLength + + + + + + + AgoraCameraStabilizationMode + + + + + + + AgoraCaptureBrightnessLevelType + + + + + + + AgoraChannelMediaRelayError + + + + + + + AgoraChannelMediaRelayState + + + + + + + AgoraChannelProfile + + + + + + + AgoraClientRoleChangeFailedReason + + + + + + + AgoraClientRole + + + + + + + AgoraCloudProxyType + + + + + + + AgoraCodecCapMask + + + + + + + AgoraCompressionPreference + + + + + + + AgoraConnectionChangedReason + + + + + + + AgoraConnectionState + + + + + + + AgoraContentInspectType + + + + + + + AgoraDegradationPreference + + + + + + + AgoraDirectCdnStreamingReason + + + + + + + AgoraDirectCdnStreamingState + + + + + + + AgoraEarMonitoringFilterType + + + + + + + AgoraEncodingPreference + + + + + + + AgoraEncryptionErrorType + + + + + + + AgoraEncryptionMode + + + + + + + AgoraErrorCode + + + + + + + AgoraExperiencePoorReason + + + + + + + AgoraExperienceQuality + + + + + + + AgoraExternalVideoSourceType + + + + + + + AgoraFaceShapeArea + + + + + + + AgoraFaceShapeStyle + + + + + + + AgoraVideoFrameRate + + + + + + + AgoraFeatureType + + + + + + + AgoraHeadphoneEQPreset + + + + + + + AgoraLastmileProbeResultState + + + + + + + AgoraLighteningContrastLevel + + + + + + + AgoraAudioLocalReason + + + + + + + AgoraAudioLocalState + + + + + + + AgoraLocalProxyMode + + + + + + + AgoraLocalVideoStreamReason + + + + + + + AgoraVideoLocalState + + + + + + + AgoraLogFilter + + + + + + + AgoraLogLevel + + + + + + + AgoraLowlightEnhanceLevel + + + + + + + AgoraLowlightEnhanceMode + + + + + + + AgoraMediaPlayerEvent + + + + + + + AgoraMediaPlayerMetaDataType + + + + + + + AgoraMediaPlayerReason + + + + + + + AgoraMediaPlayerState + + + + + + + AgoraMediaSourceType + + + + + + + AgoraMediaStreamType + + + + + + + AgoraMediaTraceEvent + + + + + + + AgoraMetadataType + + + + + + + AgoraMusicCacheStatusType + + + + + + + AgoraMediaRecorderContainerFormat + + + + + + + AgoraMediaRecorderStreamType + + + + + + + AgoraMultipathMode + + + + + + + AgoraMultipathType + + + + + + + AgoraMusicContentCenterStateReason + + + + + + + AgoraMusicPlayMode + + + + + + + AgoraNetworkType + + + + + + + AgoraVideoOutputOrientationMode + + + + + + + AgoraPermissionType + + + + + + + AgoraMediaPlayerPreloadEvent + + + + + + + AgoraProxyType + + + + + + + AgoraMusicContentCenterPreloadState + + + + + + + AgoraVideoQualityAdaptIndication + + + + + + + AgoraNetworkQuality + + + + + + + AgoraAudioRawFrameOperationMode + + + + + + + AgoraAudioRemoteState + + + + + + + AgoraAudioRemoteReason + + + + + + + AgoraVideoRemoteState + + + + + + + AgoraVideoRemoteReason + + + + + + + AgoraVideoRenderMode + + + + + + + AgoraRenewTokenErrorCode + + + + + + + AgoraRhythmPlayerReason + + + + + + + AgoraRhythmPlayerState + + + + + + + AgoraRtmpStreamingEvent + + + + + + + AgoraRtmpStreamLifeCycle + + + + + + + AgoraRtmpStreamingReason + + + + + + + AgoraRtmpStreamingState + + + + + + + AgoraMediaRecorderReasonCode + + + + + + + AgoraMediaRecorderState + + + + + + + AgoraRecorderStreamType + + + + + + + AgoraRteAbrFallbackLayer + + + + + + + AgoraRteAbrSubscriptionLayer + + + + + + + AgoraRteErrorCode + + + + + + + AgoraRtePlayerEvent + + + + + + + AgoraRtePlayerMetadataType + + + + + + + AgoraRtePlayerState + + + + + + + AgoraRteVideoMirrorMode + + + + + + + AgoraRteVideoRenderMode + + + + + + + AgoraScreenCaptureFrameRateCapability + + + + + + + ScreenColorType + + + + + + + AgoraScreenScenarioType + + + + + + + SegModelType + + + + + + + AgoraSimulcastStreamMode + + + + + + + AgoraStreamFallbackOptions + + + + + + + AgoraStreamPublishState + + + + + + + AgoraStreamSubscribeState + + + + + + + AgoraUserOfflineReason + + + + + + + AgoraApplicationScenarioType + + + + + + + AgoraVideoCodecCapabilityLevel + + + + + + + AgoraVideoCodecProfileType + + + + + + + AgoraVideoCodecType + + + + + + + AgoraVideoCodecTypeForStream + + + + + + + AgoraVideoContentHint + + + + + + + AgoraVideoDenoiserLevel + + + + + + + AgoraVideoDenoiserMode + + + + + + + AgoraVideoEffectAction + + + + + + + AgoraVideoEffectNodeId + + + + + + + AgoraVideoFramePosition + + + + + + + AgoraVideoFrameProcessMode + + + + + + + AgoraVideoFrameType + + + + + + + AgoraVideoMirrorMode + + + + + + + AgoraVideoModulePosition + + + + + + + AgoraVideoFrameOrientation + + + + + + + AgoraVideoFormat + + + + + + + AgoraVideoSourceType + + + + + + + AgoraVideoStreamType + + + + + + + AgoraVideoTranscoderError + + + + + + + AgoraVideoViewSetupMode + + + + + + + AgoraVoiceAITunerType + + + + + + + AgoraVoiceBeautifierPreset + + + + + + + AgoraVoiceConversionPreset + + + + + + + WatermarkType + + + + + + + WatermarkBufferFormat + + + + + + + AgoraVideoHwEncoderAccelerating diff --git a/dita/RTC-AIDOC/config/keys-rtc-ng-api-java.ditamap b/dita/RTC-AIDOC/config/keys-rtc-ng-api-java.ditamap index 5617d06afe3..468d07d3d8e 100644 --- a/dita/RTC-AIDOC/config/keys-rtc-ng-api-java.ditamap +++ b/dita/RTC-AIDOC/config/keys-rtc-ng-api-java.ditamap @@ -48,35 +48,6167 @@ + + + + AsyncCallback + + + + + + + Canvas + + + + + + + CanvasConfig + + + + + + + IAudioEncodedFrameObserver + + + + + + + IAudioFrameObserver + + + + + + + IAudioSpectrumObserver + + + + + + + IBaseSpatialAudioEngine + + + + + + + IDirectCdnStreamingEventHandler + + + + + + + ILocalSpatialAudioEngine + + + + + + + IMediaExtensionObserver + + + + + + + IMediaPlayer + + + + + + + IMediaPlayerAudioFrameObserver + + + + + + + IMediaPlayerCacheManager + + + + + + + IMediaPlayerCustomDataProvider + + + + + + + IMediaPlayerObserver + + + + + + + IMediaPlayerVideoFrameObserver + + + + + + + AgoraMediaRecorder + + + + + + + IMediaRecorderCallback + + + + + + + IMetadataObserver + + + + + + + IAgoraMusicContentCenter + + + + + + + IMusicContentCenterEventHandler + + + + + + + IAgoraMusicPlayer + + + + + + + RtcEngine + + + + + + + IRtcEngineEventHandler + + + + + + + RtcEngineEx + + + + + + + IRtcEngineReleaseCallback + + + + + + + IVideoEffectObject + + + + + + + IVideoEncodedFrameObserver + + + + + + + IVideoFrameObserver + + + + + + + Player + + + + + + + PlayerGetStatsCallback + + + + + + + PlayerObserver + + + + + + + Rte + + + - + + + + abrSubscriptionLayer + + + + + + + addView + + + + + + + audioBitsPerSample + + + + + + + audioChannels + + + + + + + audioSampleRate + + + + + + + Canvas + + + + + + + code + + + + + + + currentUrl + + + + + + + destroy + + + + + + + duration + + + + + + + getAbrFallbackLayer + + + + + + + getAbrSubscriptionLayer + + + + + + + getAppId + + + + + + + getAutoPlay + + + + + + + getConfigs [3/3] + + + + + + + getConfigs [2/3] + + + + + + + getConfigs [1/3] + + + + + + + getFromBridge + + + + + + + getInfo + + + + + + + getJsonParameter + + + + + + + getLoopCount + + + + + + + getVideoMirrorMode + + + + + + + getPlaybackSpeed + + + + + + + getPlayoutVolume + + + + + + + getPosition + + + + + + + getVideoRenderMode + + + + + + + getStats + + + + + + + hasAudio + + + + + + + hasVideo + + + + + + + initMediaEngine + + + + + + + isAudioMuted + + + + + + + isVideoMuted + + + + + + + message + + + + + + + muteAudio + + + + + + + muteVideo + + + + + + + openWithUrl + + + + + + + pause + + + + + + + play + + + + + + + Player + + + + + + + preloadWithUrl + + + + + + + registerObserver + + + + + + + removeView + + + + + + + Rte + + + + + + + seek + + + + + + + setAbrFallbackLayer + + + + + + + setAbrSubscriptionLayer + + + + + + + setAppId + + + + + + + setAutoPlay + + + + + + + setCanvas + + + + + + + setConfigs [3/3] + + + + + + + setConfigs [2/3] + + + + + + + setConfigs [1/3] + + + + + + + setJsonParameter + + + + + + + setLoopCount + + + + + + + setVideoMirrorMode + + + + + + + setPlaybackSpeed + + + + + + + setPlayoutVolume + + + + + + + setVideoRenderMode + + + + + + + state + + + + + + + stop + + + + + + + streamCount + + + + + + + switchWithUrl + + + + + + + unregisterObserver + + + + + + + videoHeight + + + + + + + videoWidth + + + + + + + addBackgroundImage + + + + + + + addExtension + + + + + + + addHandler + + + + + + + addOrUpdateVideoEffect + + + + + + + addUser + + + + + + + addVideoWatermark [1/3] + + + + + + + addVideoWatermark [2/3] + + + + + + + addVideoWatermark [3/3] + + + + + + + addVideoWatermarkEx [1/2] + + + + + + + addVideoWatermarkEx [2/2] + + + + + + + addWatermark + + + + + + + adjustAudioMixingPlayoutVolume + + + + + + + adjustAudioMixingPublishVolume + + + + + + + adjustAudioMixingVolume + + + + + + + adjustCustomAudioPlayoutVolume + + + + + + + adjustCustomAudioPublishVolume + + + + + + + adjustPlaybackSignalVolume + + + + + + + adjustPlayoutVolume + + + + + + + adjustPublishSignalVolume + + + + + + + adjustRecordingSignalVolume + + + + + + + adjustUserPlaybackSignalVolume + + + + + + + adjustUserPlaybackSignalVolumeEx + + + + + + + clearRemotePositions + + + + + + + clearVideoWatermarkEx + + + + + + + clearVideoWatermarks + + + + + + + complain + + + + + + + configRhythmPlayer + + + + + + + create [1/2] + + + + + + + createCustomAudioTrack + + + + + + + createCustomVideoTrack + + + + + + + createDataStream [1/2] + + + + + + + createDataStream [2/2] + + + + + + + createDataStreamEx [1/2] + + + + + + + createDataStreamEx [2/2] + + + + + + + createMediaPlayer + + + + + + + createMediaRecorder + + + + + + + createMusicPlayer + + + + + + + createVideoEffectObject + + + + + + + create + + + + + + + destroy [2/2] + + + + + + + destroyCustomAudioTrack + + + + + + + destroyCustomVideoTrack + + + + + + + destroyMediaRecorder + + + + + + + destroyMusicPlayer + + + + + + + destroyVideoEffectObject + + + + + + + destroy + + + + + + + destroy + + + + + + + destroy + + + + + + + disableAudio + + + + + + + disableAudioSpectrumMonitor + + + + + + + disableVideo + + + + + + + enableAudio + + + + + + + enableAudioSpectrumMonitor + + + + + + + enableAudioVolumeIndication + + + + + + + enableAudioVolumeIndicationEx + + + + + + + enableAutoRemoveCache + + + + + + + enableContentInspect + + + + + + + enableContentInspectEx + + + + + + + enableCustomAudioLocalPlayback + + + + + + + enableDualStreamMode [1/2] + + + + + + + enableDualStreamMode [2/2] + + + + + + + enableDualStreamModeEx + + + + + + + enableEncryption + + + + + + + enableEncryptionEx + + + + + + + enableExtension + + + + + + + enableFaceDetection + + + + + + + enableInEarMonitoring [1/2] + + + + + + + enableInEarMonitoring [2/2] + + + + + + + enableInstantMediaRendering + + + + + + + enableLocalAudio + + + + + + + enableLocalVideo + + + + + + + enableSoundPositionIndication + + + + + + + enableSpatialAudio + + + + + + + enableVideo + + + + + + + enableVideoImageSource + + + + + + + enableVirtualBackground [1/2] + + + + + + + enableVirtualBackground [2/2] + + + + + + + enableVoiceAITuner + + + + + + + enableWebSdkInteroperability + + + + + + + errorCode + + + + + + + getAdvancedFeatures + + + + + + + getAudioDeviceInfo + + + + + + + getAudioEffectManager + + + + + + + getAudioMixingCurrentPosition + + + + + + + getAudioMixingDuration + + + + + + + getAudioMixingPlayoutVolume + + + + + + + getAudioMixingPublishVolume + + + + + + + getAudioTrackCount + + + + + + + getBackgroundColor + + + + + + + getBackgroundImageList + + + + + + + getBlue + + + + + + + getBuffer + + + + + + + getCacheDir + + + + + + + getCacheFileCount + + + + + + + getCaches + + + + + + + getCallId + + + + + + + getCallIdEx + + + + + + + getCameraMaxZoomFactor + + + + + + + getConnectionState + + + + + + + getConnectionStateEx + + + + + + + getCurrentMonotonicTimeInMs + + + + + + + getDuration + + + + + + + getEarMonitoringAudioParams + + + + + + + getEffectCurrentPosition + + + + + + + getEffectDuration + + + + + + + getEffectsVolume + + + + + + + getErrorDescription + + + + + + + getExtensionProperty [1/2] + + + + + + + getExtensionProperty [2/2] + + + + + + + getFaceShapeAreaOptions [1/2] + + + + + + + getFaceShapeAreaOptions [2/2] + + + + + + + getFaceShapeBeautyOptions [1/2] + + + + + + + getFaceShapeBeautyOptions [2/2] + + + + + + + getFormat + + + + + + + getGreen + + + + + + + getHeight + + + + + + + getId + + + + + + + getImageUrl + + + + + + + getInternalSongCode + + + + + + + getLyric + + + + + + + getMaxCacheFileCount + + + + + + + getMaxCacheFileSize + + + + + + + getMaxMetadataSize + + + + + + + getMediaPlayerCacheManager + + + + + + + getMediaPlayerId + + + + + + + getMirrorApplied + + + + + + + getMixedAudioParams + + + + + + + getMusicCharts + + + + + + + getMusicCollectionByMusicChartId [1/2] + + + + + + + getMusicCollectionByMusicChartId [2/2] + + + + + + + getMute + + + + + + + getNativeHandle + + + + + + + getNetworkType + + + + + + + getNtpWallTimeInMs + + + + + + + getObservedAudioFramePosition + + + + + + + getObservedFramePosition + + + + + + + getOptions + + + + + + + getPlayPosition + + + + + + + getPlaySrc [2/2] + + + + + + + getPlaySrc [1/2] + + + + + + + getPlaybackAudioParams + + + + + + + getPlayoutVolume + + + + + + + getPositionInLandscapeMode + + + + + + + getPositionInPortraitMode + + + + + + + getPublishSignalVolume + + + + + + + getRecordAudioParams + + + + + + + getRed + + + + + + + getRotationApplied + + + + + + + getSongSimpleInfo + + + + + + + getState + + + + + + + getStreamCount + + + + + + + getStreamInfo + + + + + + + getType + + + + + + + getUserCount + + + + + + + getUserInfoByUid + + + + + + + getUserInfoByUidEx + + + + + + + getUserInfoByUserAccount + + + + + + + getUserInfoByUserAccountEx + + + + + + + getUsers + + + + + + + getSdkVersion + + + + + + + getVideoEffectBoolParam + + + + + + + getVideoEffectFloatParam + + + + + + + getVideoEffectIntParam + + + + + + + getVideoFormatPreference + + + + + + + getVideoFrameProcessMode + + + + + + + getVolumeOfEffect + + + + + + + getWatermarkList + + + + + + + getWidth + + + + + + + getzOrder + + + + + + + create [2/2] + + + + + + + initialize + + + + + + + initialize + + + + + + + isCameraAutoFocusFaceModeSupported + + + + + + + isCameraExposurePositionSupported + + + + + + + isCameraExposureSupported + + + + + + + isCameraFaceDetectSupported + + + + + + + isCameraFocusSupported + + + + + + + isCameraTorchSupported + + + + + + + isCameraZoomSupported + + + + + + + isFeatureAvailableOnDevice + + + + + + + isPreloaded + + + + + + + isSpeakerphoneEnabled + + + + + + + isTextureEncodeSupported + + + + + + + isVisibleInPreview + + + + + + + joinChannel [1/2] + + + + + + + joinChannel [2/2] + + + + + + + joinChannelEx + + + + + + + joinChannelWithUserAccount [1/2] + + + + + + + joinChannelWithUserAccount [2/2] + + + + + + + joinChannelWithUserAccountEx + + + + + + + leaveChannel [1/2] + + + + + + + leaveChannel [2/2] + + + + + + + leaveChannelEx [1/2] + + + + + + + leaveChannelEx [2/2] + + + + + + + mute + + + + + + + muteAllRemoteAudioStreams + + + + + + + muteAllRemoteAudioStreamsEx + + + + + + + muteAllRemoteAudioStreams + + + + + + + muteAllRemoteVideoStreams + + + + + + + muteAllRemoteVideoStreamsEx + + + + + + + muteLocalAudioStream + + + + + + + muteLocalAudioStreamEx + + + + + + + muteLocalAudioStream + + + + + + + muteLocalVideoStream + + + + + + + muteLocalVideoStreamEx + + + + + + + muteRecordingSignal + + + + + + + muteRemoteAudioStream + + + + + + + muteRemoteAudioStreamEx + + + + + + + muteRemoteAudioStream + + + + + + + muteRemoteVideoStream + + + + + + + muteRemoteVideoStreamEx + + + + + + + open [1/2] + + + + + + + open [2/2] + + + + + + + open [2/2] + + + + + + + openWithMediaSource + + + + + + + open [1/2] + + + + + + + pause + + + + + + + pauseAllChannelMediaRelay + + + + + + + pauseAllChannelMediaRelayEx + + + + + + + pauseAllEffects + + + + + + + pauseAudioMixing + + + + + + + pauseEffect + + + + + + + performVideoEffectAction + + + + + + + play + + + + + + + playAllEffects + + + + + + + playEffect [1/2] + + + + + + + playEffect [2/2] + + + + + + + playEffectEx [1/2] + + + + + + + playEffectEx [2/2] + + + + + + + playPreloadedSrc + + + + + + + preload [1/2] + + + + + + + preload [2/2] + + + + + + + preloadChannel + + + + + + + preloadChannelWithUserAccount + + + + + + + preloadEffect [1/2] + + + + + + + preloadEffect [2/2] + + + + + + + preloadEffectEx [1/2] + + + + + + + preloadEffectEx [2/2] + + + + + + + preloadSrc + + + + + + + pullPlaybackAudioFrame [1/2] + + + + + + + pullPlaybackAudioFrame [2/2] + + + + + + + pushExternalAudioFrame + + + + + + + pushExternalVideoFrameById [1/2] + + + + + + + pushExternalVideoFrame [1/2] + + + + + + + pushExternalVideoFrameById [2/2] + + + + + + + pushExternalVideoFrame [2/2] + + + + + + + queryCameraFocalLengthCapability + + + + + + + queryCodecCapability + + + + + + + queryDeviceScore + + + + + + + queryScreenCaptureCapability + + + + + + + rate + + + + + + + registerAudioEncodedFrameObserver + + + + + + + registerAudioFrameObserver + + + + + + + registerAudioFrameObserver + + + + + + + registerAudioSpectrumObserver + + + + + + + registerEventHandler + + + + + + + registerExtension + + + + + + + registerLocalUserAccount + + + + + + + registerMediaMetadataObserver + + + + + + + registerPlayerObserver + + + + + + + registerVideoEncodedFrameObserver + + + + + + + registerVideoFrameObserver + + + + + + + registerVideoFrameObserver + + + + + + + destroy [1/2] + + + + + + + destroy + + + + + + + removeAllCaches + + + + + + + removeBackgroundImage + + + + + + + removeCache + + + + + + + removeCacheByUri + + + + + + + removeDestChannelInfo + + + + + + + removeHandler + + + + + + + removeOldCache + + + + + + + removeRemotePosition + + + + + + + removeUser + + + + + + + removeVideoEffect + + + + + + + removeVideoWatermark + + + + + + + removeVideoWatermarkEx + + + + + + + removeWatermark + + + + + + + renewToken + + + + + + + renewToken + + + + + + + resume + + + + + + + resumeAllChannelMediaRelay + + + + + + + resumeAllChannelMediaRelayEx + + + + + + + resumeAllEffects + + + + + + + resumeAudioMixing + + + + + + + resumeEffect + + + + + + + searchMusic [1/2] + + + + + + + searchMusic [2/2] + + + + + + + seek + + + + + + + selectAudioTrack + + + + + + + selectAudioTrack + + + + + + + selectMultiAudioTrack + + + + + + + sendCustomReportMessage + + + + + + + sendCustomReportMessageEx + + + + + + + sendStreamMessage + + + + + + + sendStreamMessageEx + + + + + + + setAINSMode + + + + + + + setAVSyncSource + + + + + + + setAdvancedAudioOptions + + + + + + + setAdvancedFeatures + + + + + + + setAudioDualMonoMode + + + + + + + setAudioEffectParameters + + + + + + + setAudioEffectPreset + + + + + + + setAudioMixingDualMonoMode + + + + + + + setAudioMixingPitch + + + + + + + setAudioMixingPlaybackSpeed + + + + + + + setAudioMixingPosition + + + + + + + setAudioPitch + + + + + + + setAudioProfile [1/2] + + + + + + + setAudioProfile [2/2] + + + + + + + setAudioRecvRange + + + + + + + setAudioScenario + + + + + + + setBackgroundColor [1/2] + + + + + + + setBackgroundColor [2/2] + + + + + + + setBeautyEffectOptions [1/2] + + + + + + + setBeautyEffectOptions [2/2] + + + + + + + setBlue + + + + + + + setCacheDir + + + + + + + setCameraAutoFocusFaceModeEnabled + + + + + + + setCameraCapturerConfiguration + + + + + + + setCameraExposureFactor + + + + + + + setCameraExposurePosition + + + + + + + setCameraFocusPositionInPreview + + + + + + + setCameraTorchOn + + + + + + + setCameraZoomFactor + + + + + + + setChannelProfile + + + + + + + setClientRole [1/2] + + + + + + + setClientRole [2/2] + + + + + + + setCloudProxy + + + + + + + setColorEnhanceOptions [1/2] + + + + + + + setColorEnhanceOptions [2/2] + + + + + + + setDefaultAudioRoutetoSpeakerphone + + + + + + + setDestChannelInfo + + + + + + + setDirectCdnStreamingAudioConfiguration + + + + + + + setDirectCdnStreamingVideoConfiguration + + + + + + + setDistanceUnit + + + + + + + setDualStreamMode [1/2] + + + + + + + setDualStreamMode [2/2] + + + + + + + setDualStreamModeEx + + + + + + + setEarMonitoringAudioFrameParameters + + + + + + + setEffectPosition + + + + + + + setEffectsVolume + + + + + + + setEnableSpeakerphone + + + + + + + setExtensionProperty + + + + + + + setExtensionProviderProperty + + + + + + + setExternalAudioSink + + + + + + + setExternalAudioSource [1/2] + + + + + + + setExternalAudioSource [2/2] + + + + + + + setExternalMediaProjection + + + + + + + setExternalRemoteEglContext + + + + + + + setExternalVideoSource + + + + + + + setFaceShapeAreaOptions [1/2] + + + + + + + setFaceShapeAreaOptions [2/2] + + + + + + + setFaceShapeBeautyOptions [1/2] + + + + + + + setFaceShapeBeautyOptions [2/2] + + + + + + + setFilterEffectOptions [1/2] + + + + + + + setFilterEffectOptions [2/2] + + + + + + + setGreen + + + + + + + setHeadphoneEQParameters + + + + + + + setHeadphoneEQPreset + + + + + + + setInEarMonitoringVolume + + + + + + + setLocalAccessPoint + + + + + + + setLocalRenderMode [1/2] + + + + + + + setLocalRenderMode [2/2] + + + + + + + setLocalRenderTargetFps + + + + + + + setLocalVideoMirrorMode + + + + + + + setLocalVoiceEqualization + + + + + + + setLocalVoiceFormant + + + + + + + setLocalVoicePitch + + + + + + + setLocalVoiceReverb + + + + + + + setLogFile + + + + + + + setLogFileSize + + + + + + + setLogFilter + + + + + + + setLogLevel + + + + + + + setLoopCount + + + + + + + setLowlightEnhanceOptions [1/2] + + + + + + + setLowlightEnhanceOptions [2/2] + + + + + + + setMaxAudioRecvCount + + + + + + + setMaxCacheFileCount + + + + + + + setMaxCacheFileSize + + + + + + + setMediaRecorderObserver + + + + + + + setMixedAudioFrameParameters + + + + + + + setParameters + + + + + + + setPlayMode + + + + + + + setPlaybackAudioFrameBeforeMixingParameters [1/2] + + + + + + + setPlaybackAudioFrameBeforeMixingParameters [2/2] + + + + + + + setPlaybackAudioFrameParameters + + + + + + + setPlaybackSpeed + + + + + + + setPlayerAttenuation + + + + + + + setPlayerOption + + + + + + + setPlayerOptionString + + + + + + + setRecordingAudioFrameParameters + + + + + + + setRed + + + + + + + setRemoteAudioAttenuation + + + + + + + setRemoteDefaultVideoStreamType [1/2] + + + + + + + setRemoteDefaultVideoStreamType [2/2] + + + + + + + setRemoteRenderMode + + + + + + + setRemoteRenderModeEx + + + + + + + setRemoteRenderTargetFps + + + + + + + setRemoteSubscribeFallbackOption [1/2] + + + + + + + setRemoteSubscribeFallbackOption [2/2] + + + + + + + setRemoteUserSpatialAudioParams + + + + + + + setRemoteVideoStreamType [1/2] + + + + + + + setRemoteVideoStreamType [2/2] + + + + + + + setRemoteVideoStreamTypeEx [1/2] + + + + + + + setRemoteVideoStreamTypeEx [2/2] + + + + + + + setRemoteVideoSubscriptionOptions + + + + + + + setRemoteVideoSubscriptionOptionsEx + + + + + + + setRemoteVoicePosition + + + + + + + setRemoteVoicePositionEx + + + + + + + setVideoRenderMode + + + + + + + setRouteInCommunicationMode + + + + + + + setScreenCaptureScenario + + + + + + + setSpatialAudioParams + + + + + + + setSrcChannelInfo + + + + + + + setSubscribeAudioAllowlist + + + + + + + setSubscribeAudioAllowlistEx + + + + + + + setSubscribeAudioBlocklist + + + + + + + setSubscribeAudioBlocklistEx + + + + + + + setSubscribeVideoAllowlist + + + + + + + setSubscribeVideoAllowlistEx + + + + + + + setSubscribeVideoBlocklist + + + + + + + setSubscribeVideoBlocklistEx + + + + + + + setUsers [1/2] + + + + + + + setUsers [2/2] + + + + + + + setVideoDenoiserOptions [1/2] + + + + + + + setVideoDenoiserOptions [2/2] + + + + + + + setVideoEffectBoolParam + + + + + + + setVideoEffectFloatParam + + + + + + + setVideoEffectIntParam + + + + + + + setVideoEncoderConfiguration + + + + + + + setVideoEncoderConfigurationEx + + + + + + + setVideoScenario + + + + + + + setView + + + + + + + setVoiceBeautifierParameters + + + + + + + setVoiceBeautifierPreset + + + + + + + setVoiceConversionPreset + + + + + + + setVolumeOfEffect + + + + + + + setZones + + + + + + + setupLocalVideo + + + + + + + setupRemoteVideo + + + + + + + setupRemoteVideoEx + + + + + + + startAudioMixing [1/2] + + + + + + + startAudioMixing [2/2] + + + + + + + startAudioRecording [1/2] + + + + + + + startAudioRecording [2/2] + + + + + + + startCameraCapture + + + + + + + startDirectCdnStreaming + + + + + + + startEchoTest + + + + + + + startLastmileProbeTest + + + + + + + startLocalAudioMixer + + + + + + + startLocalVideoTranscoder + + + + + + + startMediaRenderingTracing + + + + + + + startMediaRenderingTracingEx + + + + + + + startOrUpdateChannelMediaRelay + + + + + + + startOrUpdateChannelMediaRelayEx + + + + + + + startPlaybackDeviceTest + + + + + + + startPreview [1/2] + + + + + + + startPreview [2/2] + + + + + + + startRecording + + + + + + + startRecordingDeviceTest + + + + + + + startRhythmPlayer + + + + + + + startRtmpStreamWithTranscoding + + + + + + + startRtmpStreamWithTranscodingEx + + + + + + + startRtmpStreamWithoutTranscoding + + + + + + + startRtmpStreamWithoutTranscodingEx + + + + + + + startScreenCapture + + + + + + + stop [1/2] + + + + + + + stopAllEffects + + + + + + + stopAudioMixing + + + + + + + stopAudioRecording + + + + + + + stopCameraCapture + + + + + + + stopChannelMediaRelay + + + + + + + stopChannelMediaRelayEx + + + + + + + stopDirectCdnStreaming + + + + + + + stopEchoTest + + + + + + + stopEffect + + + + + + + stopLastmileProbeTest + + + + + + + stopLocalAudioMixer + + + + + + + stopLocalVideoTranscoder + + + + + + + stopPlaybackDeviceTest + + + + + + + stopPreview [1/2] + + + + + + + stopPreview [2/2] + + + + + + + stopRecording + + + + + + + stopRecordingDeviceTest + + + + + + + stopRhythmPlayer + + + + + + + stopRtmpStream + + + + + + + stopRtmpStreamEx + + + + + + + stopScreenCapture + + + + + + + stop [2/2] + + + + + + + switchCamera [1/2] + + + + + + + switchCamera [2/2] + + + + + + + switchSrc + + + + + + + takeSnapshot [1/2] + + + + + + + takeSnapshot [2/2] + + + + + + + takeSnapshotEx [1/2] + + + + + + + takeSnapshotEx [2/2] + + + + + + + unloadEffect + + + + + + + unloadSrc + + + + + + + unRegisterAudioSpectrumObserver + + + + + + + unregisterEventHandler + + + + + + + unregisterMediaMetadataObserver + + + + + + + unRegisterPlayerObserver + + + + + + + updateChannelMediaOptions + + + + + + + updateChannelMediaOptionsEx + + + + + + + updateLocalAudioMixerConfiguration + + + + + + + updateLocalTranscoderConfiguration + + + + + + + updatePlayerPositionInfo + + + + + + + updatePreloadChannelToken + + + + + + + updateRemotePosition + + + + + + + updateRtmpTranscoding + + + + + + + updateRtmpTranscodingEx + + + + + + + updateScreenCaptureParameters + + + + + + + updateSelfPosition + + + + + + + + + onActiveSpeaker + + + + + + + onAudioEffectFinished + + + + + + + onAudioMixingFinished + + + + + + + onAudioMixingPositionChanged + + + + + + + onAudioMixingStateChanged + + + + + + + onAudioPublishStateChanged + + + + + + + onAudioQuality + + + + + + + onAudioRouteChanged + + + + + + + onAudioSubscribeStateChanged + + + + + + + onAudioVolumeIndication + + + + + + + onAudioVolumeIndication + + + + + + + onAudioVolumeIndication + + + + + + + onCameraExposureAreaChanged + + + + + + + onCameraFocusAreaChanged + + + + + + + onCameraReady + + + + + + + onCaptureVideoFrame + + + + + + + onChannelMediaRelayStateChanged + + + + + + + onClientRoleChangeFailed + + + + + + + onClientRoleChanged + + + + + + + onConnectionBanned + + + + + + + onConnectionInterrupted + + + + + + + onConnectionLost + + + + + + + onConnectionStateChanged + + + + + + + onDirectCdnStreamingStateChanged + + + + + + + onDirectCdnStreamingStats + + + + + + + onEarMonitoringAudioFrame + + + + + + + onEncodedVideoFrameReceived + + + + + + + onEncryptionError + + + + + + + onEngineReleased + + + + + + + onError + + + + + + + onEvent + + + + + + + onErrorWithContext + + + + + + + onEventWithContext + + + + + + + onStartedWithContext + + + + + + + onStoppedWithContext + + + + + + + onFacePositionChanged + + + + + + + onFirstLocalAudioFramePublished + + + + + + + onFirstLocalVideoFrame + + + + + + + onFirstLocalVideoFramePublished + + + + + + + onFirstRemoteAudioDecoded + + + + + + + onFirstRemoteAudioFrame + + + + + + + onFirstRemoteVideoDecoded + + + + + + + onFirstRemoteVideoFrame + + + + + + + onFrame + + + + + + + onFrame + + + + + + + onJoinChannelSuccess + + + + + + + onLastmileProbeResult + + + + + + + onLastmileQuality + + + + + + + onLeaveChannel + + + + + + + onLocalAudioSpectrum + + + + + + + onLocalAudioStateChanged + + + + + + + onLocalAudioStats + + + + + + + onLocalUserRegistered + + + + + + + onLocalVideoStateChanged + + + + + + + onLocalVideoStats + + + + + + + onLocalVideoTranscoderError + + + + + + + onLyricResult + + + + + + + onMetaData + + + + + + + onMetadataReceived + + + + + + + onMetadata [2/2] + + + + + + + onMixedAudioEncodedFrame + + + + + + + onMixedAudioFrame + + + + + + + onMultipathStats + + + + + + + onMusicChartsResult + + + + + + + onMusicCollectionResult + + + + + + + onNetworkQuality + + + + + + + onNetworkTypeChanged + + + + + + + onPermissionError + + + + + + + onPlayBufferUpdated + + + + + + + onPlaybackAudioEncodedFrame + + + + + + + onPlaybackAudioFrame + + + + + + + onPlaybackAudioFrameBeforeMixing + + + + + + + onPlayerCacheStats + + + + + + + onPlayerEvent + + + + + + + onPlayerInfoUpdated + + + + + + + onPlayerInfoUpdated [2/2] + + + + + + + onPlayerPlaybackStats + + + + + + + onPlayerStateChanged + + + + + + + onPlayerSrcInfoChanged + + + + + + + onPositionChanged + + + + + + + onPositionChanged + + + + + + + onPreEncodeVideoFrame + + + + + + + onPreLoadEvent + + + + + + + onPreloadEvent + + + + + + + onProxyConnected + + + + + + + onReadData + + + + + + + onReadyToSendMetadata + + + + + + + onRecordAudioEncodedFrame + + + + + + + onRecordAudioFrame + + + + + + + onRecorderInfoUpdated + + + + + + + onRecorderStateChanged + + + + + + + onRejoinChannelSuccess + + + + + + + onRemoteAudioSpectrum + + + + + + + onRemoteAudioStateChanged + + + + + + + onRemoteAudioStats + + + + + + + onRemoteAudioTransportStats + + + + + + + onRemoteSubscribeFallbackToAudioOnly + + + + + + + onRemoteVideoStateChanged + + + + + + + onRemoteVideoStats + + + + + + + onRemoteVideoTransportStats + + + + + + + onRenderVideoFrame + + + + + + + onRenewTokenResult + + + + + + + onRequestToken + + + + + + + onResolutionChanged + + + + + + + onResult + + + + + + + onResult + + + + + + + onRhythmPlayerStateChanged + + + + + + + onRtcStats + + + + + + + onRtmpStreamingEvent + + + + + + + onRtmpStreamingStateChanged + + + + + + + onSeek + + + + + + + onSnapshotTaken + + + + + + + onSongSimpleInfoResult + + + + + + + onStateChanged + + + + + + + onStreamMessage + + + + + + + onStreamMessageError + + + + + + + onTokenPrivilegeWillExpire + + + + + + + onTranscodedStreamLayoutInfo + + + + + + + onTranscodingUpdated + + + + + + + onUplinkNetworkInfoUpdated + + + + + + + onUserEnableLocalVideo + + + + + + + onUserEnableVideo + + + + + + + onUserInfoUpdated + + + + + + + onUserJoined + + + + + + + onUserMuteAudio + + + + + + + onUserMuteVideo + + + + + + + onUserOffline + + + + + + + onVideoPublishStateChanged + + + + + + + onVideoRenderingTracingResult + + + + + + + onVideoSizeChanged + + + + + + + onVideoStopped + + + + + + + onVideoSubscribeStateChanged + + + + + + + + + AdvanceOptions + + + + + + + AdvancedAudioOptions + + + + + + + AdvancedConfigInfo + + + + + + + AgoraFacePositionInfo + + + + + + + AgoraRhythmPlayerConfig + + + + + + + AreaCode + + + + + + + AudioEncodedFrameObserverConfig + + + + + + + AudioFrame + + + + + + + AudioParams + + + + + + + AudioRecordingConfiguration + + + + + + + AudioSpectrumInfo + + + + + + + AudioTrackConfig + + + + + + + AudioVolumeInfo + + + + + + + BeautyOptions + + + + + + + CacheStatistics + + + + + + + CameraCapturerConfiguration + + + + + + + ChannelMediaInfo + + + + + + + ChannelMediaOptions + + + + + + + ChannelMediaRelayConfiguration + + + + + + + ClientRoleOptions + + + + + + + ClimaxSegment + + + + + + + CodecCapInfo + + + + + + + CodecCapLevels + + + + + + + ColorEnhanceOptions + + + + + + + Config + + + + + + + ContentInspectConfig + + + + + + + ContentInspectModule + + + + + + + DataStreamConfig + + + + + + + DeviceInfo + + + + + + + DirectCdnStreamingMediaOptions + + + + + + + DirectCdnStreamingStats + + + + + + + EchoTestConfiguration + + + + + + + EncodedVideoFrameInfo + + + + + + + EncryptionConfig + + + + + + + Error + + + + + + + ExtensionContext + + + + + + + AgoraVideoFrame + + + + + + + FaceShapeAreaOptions + + + + + + + FaceShapeBeautyOptions + + + + + + + FilterEffectOptions + + + + + + + AgoraFocalLengthInfo + + + + + + + ImageTrackOptions + + + + + + + LastmileProbeConfig + + + + + + + LastmileProbeOneWayResult + + + + + + + LastmileProbeResult + + + + + + + LeaveChannelOptions + + + + + + + LiveTranscoding + + + + + + + LocalAccessPointConfiguration + + + + + + + LocalAudioMixerConfiguration + + + + + + + LocalAudioStats + + + + + + + LocalSpatialAudioConfig + + + + + + + LocalTranscoderConfiguration + + + + + + + LocalVideoStats + + + + + + + LogConfig + + + + + + + LogUploadServerInfo + + + + + + + LowLightEnhanceOptions + + + + + + + MediaRecorderConfiguration + + + + + + + MediaPlayerSource + + + + + + + AgoraMetadata + + + + + + + MixedAudioStream + + + + + + + MultipathStats + + + + + + + Music + + + + + + + MusicCacheInfo + + + + + + + MusicCacheStatusType + + + + + + + MusicChartInfo + + + + + + + MusicContentCenterConfiguration + + + + + + + MusicContentCenterStateReason + + + + + + + PathStats + + + + + + + PlayerConfig + + + + + + + PlayerPlaybackStats + + + + + + + MediaStreamInfo + + + + + + + PlayerUpdatedInfo + + + + + + + PreloadState + + + + + + + RecorderInfo + + + + + + + RecorderStreamInfo + + + + + + + Rectangle + + + + + + + RemoteAudioStats + + + + + + + RemoteVideoStats + + + + + + + RemoteVoicePositionInfo + + + + + + + RtcConnection + + + + + + + RtcEngineConfig + + + + + + + AgoraImage + + + + + + + RtcStats + + + + + + + RteException + + + + + + + PlayerInfo + + + + + + + PlayerStats + + + + + + + AudioCaptureParameters + + + + + + + ScreenCaptureParameters + + + + + + + VideoCaptureParameters + + + + + + + SegmentationProperty + + + + + + + SimulcastStreamConfig + + + + + + + SnapshotConfig + + + + + + + SpatialAudioParams + + + + + + + SpatialAudioZone + + + + + + + SrcInfo + + + + + + + TranscodingUser + + + + + + + TranscodingVideoStream + + + + + + + UplinkNetworkInfo + + + + + + + UserAudioSpectrumInfo + + + + + + + UserInfo + + + + + + + VideoCanvas + + + + + + + VideoDenoiserOptions + + + + + + + VideoDimensions + + + + + + + VideoEncoderConfiguration + + + + + + + CaptureFormat + + + + + + + VideoLayout + + + + + + + VideoLayoutInfo + + + + + + + VideoRenderingTracingInfo + + + + + + + VideoSubscriptionOptions + + + + + + + VirtualBackgroundSource + + + + + + + WatermarkBuffer + + + + + + + WatermarkConfig + + + + + + + WatermarkOptions + + + + + + + + + AudioCodecProfileType + + + + - adjustPlayoutVolume + AudioDualMonoMode - - - + - onPlayerPlaybackStats + AUDIO_EQUALIZATION_BAND_FREQUENCY - - - + - PlayerPlaybackStats + AudioMixingDualMonoMode + + + + + + + AudioProcessingChannelsEnum + + + + + + + AudioProfile + + + + + + + AUDIO_REVERB_TYPE + + + + + + + AudioSampleRateType + + + + + + + AudioSourceType + + + + + + + AudioTrackType + + + + + + + CAMERA_DIRECTION + + + + + + + CAMERA_FOCAL_LENGTH_TYPE + + + + + + + COMPRESSION_PREFERENCE + + + + + + + DEGRADATION_PREFERENCE + + + + + + + DirectCdnStreamingReason + + + + + + + DirectCdnStreamingState + + + + + + + ENCODING_PREFERENCE + + + + + + + EncryptionMode + + + + + + + ExternalVideoSourceType + + + + + + + FRAME_RATE + + + + + + + LogLevel + + + + + + + MediaPlayerEvent - - @@ -84,6 +6216,223 @@ + + + + MediaPlayerReason + + + + + + + MediaPlayerState + + + + + + + MediaSourceType + + + + + + + MediaStreamType + + + + + + + MEDIA_TRACE_EVENT + + + + + + + MultipathMode + + + + + + + MultipathType + + + + + + + MusicPlayMode + + + + + + + ORIENTATION_MODE + + + + + + + MediaPlayerPreloadEvent + + + + + + + RenewTokenErrorCode + + + + + + + AbrFallbackLayer + + + + + + + AbrSubscriptionLayer + + + + + + + ErrorCode + + + + + + + PlayerEvent + + + + + + + PlayerState + + + + + + + VideoMirrorMode + + + + + + + VideoRenderMode + + + + + + + ScreenScenarioType + + + + + + + SimulcastStreamMode + + + + + + + StreamFallbackOptions + + + + + + + VideoScenario + + + + + + + VideoCodecProfileType + + + + + + + VIDEO_CODEC_TYPE + + + + + + + VideoCodecType + + + + + + + VIDEO_EFFECT_ACTION + + + + + + + VIDEO_EFFECT_NODE_ID + + + + + + + VideoModulePosition + + + + + + + VideoSourceType + + + + + + + VideoStreamType + + + + + + + VOICE_AI_TUNER_TYPE + + + diff --git a/dita/RTC-AIDOC/config/keys-rtc-ng-api-macos.ditamap b/dita/RTC-AIDOC/config/keys-rtc-ng-api-macos.ditamap index 1c92c3f4732..76a3c2fc0ff 100644 --- a/dita/RTC-AIDOC/config/keys-rtc-ng-api-macos.ditamap +++ b/dita/RTC-AIDOC/config/keys-rtc-ng-api-macos.ditamap @@ -48,39 +48,6241 @@ + + + + AgoraMediaFilterExtensionDelegate + + + + + + + AgoraMediaMetadataDataSource + + + + + + + AgoraRtcMediaPlayerVideoFrameDelegate + + + + + + + AgoraRteCanvas + + + + + + + AgoraRteCanvasConfig + + + + + + + AgoraAudioEncodedFrameDelegate + + + + + + + AgoraAudioFrameDelegate + + + + + + + AgoraRtcMediaPlayerAudioFrameDelegate + + + + + + + AgoraAudioSpectrumDelegate + + + + + + + AgoraSpatialAudioKitBase + + + + + + + AgoraDirectCdnStreamingEventDelegate + + + + + + + AgoraLocalSpatialAudioKit + + + + + + + AgoraMediaFilterEventDelegate + + + + + + + AgoraRtcMediaPlayerProtocol + + + + + + + AgoraRtcMediaPlayerCacheManagerProtocol + + + + + + + AgoraRtcMediaPlayerDelegate + + + + + + + AgoraMediaRecorder + + + + + + + AgoraMediaRecorderDelegate + + + + + + + AgoraMediaMetadataDelegate + + + + + + + AgoraRtcEngineKit + + + + + + + AgoraRtcEngineDelegate + + + + + + + AgoraRtcEngineKit(Ex) + + + + + + + AgoraVideoEffectObject + + + + + + + AgoraEncodedVideoFrameDelegate + + + + + + + AgoraVideoFrameDelegate + + + + + + + AgoraRtePlayer + + + + + + + AgoraRtePlayerObserver + + + + + + + AgoraRte + + + - + - adjustPlayoutVolume: + addView:config:error: - - - + - AgoraRtcMediaPlayer:playbackStats: + AgoraRtcMediaPlayerGetVideoPixelFormat - - - + - AgoraMediaPlayerPlaybackStats + initWithRte:initialConfig: - - - + - AgoraMediaPlayerMetaDataType + code + + + + + + + destroy: + + + + + + + abrFallbackLayer: + + + + + + + abrSubscriptionLayer: + + + + + + + appId: + + + + + + + autoPlay: + + + + + + + getConfigs:error: + + + + + + + getConfigs:error: + + + + + + + getConfigs:error: + + + + + + + getFromBridge: + + + + + + + getInfo:error: + + + + + + + jsonParameter: + + + + + + + loopCount: + + + + + + + videoMirrorMode: + + + + + + + playbackSpeed: + + + + + + + playoutVolume: + + + + + + + getPosition: + + + + + + + videoRenderMode: + + + + + + + getStats: + + + + + + + initMediaEngine:error: + + + + + + + message + + + + + + + muteAudio:error: + + + + + + + muteVideo:error: + + + + + + + openWithUrl:startTime:cb: + + + + + + + pause: + + + + + + + play: + + + + + + + initWithRte:initialConfig: + + + + + + + preloadWithUrl:error: + + + + + + + registerObserver:error: + + + + + + + removeView:config:error: + + + + + + + initWithInitialConfig: + + + + + + + seek:error: + + + + + + + setAbrFallbackLayer:error: + + + + + + + setAbrSubscriptionLayer:error: + + + + + + + setAppId:error: + + + + + + + setAutoPlay:error: + + + + + + + setCanvas:error: + + + + + + + setConfigs:error: + + + + + + + setConfigs:error: + + + + + + + setConfigs:error: + + + + + + + setJsonParameter:error: + + + + + + + setLoopCount:error: + + + + + + + setVideoMirrorMode:error: + + + + + + + setPlaybackSpeed:error: + + + + + + + setPlayoutVolume:error: + + + + + + + setVideoRenderMode:error: + + + + + + + stop: + + + + + + + switchWithUrl:syncPts:cb: + + + + + + + unregisterObserver:error: + + + + + + + addOrUpdateVideoEffectWithNodeId:templateName: + + + + + + + addUser: + + + + + + + addVideoWatermark: + + + + + + + addVideoWatermark:options: + + + + + + + addVideoWatermarkWithConfig: + + + + + + + addVideoWatermarkEx:options:connection: + + + + + + + addVideoWatermarkEx:connection: + + + + + + + adjustAudioMixingPlayoutVolume: + + + + + + + adjustAudioMixingPublishVolume: + + + + + + + adjustAudioMixingVolume: + + + + + + + adjustCustomAudioPlayoutVolume:volume: + + + + + + + adjustCustomAudioPublishVolume:volume: + + + + + + + adjustLoopbackSignalVolume: + + + + + + + adjustPlaybackSignalVolume: + + + + + + + adjustPlayoutVolume: + + + + + + + adjustPublishSignalVolume: + + + + + + + adjustRecordingSignalVolume: + + + + + + + adjustUserPlaybackSignalVolume:volume: + + + + + + + adjustUserPlaybackSignalVolumeEx:volume:connection: + + + + + + + clearRemotePositions: + + + + + + + clearVideoWatermarkEx: + + + + + + + clearVideoWatermarks + + + + + + + complain:description: + + + + + + + configRhythmPlayer: + + + + + + + sharedEngineWithAppId:delegate: + + + + + + + createCustomAudioTrack:config: + + + + + + + createCustomVideoTrack + + + + + + + createDataStream:reliable:ordered: + + + + + + + createDataStream:config: + + + + + + + createDataStreamEx:reliable:ordered:connection: + + + + + + + createDataStreamEx:config:connection: + + + + + + + createMediaPlayerWithDelegate: + + + + + + + createMediaRecorder: + + + + + + + createVideoEffectObjectWithBundlePath:sourceType: + + + + + + + defaultTranscoding + + + + + + + delegate + + + + + + + destroy: + + + + + + + destroyCustomAudioTrack: + + + + + + + destroyCustomVideoTrack: + + + + + + + destroyMediaPlayer: + + + + + + + destroyMediaRecorder: + + + + + + + destroyVideoEffectObject: + + + + + + + AgoraRtcMediaPlayer:didReceivePixelBuffer: + + + + + + + AgoraRtcMediaPlayer:didReceiveVideoFrame: + + + + + + + disableAudio + + + + + + + disableAudioSpectrumMonitor + + + + + + + disableVideo + + + + + + + enableAudio + + + + + + + enableAudioSpectrumMonitor: + + + + + + + enableAudioVolumeIndication:smooth:reportVad: + + + + + + + enableAudioVolumeIndicationEx:smooth:reportVad:connection: + + + + + + + enableAutoRemoveCache: + + + + + + + enableCameraCenterStage: + + + + + + + enableContentInspect:config: + + + + + + + enableContentInspectEx:config:connection: + + + + + + + enableCustomAudioLocalPlayback:enabled: + + + + + + + enableDualStreamMode: + + + + + + + enableDualStreamMode:streamConfig: + + + + + + + enableDualStreamModeEx:streamConfig:connection: + + + + + + + enableEncryption:encryptionConfig: + + + + + + + enableEncryptionEx:encryptionConfig:connection: + + + + + + + enableExtensionWithVendor:extension:enabled:sourceType: + + + + + + + enableInEarMonitoring: + + + + + + + enableInEarMonitoring:includeAudioFilters: + + + + + + + enableInstantMediaRendering + + + + + + + enableLocalAudio: + + + + + + + enableLocalVideo: + + + + + + + enableLoopbackRecording:deviceName: + + + + + + + enableLoopbackRecordingEx:deviceName:connection: + + + + + + + enableMainQueueDispatch: + + + + + + + enableMainQueueDispatch: + + + + + + + enableSoundPositionIndication: + + + + + + + enableSpatialAudio: + + + + + + + enableVideo + + + + + + + enableVideoImageSource:options: + + + + + + + enableVirtualBackground:backData:segData: + + + + + + + enableVirtualBackground:backData:segData:sourceType: + + + + + + + enableVoiceAITuner:type: + + + + + + + enableWebSdkInteroperability: + + + + + + + enumerateDevices: + + + + + + + followSystemPlaybackDevice: + + + + + + + followSystemRecordingDevice: + + + + + + + getAdvancedFeatures + + + + + + + getAudioMixingCurrentPosition + + + + + + + getAudioMixingDuration + + + + + + + getAudioMixingPlayoutVolume + + + + + + + getAudioMixingPublishVolume + + + + + + + getAudioTrackCount + + + + + + + cacheDir + + + + + + + cacheFileCount + + + + + + + getCallId + + + + + + + getCallIdEx: + + + + + + + getConnectionState + + + + + + + getConnectionStateEx: + + + + + + + getCurrentMonotonicTimeInMs + + + + + + + getDefaultAudioDevice: + + + + + + + getDeviceInfo: + + + + + + + getDeviceVolume: + + + + + + + getDuration + + + + + + + getEarMonitoringAudioParams + + + + + + + getEffectCurrentPosition: + + + + + + + getEffectDuration: + + + + + + + getEffectsVolume + + + + + + + getErrorDescription: + + + + + + + getExtensionPropertyWithVendor:extension:key: + + + + + + + getExtensionPropertyWithVendor:extension:key:sourceType: + + + + + + + getFaceShapeAreaOptions:sourceType: + + + + + + + getFaceShapeAreaOptions: + + + + + + + getFaceShapeBeautyOptions: + + + + + + + getFaceShapeBeautyOptions + + + + + + + maxCacheFileCount + + + + + + + maxCacheFileSize + + + + + + + createMediaPlayerCacheManager + + + + + + + getMediaPlayerId + + + + + + + getMirrorApplied + + + + + + + getMixedAudioParams + + + + + + + getMute + + + + + + + getNativeHandle + + + + + + + getNetworkType + + + + + + + getNtpWallTimeInMs + + + + + + + getObservedAudioFramePosition + + + + + + + getObservedFramePosition + + + + + + + getPosition + + + + + + + getPlaySrc + + + + + + + getPlaybackAudioParams + + + + + + + getPlayoutVolume + + + + + + + getPublishSignalVolume + + + + + + + getRecordAudioParams + + + + + + + getRotationApplied + + + + + + + getScreenCaptureSourcesWithThumbSize:iconSize:includeScreen: + + + + + + + getPlayerState + + + + + + + getStreamCount + + + + + + + getStreamByIndex: + + + + + + + getUserInfoByUid:withError: + + + + + + + getUserInfoByUidEx:connection:withError: + + + + + + + getUserInfoByUserAccount:withError: + + + + + + + getUserInfoByUserAccountEx:connection:withError: + + + + + + + getSdkVersion + + + + + + + getVideoEffectBoolParamWithOption:key: + + + + + + + getVideoEffectFloatParamWithOption:key: + + + + + + + getVideoEffectIntParamWithOption:key: + + + + + + + getVideoFormatPreference + + + + + + + getVideoFrameProcessMode + + + + + + + getVolumeOfEffect: + + + + + + + initWithSize:frameRate:bitrate:orientationMode:mirrorMode: + + + + + + + initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode: + + + + + + + sharedEngineWithConfig:delegate: + + + + + + + sharedLocalSpatialAudioWithConfig: + + + + + + + isCameraCenterStageSupported + + + + + + + isFeatureAvailableOnDevice: + + + + + + + joinChannelByToken:channelId:info:uid:joinSuccess: + + + + + + + joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: + + + + + + + joinChannelExByToken:connection:delegate:mediaOptions:joinSuccess: + + + + + + + joinChannelByToken:channelId:userAccount:joinSuccess: + + + + + + + joinChannelByToken:channelId:userAccount:mediaOptions:joinSuccess: + + + + + + + joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess: + + + + + + + leaveChannel: + + + + + + + leaveChannel:leaveChannelBlock: + + + + + + + leaveChannelEx:leaveChannelBlock: + + + + + + + leaveChannelEx:options:leaveChannelBlock: + + + + + + + metadataMaxSize + + + + + + + monitorDeviceChange: + + + + + + + mute: + + + + + + + muteAllRemoteAudioStreams: + + + + + + + muteAllRemoteAudioStreamsEx:connection: + + + + + + + muteAllRemoteAudioStreams: + + + + + + + muteAllRemoteVideoStreams: + + + + + + + muteAllRemoteVideoStreamsEx:connection: + + + + + + + muteLocalAudioStream: + + + + + + + muteLocalAudioStreamEx:connection: + + + + + + + muteLocalAudioStream: + + + + + + + muteLocalVideoStream: + + + + + + + muteLocalVideoStreamEx:connection: + + + + + + + muteRecordingSignal: + + + + + + + muteRemoteAudioStream:mute: + + + + + + + muteRemoteAudioStreamEx:mute:connection: + + + + + + + muteRemoteAudioStream:mute: + + + + + + + muteRemoteVideoStream:mute: + + + + + + + muteRemoteVideoStreamEx:mute:connection: + + + + + + + open:startPos: + + + + + + + openWithMediaSource: + + + + + + + pause + + + + + + + pauseAllChannelMediaRelay + + + + + + + pauseAllChannelMediaRelayEx: + + + + + + + pauseAllEffects + + + + + + + pauseAudioMixing + + + + + + + pauseEffect: + + + + + + + performVideoEffectActionWithNodeId:actionId: + + + + + + + play + + + + + + + playAllEffectsWithLoopCount:pitch:pan:gain:publish: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain:publish: + + + + + + + playEffect:filePath:loopCount:pitch:pan:gain:publish:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:publish:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:publish: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain:startPos: + + + + + + + playEffectEx:soundId:filePath:loopCount:pitch:pan:gain: + + + + + + + playPreloadedSrc: + + + + + + + preloadChannelByToken:channelId:uid: + + + + + + + preloadChannelByTokenWithUserAccount:channelId:userAccount: + + + + + + + preloadEffect:filePath:startPos: + + + + + + + preloadEffect:filePath: + + + + + + + preloadEffectEx:soundId:filePath:startPos: + + + + + + + preloadEffectEx:soundId:filePath: + + + + + + + preloadSrc:startPos: + + + + + + + pullPlaybackAudioFrameRawData:lengthInByte: + + + + + + + pullPlaybackAudioFrameSampleBufferByLengthInByte: + + + + + + + pushExternalAudioFrameRawData:samples:sampleRate:channels:trackId:timestamp: + + + + + + + pushExternalAudioFrameSampleBuffer: + + + + + + + pushExternalAudioFrameSampleBuffer:sampleRate:channels:trackId: + + + + + + + pushExternalVideoFrame:videoTrackId: + + + + + + + pushExternalVideoFrame: + + + + + + + queryCodecCapability + + + + + + + queryDeviceScore + + + + + + + rate:rating:description: + + + + + + + readyToSendMetadataAtTimestamp:sourceType: + + + + + + + setAudioEncodedFrameDelegate:config: + + + + + + + setAudioFrameDelegate: + + + + + + + registerAudioSpectrumDelegate: + + + + + + + registerExtensionWithVendor:extension:sourceType: + + + + + + + registerLocalUserAccount:appId: + + + + + + + setMediaMetadataDelegate:withType: + + + + + + + setEncodedVideoFrameDelegate: + + + + + + + setVideoFrameDelegate: + + + + + + + destroy + + + + + + + destroy + + + + + + + removeAllCaches + + + + + + + removeCacheByUri: + + + + + + + removeDestinationInfoForChannelName: + + + + + + + removeOldCache + + + + + + + removeRemotePosition: + + + + + + + removeUser: + + + + + + + removeVideoEffectWithNodeId: + + + + + + + removeVideoWatermark: + + + + + + + removeVideoWatermarkEx:connection: + + + + + + + renewToken: + + + + + + + resume + + + + + + + resumeAllChannelMediaRelay + + + + + + + resumeAllChannelMediaRelayEx: + + + + + + + resumeAllEffects + + + + + + + resumeAudioMixing + + + + + + + resumeEffect: + + + + + + + seekToPosition: + + + + + + + selectAudioTrack: + + + + + + + selectAudioTrack: + + + + + + + selectMultiAudioTrack:publishTrackIndex: + + + + + + + sendCustomReportMessage:category:event:label:value: + + + + + + + sendCustomReportMessageEx:category:event:label:value:connection: + + + + + + + sendStreamMessage:data: + + + + + + + setAINSMode:mode: + + + + + + + setAVSyncSource:uid: + + + + + + + setAdvancedAudioOptions: + + + + + + + setAdvancedFeatures:opened: + + + + + + + setAudioDualMonoMode: + + + + + + + setAudioEffectParameters:param1:param2: + + + + + + + setAudioEffectPreset: + + + + + + + setAudioMixingDualMonoMode: + + + + + + + setAudioMixingPitch: + + + + + + + setAudioMixingPlaybackSpeed: + + + + + + + setAudioMixingPosition: + + + + + + + setAudioPitch: + + + + + + + setAudioProfile:scenario: + + + + + + + setAudioProfile: + + + + + + + setAudioRecvRange: + + + + + + + setAudioScenario: + + + + + + + setBeautyEffectOptions:options: + + + + + + + setBeautyEffectOptions:options:sourceType: + + + + + + + setCacheDir: + + + + + + + setCameraCapturerConfiguration: + + + + + + + setChannelProfile: + + + + + + + setClientRole: + + + + + + + setClientRole:options: + + + + + + + setCloudProxy: + + + + + + + setColorEnhanceOptions:options: + + + + + + + setColorEnhanceOptions:options:sourceType: + + + + + + + setDestinationInfo:forChannelName: + + + + + + + setDeviceVolume:volume: + + + + + + + setDevice:deviceId: + + + + + + + setDirectCdnStreamingAudioConfiguration: + + + + + + + setDirectCdnStreamingVideoConfiguration: + + + + + + + setDistanceUnit: + + + + + + + setDualStreamMode: + + + + + + + setDualStreamMode:streamConfig: + + + + + + + setDualStreamModeEx:streamConfig:connection: + + + + + + + setEarMonitoringAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setEffectPosition:pos: + + + + + + + setEffectsVolume: + + + + + + + setExtensionPropertyWithVendor:extension:key:value: + + + + + + + setExtensionProviderPropertyWithVendor:key:value: + + + + + + + enableExternalAudioSink:sampleRate:channels: + + + + + + + setExternalAudioSource:sampleRate:channels: + + + + + + + setExternalAudioSource:sampleRate:channels:localPlayback:publish: + + + + + + + setExternalVideoSource:useTexture:sourceType: + + + + + + + setFaceShapeAreaOptions:sourceType: + + + + + + + setFaceShapeAreaOptions: + + + + + + + setFaceShapeBeautyOptions:options:sourceType: + + + + + + + setFaceShapeBeautyOptions:options: + + + + + + + setFilterEffectOptions:options:sourceType: + + + + + + + setFilterEffectOptions:options: + + + + + + + setHeadphoneEQParameters:highGain: + + + + + + + setHeadphoneEQPreset: + + + + + + + setInEarMonitoringVolume: + + + + + + + setLocalAccessPoint: + + + + + + + setLocalRenderMode:mode: + + + + + + + setLocalRenderMode:mirror: + + + + + + + setLocalRenderTargetFps:targetFps: + + + + + + + setLocalVideoMirrorMode: + + + + + + + setLocalVoiceEqualizationOfBandFrequency:withGain: + + + + + + + setLocalVoiceFormant: + + + + + + + setLocalVoicePitch: + + + + + + + setLocalVoiceReverbOfType:withValue: + + + + + + + setLogFile: + + + + + + + setLogFileSize: + + + + + + + setLogFilter: + + + + + + + setLogLevel: + + + + + + + setLoopCount: + + + + + + + setLowlightEnhanceOptions:options: + + + + + + + setLowlightEnhanceOptions:options:sourceType: + + + + + + + setMaxAudioRecvCount: + + + + + + + setMaxCacheFileCount: + + + + + + + setMaxCacheFileSize: + + + + + + + setMediaMetadataDataSource:withType: + + + + + + + setMediaRecorderDelegate: + + + + + + + setMixedAudioFrameParametersWithSampleRate:channel:samplesPerCall: + + + + + + + setParameters: + + + + + + + setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel: + + + + + + + setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:samplesPerCall: + + + + + + + setPlaybackAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setPlaybackSpeed: + + + + + + + setPlayerAttenuation:playerId:forceSet: + + + + + + + setPlayerOption:value: + + + + + + + setPlayerOptionString:value: + + + + + + + setRecordingAudioFrameParametersWithSampleRate:channel:mode:samplesPerCall: + + + + + + + setRemoteAudioAttenuation:uid:forceSet: + + + + + + + setRemoteDefaultVideoStreamType: + + + + + + + setRemoteRenderMode:mode:mirror: + + + + + + + setRemoteRenderModeEx:mode:mirror:connection: + + + + + + + setRemoteRenderTargetFps: + + + + + + + setRemoteSubscribeFallbackOption: + + + + + + + setRemoteUserSpatialAudioParams:params: + + + + + + + setRemoteVideoStream:type: + + + + + + + setRemoteVideoStreamEx:type:connection: + + + + + + + setRemoteVideoSubscriptionOptions:options: + + + + + + + setRemoteVideoSubscriptionOptionsEx:options:connection: + + + + + + + setRemoteVoicePosition:pan:gain: + + + + + + + setRemoteVoicePositionEx:pan:gain:connection: + + + + + + + setRenderMode: + + + + + + + setScreenCaptureScenario: + + + + + + + setSpatialAudioParams: + + + + + + + setSubscribeAudioAllowlist: + + + + + + + setSubscribeAudioAllowlistEx:connection: + + + + + + + setSubscribeAudioBlocklist: + + + + + + + setSubscribeAudioBlocklistEx:connection: + + + + + + + setSubscribeVideoAllowlist: + + + + + + + setSubscribeVideoAllowlistEx:connection: + + + + + + + setSubscribeVideoBlocklist: + + + + + + + setSubscribeVideoBlocklistEx:connection: + + + + + + + setVideoDenoiserOptions:options: + + + + + + + setVideoDenoiserOptions:options:sourceType: + + + + + + + setVideoEffectBoolParamWithOption:key:boolValue: + + + + + + + setVideoEffectFloatParamWithOption:key:floatValue: + + + + + + + setVideoEffectIntParamWithOption:key:intValue: + + + + + + + setVideoEncoderConfiguration: + + + + + + + setVideoEncoderConfigurationEx:connection: + + + + + + + setVideoFrameDelegate: + + + + + + + setVideoResolution:andFrameRate:bitrate: + + + + + + + setVideoScenario: + + + + + + + setView: + + + + + + + setVoiceBeautifierParameters:param1:param2: + + + + + + + setVoiceBeautifierPreset: + + + + + + + setVoiceConversionPreset: + + + + + + + setVolumeOfEffect:withVolume: + + + + + + + setZones: + + + + + + + setupLocalVideo: + + + + + + + setupRemoteVideo: + + + + + + + setupRemoteVideoEx:connection: + + + + + + + sharedInstance + + + + + + + startAudioDeviceLoopbackTest: + + + + + + + startAudioMixing:loopback:cycle: + + + + + + + startAudioMixing:loopback:cycle:startPos: + + + + + + + startAudioRecording:quality: + + + + + + + startAudioRecordingWithConfig: + + + + + + + startCameraCapture:config: + + + + + + + startDirectCdnStreaming:publishUrl:mediaOptions: + + + + + + + startEchoTestWithConfig: + + + + + + + startLastmileProbeTest: + + + + + + + startLocalAudioMixer: + + + + + + + startLocalVideoTranscoder: + + + + + + + startMediaRenderingTracing + + + + + + + startMediaRenderingTracingEx: + + + + + + + startOrUpdateChannelMediaRelay: + + + + + + + startOrUpdateChannelMediaRelayEx:connection: + + + + + + + startPlaybackDeviceTest: + + + + + + + startPreview + + + + + + + startPreview: + + + + + + + startRecording: + + + + + + + startRecordingDeviceTest: + + + + + + + startRhythmPlayer:sound2:config: + + + + + + + startRtmpStreamWithTranscoding:transcoding: + + + + + + + startRtmpStreamWithTranscodingEx:transcoding:connection: + + + + + + + startRtmpStreamWithoutTranscoding: + + + + + + + startRtmpStreamWithoutTranscodingEx:connection: + + + + + + + startScreenCapture: + + + + + + + startScreenCapture:config: + + + + + + + startScreenCaptureByDisplayId:regionRect:captureParams: + + + + + + + startScreenCaptureByWindowId:regionRect:captureParams: + + + + + + + rtcEngine:device:type:stateChanged: + + + + + + + stop: + + + + + + + stopAllEffects + + + + + + + stopAudioDeviceLoopbackTest + + + + + + + stopAudioMixing + + + + + + + stopAudioRecording + + + + + + + stopCameraCapture: + + + + + + + stopChannelMediaRelay + + + + + + + stopChannelMediaRelayEx: + + + + + + + stopDirectCdnStreaming + + + + + + + stopEchoTest + + + + + + + stopEffect: + + + + + + + stopLastmileProbeTest + + + + + + + stopLocalAudioMixer + + + + + + + stopLocalVideoTranscoder + + + + + + + stopPlaybackDeviceTest + + + + + + + stopPreview + + + + + + + stopPreview: + + + + + + + stopRecording + + + + + + + stopRecordingDeviceTest + + + + + + + stopRhythmPlayer + + + + + + + stopRtmpStream: + + + + + + + stopRtmpStreamEx:connection: + + + + + + + stopScreenCapture + + + + + + + stopScreenCapture: + + + + + + + switchSrc:syncPts: + + + + + + + takeSnapshot:filePath: + + + + + + + takeSnapshotWithConfig:config: + + + + + + + takeSnapshotEx:uid:filePath: + + + + + + + takeSnapshotExWithConfig:uid:config: + + + + + + + unloadEffect: + + + + + + + unloadSrc: + + + + + + + unregisterAudioSpectrumDelegate: + + + + + + + updateChannelWithMediaOptions: + + + + + + + updateChannelExWithMediaOptions:connection: + + + + + + + updateLocalAudioMixerConfiguration: + + + + + + + updateLocalTranscoderConfiguration: + + + + + + + updatePlayerPositionInfo:positionInfo: + + + + + + + updatePreloadChannelToken: + + + + + + + updateRemotePosition:positionInfo: + + + + + + + updateRtmpTranscoding: + + + + + + + updateRtmpTranscodingEx:connection: + + + + + + + updateScreenCaptureParameters: + + + + + + + updateScreenCaptureRegion: + + + + + + + updateSelfPosition:axisForward:axisRight:axisUp: + + + + + + + + + rtcEngine:activeSpeaker: + + + + + + + rtcEngineDidAudioEffectFinish:soundId: + + + + + + + rtcEngineLocalAudioMixingDidFinish: + + + + + + + rtcEngine:audioMixingPositionChanged: + + + + + + + rtcEngine:audioMixingStateChanged:reasonCode: + + + + + + + rtcEngine:didAudioPublishStateChange:oldState:newState:elapseSinceLastState: + + + + + + + audioQualityBlock: + + + + + + + rtcEngine:didAudioRouteChanged: + + + + + + + rtcEngine:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState: + + + + + + + rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: + + + + + + + AgoraRtcMediaPlayer:volumeIndicationDidReceive: + + + + + + + onAudioVolumeIndication: + + + + + + + onCaptureVideoFrame:sourceType: + + + + + + + rtcEngine:channelMediaRelayStateDidChange:error: + + + + + + + rtcEngine:didClientRoleChangeFailed:currentRole: + + + + + + + rtcEngine:didClientRoleChanged:newRole:newRoleOptions: + + + + + + + rtcEngineConnectionDidBanned: + + + + + + + rtcEngineConnectionDidInterrupted: + + + + + + + rtcEngineConnectionDidLost: + + + + + + + rtcEngine:connectionChangedToState:reason: + + + + + + + onDirectCdnStreamingStateChanged:reason:message: + + + + + + + onDirectCdnStreamingStats: + + + + + + + onEarMonitoringAudioFrame: + + + + + + + onEncodedVideoFrameReceived:length:info:channelId:uid: + + + + + + + rtcEngine:didOccurEncryptionError: + + + + + + + rtcEngine:didOccurError: + + + + + + + onEvent: + + + + + + + onExtensionErrorWithContext:error:message: + + + + + + + onEventWithContext:key:value: + + + + + + + onExtensionStartedWithContext: + + + + + + + onExtensionStoppedWithContext: + + + + + + + rtcEngine:firstLocalAudioFramePublished: + + + + + + + rtcEngine:firstLocalVideoFrameWithSize:elapsed:sourceType: + + + + + + + rtcEngine:firstLocalVideoFramePublishedWithElapsed:sourceType: + + + + + + + rtcEngine:firstRemoteAudioFrameDecodedOfUid:elapsed: + + + + + + + rtcEngine:firstRemoteAudioFrameOfUid:elapsed: + + + + + + + rtcEngine:firstRemoteVideoDecodedOfUid:size:elapsed: + + + + + + + rtcEngine:firstRemoteVideoFrameOfUid:size:elapsed: + + + + + + + AgoraRtcMediaPlayer:didReceiveAudioFrame: + + + + + + + rtcEngine:didJoinChannel:withUid:elapsed: + + + + + + + rtcEngine:lastmileProbeTestResult: + + + + + + + rtcEngine:lastmileQuality: + + + + + + + rtcEngine:didLeaveChannelWithStats: + + + + + + + onLocalAudioSpectrum: + + + + + + + rtcEngine:localAudioStateChanged:reason: + + + + + + + rtcEngine:localAudioStats: + + + + + + + rtcEngine:didLocalUserRegisteredWithUserId:userAccount: + + + + + + + rtcEngine:localVideoStateChangedOfState:reason:sourceType: + + + + + + + rtcEngine:localVideoStats:sourceType: + + + + + + + rtcEngine:didLocalVideoTranscoderErrorWithStream:errorCode: + + + + + + + AgoraRtcMediaPlayer:didReceiveData:length: + + + + + + + didMetadataReceived: + + + + + + + onMetadata:data: + + + + + + + onMixedEncodedAudioFrame:info: + + + + + + + onMixedAudioFrame:channelId: + + + + + + + rtcEngine:multiPathStats: + + + + + + + rtcEngine:networkQuality:txQuality:rxQuality: + + + + + + + rtcEngine:networkTypeChanged: + + + + + + + rtcEngine:permissionError: + + + + + + + AgoraRtcMediaPlayer:didPlayBufferUpdated: + + + + + + + onPlaybackEncodedAudioFrame:info: + + + + + + + onPlaybackAudioFrame:channelId: + + + + + + + onPlaybackAudioFrameBeforeMixing:channelId:uid: + + + + + + + AgoraRtcMediaPlayer:cacheStats: + + + + + + + AgoraRtcMediaPlayer:didOccurEvent:elapsedTime:message: + + + + + + + AgoraRtcMediaPlayer:infoUpdated: + + + + + + + onPlayerInfoUpdated: + + + + + + + AgoraRtcMediaPlayer:playbackStats: + + + + + + + AgoraRtcMediaPlayer:didChangedToState:reason: + + + + + + + AgoraRtcMediaPlayer:playerSrcInfoDidChange:from: + + + + + + + AgoraRtcMediaPlayer:didChangedToPosition:atTimestamp: + + + + + + + onPositionChanged:utcTime: + + + + + + + onPreEncodeVideoFrame:sourceType: + + + + + + + AgoraRtcMediaPlayer:didPreloadEvent: + + + + + + + rtcEngine:didProxyConnected:withUid:proxyType:localProxyIp:elapsed: + + + + + + + onRecordEncodedAudioFrame:info: + + + + + + + onRecordAudioFrame:channelId: + + + + + + + mediaRecorder:informationDidUpdated:uid:info: + + + + + + + mediaRecorder:stateDidChanged:uid:state:reason: + + + + + + + rtcEngine:didRejoinChannel:withUid:elapsed: + + + + + + + onRemoteAudioSpectrum: + + + + + + + rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed: + + + + + + + rtcEngine:remoteAudioStats: + + + + + + + rtcEngine:audioTransportStatsOfUid:delay:lost:rxKBitRate: + + + + + + + rtcEngine:didRemoteSubscribeFallbackToAudioOnly:byUid: + + + + + + + rtcEngine:remoteVideoStateChangedOfUid:state:reason:elapsed: + + + + + + + rtcEngine:remoteVideoStats: + + + + + + + rtcEngine:videoTransportStatsOfUid:delay:lost:rxKBitRate: + + + + + + + onRenderVideoFrame:uid:channelId: + + + + + + + rtcEngine:renewTokenResult:code: + + + + + + + rtcEngineRequestToken: + + + + + + + onResolutionChanged:height: + + + + + + + rtcEngine:didRhythmPlayerStateChanged:reason: + + + + + + + rtcEngine:reportRtcStats: + + + + + + + rtcEngine:rtmpStreamingEventWithUrl:eventCode: + + + + + + + rtcEngine:rtmpStreamingChangedToState:state:reason: + + + + + + + rtcEngine:snapshotTaken:filePath:width:height:errCode: + + + + + + + onStateChanged:newState:error: + + + + + + + rtcEngine:receiveStreamMessageFromUid:streamId:data: + + + + + + + rtcEngine:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached: + + + + + + + rtcEngine:tokenPrivilegeWillExpire: + + + + + + + rtcEngineTranscodingUpdated: + + + + + + + rtcEngine:uplinkNetworkInfoUpdate: + + + + + + + rtcEngine:didLocalVideoEnabled:byUid: + + + + + + + rtcEngine:didVideoEnabled:byUid: + + + + + + + rtcEngine:didUserInfoUpdatedWithUserId:userInfo: + + + + + + + rtcEngine:didJoinedOfUid:elapsed: + + + + + + + rtcEngine:didAudioMuted:byUid: + + + + + + + rtcEngine:didVideoMuted:byUid: + + + + + + + rtcEngine:didOfflineOfUid:reason: + + + + + + + rtcEngine:didVideoPublishStateChange:sourceType:oldState:newState:elapseSinceLastState: + + + + + + + rtcEngine:videoRenderingTracingResultOfUid:currentEvent:tracingInfo: + + + + + + + rtcEngine:videoSizeChangedOfSourceType:uid:size:rotation: + + + + + + + rtcEngineVideoDidStop: + + + + + + + rtcEngine:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState: + + + + + + + + + AgoraAdvancedVideoOptions + + + + + + + AgoraAdvancedAudioOptions + + + + + + + AdvancedConfigInfo + + + + + + + AgoraRhythmPlayerConfig + + + + + + + AgoraRtcDeviceInfo + + + + + + + AgoraAudioEncodedFrameDelegateConfig + + + + + + + AgoraAudioFrame + + + + + + + AgoraAudioParams + + + + + + + AgoraAudioRecordingConfiguration + + + + + + + AgoraAudioTrackConfig + + + + + + + AgoraRtcAudioVolumeInfo + + + + + + + AgoraBeautyOptions + + + + + + + AgoraMediaPlayerCacheStatistics + + + + + + + AgoraCameraCapturerConfiguration + + + + + + + AgoraChannelMediaRelayInfo + + + + + + + AgoraRtcChannelMediaOptions + + + + + + + AgoraChannelMediaRelayConfiguration + + + + + + + AgoraClientRoleOptions + + + + + + + AgoraVideoCodecCapInfo + + + + + + + AgoraVideoCodecCapLevels + + + + + + + AgoraColorEnhanceOptions + + + + + + + AgoraRteConfig + + + + + + + AgoraContentInspectConfig + + + + + + + AgoraContentInspectModule + + + + + + + AgoraDataStreamConfig + + + + + + + AgoraDirectCdnStreamingMediaOptions + + + + + + + AgoraDirectCdnStreamingStats + + + + + + + AgoraEchoTestConfiguration + + + + + + + AgoraEncodedAudioFrameInfo + + + + + + + AgoraEncodedVideoFrameInfo + + + + + + + AgoraEncryptionConfig + + + + + + + AgoraRteError + + + + + + + AgoraExtensionContext + + + + + + + AgoraVideoFrame + + + + + + + AgoraFaceShapeAreaOptions + + + + + + + AgoraFaceShapeBeautyOptions + + + + + + + AgoraFilterEffectOptions + + + + + + + AgoraImageTrackOptions + + + + + + + AgoraLastmileProbeConfig + + + + + + + AgoraLastmileProbeOneWayResult + + + + + + + AgoraLastmileProbeResult + + + + + + + AgoraLeaveChannelOptions + + + + + + + AgoraLiveStreamAdvancedFeature + + + + + + + AgoraLiveTranscoding + + + + + + + AgoraLocalAccessPointConfiguration + + + + + + + AgoraLocalAudioMixerConfiguration + + + + + + + AgoraRtcLocalAudioStats + + + + + + + AgoraLocalSpatialAudioConfig + + + + + + + AgoraLocalTranscoderConfiguration + + + + + + + AgoraRtcLocalVideoStats + + + + + + + AgoraLogConfig + + + + + + + LogUploadServerInfo + + + + + + + AgoraLowlightEnhanceOptions + + + + + + + AgoraMediaRecorderConfiguration + + + + + + + AgoraMediaSource + + + + + + + AgoraMetadata + + + + + + + AgoraMixedAudioStream + + + + + + + AgoraMultipathStats + + + + + + + AgoraPathStats + + + + + + + AgoraRtePlayerConfig + + + + + + + AgoraMediaPlayerPlaybackStats + + + + + + + AgoraRtcMediaStreamInfo + + + + + + + AgoraMediaPlayerUpdatedInfo + + + + + + + AgoraMediaRecorderInfo + + + + + + + AgoraRecorderStreamInfo + + + + + + + AgoraRtcRemoteAudioStats + + + + + + + AgoraRtcRemoteVideoStats + + + + + + + AgoraRemoteVoicePositionInfo + + + + + + + AgoraRtcConnection + + + + + + + AgoraRtcEngineConfig + + + + + + + AgoraImage + + + + + + + AgoraChannelStats + + + + + + + AgoraRtePlayerInfo + + + + + + + AgoraRtePlayerStats + + + + + + + AgoraScreenCaptureConfiguration + + + + + + + AgoraScreenCaptureParameters + + + + + + + AgoraScreenCaptureSourceInfo + + + + + + + AgoraSegmentationProperty + + + + + + + AgoraSimulcastStreamConfig + + + + + + + AgoraSnapshotConfig + + + + + + + AgoraSpatialAudioParams + + + + + + + AgoraSpatialAudioZone + + + + + + + AgoraMediaPlayerSrcInfo + + + + + + + AgoraLiveTranscodingUser + + + + + + + AgoraTranscodingVideoStream + + + + + + + AgoraUplinkNetworkInfo + + + + + + + AgoraAudioSpectrumInfo + + + + + + + AgoraUserInfo + + + + + + + AgoraRtcVideoCanvas + + + + + + + AgoraVideoDenoiserOptions + + + + + + + AgoraVideoEncoderConfiguration + + + + + + + AgoraOutputVideoFrame + + + + + + + AgoraVideoRenderingTracingInfo + + + + + + + AgoraVideoSubscriptionOptions + + + + + + + AgoraVirtualBackgroundSource + + + + + + + WatermarkBuffer + + + + + + + WatermarkConfig + + + + + + + WatermarkOptions + + + + + + + + + AgoraAlphaStitchMode + + + + + + + AgoraAreaCodeType + + + + + + + AgoraAudienceLatencyLevelType + + + + + + + AUDIO_AINS_MODE + + + + + + + AgoraAudioCodecProfileType + + + + + + + AgoraAudioCodecType + + + + + + + AgoraAudioDualMonoMode + + + + + + + AgoraAudioEffectPreset + + + + + + + AgoraAudioEncodedFrameDelegatePosition + + + + + + + AgoraAudioEncodingType + + + + + + + AgoraAudioEqualizationBandFrequency + + + + + + + AgoraAudioFileRecordingType + + + + + + + AgoraAudioMixingDualMonoMode + + + + + + + AgoraAudioMixingReasonCode + + + + + + + AgoraAudioMixingStateType + + + + + + + AgoraAudioProcessChannels + + + + + + + AgoraAudioProfile + + + + + + + AgoraAudioRecordingQuality + + + + + + + AgoraAudioReverbType + + + + + + + AgoraAudioSampleRateType + + + + + + + AgoraAudioScenario + + + + + + + AgoraAudioSessionOperationRestriction + + + + + + + AgoraAudioSourceType + + + + + + + AgoraAudioTrackType + + + + + + + AgoraMediaPlayerRenderMode + + + + + + + AgoraAudioOutputRouting + + + + + + + AgoraBlurDegree + + + + + + + AgoraVirtualBackgroundSourceType + + + + + + + AgoraCaptureBrightnessLevelType + + + + + + + AgoraChannelMediaRelayError + + + + + + + AgoraChannelMediaRelayState + + + + + + + AgoraChannelProfile + + + + + + + AgoraClientRoleChangeFailedReason + + + + + + + AgoraClientRole + + + + + + + AgoraCloudProxyType + + + + + + + AgoraCodecCapMask + + + + + + + AgoraCompressionPreference + + + + + + + AgoraConnectionChangedReason + + + + + + + AgoraConnectionState + + + + + + + AgoraContentInspectType + + + + + + + AgoraDegradationPreference + + + + + + + AgoraDirectCdnStreamingReason + + + + + + + AgoraDirectCdnStreamingState + + + + + + + AgoraEarMonitoringFilterType + + + + + + + AgoraEncodingPreference + + + + + + + AgoraEncryptionErrorType + + + + + + + AgoraEncryptionMode + + + + + + + AgoraErrorCode + + + + + + + AgoraExperiencePoorReason + + + + + + + AgoraExperienceQuality + + + + + + + AgoraExternalVideoSourceType + + + + + + + AgoraFaceShapeArea + + + + + + + AgoraFaceShapeStyle + + + + + + + AgoraVideoFrameRate + + + + + + + AgoraFeatureType + + + + + + + AgoraHeadphoneEQPreset + + + + + + + AgoraLastmileProbeResultState + + + + + + + AgoraLighteningContrastLevel + + + + + + + AgoraAudioLocalReason + + + + + + + AgoraAudioLocalState + + + + + + + AgoraLocalProxyMode + + + + + + + AgoraLocalVideoStreamReason + + + + + + + AgoraVideoLocalState + + + + + + + AgoraLogFilter + + + + + + + AgoraLogLevel + + + + + + + AgoraLowlightEnhanceLevel + + + + + + + AgoraLowlightEnhanceMode + + + + + + + AgoraMediaDeviceType + + + + + + + AgoraMediaPlayerEvent + + + + + + + AgoraMediaPlayerMetaDataType + + + + + + + AgoraMediaPlayerReason + + + + + + + AgoraMediaPlayerState + + + + + + + AgoraMediaSourceType + + + + + + + AgoraMediaStreamType + + + + + + + AgoraMediaTraceEvent + + + + + + + AgoraMetadataType + + + + + + + AgoraMediaRecorderContainerFormat + + + + + + + AgoraMediaRecorderStreamType + + + + + + + AgoraMultipathMode + + + + + + + AgoraMultipathType + + + + + + + AgoraNetworkType + + + + + + + AgoraVideoOutputOrientationMode + + + + + + + AgoraPermissionType + + + + + + + AgoraMediaPlayerPreloadEvent + + + + + + + AgoraProxyType + + + + + + + AgoraVideoQualityAdaptIndication + + + + + + + AgoraNetworkQuality + + + + + + + AgoraAudioRawFrameOperationMode + + + + + + + AgoraAudioRemoteState + + + + + + + AgoraAudioRemoteReason + + + + + + + AgoraVideoRemoteState + + + + + + + AgoraVideoRemoteReason + + + + + + + AgoraVideoRenderMode + + + + + + + AgoraRenewTokenErrorCode + + + + + + + AgoraRhythmPlayerReason + + + + + + + AgoraRhythmPlayerState + + + + + + + AgoraRtmpStreamingEvent + + + + + + + AgoraRtmpStreamLifeCycle + + + + + + + AgoraRtmpStreamingReason + + + + + + + AgoraRtmpStreamingState + + + + + + + AgoraMediaRecorderReasonCode + + + + + + + AgoraMediaRecorderState + + + + + + + AgoraRecorderStreamType + + + + + + + AgoraRteAbrFallbackLayer + + + + + + + AgoraRteAbrSubscriptionLayer + + + + + + + AgoraRteErrorCode + + + + + + + AgoraRtePlayerEvent + + + + + + + AgoraRtePlayerMetadataType + + + + + + + AgoraRtePlayerState + + + + + + + AgoraRteVideoMirrorMode + + + + + + + AgoraRteVideoRenderMode + + + + + + + ScreenColorType + + + + + + + AgoraScreenScenarioType + + + + + + + SegModelType + + + + + + + AgoraSimulcastStreamMode + + + + + + + AgoraStreamFallbackOptions + + + + + + + AgoraStreamPublishState + + + + + + + AgoraStreamSubscribeState + + + + + + + AgoraScreenCaptureSourceType + + + + + + + AgoraUserOfflineReason + + + + + + + AgoraApplicationScenarioType + + + + + + + AgoraVideoCodecCapabilityLevel + + + + + + + AgoraVideoCodecProfileType + + + + + + + AgoraVideoCodecType + + + + + + + AgoraVideoCodecTypeForStream + + + + + + + AgoraVideoDenoiserLevel + + + + + + + AgoraVideoDenoiserMode + + + + + + + AgoraVideoEffectAction + + + + + + + AgoraVideoEffectNodeId + + + + + + + AgoraVideoFramePosition + + + + + + + AgoraVideoFrameProcessMode + + + + + + + AgoraVideoFrameType + + + + + + + AgoraVideoMirrorMode + + + + + + + AgoraVideoModulePosition + + + + + + + AgoraVideoFrameOrientation + + + + + + + AgoraVideoFormat + + + + + + + AgoraVideoSourceType + + + + + + + AgoraVideoStreamType + + + + + + + AgoraVideoTranscoderError + + + + + + + AgoraVideoViewSetupMode + + + + + + + AgoraVoiceAITunerType + + + + + + + AgoraVoiceBeautifierPreset + + + + + + + AgoraVoiceConversionPreset + + + + + + + WatermarkType + + + + + + + WatermarkBufferFormat + + + + + + + AgoraVideoHwEncoderAccelerating diff --git a/dita/RTC-AIDOC/config/relations-rtc-ng-api-cpp.ditamap b/dita/RTC-AIDOC/config/relations-rtc-ng-api-cpp.ditamap index 5cfa1c87e93..0994a26bafe 100644 --- a/dita/RTC-AIDOC/config/relations-rtc-ng-api-cpp.ditamap +++ b/dita/RTC-AIDOC/config/relations-rtc-ng-api-cpp.ditamap @@ -7,9 +7,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17,11 +251,762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/config/relations-rtc-ng-api-ios.ditamap b/dita/RTC-AIDOC/config/relations-rtc-ng-api-ios.ditamap index 73825f27500..12511922b11 100644 --- a/dita/RTC-AIDOC/config/relations-rtc-ng-api-ios.ditamap +++ b/dita/RTC-AIDOC/config/relations-rtc-ng-api-ios.ditamap @@ -7,9 +7,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17,11 +207,703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/config/relations-rtc-ng-api-java.ditamap b/dita/RTC-AIDOC/config/relations-rtc-ng-api-java.ditamap index ff3027828b4..8caa8bd829e 100644 --- a/dita/RTC-AIDOC/config/relations-rtc-ng-api-java.ditamap +++ b/dita/RTC-AIDOC/config/relations-rtc-ng-api-java.ditamap @@ -7,9 +7,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17,11 +194,823 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dita/RTC-AIDOC/config/relations-rtc-ng-api-macos.ditamap b/dita/RTC-AIDOC/config/relations-rtc-ng-api-macos.ditamap index 958df092e4b..e06e58c0995 100644 --- a/dita/RTC-AIDOC/config/relations-rtc-ng-api-macos.ditamap +++ b/dita/RTC-AIDOC/config/relations-rtc-ng-api-macos.ditamap @@ -7,9 +7,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17,11 +206,648 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/scripts/name-groups-gen/__pycache__/format_params.cpython-311.pyc b/scripts/name-groups-gen/__pycache__/format_params.cpython-311.pyc new file mode 100644 index 00000000000..6fd30280987 Binary files /dev/null and b/scripts/name-groups-gen/__pycache__/format_params.cpython-311.pyc differ diff --git a/scripts/name-groups-gen/example_use_format_params.py b/scripts/name-groups-gen/example_use_format_params.py new file mode 100644 index 00000000000..4c30d8e922e --- /dev/null +++ b/scripts/name-groups-gen/example_use_format_params.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Example: How to use format_params module in other scripts. + +This example demonstrates how to integrate the format_params functionality +into your own scripts. +""" + +import json +from format_params import format_params_in_json + + +def example_1_basic_usage(): + """Example 1: Basic usage - format a file in place.""" + print("=" * 80) + print("Example 1: Basic Usage") + print("=" * 80) + + # Create a test file + test_data = { + 'api': { + 'testMethod': { + 'params': { + 'windows': ['param1', 'param2', 'param3'], + 'android': ['param1', 'param2'] + } + } + } + } + + # Save with default formatting (multi-line) + with open('example_test.json', 'w', encoding='utf-8') as f: + json.dump(test_data, f, indent=4, ensure_ascii=False) + + print("\nBefore formatting:") + with open('example_test.json', 'r', encoding='utf-8') as f: + print(f.read()) + + # Format the file + format_params_in_json('example_test.json') + + print("\nAfter formatting:") + with open('example_test.json', 'r', encoding='utf-8') as f: + print(f.read()) + + # Clean up + import os + os.remove('example_test.json') + print("\nTest file cleaned up") + + +def example_2_save_to_new_file(): + """Example 2: Save formatted output to a new file.""" + print("\n" + "=" * 80) + print("Example 2: Save to New File") + print("=" * 80) + + # Create a test file + test_data = { + 'data': { + 'items': ['item1', 'item2', 'item3'], + 'values': ['value1', 'value2'] + } + } + + with open('example_input.json', 'w', encoding='utf-8') as f: + json.dump(test_data, f, indent=4, ensure_ascii=False) + + print("\nOriginal file: example_input.json") + + # Format and save to new file + format_params_in_json('example_input.json', 'example_output.json') + + print("\nFormatted file: example_output.json") + with open('example_output.json', 'r', encoding='utf-8') as f: + print(f.read()) + + # Clean up + import os + os.remove('example_input.json') + os.remove('example_output.json') + print("\nTest files cleaned up") + + +def example_3_integrate_in_workflow(): + """Example 3: Integrate into a processing workflow.""" + print("\n" + "=" * 80) + print("Example 3: Integrate into Workflow") + print("=" * 80) + + # Simulate a workflow that generates JSON with params + def process_data_and_save(): + """Simulate data processing that generates params.""" + data = { + 'api': { + 'method1': { + 'name': 'Method 1', + 'params': { + 'platform1': ['arg1', 'arg2'], + 'platform2': ['arg1', 'arg2', 'arg3'] + } + }, + 'method2': { + 'name': 'Method 2', + 'params': { + 'platform1': ['param1'], + 'platform2': ['param1', 'param2'] + } + } + } + } + + # Save the data + output_file = 'workflow_output.json' + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=4, ensure_ascii=False) + + return output_file + + print("\nStep 1: Process data and save to JSON...") + output_file = process_data_and_save() + + print("\nStep 2: Format params arrays...") + format_params_in_json(output_file) + + print("\nStep 3: Verify formatted output:") + with open(output_file, 'r', encoding='utf-8') as f: + content = f.read() + # Check if arrays are on single lines + if '"platform1": [' in content and '\n' not in content.split('"platform1": [')[1].split(']')[0]: + print("✓ Arrays are correctly formatted to single line") + else: + print("✗ Arrays are still multi-line") + + # Clean up + import os + os.remove(output_file) + print("\nTest file cleaned up") + + +def main(): + """Run all examples.""" + print("\n" + "=" * 80) + print("Format Params Module - Usage Examples") + print("=" * 80) + + try: + example_1_basic_usage() + example_2_save_to_new_file() + example_3_integrate_in_workflow() + + print("\n" + "=" * 80) + print("All examples completed successfully!") + print("=" * 80) + + except Exception as e: + print(f"\nError running examples: {e}") + import traceback + traceback.print_exc() + + +if __name__ == "__main__": + main() + diff --git a/scripts/name-groups-gen/format_params.py b/scripts/name-groups-gen/format_params.py new file mode 100644 index 00000000000..4d0eaf37ced --- /dev/null +++ b/scripts/name-groups-gen/format_params.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Format params arrays in name_groups.json to single line format. + +This script reads a JSON file and reformats all params arrays from multi-line +format to single-line format for better readability. + +Example: + Before: + "params": { + "windows": [ + "param1", + "param2", + "param3" + ] + } + + After: + "params": { + "windows": ["param1", "param2", "param3"] + } +""" + +import json +import re +import logging +import sys + +# Configure logging +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +logger = logging.getLogger(__name__) + + +def format_params_in_json(input_file: str, output_file: str = None) -> None: + """ + Format params arrays in JSON file to single line. + + Args: + input_file: Input JSON file path + output_file: Output JSON file path (if None, overwrites input file) + """ + if output_file is None: + output_file = input_file + + try: + # Load JSON to validate it + logger.info(f"Loading JSON file: {input_file}") + with open(input_file, 'r', encoding='utf-8') as f: + data = json.load(f) + + # Save with default formatting first + logger.info(f"Saving JSON with default formatting...") + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=4, ensure_ascii=False) + + # Read the file content + with open(output_file, 'r', encoding='utf-8') as f: + content = f.read() + + # Pattern to match array values that span multiple lines + # This pattern matches arrays like: + # "platform": [ + # "param1", + # "param2" + # ] + params_pattern = r'"([^"]+)": \[\s*\n(\s*"[^"]*",?\s*\n)*\s*\]' + + def format_params_array(match): + """ + Format a multi-line array to single line. + + Args: + match: Regex match object + + Returns: + Formatted single-line array string + """ + # Extract the matched text + matched_text = match.group(0) + key_name = match.group(1) + + # Extract all values using regex + values = re.findall(r'"([^"]*)"', matched_text) + # Remove the key name from values (it's captured as the first match) + values = [val for val in values if val != key_name] + + # Format as single line array + if values: + formatted_array = '["' + '", "'.join(values) + '"]' + else: + formatted_array = '[]' + + return f'"{key_name}": {formatted_array}' + + # Count matches before formatting + matches_before = len(re.findall(params_pattern, content)) + + # Apply the formatting + logger.info(f"Formatting {matches_before} multi-line arrays to single line...") + content = re.sub(params_pattern, format_params_array, content) + + # Write the formatted content back + with open(output_file, 'w', encoding='utf-8') as f: + f.write(content) + + logger.info(f"Successfully formatted params arrays in {output_file}") + logger.info(f"Formatted {matches_before} arrays") + + if output_file != input_file: + logger.info(f"Output saved to: {output_file}") + else: + logger.info(f"File updated in place: {output_file}") + + except json.JSONDecodeError as e: + logger.error(f"Invalid JSON file: {e}") + sys.exit(1) + except FileNotFoundError: + logger.error(f"File not found: {input_file}") + sys.exit(1) + except Exception as e: + logger.error(f"Error formatting params: {e}") + sys.exit(1) + + +def main(): + """Main function.""" + import argparse + + parser = argparse.ArgumentParser( + description='Format params arrays in JSON file to single line format', + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + # Format name_groups.json in place + python format_params.py name_groups.json + + # Format and save to a different file + python format_params.py name_groups.json -o name_groups_formatted.json + + # Format name_groups_overload.json in place + python format_params.py name_groups_overload.json + """ + ) + + parser.add_argument( + 'input_file', + help='Input JSON file path' + ) + + parser.add_argument( + '-o', '--output', + dest='output_file', + help='Output JSON file path (default: overwrite input file)', + default=None + ) + + args = parser.parse_args() + + logger.info("=" * 80) + logger.info("Starting params array formatting...") + logger.info("=" * 80) + + format_params_in_json(args.input_file, args.output_file) + + logger.info("=" * 80) + logger.info("Formatting completed!") + logger.info("=" * 80) + + +if __name__ == "__main__": + main() + diff --git a/scripts/name-groups-gen/name_groups.json b/scripts/name-groups-gen/name_groups.json index 888a2a52d23..619e3b2a84d 100644 --- a/scripts/name-groups-gen/name_groups.json +++ b/scripts/name-groups-gen/name_groups.json @@ -43,7 +43,21 @@ "parent_class": "IRtcEngine", "toc": "toc_initialize", "params": { - "windows": ["callback"] + "windows": ["callback"], + "android": [] + } + }, + "destroy1": { + "android": "destroy [2/2]", + "ios": "destroy:", + "macos": "destroy:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_initialize", + "params": { + "android": ["callback"], + "ios": ["engineReleasedBlock"], + "macos": ["engineReleasedBlock"] } }, "setChannelProfile": { @@ -396,8 +410,8 @@ "setPlaybackAudioFrameBeforeMixingParameters1": { "windows": "setPlaybackAudioFrameBeforeMixingParameters [2/2]", "android": "setPlaybackAudioFrameBeforeMixingParameters [2/2]", - "ios": "setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:", - "macos": "setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:", + "ios": "setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:samplesPerCall:", + "macos": "setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:channel:samplesPerCall:", "isOverload": true, "params": { "windows": ["sampleRate", "channel", "samplesPerCall"], @@ -494,7 +508,6 @@ }, "RtcEngineReleaseCallback": { "windows": "RtcEngineReleaseCallback", - "android": "onEngineReleased", "parent_class": "IRtcEngineEventHandler", "toc": "toc_initialize" }, @@ -508,12 +521,16 @@ }, "destroyMediaPlayer": { "windows": "destroyMediaPlayer", - "android": "destroy", "ios": "destroyMediaPlayer:", "macos": "destroyMediaPlayer:", "parent_class": "IRtcEngine", "toc": "toc_mediaplayer_initialize" }, + "destroy_IMediaPlayer": { + "android": "destroy", + "parent_class": "IMediaPlayer", + "toc": "toc_mediaplayer_initialize" + }, "adjustPlayoutVolume": { "windows": "adjustPlayoutVolume", "android": "adjustPlayoutVolume", @@ -692,7 +709,6 @@ "toc": "toc_mediaplayer_open" }, "open2": { - "windows": "open", "android": "open [2/2]", "isOverload": true, "params": { @@ -912,7 +928,12 @@ "ios": "setPlayerOptionString:value:", "macos": "setPlayerOptionString:value:", "isOverload": true, - "params": {}, + "params": { + "windows": ["key", "value"], + "android": ["key", "value"], + "ios": ["key", "value"], + "macos": ["key", "value"] + }, "parent_class": "IMediaPlayer", "toc": "toc_mediaplayer_playnrender" }, @@ -935,8 +956,8 @@ "stop": { "windows": "stop", "android": "stop [1/2]", - "ios": "stop", - "macos": "stop", + "ios": "stop:", + "macos": "stop:", "parent_class": "IMediaPlayer", "toc": "toc_mediaplayer_control", "isOverload": true, @@ -1097,8 +1118,8 @@ "SetRenderMode_CanvasConfig": { "windows": "SetRenderMode", "android": "setVideoRenderMode", - "ios": "setVideoMirrorMode:error:", - "macos": "setVideoMirrorMode:error:", + "ios": "setVideoRenderMode:error:", + "macos": "setVideoRenderMode:error:", "parent_class": "CanvasConfig", "toc": "toc_rte_player" }, @@ -1120,7 +1141,7 @@ }, "GetMirrorMode": { "windows": "GetMirrorMode", - "android": "getVideoRenderMode", + "android": "getVideoMirrorMode", "ios": "videoMirrorMode:", "macos": "videoMirrorMode:", "parent_class": "CanvasConfig", @@ -1323,8 +1344,8 @@ "Stop_Player": { "windows": "Stop", "android": "stop", - "ios": "pause:", - "macos": "pause:", + "ios": "stop:", + "macos": "stop:", "parent_class": "Player", "toc": "toc_rte_player" }, @@ -1495,8 +1516,8 @@ "GetPosition": { "windows": "GetPosition", "android": "getPosition", - "ios": "getPosition", - "macos": "getPosition", + "ios": "getPosition:", + "macos": "getPosition:", "parent_class": "Player", "toc": "toc_rte_player" }, @@ -2125,7 +2146,7 @@ "android": "joinChannelWithUserAccountEx", "ios": "joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:", "macos": "joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:", - "parent_class": "IRtcEngine", + "parent_class": "IRtcEngineEx", "toc": "toc_channel" }, "getUserInfoByUid": { @@ -2790,11 +2811,31 @@ }, "preloadEffect": { "windows": "preloadEffect", - "android": "preloadEffect", + "android": "preloadEffect [1/2]", + "ios": "preloadEffect:filePath:startPos:", + "macos": "preloadEffect:filePath:startPos:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_effect_file", + "isOverload": true, + "params": { + "windows": ["soundId", "filePath", "startPos"], + "android": ["soundId", "filePath", "startPos"], + "ios": ["soundId", "filePath", "startPos"], + "macos": ["soundId", "filePath", "startPos"] + } + }, + "preloadEffect2": { + "android": "preloadEffect [2/2]", "ios": "preloadEffect:filePath:", "macos": "preloadEffect:filePath:", "parent_class": "IRtcEngine", - "toc": "toc_audio_effect_file" + "toc": "toc_audio_effect_file", + "isOverload": true, + "params": { + "android": ["soundId", "filePath"], + "ios": ["soundId", "filePath"], + "macos": ["soundId", "filePath"] + } }, "unloadEffect": { "windows": "unloadEffect", @@ -3007,12 +3048,6 @@ "parent_class": "IBaseSpatialAudioEngine", "toc": "toc_spatial_audio" }, - "release_IBaseSpatialAudioEngine": { - "ios": "destroy", - "macos": "destroy", - "parent_class": "IBaseSpatialAudioEngine", - "toc": "toc_spatial_audio" - }, "setAudioRecvRange": { "android": "setAudioRecvRange", "ios": "setAudioRecvRange:", @@ -3486,11 +3521,30 @@ "toc": "toc_video_custom_capturenrendering" }, "setExternalVideoSource": { - "android": "setExternalVideoSource", + "android": "setExternalVideoSource [1/2]", "ios": "setExternalVideoSource:useTexture:sourceType:", "macos": "setExternalVideoSource:useTexture:sourceType:", "parent_class": "IRtcEngine", - "toc": "toc_video_custom_capturenrendering" + "toc": "toc_video_custom_capturenrendering", + "isOverload": true, + "params": { + "android": ["enable", "useTexture", "sourceType"], + "ios": ["enable", "useTexture", "sourceType"], + "macos": ["enable", "useTexture", "sourceType"] + } + }, + "setExternalVideoSource2": { + "android": "setExternalVideoSource [2/2]", + "ios": "setExternalVideoSource:useTexture:sourceType:encodedVideoTrackOption:", + "macos": "setExternalVideoSource:useTexture:sourceType:encodedVideoTrackOption:", + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering", + "isOverload": true, + "params": { + "android": ["enable", "useTexture", "sourceType", "encodedOpt"], + "ios": ["enable", "useTexture", "sourceType", "encodedVideoTrackOption"], + "macos": ["enable", "useTexture", "sourceType", "encodedVideoTrackOption"] + } }, "setExternalVideoSource_IMediaEngine": { "windows": "setExternalVideoSource", @@ -3606,8 +3660,12 @@ "parent_class": "IMediaEngine", "toc": "toc_audio_custom_capturenrendering" }, - "setExternalAudioSource2": { + "setExternalAudioSource_IMediaEngine": { "windows": "setExternalAudioSource", + "parent_class": "IMediaEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "setExternalAudioSource2": { "android": "setExternalAudioSource [2/2]", "ios": "setExternalAudioSource:sampleRate:channels:localPlayback:publish:", "macos": "setExternalAudioSource:sampleRate:channels:localPlayback:publish:", @@ -3618,7 +3676,7 @@ "ios": ["enabled", "sampleRate", "channels", "localPlayback", "publish"], "macos": ["enabled", "sampleRate", "channels", "localPlayback", "publish"] }, - "parent_class": "IMediaEngine", + "parent_class": "IRtcEngine", "toc": "toc_audio_custom_capturenrendering" }, "startLocalAudioMixer": { @@ -3798,9 +3856,18 @@ "parent_class": "IRtcEngine", "toc": "toc_audio_raw" }, + "onFrame_IMediaPlayerAudioFrameObserver": { + "android": "onFrame", + "parent_class": "IMediaPlayerAudioFrameObserver", + "toc": "toc_mediaplayer_observer" + }, + "onFrame_IMediaPlayerVideoFrameObserver": { + "android": "onFrame", + "parent_class": "IMediaPlayerVideoFrameObserver", + "toc": "toc_mediaplayer_observer" + }, "onFrame_IAudioPcmFrameSink": { "windows": "onFrame", - "android": "onFrame", "ios": "AgoraRtcMediaPlayer:didReceiveAudioFrame:", "macos": "AgoraRtcMediaPlayer:didReceiveAudioFrame:", "parent_class": "IAudioPcmFrameSink", @@ -3832,7 +3899,6 @@ }, "onFrame_IVideoFrameObserver": { "windows": "onFrame", - "android": "onFrame", "ios": "AgoraRtcMediaPlayer:didReceiveVideoFrame:", "macos": "AgoraRtcMediaPlayer:didReceiveVideoFrame:", "parent_class": "IVideoFrameObserver", @@ -4252,16 +4318,20 @@ "parent_class": "IAudioDeviceCollection", "isOverload": true, "params": { - "windows": ["index", "deviceId", "deviceName", "deviceTypeName"], + "windows": ["index", "deviceName", "deviceTypeName", "deviceId"], "android": ["index", "deviceId", "deviceName", "deviceTypeName"], "ios": ["index", "deviceId", "deviceName", "deviceTypeName"], "macos": ["index", "deviceId", "deviceName", "deviceTypeName"] }, "toc": "toc_audio_device" }, + "getDefaultAudioDevice": { + "macos": "getDefaultAudioDevice:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, "getDefaultDevice_IAudioDeviceCollection": { "windows": "getDefaultDevice [1/2]", - "macos": "getDefaultAudioDevice:", "parent_class": "IAudioDeviceCollection", "isOverload": true, "params": { @@ -4327,18 +4397,26 @@ "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, + "followSystemPlaybackDevice_IRtcEngine": { + "macos": "followSystemPlaybackDevice:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, "followSystemPlaybackDevice": { "windows": "followSystemPlaybackDevice", - "macos": "followSystemPlaybackDevice:", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, "followSystemRecordingDevice": { "windows": "followSystemRecordingDevice", - "macos": "followSystemRecordingDevice:", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, + "followSystemRecordingDevice_IRtcEngine": { + "macos": "followSystemRecordingDevice:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, "setPlaybackDevice": { "windows": "setPlaybackDevice", "parent_class": "IAudioDeviceManager", @@ -4467,16 +4545,24 @@ }, "startAudioDeviceLoopbackTest": { "windows": "startAudioDeviceLoopbackTest", - "macos": "startAudioDeviceLoopbackTest:", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, + "startAudioDeviceLoopbackTest_IRtcEngine": { + "macos": "startAudioDeviceLoopbackTest:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, "stopAudioDeviceLoopbackTest": { "windows": "stopAudioDeviceLoopbackTest", - "macos": "stopAudioDeviceLoopbackTest", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, + "stopAudioDeviceLoopbackTest_IRtcEngine": { + "macos": "stopAudioDeviceLoopbackTest", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, "setPlaybackDeviceVolume": { "windows": "setPlaybackDeviceVolume", "parent_class": "IAudioDeviceManager", @@ -4569,12 +4655,16 @@ "parent_class": "IVideoDeviceCollection", "toc": "toc_video_device" }, - "setDevice_IVideoDeviceCollection": { + "setDevice": { "windows": "setDevice", - "macos": "setDevice:deviceId:", "parent_class": "IVideoDeviceCollection", "toc": "toc_video_device" }, + "setDevice_IRtcEngine": { + "macos": "setDevice:deviceId:", + "parent_class": "IRtcEngine", + "toc": "toc_video_device" + }, "release_IVideoDeviceCollection": { "windows": "release", "parent_class": "IVideoDeviceCollection", @@ -4746,7 +4836,7 @@ "ios": "preloadWithSongCode:", "isOverload": true, "params": { - "windows": ["songCode", "requestId"], + "windows": ["requestId", "songCode"], "android": ["songCode"], "ios": ["songCode"], "macos": ["songCode"] @@ -6255,19 +6345,6 @@ "parent_class": "WatermarkOptions", "toc": "toc_watermark" }, - "destroy1": { - "android": "destroy [2/2]", - "ios": "destroy:", - "macos": "destroy:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_initialize", - "params": { - "android": ["callback"], - "ios": ["engineReleasedBlock"], - "macos": ["engineReleasedBlock"] - } - }, "getPlaySrc": { "android": "getPlaySrc [2/2]", "parent_class": "IMusicPlayer", @@ -6419,7 +6496,8 @@ "ios": "destroy", "macos": "destroy", "parent_class": "ILocalSpatialAudioEngine", - "toc": "toc_spatial_audio" + "toc": "toc_spatial_audio", + "windows": "release" }, "addBackgroundImage": { "android": "addBackgroundImage", @@ -6707,7 +6785,7 @@ "params": {} }, "destroy_IMusicContentCenter": { - "android": "destroy [2/2]", + "android": "destroy", "ios": "destroy", "parent_class": "IMusicContentCenter", "isOverload": true, @@ -6715,7 +6793,7 @@ "params": {} }, "destroy_IMusicPlayer": { - "android": "destroy [1/2]", + "android": "destroy", "parent_class": "IMusicPlayer", "isOverload": true, "toc": "toc_drm", @@ -6806,12 +6884,12 @@ "initWithSize": { "ios": "initWithSize:frameRate:bitrate:orientationMode:mirrorMode:", "macos": "initWithSize:frameRate:bitrate:orientationMode:mirrorMode:", - "parent_class": "agoravideoencoderconfiguration" + "parent_class": "VideoEncoderConfiguration" }, "initWithWidth": { "ios": "initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode:", "macos": "initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode:", - "parent_class": "agoravideoencoderconfiguration" + "parent_class": "VideoEncoderConfiguration" }, "setVideoProfile2": { "ios": "setVideoResolution:andFrameRate:bitrate:", @@ -7023,36 +7101,6 @@ "macos": ["sourceType"] } }, - "setFaceShapeAreaOptions": { - "windows": "setFaceShapeAreaOptions", - "android": "setFaceShapeAreaOptions [1/2]", - "ios": "setFaceShapeAreaOptions:", - "macos": "setFaceShapeAreaOptions:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_video_enhance_option", - "params": { - "windows": ["options", "type"], - "android": ["options", "sourceType"], - "ios": ["options", "sourceType"], - "macos": ["options", "sourceType"] - } - }, - "setFaceShapeBeautyOptions": { - "windows": "setFaceShapeBeautyOptions", - "android": "setFaceShapeBeautyOptions [1/2]", - "ios": "setFaceShapeBeautyOptions:options:", - "macos": "setFaceShapeBeautyOptions:options:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_video_enhance_option", - "params": { - "windows": ["enabled", "options", "type"], - "android": ["enabled", "options", "sourceType"], - "ios": ["enable", "options", "sourceType"], - "macos": ["enable", "options", "sourceType"] - } - }, "setAVSyncSource": { "windows": "setAVSyncSource", "android": "setAVSyncSource", @@ -7092,13 +7140,28 @@ "toc": "toc_video_enhance_option", "params": {} }, - "setFaceShapeAreaOptions2": { - "android": "setFaceShapeAreaOptions [2/2]", + "setFaceShapeAreaOptions": { + "windows": "setFaceShapeAreaOptions", + "android": "setFaceShapeAreaOptions [1/2]", "ios": "setFaceShapeAreaOptions:sourceType:", "macos": "setFaceShapeAreaOptions:sourceType:", "isOverload": true, "parent_class": "IRtcEngine", "toc": "toc_video_enhance_option", + "params": { + "windows": ["options", "type"], + "android": ["options", "sourceType"], + "ios": ["options", "sourceType"], + "macos": ["options", "sourceType"] + } + }, + "setFaceShapeAreaOptions2": { + "android": "setFaceShapeAreaOptions [2/2]", + "ios": "setFaceShapeAreaOptions:", + "macos": "setFaceShapeAreaOptions:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_video_enhance_option", "params": { "windows": ["options"], "android": ["options"], @@ -7106,15 +7169,29 @@ "macos": ["options"] } }, - "setFaceShapeBeautyOptions2": { - "android": "setFaceShapeBeautyOptions [2/2]", + "setFaceShapeBeautyOptions": { + "windows": "setFaceShapeBeautyOptions", + "android": "setFaceShapeBeautyOptions [1/2]", "ios": "setFaceShapeBeautyOptions:options:sourceType:", "macos": "setFaceShapeBeautyOptions:options:sourceType:", "isOverload": true, "parent_class": "IRtcEngine", "toc": "toc_video_enhance_option", "params": { - "windows": ["enabled", "options"], + "windows": ["enabled", "options", "type"], + "android": ["enabled", "options", "sourceType"], + "ios": ["enable", "options", "sourceType"], + "macos": ["enable", "options", "sourceType"] + } + }, + "setFaceShapeBeautyOptions2": { + "android": "setFaceShapeBeautyOptions [2/2]", + "ios": "setFaceShapeBeautyOptions:options:", + "macos": "setFaceShapeBeautyOptions:options:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_video_enhance_option", + "params": { "android": ["enabled", "options"], "ios": ["enable", "options"], "macos": ["enable", "options"] @@ -7535,7 +7612,7 @@ }, "LowlightEnhanceOptions": { "windows": "LowlightEnhanceOptions", - "android": "LowlightEnhanceOptions", + "android": "LowLightEnhanceOptions", "ios": "AgoraLowlightEnhanceOptions", "macos": "AgoraLowlightEnhanceOptions" }, @@ -7998,7 +8075,6 @@ }, "MusicCollection": { "windows": "MusicCollection", - "android": "MusicCollection", "ios": "AgoraMusicCollection" }, "MusicChartCollection": { @@ -8041,6 +8117,18 @@ }, "RteException": { "android": "RteException" + }, + "AreaCode": { + "android": "AreaCode" + }, + "MusicCacheStatusType": { + "android": "MusicCacheStatusType" + }, + "MusicContentCenterStateReason": { + "android": "MusicContentCenterStateReason" + }, + "PreloadState_android": { + "android": "PreloadState" } }, "enum": { @@ -8049,13 +8137,11 @@ }, "ALPHA_STITCH_MODE": { "windows": "ALPHA_STITCH_MODE", - "android": "AlphaStitchMode", "ios": "AgoraAlphaStitchMode", "macos": "AgoraAlphaStitchMode" }, "AREA_CODE": { "windows": "AREA_CODE", - "android": "AreaCode", "ios": "AgoraAreaCodeType", "macos": "AgoraAreaCodeType" }, @@ -8486,12 +8572,10 @@ }, "MUSIC_CACHE_STATUS_TYPE": { "windows": "MUSIC_CACHE_STATUS_TYPE", - "android": "MusicCacheStatusType", "ios": "AgoraMusicCacheStatusType" }, "MusicContentCenterStateReason": { "windows": "MusicContentCenterStateReason", - "android": "MusicContentCenterStateReason", "ios": "AgoraMusicContentCenterStateReason" }, "MusicPlayMode": { @@ -8512,7 +8596,6 @@ }, "PreloadState": { "windows": "PreloadState", - "android": "PreloadState", "ios": "AgoraMusicContentCenterPreloadState" }, "PERMISSION_TYPE": { @@ -8691,7 +8774,6 @@ }, "STREAM_PUBLISH_STATE": { "windows": "STREAM_PUBLISH_STATE", - "android": "STREAM_PUBLISH_STATE", "ios": "AgoraStreamPublishState", "macos": "AgoraStreamPublishState" }, diff --git a/scripts/name-groups-gen/name_groups_overload.json b/scripts/name-groups-gen/name_groups_overload.json index de90ade405c..3b07008bcd0 100644 --- a/scripts/name-groups-gen/name_groups_overload.json +++ b/scripts/name-groups-gen/name_groups_overload.json @@ -46,6 +46,19 @@ "windows": ["callback"] } }, + "destroy1": { + "android": "destroy [2/2]", + "ios": "destroy:", + "macos": "destroy:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_initialize", + "params": { + "android": ["callback"], + "ios": ["engineReleasedBlock"], + "macos": ["engineReleasedBlock"] + } + }, "setChannelProfile": { "windows": "setChannelProfile", "android": "setChannelProfile", @@ -494,7 +507,6 @@ }, "RtcEngineReleaseCallback": { "windows": "RtcEngineReleaseCallback", - "android": "onEngineReleased", "parent_class": "IRtcEngineEventHandler", "toc": "toc_initialize" }, @@ -508,12 +520,16 @@ }, "destroyMediaPlayer": { "windows": "destroyMediaPlayer", - "android": "destroy", "ios": "destroyMediaPlayer:", "macos": "destroyMediaPlayer:", "parent_class": "IRtcEngine", "toc": "toc_mediaplayer_initialize" }, + "destroy_IMediaPlayer": { + "android": "destroy", + "parent_class": "IMediaPlayer", + "toc": "toc_mediaplayer_initialize" + }, "adjustPlayoutVolume": { "windows": "adjustPlayoutVolume", "android": "adjustPlayoutVolume", @@ -935,8 +951,8 @@ "stop": { "windows": "stop", "android": "stop [1/2]", - "ios": "stop", - "macos": "stop", + "ios": "stop:", + "macos": "stop:", "parent_class": "IMediaPlayer", "toc": "toc_mediaplayer_control", "isOverload": true, @@ -1096,7 +1112,7 @@ }, "SetRenderMode_CanvasConfig": { "windows": "SetRenderMode", - "android": "setRenderMode", + "android": "setVideoRenderMode", "ios": "setVideoMirrorMode:error:", "macos": "setVideoMirrorMode:error:", "parent_class": "CanvasConfig", @@ -1120,7 +1136,7 @@ }, "GetMirrorMode": { "windows": "GetMirrorMode", - "android": "getVideoRenderMode", + "android": "getVideoMirrorMode", "ios": "videoMirrorMode:", "macos": "videoMirrorMode:", "parent_class": "CanvasConfig", @@ -1323,8 +1339,8 @@ "Stop_Player": { "windows": "Stop", "android": "stop", - "ios": "pause:", - "macos": "pause:", + "ios": "stop:", + "macos": "stop:", "parent_class": "Player", "toc": "toc_rte_player" }, @@ -1347,85 +1363,85 @@ "State": { "windows": "State", "android": "state", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "Duration": { "windows": "Duration", "android": "duration", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "StreamCount": { "windows": "StreamCount", "android": "streamCount", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "HasAudio": { "windows": "HasAudio", "android": "hasAudio", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "HasVideo": { "windows": "HasVideo", "android": "hasVideo", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "IsAudioMuted": { "windows": "IsAudioMuted", "android": "isAudioMuted", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "IsVideoMuted": { "windows": "IsVideoMuted", "android": "isVideoMuted", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "VideoHeight": { "windows": "VideoHeight", "android": "videoHeight", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "VideoWidth": { "windows": "VideoWidth", "android": "videoWidth", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "AbrSubscriptionLayer": { "windows": "AbrSubscriptionLayer", "android": "abrSubscriptionLayer", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "AudioSampleRate": { "windows": "AudioSampleRate", "android": "audioSampleRate", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "AudioChannels": { "windows": "AudioChannels", - "android": "AudioChannels", - "parent_class": "playerinfo", + "android": "audioChannels", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "AudioBitsPerSample": { "windows": "AudioBitsPerSample", "android": "audioBitsPerSample", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "CurrentUrl": { "windows": "CurrentUrl", "android": "currentUrl", - "parent_class": "playerinfo", + "parent_class": "RtePlayerInfo", "toc": "toc_rte_player" }, "SetPlaybackSpeed": { @@ -2055,10 +2071,14 @@ "toc": "toc_video_enhance_option" }, "registerFaceInfoObserver": { - "windows": "registerFaceInfoObserver", "android": "registerFaceInfoObserver", "ios": "setFaceInfoDelegate:", "macos": "setFaceInfoDelegate:", + "parent_class": "IRtcEngine", + "toc": "toc_speech_driven" + }, + "registerFaceInfoObserver_IMediaEngine": { + "windows": "registerFaceInfoObserver", "parent_class": "IMediaEngine", "toc": "toc_speech_driven" }, @@ -2121,7 +2141,7 @@ "android": "joinChannelWithUserAccountEx", "ios": "joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:", "macos": "joinChannelExByToken:channelId:userAccount:delegate:mediaOptions:joinSuccess:", - "parent_class": "IRtcEngine", + "parent_class": "IRtcEngineEx", "toc": "toc_channel" }, "getUserInfoByUid": { @@ -2786,11 +2806,27 @@ }, "preloadEffect": { "windows": "preloadEffect", - "android": "preloadEffect", + "android": "preloadEffect [1/2]", + "ios": "preloadEffect:filePath:startPos", + "macos": "preloadEffect:filePath:startPos", + "parent_class": "IRtcEngine", + "toc": "toc_audio_effect_file", + "isOverload": true, + "params": { + "windows": ["soundId", "filePath", "startPos"], + "android": ["soundId", "filePath"], + "ios": ["soundId", "filePath"], + "macos": ["soundId", "filePath"] + } + }, + "preloadEffect2": { + "android": "preloadEffect [2/2]", "ios": "preloadEffect:filePath:", "macos": "preloadEffect:filePath:", "parent_class": "IRtcEngine", - "toc": "toc_audio_effect_file" + "toc": "toc_audio_effect_file", + "isOverload": true, + "params": {} }, "unloadEffect": { "windows": "unloadEffect", @@ -2990,7 +3026,6 @@ "toc": "toc_sound_position" }, "muteLocalAudioStream_IBaseSpatialAudioEngine": { - "windows": "muteLocalAudioStream", "android": "muteLocalAudioStream", "ios": "muteLocalAudioStream:", "macos": "muteLocalAudioStream:", @@ -2998,7 +3033,6 @@ "toc": "toc_spatial_audio" }, "muteAllRemoteAudioStreams_IBaseSpatialAudioEngine": { - "windows": "muteAllRemoteAudioStreams", "android": "muteAllRemoteAudioStreams", "ios": "muteAllRemoteAudioStreams:", "macos": "muteAllRemoteAudioStreams:", @@ -3006,14 +3040,12 @@ "toc": "toc_spatial_audio" }, "release_IBaseSpatialAudioEngine": { - "windows": "release", "ios": "destroy", "macos": "destroy", "parent_class": "IBaseSpatialAudioEngine", "toc": "toc_spatial_audio" }, "setAudioRecvRange": { - "windows": "setAudioRecvRange", "android": "setAudioRecvRange", "ios": "setAudioRecvRange:", "macos": "setAudioRecvRange:", @@ -3021,7 +3053,6 @@ "toc": "toc_spatial_audio" }, "setDistanceUnit": { - "windows": "setDistanceUnit", "android": "setDistanceUnit", "ios": "setDistanceUnit:", "macos": "setDistanceUnit:", @@ -3029,7 +3060,6 @@ "toc": "toc_spatial_audio" }, "setMaxAudioRecvCount": { - "windows": "setMaxAudioRecvCount", "android": "setMaxAudioRecvCount", "ios": "setMaxAudioRecvCount:", "macos": "setMaxAudioRecvCount:", @@ -3037,7 +3067,6 @@ "toc": "toc_spatial_audio" }, "updatePlayerPositionInfo": { - "windows": "updatePlayerPositionInfo", "android": "updatePlayerPositionInfo", "ios": "updatePlayerPositionInfo:positionInfo:", "macos": "updatePlayerPositionInfo:positionInfo:", @@ -3045,7 +3074,6 @@ "toc": "toc_spatial_audio" }, "updateSelfPosition": { - "windows": "updateSelfPosition", "android": "updateSelfPosition", "ios": "updateSelfPosition:axisForward:axisRight:axisUp:", "macos": "updateSelfPosition:axisForward:axisRight:axisUp:", @@ -3053,7 +3081,6 @@ "toc": "toc_spatial_audio" }, "setZones": { - "windows": "setZones", "android": "setZones", "ios": "setZones:", "macos": "setZones:", @@ -3061,7 +3088,6 @@ "toc": "toc_spatial_audio" }, "setPlayerAttenuation": { - "windows": "setPlayerAttenuation", "android": "setPlayerAttenuation", "ios": "setPlayerAttenuation:playerId:forceSet:", "macos": "setPlayerAttenuation:playerId:forceSet:", @@ -3069,7 +3095,6 @@ "toc": "toc_spatial_audio" }, "muteRemoteAudioStream_IBaseSpatialAudioEngine": { - "windows": "muteRemoteAudioStream", "ios": "muteRemoteAudioStream:mute:", "macos": "muteRemoteAudioStream:mute:", "parent_class": "IBaseSpatialAudioEngine", @@ -3493,15 +3518,39 @@ "toc": "toc_video_custom_capturenrendering" }, "setExternalVideoSource": { - "windows": "setExternalVideoSource", - "android": "setExternalVideoSource", + "android": "setExternalVideoSource [1/2]", "ios": "setExternalVideoSource:useTexture:sourceType:", "macos": "setExternalVideoSource:useTexture:sourceType:", + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering", + "isOverload": true, + "params": { + "windows": ["enabled", "useTexture", "sourceType", "encodedVideoOption"], + "android": ["enable", "useTexture", "sourceType"], + "ios": ["enable", "useTexture", "sourceType"], + "macos": ["enable", "useTexture", "sourceType"] + } + }, + "setExternalVideoSource2": { + "android": "setExternalVideoSource [2/2]", + "ios": "setExternalVideoSource:useTexture:sourceType:encodedVideoTrackOption:", + "macos": "setExternalVideoSource:useTexture:sourceType:encodedVideoTrackOption:", + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering", + "isOverload": true, + "params": {} + }, + "setExternalVideoSource_IMediaEngine": { + "windows": "setExternalVideoSource", "parent_class": "IMediaEngine", "toc": "toc_video_custom_capturenrendering" }, - "pushVideoFrame": { + "pushVideoFrame_IMediaEngine": { "windows": "pushVideoFrame", + "parent_class": "IMediaEngine", + "toc": "toc_video_custom_capturenrendering" + }, + "pushVideoFrame": { "android": "pushExternalVideoFrameById [1/2]", "ios": "pushExternalVideoFrame:videoTrackId:", "macos": "pushExternalVideoFrame:videoTrackId:", @@ -3512,7 +3561,45 @@ "ios": ["frame", "videoTrackId"], "macos": ["frame", "videoTrackId"] }, - "parent_class": "IMediaEngine", + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering" + }, + "pushVideoFrame2": { + "android": "pushExternalVideoFrame [1/2]", + "ios": "pushExternalVideoFrame:", + "macos": "pushExternalVideoFrame:", + "isOverload": true, + "params": { + "windows": ["frame"], + "android": ["frame"], + "ios": ["frame"], + "macos": ["frame"] + }, + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering" + }, + "pushVideoFrame3": { + "android": "pushExternalVideoFrameById [2/2]", + "isOverload": true, + "params": { + "windows": ["frame", "videoTrackId"], + "android": ["frame", "videoTrackId"], + "ios": ["frame", "videoTrackId"], + "macos": ["frame", "videoTrackId"] + }, + "parent_class": "IRtcEngine", + "toc": "toc_video_custom_capturenrendering" + }, + "pushVideoFrame4": { + "android": "pushExternalVideoFrame [2/2]", + "isOverload": true, + "params": { + "windows": ["frame"], + "android": ["frame"], + "ios": ["frame"], + "macos": ["frame"] + }, + "parent_class": "IRtcEngine", "toc": "toc_video_custom_capturenrendering" }, "getCurrentMonotonicTimeInMs": { @@ -3524,18 +3611,26 @@ "toc": "toc_network" }, "createCustomAudioTrack": { - "windows": "createCustomAudioTrack", "android": "createCustomAudioTrack", "ios": "createCustomAudioTrack:config:", "macos": "createCustomAudioTrack:config:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "createCustomAudioTrack_IMediaEngine": { + "windows": "createCustomAudioTrack", "parent_class": "IMediaEngine", "toc": "toc_audio_custom_capturenrendering" }, "destroyCustomAudioTrack": { - "windows": "destroyCustomAudioTrack", "android": "destroyCustomAudioTrack", "ios": "destroyCustomAudioTrack:", "macos": "destroyCustomAudioTrack:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "destroyCustomAudioTrack_IMediaEngine": { + "windows": "destroyCustomAudioTrack", "parent_class": "IMediaEngine", "toc": "toc_audio_custom_capturenrendering" }, @@ -3559,8 +3654,12 @@ "parent_class": "IMediaEngine", "toc": "toc_audio_custom_capturenrendering" }, - "setExternalAudioSource2": { + "setExternalAudioSource_IMediaEngine": { "windows": "setExternalAudioSource", + "parent_class": "IMediaEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "setExternalAudioSource2": { "android": "setExternalAudioSource [2/2]", "ios": "setExternalAudioSource:sampleRate:channels:localPlayback:publish:", "macos": "setExternalAudioSource:sampleRate:channels:localPlayback:publish:", @@ -3571,7 +3670,7 @@ "ios": ["enabled", "sampleRate", "channels", "localPlayback", "publish"], "macos": ["enabled", "sampleRate", "channels", "localPlayback", "publish"] }, - "parent_class": "IMediaEngine", + "parent_class": "IRtcEngine", "toc": "toc_audio_custom_capturenrendering" }, "startLocalAudioMixer": { @@ -3627,15 +3726,23 @@ "toc": "toc_camera_capture" }, "setExternalAudioSink": { - "windows": "setExternalAudioSink", "android": "setExternalAudioSink", "ios": "enableExternalAudioSink:sampleRate:channels:", "macos": "enableExternalAudioSink:sampleRate:channels:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "setExternalAudioSink_IMediaEngine": { + "windows": "setExternalAudioSink", "parent_class": "IMediaEngine", "toc": "toc_audio_custom_capturenrendering" }, - "pullAudioFrame": { + "pullAudioFrame_IMediaEngine": { "windows": "pullAudioFrame", + "parent_class": "IMediaEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "pullAudioFrame": { "android": "pullPlaybackAudioFrame [1/2]", "ios": "pullPlaybackAudioFrameRawData:lengthInByte:", "macos": "pullPlaybackAudioFrameRawData:lengthInByte:", @@ -3646,7 +3753,19 @@ "ios": ["data", "lengthInByte"], "macos": ["data", "lengthInByte"] }, - "parent_class": "IMediaEngine", + "parent_class": "IRtcEngine", + "toc": "toc_audio_custom_capturenrendering" + }, + "pullAudioFrame2": { + "android": "pullPlaybackAudioFrame [2/2]", + "isOverload": true, + "params": { + "windows": ["data"], + "android": ["data", "lengthInByte"], + "ios": ["data", "lengthInByte"], + "macos": ["data", "lengthInByte"] + }, + "parent_class": "IRtcEngine", "toc": "toc_audio_custom_capturenrendering" }, "registerAudioEncodedFrameObserver": { @@ -3681,12 +3800,16 @@ "parent_class": "IAudioEncodedFrameObserver", "toc": "toc_audio_encoded" }, - "registerAudioFrameObserver": { + "registerAudioFrameObserver_IMediaEngine": { "windows": "registerAudioFrameObserver", + "parent_class": "IMediaEngine", + "toc": "toc_audio_raw" + }, + "registerAudioFrameObserver": { "android": "registerAudioFrameObserver", "ios": "setAudioFrameDelegate:", "macos": "setAudioFrameDelegate:", - "parent_class": "IMediaEngine", + "parent_class": "IRtcEngine", "toc": "toc_audio_raw" }, "setRecordingAudioFrameParameters": { @@ -3728,33 +3851,49 @@ "parent_class": "IRtcEngine", "toc": "toc_audio_raw" }, + "onFrame_IMediaPlayerAudioFrameObserver": { + "android": "onFrame", + "parent_class": "IMediaPlayerAudioFrameObserver", + "toc": "toc_mediaplayer_observer" + }, + "onFrame_IMediaPlayerVideoFrameObserver": { + "android": "onFrame", + "parent_class": "IMediaPlayerVideoFrameObserver", + "toc": "toc_mediaplayer_observer" + }, "onFrame_IAudioPcmFrameSink": { "windows": "onFrame", - "android": "onFrame", "ios": "AgoraRtcMediaPlayer:didReceiveAudioFrame:", "macos": "AgoraRtcMediaPlayer:didReceiveAudioFrame:", "parent_class": "IAudioPcmFrameSink", "toc": "toc_mediaplayer_observer" }, "registerVideoFrameObserver": { - "windows": "registerVideoFrameObserver", "android": "registerVideoFrameObserver", "ios": "setVideoFrameDelegate:", "macos": "setVideoFrameDelegate:", + "parent_class": "IRtcEngine", + "toc": "toc_video_raw" + }, + "registerVideoFrameObserver_IMediaEngine": { + "windows": "registerVideoFrameObserver", "parent_class": "IMediaEngine", "toc": "toc_video_raw" }, "registerVideoEncodedFrameObserver": { - "windows": "registerVideoEncodedFrameObserver", "android": "registerVideoEncodedFrameObserver", "ios": "setEncodedVideoFrameDelegate:", "macos": "setEncodedVideoFrameDelegate:", + "parent_class": "IRtcEngine", + "toc": "toc_video_encoded" + }, + "registerVideoEncodedFrameObserver_IMediaEngine": { + "windows": "registerVideoEncodedFrameObserver", "parent_class": "IMediaEngine", "toc": "toc_video_encoded" }, "onFrame_IVideoFrameObserver": { "windows": "onFrame", - "android": "onFrame", "ios": "AgoraRtcMediaPlayer:didReceiveVideoFrame:", "macos": "AgoraRtcMediaPlayer:didReceiveVideoFrame:", "parent_class": "IVideoFrameObserver", @@ -4272,34 +4411,50 @@ "toc": "toc_audio_device" }, "startPlaybackDeviceTest": { - "windows": "startPlaybackDeviceTest", "android": "startPlaybackDeviceTest", "ios": "startPlaybackDeviceTest:", "macos": "startPlaybackDeviceTest:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, + "startPlaybackDeviceTest_IAudioDeviceManager": { + "windows": "startPlaybackDeviceTest", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, "stopPlaybackDeviceTest": { - "windows": "stopPlaybackDeviceTest", "android": "stopPlaybackDeviceTest", "ios": "stopPlaybackDeviceTest", "macos": "stopPlaybackDeviceTest", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, + "stopPlaybackDeviceTest_IAudioDeviceManager": { + "windows": "stopPlaybackDeviceTest", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, "startRecordingDeviceTest": { - "windows": "startRecordingDeviceTest", "android": "startRecordingDeviceTest", "ios": "startRecordingDeviceTest:", "macos": "startRecordingDeviceTest:", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, + "startRecordingDeviceTest_IAudioDeviceManager": { + "windows": "startRecordingDeviceTest", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, "stopRecordingDeviceTest": { - "windows": "stopRecordingDeviceTest", "android": "stopRecordingDeviceTest", "ios": "stopRecordingDeviceTest", "macos": "stopRecordingDeviceTest", + "parent_class": "IRtcEngine", + "toc": "toc_audio_device" + }, + "stopRecordingDeviceTest_IAudioDeviceManager": { + "windows": "stopRecordingDeviceTest", "parent_class": "IAudioDeviceManager", "toc": "toc_audio_device" }, @@ -4676,7 +4831,6 @@ }, "release_IMusicContentCenter": { "windows": "release", - "android": "release", "parent_class": "IMusicContentCenter", "toc": "toc_drm" }, @@ -4970,32 +5124,13 @@ "parent_class": "IRtcEngine", "toc": "toc_network" }, - "setParameters_IAgoraParameter": { - "windows": "setParameters [2/2]", - "parent_class": "IAgoraParameter", - "toc": "toc_network", - "isOverload": true, - "params": { - "windows": ["parameters"], - "android": ["parameters"], - "ios": ["parameters"], - "macos": ["parameters"] - } - }, "setParameters": { - "windows": "setParameters [1/2]", + "windows": "setParameters", "android": "setParameters", "ios": "setParameters:", "macos": "setParameters:", "parent_class": "IRtcEngine", - "toc": "toc_network", - "isOverload": true, - "params": { - "windows": ["parameters"], - "android": ["parameters"], - "ios": ["options"], - "macos": ["options"] - } + "toc": "toc_network" }, "sendCustomReportMessage": { "windows": "sendCustomReportMessage", @@ -5532,17 +5667,25 @@ "onReadData": { "windows": "onReadData", "android": "onReadData", + "parent_class": "IMediaPlayerCustomDataProvider", + "toc": "toc_mediaplayer_observer" + }, + "AgoraRtcMediaPlayerCustomSourceOnReadCallback": { "ios": "AgoraRtcMediaPlayerCustomSourceOnReadCallback", "macos": "AgoraRtcMediaPlayerCustomSourceOnReadCallback", - "parent_class": "IMediaPlayerCustomDataProvider", + "parent_class": "IMediaPlayer", "toc": "toc_mediaplayer_observer" }, "onSeek": { "windows": "onSeek", "android": "onSeek", + "parent_class": "IMediaPlayerCustomDataProvider", + "toc": "toc_mediaplayer_control" + }, + "AgoraRtcMediaPlayerCustomSourceOnSeekCallback": { "ios": "AgoraRtcMediaPlayerCustomSourceOnSeekCallback", "macos": "AgoraRtcMediaPlayerCustomSourceOnSeekCallback", - "parent_class": "IMediaPlayerCustomDataProvider", + "parent_class": "IMediaPlayer", "toc": "toc_mediaplayer_control" }, "onPlayBufferUpdated": { @@ -5744,66 +5887,98 @@ "toc": "toc_audio_spectrum" }, "onRecordAudioFrame": { - "windows": "onRecordAudioFrame", "android": "onRecordAudioFrame", "ios": "onRecordAudioFrame:channelId:", "macos": "onRecordAudioFrame:channelId:", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "onRecordAudioFrame_IAudioFrameObserverBase": { + "windows": "onRecordAudioFrame", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "onPlaybackAudioFrame": { - "windows": "onPlaybackAudioFrame", "android": "onPlaybackAudioFrame", "ios": "onPlaybackAudioFrame:channelId:", "macos": "onPlaybackAudioFrame:channelId:", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "onPlaybackAudioFrame_IAudioFrameObserverBase": { + "windows": "onPlaybackAudioFrame", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "onPlaybackAudioFrameBeforeMixing": { - "windows": "onPlaybackAudioFrameBeforeMixing", "android": "onPlaybackAudioFrameBeforeMixing", "ios": "onPlaybackAudioFrameBeforeMixing:channelId:uid:", "macos": "onPlaybackAudioFrameBeforeMixing:channelId:uid:", "parent_class": "IAudioFrameObserver", "toc": "toc_audio_raw" }, + "onPlaybackAudioFrameBeforeMixing_IAudioFrameObserverBase": { + "windows": "onPlaybackAudioFrameBeforeMixing", + "parent_class": "IAudioFrameObserverBase", + "toc": "toc_audio_raw" + }, "onMixedAudioFrame": { - "windows": "onMixedAudioFrame", "android": "onMixedAudioFrame", "ios": "onMixedAudioFrame:channelId:", "macos": "onMixedAudioFrame:channelId:", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "onMixedAudioFrame_IAudioFrameObserverBase": { + "windows": "onMixedAudioFrame", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "getObservedAudioFramePosition": { - "windows": "getObservedAudioFramePosition", "android": "getObservedAudioFramePosition", "ios": "getObservedAudioFramePosition", "macos": "getObservedAudioFramePosition", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "getObservedAudioFramePosition_IAudioFrameObserverBase": { + "windows": "getObservedAudioFramePosition", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "getRecordAudioParams": { - "windows": "getRecordAudioParams", "android": "getRecordAudioParams", "ios": "getRecordAudioParams", "macos": "getRecordAudioParams", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "getRecordAudioParams_IAudioFrameObserverBase": { + "windows": "getRecordAudioParams", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "getMixedAudioParams": { - "windows": "getMixedAudioParams", "android": "getMixedAudioParams", "ios": "getMixedAudioParams", "macos": "getMixedAudioParams", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "getMixedAudioParams_IAudioFrameObserverBase": { + "windows": "getMixedAudioParams", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "getPlaybackAudioParams": { - "windows": "getPlaybackAudioParams", "android": "getPlaybackAudioParams", "ios": "getPlaybackAudioParams", "macos": "getPlaybackAudioParams", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "getPlaybackAudioParams_IAudioFrameObserverBase": { + "windows": "getPlaybackAudioParams", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, @@ -5980,18 +6155,26 @@ "toc": "toc_snapshot" }, "onEarMonitoringAudioFrame": { - "windows": "onEarMonitoringAudioFrame", "android": "onEarMonitoringAudioFrame", "ios": "onEarMonitoringAudioFrame:", "macos": "onEarMonitoringAudioFrame:", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "onEarMonitoringAudioFrame_IAudioFrameObserverBase": { + "windows": "onEarMonitoringAudioFrame", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, "getEarMonitoringAudioParams": { - "windows": "getEarMonitoringAudioParams", "android": "getEarMonitoringAudioParams", "ios": "getEarMonitoringAudioParams", "macos": "getEarMonitoringAudioParams", + "parent_class": "IAudioFrameObserver", + "toc": "toc_audio_raw" + }, + "getEarMonitoringAudioParams_IAudioFrameObserverBase": { + "windows": "getEarMonitoringAudioParams", "parent_class": "IAudioFrameObserverBase", "toc": "toc_audio_raw" }, @@ -6133,19 +6316,6 @@ "parent_class": "WatermarkOptions", "toc": "toc_watermark" }, - "destroy1": { - "android": "destroy [2/2]", - "ios": "destroy:", - "macos": "destroy:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_initialize", - "params": { - "android": ["callback"], - "ios": ["engineReleasedBlock"], - "macos": ["engineReleasedBlock"] - } - }, "getPlaySrc": { "android": "getPlaySrc [2/2]", "parent_class": "IMusicPlayer", @@ -6501,44 +6671,6 @@ "parent_class": "IRtcEngine", "toc": "toc_network" }, - "pushVideoFrame2": { - "android": "pushExternalVideoFrame [1/2]", - "ios": "pushExternalVideoFrame:", - "macos": "pushExternalVideoFrame:", - "isOverload": true, - "params": { - "windows": ["frame"], - "android": ["frame"], - "ios": ["frame"], - "macos": ["frame"] - }, - "parent_class": "IRtcEngine", - "toc": "toc_video_custom_capturenrendering" - }, - "pushVideoFrame3": { - "android": "pushExternalVideoFrameById [2/2]", - "isOverload": true, - "params": { - "windows": ["frame", "videoTrackId"], - "android": ["frame", "videoTrackId"], - "ios": ["frame", "videoTrackId"], - "macos": ["frame", "videoTrackId"] - }, - "parent_class": "IRtcEngine", - "toc": "toc_video_custom_capturenrendering" - }, - "pushVideoFrame4": { - "android": "pushExternalVideoFrame [2/2]", - "isOverload": true, - "params": { - "windows": ["frame"], - "android": ["frame"], - "ios": ["frame"], - "macos": ["frame"] - }, - "parent_class": "IRtcEngine", - "toc": "toc_video_custom_capturenrendering" - }, "isTextureEncodeSupported": { "android": "isTextureEncodeSupported", "parent_class": "IRtcEngine", @@ -6572,18 +6704,6 @@ "parent_class": "IRtcEngine", "toc": "toc_audio_custom_capturenrendering" }, - "pullAudioFrame2": { - "android": "pullPlaybackAudioFrame [2/2]", - "isOverload": true, - "params": { - "windows": ["data"], - "android": ["data", "lengthInByte"], - "ios": ["data", "lengthInByte"], - "macos": ["data", "lengthInByte"] - }, - "parent_class": "IRtcEngine", - "toc": "toc_audio_custom_capturenrendering" - }, "addExtension": { "android": "addExtension", "parent_class": "IRtcEngine", @@ -6635,7 +6755,7 @@ "params": {} }, "destroy_IMusicContentCenter": { - "android": "destroy [2/2]", + "android": "destroy", "ios": "destroy", "parent_class": "IMusicContentCenter", "isOverload": true, @@ -6643,7 +6763,7 @@ "params": {} }, "destroy_IMusicPlayer": { - "android": "destroy [1/2]", + "android": "destroy", "parent_class": "IMusicPlayer", "isOverload": true, "toc": "toc_drm", @@ -6734,12 +6854,12 @@ "initWithSize": { "ios": "initWithSize:frameRate:bitrate:orientationMode:mirrorMode:", "macos": "initWithSize:frameRate:bitrate:orientationMode:mirrorMode:", - "parent_class": "agoravideoencoderconfiguration" + "parent_class": "VideoEncoderConfiguration" }, "initWithWidth": { "ios": "initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode:", "macos": "initWithWidth:height:frameRate:bitrate:orientationMode:mirrorMode:", - "parent_class": "agoravideoencoderconfiguration" + "parent_class": "VideoEncoderConfiguration" }, "setVideoProfile2": { "ios": "setVideoResolution:andFrameRate:bitrate:", @@ -6951,36 +7071,6 @@ "macos": ["sourceType"] } }, - "setFaceShapeAreaOptions": { - "windows": "setFaceShapeAreaOptions", - "android": "setFaceShapeAreaOptions [1/2]", - "ios": "setFaceShapeAreaOptions:", - "macos": "setFaceShapeAreaOptions:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_video_enhance_option", - "params": { - "windows": ["options", "type"], - "android": ["options", "sourceType"], - "ios": ["options", "sourceType"], - "macos": ["options", "sourceType"] - } - }, - "setFaceShapeBeautyOptions": { - "windows": "setFaceShapeBeautyOptions", - "android": "setFaceShapeBeautyOptions [1/2]", - "ios": "setFaceShapeBeautyOptions:options:", - "macos": "setFaceShapeBeautyOptions:options:", - "isOverload": true, - "parent_class": "IRtcEngine", - "toc": "toc_video_enhance_option", - "params": { - "windows": ["enabled", "options", "type"], - "android": ["enabled", "options", "sourceType"], - "ios": ["enable", "options", "sourceType"], - "macos": ["enable", "options", "sourceType"] - } - }, "setAVSyncSource": { "windows": "setAVSyncSource", "android": "setAVSyncSource", @@ -7020,13 +7110,28 @@ "toc": "toc_video_enhance_option", "params": {} }, - "setFaceShapeAreaOptions2": { - "android": "setFaceShapeAreaOptions [2/2]", + "setFaceShapeAreaOptions": { + "windows": "setFaceShapeAreaOptions", + "android": "setFaceShapeAreaOptions [1/2]", "ios": "setFaceShapeAreaOptions:sourceType:", "macos": "setFaceShapeAreaOptions:sourceType:", "isOverload": true, "parent_class": "IRtcEngine", "toc": "toc_video_enhance_option", + "params": { + "windows": ["options", "type"], + "android": ["options", "sourceType"], + "ios": ["options", "sourceType"], + "macos": ["options", "sourceType"] + } + }, + "setFaceShapeAreaOptions2": { + "android": "setFaceShapeAreaOptions [2/2]", + "ios": "setFaceShapeAreaOptions:", + "macos": "setFaceShapeAreaOptions:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_video_enhance_option", "params": { "windows": ["options"], "android": ["options"], @@ -7034,13 +7139,28 @@ "macos": ["options"] } }, - "setFaceShapeBeautyOptions2": { - "android": "setFaceShapeBeautyOptions [2/2]", + "setFaceShapeBeautyOptions": { + "windows": "setFaceShapeBeautyOptions", + "android": "setFaceShapeBeautyOptions [1/2]", "ios": "setFaceShapeBeautyOptions:options:sourceType:", "macos": "setFaceShapeBeautyOptions:options:sourceType:", "isOverload": true, "parent_class": "IRtcEngine", "toc": "toc_video_enhance_option", + "params": { + "windows": ["enabled", "options", "type"], + "android": ["enabled", "options", "sourceType"], + "ios": ["enable", "options", "sourceType"], + "macos": ["enable", "options", "sourceType"] + } + }, + "setFaceShapeBeautyOptions2": { + "android": "setFaceShapeBeautyOptions [2/2]", + "ios": "setFaceShapeBeautyOptions:options:", + "macos": "setFaceShapeBeautyOptions:options:", + "isOverload": true, + "parent_class": "IRtcEngine", + "toc": "toc_video_enhance_option", "params": { "windows": ["enabled", "options"], "android": ["enabled", "options"], @@ -7059,8 +7179,8 @@ "IRtcEngineEx": { "windows": "IRtcEngineEx", "android": "RtcEngineEx", - "ios": "AgoraRtcEngineKitEx", - "macos": "AgoraRtcEngineKitEx" + "ios": "AgoraRtcEngineKit(Ex)", + "macos": "AgoraRtcEngineKit(Ex)" }, "IRtcEngineEventHandler": { "windows": "IRtcEngineEventHandler", @@ -7068,6 +7188,9 @@ "ios": "AgoraRtcEngineDelegate", "macos": "AgoraRtcEngineDelegate" }, + "IRtcEngineEventHandlerEx": { + "windows": "IRtcEngineEventHandlerEx" + }, "IAudioDeviceManager": { "windows": "IAudioDeviceManager" }, @@ -7159,7 +7282,6 @@ "macos": "AgoraAudioSpectrumDelegate" }, "IBaseSpatialAudioEngine": { - "windows": "IBaseSpatialAudioEngine", "android": "IBaseSpatialAudioEngine", "ios": "AgoraSpatialAudioKitBase", "macos": "AgoraSpatialAudioKitBase" @@ -7461,13 +7583,13 @@ }, "LowlightEnhanceOptions": { "windows": "LowlightEnhanceOptions", - "android": "LowlightEnhanceOptions", + "android": "LowLightEnhanceOptions", "ios": "AgoraLowlightEnhanceOptions", "macos": "AgoraLowlightEnhanceOptions" }, "Metadata": { "windows": "Metadata", - "android": "Metadata", + "android": "AgoraMetadata", "ios": "AgoraMetadata", "macos": "AgoraMetadata" }, @@ -7667,7 +7789,6 @@ }, "VideoFrame": { "windows": "VideoFrame", - "android": "VideoFrame", "ios": "AgoraOutputVideoFrame", "macos": "AgoraOutputVideoFrame" }, @@ -7845,8 +7966,8 @@ "Player": { "windows": "Player", "android": "Player", - "ios": "AgoraRtePlayerConfig", - "macos": "AgoraRtePlayerConfig" + "ios": "AgoraRtePlayer", + "macos": "AgoraRtePlayer" }, "PlayerConfig": { "windows": "PlayerConfig", @@ -7925,7 +8046,6 @@ }, "MusicCollection": { "windows": "MusicCollection", - "android": "MusicCollection", "ios": "AgoraMusicCollection" }, "MusicChartCollection": { @@ -7968,4429 +8088,567 @@ }, "RteException": { "android": "RteException" + }, + "AreaCode": { + "android": "AreaCode" + }, + "MusicCacheStatusType": { + "android": "MusicCacheStatusType" + }, + "MusicContentCenterStateReason": { + "android": "MusicContentCenterStateReason" + }, + "PreloadState_android": { + "android": "PreloadState" } }, "enum": { "WATERMARK_FIT_MODE": { "windows": "WATERMARK_FIT_MODE" }, - "FIT_MODE_COVER_POSITION": { - "windows": "FIT_MODE_COVER_POSITION" - }, - "FIT_MODE_USE_IMAGE_RATIO": { - "windows": "FIT_MODE_USE_IMAGE_RATIO" - }, "ALPHA_STITCH_MODE": { "windows": "ALPHA_STITCH_MODE", - "android": "AlphaStitchMode", "ios": "AgoraAlphaStitchMode", "macos": "AgoraAlphaStitchMode" }, - "NO_ALPHA_STITCH": { - "windows": "NO_ALPHA_STITCH", - "android": "ALPHA_NO_STITCH", - "ios": "AgoraNoAlphaStitch", - "macos": "AgoraNoAlphaStitch" - }, - "ALPHA_STITCH_UP": { - "windows": "ALPHA_STITCH_UP", - "android": "ALPHA_STITCH_UP", - "ios": "AgoraAlphaStitchUp", - "macos": "AgoraAlphaStitchUp" - }, - "ALPHA_STITCH_BELOW": { - "windows": "ALPHA_STITCH_BELOW", - "android": "ALPHA_STITCH_BELOW", - "ios": "AgoraAlphaStitchBelow", - "macos": "AgoraAlphaStitchBelow" - }, - "ALPHA_STITCH_LEFT": { - "windows": "ALPHA_STITCH_LEFT", - "android": "ALPHA_STITCH_LEFT", - "ios": "AgoraAlphaStitchLeft", - "macos": "AgoraAlphaStitchLeft" - }, - "ALPHA_STITCH_RIGHT": { - "windows": "ALPHA_STITCH_RIGHT", - "android": "ALPHA_STITCH_RIGHT", - "ios": "AgoraAlphaStitchRight", - "macos": "AgoraAlphaStitchRight" - }, "AREA_CODE": { "windows": "AREA_CODE", - "android": "AreaCode", "ios": "AgoraAreaCodeType", "macos": "AgoraAreaCodeType" }, - "AREA_CODE_CN": { - "windows": "AREA_CODE_CN", - "android": "AREA_CODE_CN", - "ios": "AgoraAreaCodeTypeCN", - "macos": "AgoraAreaCodeTypeCN" - }, - "AREA_CODE_NA": { - "windows": "AREA_CODE_NA", - "android": "AREA_CODE_NA", - "ios": "AgoraAreaCodeTypeNA", - "macos": "AgoraAreaCodeTypeNA" - }, - "AREA_CODE_EU": { - "windows": "AREA_CODE_EU", - "android": "AREA_CODE_EU", - "ios": "AgoraAreaCodeTypeEUR", - "macos": "AgoraAreaCodeTypeEUR" - }, - "AREA_CODE_AS": { - "windows": "AREA_CODE_AS", - "android": "AREA_CODE_AS", - "ios": "AgoraAreaCodeTypeAS", - "macos": "AgoraAreaCodeTypeAS" - }, - "AREA_CODE_JP": { - "windows": "AREA_CODE_JP", - "android": "AREA_CODE_JP", - "ios": "AgoraAreaCodeTypeJP", - "macos": "AgoraAreaCodeTypeJP" - }, - "AREA_CODE_IN": { - "windows": "AREA_CODE_IN", - "android": "AREA_CODE_IN", - "ios": "AgoraAreaCodeTypeIN", - "macos": "AgoraAreaCodeTypeIN" - }, - "AREA_CODE_GLOB": { - "windows": "AREA_CODE_GLOB", - "android": "AREA_CODE_GLOB", - "ios": "AgoraAreaCodeTypeGlobal", - "macos": "AgoraAreaCodeTypeGlobal" - }, "AUDIENCE_LATENCY_LEVEL_TYPE": { "windows": "AUDIENCE_LATENCY_LEVEL_TYPE", "ios": "AgoraAudienceLatencyLevelType", "macos": "AgoraAudienceLatencyLevelType" }, - "AUDIENCE_LATENCY_LEVEL_LOW_LATENCY": { - "windows": "AUDIENCE_LATENCY_LEVEL_LOW_LATENCY", - "android": "AUDIENCE_LATENCY_LEVEL_LOW_LATENCY", - "ios": "AgoraAudienceLatencyLevelLowLatency", - "macos": "AgoraAudienceLatencyLevelLowLatency" - }, - "AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY": { - "windows": "AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY", - "android": "AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY", - "ios": "AgoraAudienceLatencyLevelUltraLowLatency", - "macos": "AgoraAudienceLatencyLevelUltraLowLatency" - }, "AUDIO_AINS_MODE": { "windows": "AUDIO_AINS_MODE", "ios": "AUDIO_AINS_MODE", "macos": "AUDIO_AINS_MODE" }, - "AINS_MODE_BALANCED": { - "windows": "AINS_MODE_BALANCED", - "ios": "AINS_MODE_BALANCED", - "macos": "AINS_MODE_BALANCED" - }, - "AINS_MODE_AGGRESSIVE": { - "windows": "AINS_MODE_AGGRESSIVE", - "ios": "AINS_MODE_AGGRESSIVE", - "macos": "AINS_MODE_AGGRESSIVE" - }, - "AINS_MODE_ULTRALOWLATENCY": { - "windows": "AINS_MODE_ULTRALOWLATENCY", - "ios": "AINS_MODE_ULTRALOWLATENCY", - "macos": "AINS_MODE_ULTRALOWLATENCY" - }, "AUDIO_CODEC_PROFILE_TYPE": { "windows": "AUDIO_CODEC_PROFILE_TYPE", "android": "AudioCodecProfileType", "ios": "AgoraAudioCodecProfileType", "macos": "AgoraAudioCodecProfileType" }, - "AUDIO_CODEC_PROFILE_LC_AAC": { - "windows": "AUDIO_CODEC_PROFILE_LC_AAC", - "android": "LC_AAC", - "ios": "AgoraAudioCodecProfileLCAAC", - "macos": "AgoraAudioCodecProfileLCAAC" - }, - "AUDIO_CODEC_PROFILE_HE_AAC": { - "windows": "AUDIO_CODEC_PROFILE_HE_AAC", - "android": "HE_AAC", - "ios": "AgoraAudioCodecProfileHEAAC", - "macos": "AgoraAudioCodecProfileHEAAC" - }, - "AUDIO_CODEC_PROFILE_HE_AAC_V2": { - "windows": "HE_AAC_V2", - "android": "HE_AAC_V2", - "ios": "AgoraAudioCodecProfileHEAACv2", - "macos": "AgoraAudioCodecProfileHEAACv2" - }, "AUDIO_CODEC_TYPE": { "windows": "AUDIO_CODEC_TYPE", "ios": "AgoraAudioCodecType", "macos": "AgoraAudioCodecType" }, - "AUDIO_CODEC_OPUS": { - "windows": "AUDIO_CODEC_OPUS", - "android": "AUDIO_CODEC_OPUS", - "ios": "AgoraAudioCodecTypeOPUS", - "macos": "AgoraAudioCodecTypeOPUS" - }, - "AUDIO_CODEC_PCMA": { - "windows": "AUDIO_CODEC_PCMA", - "android": "AUDIO_CODEC_PCMA", - "ios": "AUDIO_CODEC_PCMA", - "macos": "AUDIO_CODEC_PCMA" - }, - "AUDIO_CODEC_PCMU": { - "windows": "AUDIO_CODEC_PCMU", - "android": "AUDIO_CODEC_PCMU", - "ios": "AUDIO_CODEC_PCMU", - "macos": "AUDIO_CODEC_PCMU" - }, - "AUDIO_CODEC_G722": { - "windows": "AUDIO_CODEC_G722", - "android": "AUDIO_CODEC_G722", - "ios": "AUDIO_CODEC_G722", - "macos": "AUDIO_CODEC_G722" - }, - "AUDIO_CODEC_AACLC": { - "windows": "AUDIO_CODEC_AACLC", - "android": "AUDIO_CODEC_AACLC", - "ios": "AgoraAudioCodecTypeAACLC", - "macos": "AgoraAudioCodecTypeAACLC" - }, - "AUDIO_CODEC_HEAAC": { - "windows": "AUDIO_CODEC_HEAAC", - "android": "AUDIO_CODEC_HEAAC", - "ios": "AgoraAudioCodecTypeHEAAC", - "macos": "AgoraAudioCodecTypeHEAAC" - }, - "AUDIO_CODEC_JC1": { - "windows": "AUDIO_CODEC_JC1", - "android": "AUDIO_CODEC_JC1", - "ios": "AUDIO_CODEC_JC1", - "macos": "AUDIO_CODEC_JC1" - }, - "AUDIO_CODEC_HEAAC2": { - "windows": "AUDIO_CODEC_HEAAC2", - "android": "AUDIO_CODEC_HEAAC2", - "ios": "AgoraAudioCodecTypeHEAAC2", - "macos": "AgoraAudioCodecTypeHEAAC2" - }, "AUDIO_ENCODED_FRAME_OBSERVER_POSITION": { "windows": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION", "ios": "AgoraAudioEncodedFrameDelegatePosition", "macos": "AgoraAudioEncodedFrameDelegatePosition" }, - "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD": { - "windows": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD", - "android": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIC", - "ios": "AgoraAudioEncodedFrameObserverPositionRecord", - "macos": "AgoraAudioEncodedFrameObserverPositionRecord" - }, - "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK": { - "windows": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK", - "android": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK", - "ios": "AgoraAudioEncodedFrameObserverPositionPlayback", - "macos": "AgoraAudioEncodedFrameObserverPositionPlayback" - }, - "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED": { - "windows": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED", - "android": "AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED", - "ios": "AgoraAudioEncodedFrameObserverPositionMixed", - "macos": "AgoraAudioEncodedFrameObserverPositionMixed" - }, "AUDIO_ENCODING_TYPE": { "windows": "AUDIO_ENCODING_TYPE", "ios": "AgoraAudioEncodingType", "macos": "AgoraAudioEncodingType" }, - "AUDIO_ENCODING_TYPE_AAC_16000_LOW": { - "windows": "AUDIO_ENCODING_TYPE_AAC_16000_LOW", - "android": "AUDIO_ENCODING_TYPE_AAC_16000_LOW", - "ios": "AgoraAudioEncodingTypeAAC16000Low", - "macos": "AgoraAudioEncodingTypeAAC16000Low" - }, - "AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM": { - "windows": "AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM", - "android": "AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM", - "ios": "AgoraAudioEncodingTypeAAC16000Medium", - "macos": "AgoraAudioEncodingTypeAAC16000Medium" - }, - "AUDIO_ENCODING_TYPE_AAC_32000_LOW": { - "windows": "AUDIO_ENCODING_TYPE_AAC_32000_LOW", - "android": "AUDIO_ENCODING_TYPE_AAC_32000_LOW", - "ios": "AgoraAudioEncodingTypeAAC32000Low", - "macos": "AgoraAudioEncodingTypeAAC32000Low" - }, - "AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM": { - "windows": "AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM", - "android": "AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM", - "ios": "AgoraAudioEncodingTypeAAC32000Medium", - "macos": "AgoraAudioEncodingTypeAAC32000Medium" - }, - "AUDIO_ENCODING_TYPE_AAC_32000_HIGH": { - "windows": "AUDIO_ENCODING_TYPE_AAC_32000_HIGH", - "android": "AUDIO_ENCODING_TYPE_AAC_32000_HIGH", - "ios": "AgoraAudioEncodingTypeAAC32000High", - "macos": "AgoraAudioEncodingTypeAAC32000High" - }, - "AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM": { - "windows": "AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM", - "android": "AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM", - "ios": "AgoraAudioEncodingTypeAAC48000Medium", - "macos": "AgoraAudioEncodingTypeAAC48000Medium" - }, - "AUDIO_ENCODING_TYPE_AAC_48000_HIGH": { - "windows": "AUDIO_ENCODING_TYPE_AAC_48000_HIGH", - "android": "AUDIO_ENCODING_TYPE_AAC_48000_HIGH", - "ios": "AgoraAudioEncodingTypeAAC48000High", - "macos": "AgoraAudioEncodingTypeAAC48000High" - }, - "AUDIO_ENCODING_TYPE_OPUS_16000_LOW": { - "windows": "AUDIO_ENCODING_TYPE_OPUS_16000_LOW", - "android": "AUDIO_ENCODING_TYPE_OPUS_16000_LOW", - "ios": "AgoraAudioEncodingTypeOPUS16000Low", - "macos": "AgoraAudioEncodingTypeOPUS16000Low" - }, - "AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM": { - "windows": "AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM", - "android": "AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM", - "ios": "AgoraAudioEncodingTypeOPUS6000Medium", - "macos": "AgoraAudioEncodingTypeOPUS6000Medium" - }, - "AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM": { - "windows": "AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM", - "android": "AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM", - "ios": "AgoraAudioEncodingTypeOPUS48000Medium", - "macos": "AgoraAudioEncodingTypeOPUS48000Medium" - }, - "AUDIO_ENCODING_TYPE_OPUS_48000_HIGH": { - "windows": "AUDIO_ENCODING_TYPE_OPUS_48000_HIGH", - "android": "AUDIO_ENCODING_TYPE_OPUS_48000_HIGH", - "ios": "AgoraAudioEncodingTypeOPUS48000High", - "macos": "AgoraAudioEncodingTypeOPUS48000High" - }, "AUDIO_EFFECT_PRESET": { "windows": "AUDIO_EFFECT_PRESET", "ios": "AgoraAudioEffectPreset", "macos": "AgoraAudioEffectPreset" }, - "AUDIO_EFFECT_OFF": { - "windows": "AUDIO_EFFECT_OFF", - "android": "AUDIO_EFFECT_OFF", - "ios": "AgoraAudioEffectPresetOff", - "macos": "AgoraAudioEffectPresetOff" - }, "AUDIO_SOURCE_TYPE": { "windows": "AUDIO_SOURCE_TYPE", "android": "AudioSourceType", "ios": "AgoraAudioSourceType", "macos": "AgoraAudioSourceType" }, - "AUDIO_SOURCE_MICROPHONE": { - "windows": "AUDIO_SOURCE_MICROPHONE", - "android": "AUDIO_SOURCE_MICROPHONE", - "ios": "AgoraAudioSourceMicrophone", - "macos": "AgoraAudioSourceMicrophone" - }, - "AUDIO_SOURCE_CUSTOM": { - "windows": "AUDIO_SOURCE_CUSTOM", - "android": "AUDIO_SOURCE_CUSTOM", - "ios": "AgoraAudioSourceCustom", - "macos": "AgoraAudioSourceCustom" - }, - "AUDIO_SOURCE_MEDIA_PLAYER": { - "windows": "AUDIO_SOURCE_MEDIA_PLAYER", - "android": "AUDIO_SOURCE_MEDIA_PLAYER", - "ios": "AgoraAudioSourceMediaPlayer", - "macos": "AgoraAudioSourceMediaPlayer" - }, - "AUDIO_SOURCE_LOOPBACK_RECORDING": { - "windows": "AUDIO_SOURCE_LOOPBACK_RECORDING", - "android": "AUDIO_SOURCE_LOOPBACK_RECORDING", - "ios": "AgoraAudioSourceLoopbackRecording", - "macos": "AgoraAudioSourceLoopbackRecording" - }, - "AUDIO_SOURCE_MIXED_STREAM": { - "windows": "AUDIO_SOURCE_MIXED_STREAM", - "android": "AUDIO_SOURCE_MIXED_STREAM", - "ios": "AgoraAudioSourceMixedStream", - "macos": "AgoraAudioSourceMixedStream" - }, - "AUDIO_SOURCE_REMOTE_USER": { - "windows": "AUDIO_SOURCE_REMOTE_USER", - "android": "AUDIO_SOURCE_REMOTE_USER", - "ios": "AgoraAudioSourceRemoteUser", - "macos": "AgoraAudioSourceRemoteUser" - }, - "AUDIO_SOURCE_REMOTE_CHANNEL": { - "windows": "AUDIO_SOURCE_REMOTE_CHANNEL", - "android": "AUDIO_SOURCE_REMOTE_CHANNEL", - "ios": "AgoraAudioSourceRemoteChannel", - "macos": "AgoraAudioSourceRemoteChannel" - }, - "AUDIO_SOURCE_UNKNOWN": { - "windows": "AUDIO_SOURCE_UNKNOWN", - "android": "AUDIO_SOURCE_UNKNOWN", - "ios": "AgoraAudioSourceTypeUnknown", - "macos": "AgoraAudioSourceTypeUnknown" - }, "BACKGROUND_BLUR_DEGREE": { "windows": "BACKGROUND_BLUR_DEGREE", "ios": "AgoraBlurDegree", "macos": "AgoraBlurDegree" }, - "BLUR_DEGREE_LOW": { - "windows": "BLUR_DEGREE_LOW", - "ios": "AgoraBlurLow", - "macos": "AgoraBlurLow" - }, - "BLUR_DEGREE_MEDIUM": { - "windows": "BLUR_DEGREE_MEDIUM", - "ios": "AgoraBlurMedium", - "macos": "AgoraBlurMedium" - }, - "BLUR_DEGREE_HIGH": { - "windows": "BLUR_DEGREE_HIGH", - "ios": "AgoraBlurHigh", - "macos": "AgoraBlurHigh" - }, "BACKGROUND_SOURCE_TYPE": { "windows": "BACKGROUND_SOURCE_TYPE", "ios": "AgoraVirtualBackgroundSourceType", "macos": "AgoraVirtualBackgroundSourceType" }, - "BACKGROUND_NONE": { - "windows": "BACKGROUND_NONE", - "ios": "AgoraVirtualBackgroundNone", - "macos": "AgoraVirtualBackgroundNone" - }, - "BACKGROUND_COLOR": { - "windows": "BACKGROUND_COLOR", - "ios": "AgoraVirtualBackgroundColor", - "macos": "AgoraVirtualBackgroundColor" - }, - "BACKGROUND_IMG": { - "windows": "BACKGROUND_IMG", - "ios": "AgoraVirtualBackgroundImg", - "macos": "AgoraVirtualBackgroundImg" - }, - "BACKGROUND_BLUR": { - "windows": "BACKGROUND_BLUR", - "ios": "AgoraVirtualBackgroundBlur", - "macos": "AgoraVirtualBackgroundBlur" - }, - "BACKGROUND_VIDEO": { - "windows": "BACKGROUND_VIDEO", - "ios": "AgoraVirtualBackgroundVideo", - "macos": "AgoraVirtualBackgroundVideo" - }, - "SAE_DEPLOY_REGION_CN": { - "windows": "SAE_DEPLOY_REGION_CN", - "ios": "AgoraSaeDeployRegionTypeCN", - "macos": "AgoraSaeDeployRegionTypeCN" - }, - "SAE_DEPLOY_REGION_NA": { - "windows": "SAE_DEPLOY_REGION_NA", - "ios": "AgoraSaeDeployRegionTypeNA", - "macos": "AgoraSaeDeployRegionTypeNA" - }, - "SAE_DEPLOY_REGION_EU": { - "windows": "SAE_DEPLOY_REGION_EU", - "ios": "AgoraSaeDeployRegionTypeEU", - "macos": "AgoraSaeDeployRegionTypeEU" - }, - "SAE_DEPLOY_REGION_AS": { - "windows": "SAE_DEPLOY_REGION_AS", - "ios": "AgoraSaeDeployRegionTypeAS", - "macos": "AgoraSaeDeployRegionTypeAS" - }, "CAMERA_STABILIZATION_MODE": { "windows": "CAMERA_STABILIZATION_MODE", "ios": "AgoraCameraStabilizationMode" }, - "CAMERA_STABILIZATION_MODE_OFF": { - "windows": "CAMERA_STABILIZATION_MODE_OFF", - "ios": "AgoraCameraStabilizationModeOff" - }, - "CAMERA_STABILIZATION_MODE_AUTO": { - "windows": "CAMERA_STABILIZATION_MODE_AUTO", - "ios": "AgoraCameraStabilizationModeAuto" - }, - "CAMERA_STABILIZATION_MODE_LEVEL_1": { - "windows": "CAMERA_STABILIZATION_MODE_LEVEL_1", - "ios": "AgoraCameraStabilizationModeLevel1" - }, - "CAMERA_STABILIZATION_MODE_LEVEL_2": { - "windows": "CAMERA_STABILIZATION_MODE_LEVEL_2", - "ios": "AgoraCameraStabilizationModeLevel2" - }, - "CAMERA_STABILIZATION_MODE_LEVEL_3": { - "windows": "CAMERA_STABILIZATION_MODE_LEVEL_3", - "ios": "AgoraCameraStabilizationModeLevel3" - }, "CODEC_CAP_MASK": { "windows": "CODEC_CAP_MASK", "ios": "AgoraCodecCapMask", "macos": "AgoraCodecCapMask" }, - "CODEC_CAP_MASK_NONE": { - "windows": "CODEC_CAP_MASK_NONE", - "ios": "AgoraCodecMaskNone", - "macos": "AgoraCodecMaskNone" - }, - "CODEC_CAP_MASK_HW_DEC": { - "windows": "CODEC_CAP_MASK_HW_DEC", - "ios": "AgoraCodecMaskHwDec", - "macos": "AgoraCodecMaskHwDec" - }, - "CODEC_CAP_MASK_HW_ENC": { - "windows": "CODEC_CAP_MASK_HW_ENC", - "ios": "AgoraCodecMaskHwEnc", - "macos": "AgoraCodecMaskHwEnc" - }, - "CODEC_CAP_MASK_SW_DEC": { - "windows": "CODEC_CAP_MASK_SW_DEC", - "ios": "AgoraCodecMaskSwDec", - "macos": "AgoraCodecMaskSwDec" - }, - "CODEC_CAP_MASK_SW_ENC": { - "windows": "CODEC_CAP_MASK_SW_ENC", - "ios": "AgoraCodecMaskSwEnc", - "macos": "AgoraCodecMaskSwEnc" - }, - "CONTENT_INSPECT_NEUTRAL": { - "windows": "CONTENT_INSPECT_NEUTRAL", - "android": "CONTENT_INSPECT_NEUTRAL", - "ios": "AgoraContentInspectNeutral", - "macos": "AgoraContentInspectNeutral" - }, - "CONTENT_INSPECT_SEXY": { - "windows": "CONTENT_INSPECT_SEXY", - "android": "CONTENT_INSPECT_SEXY", - "ios": "AgoraContentInspectSexy", - "macos": "AgoraContentInspectSexy" - }, - "CONTENT_INSPECT_PORN": { - "windows": "CONTENT_INSPECT_PORN", - "android": "CONTENT_INSPECT_PORN", - "ios": "AgoraContentInspectPorn", - "macos": "AgoraContentInspectPorn" - }, "CONTENT_INSPECT_TYPE": { "windows": "CONTENT_INSPECT_TYPE", "ios": "AgoraContentInspectType", "macos": "AgoraContentInspectType" }, - "CONTENT_INSPECT_INVALID": { - "windows": "CONTENT_INSPECT_INVALID", - "android": "CONTENT_INSPECT_TYPE_INVALID", - "ios": "AgoraContentInspectTypeInvalid", - "macos": "AgoraContentInspectTypeInvalid" - }, - "CONTENT_INSPECT_MODERATION": { - "windows": "CONTENT_INSPECT_MODERATION", - "android": "CONTENT_INSPECT_TYPE_MODERATION", - "ios": "AgoraContentInspectTypeModeration", - "macos": "AgoraContentInspectTypeModeration" - }, - "CONTENT_INSPECT_SUPERVISION": { - "windows": "CONTENT_INSPECT_SUPERVISION", - "android": "CONTENT_INSPECT_TYPE_SUPERVISE", - "ios": "AgoraContentInspectTypeSupervise", - "macos": "AgoraContentInspectTypeSupervise" - }, - "CONTENT_INSPECT_IMAGE_MODERATION": { - "windows": "CONTENT_INSPECT_IMAGE_MODERATION", - "android": "CONTENT_INSPECT_TYPE_IMAGE_MODERATION", - "ios": "AgoraContentInspectTypeImageModeration", - "macos": "AgoraContentInspectTypeImageModeration" - }, "COMPRESSION_PREFERENCE": { "windows": "COMPRESSION_PREFERENCE", "android": "COMPRESSION_PREFERENCE", "ios": "AgoraCompressionPreference", "macos": "AgoraCompressionPreference" }, - "PREFER_COMPRESSION_AUTO": { - "windows": "PREFER_COMPRESSION_AUTO", - "android": "PREFER_COMPRESSION_AUTO", - "ios": "AgoraCompressionAuto", - "macos": "AgoraCompressionAuto" - }, - "PREFER_LOW_LATENCY": { - "windows": "PREFER_LOW_LATENCY", - "android": "PREFER_LOW_LATENCY", - "ios": "AgoraCompressionLowLatency", - "macos": "AgoraCompressionLowLatency" - }, - "PREFER_QUALITY": { - "windows": "PREFER_QUALITY", - "android": "PREFER_QUALITY", - "ios": "AgoraCompressionQuality", - "macos": "AgoraCompressionQuality" - }, "EAR_MONITORING_FILTER_TYPE": { "windows": "EAR_MONITORING_FILTER_TYPE", "ios": "AgoraEarMonitoringFilterType", "macos": "AgoraEarMonitoringFilterType" }, - "EAR_MONITORING_FILTER_NONE": { - "windows": "EAR_MONITORING_FILTER_NONE", - "android": "EAR_MONITORING_FILTER_NONE", - "ios": "AgoraEarMonitoringFilterNone", - "macos": "AgoraEarMonitoringFilterNone" - }, - "EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS": { - "windows": "EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS", - "android": "EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS", - "ios": "AgoraEarMonitoringFilterBuiltInAudioFilters", - "macos": "AgoraEarMonitoringFilterBuiltInAudioFilters" - }, - "EAR_MONITORING_FILTER_NOISE_SUPPRESSION": { - "windows": "EAR_MONITORING_FILTER_NOISE_SUPPRESSION", - "android": "EAR_MONITORING_FILTER_NOISE_SUPPRESSION", - "ios": "AgoraEarMonitoringFilterNoiseSuppression", - "macos": "AgoraEarMonitoringFilterNoiseSuppression" - }, - "EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER": { - "windows": "EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER", - "android": "EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER", - "ios": "AgoraEarMonitoringFilterReusePostProcessingFilter", - "macos": "AgoraEarMonitoringFilterReusePostProcessingFilter" - }, "EXTERNAL_VIDEO_SOURCE_TYPE": { "windows": "EXTERNAL_VIDEO_SOURCE_TYPE", "android": "ExternalVideoSourceType", "ios": "AgoraExternalVideoSourceType", "macos": "AgoraExternalVideoSourceType" }, - "VIDEO_FRAME": { - "windows": "VIDEO_FRAME", - "android": "VIDEO_FRAME", - "ios": "AgoraExternalVideoSourceTypeVideoFrame", - "macos": "AgoraExternalVideoSourceTypeVideoFrame" - }, - "ENCODED_VIDEO_FRAME": { - "windows": "ENCODED_VIDEO_FRAME", - "android": "ENCODED_VIDEO_FRAME", - "ios": "AgoraExternalVideoSourceTypeEncodedVideoFrame", - "macos": "AgoraExternalVideoSourceTypeEncodedVideoFrame" - }, - "ROOM_ACOUSTICS_KTV": { - "windows": "ROOM_ACOUSTICS_KTV", - "android": "ROOM_ACOUSTICS_KTV", - "ios": "AgoraAudioEffectPresetRoomAcousticsKTV", - "macos": "AgoraAudioEffectPresetRoomAcousticsKTV" - }, - "ROOM_ACOUSTICS_VOCAL_CONCERT": { - "windows": "ROOM_ACOUSTICS_VOCAL_CONCERT", - "android": "ROOM_ACOUSTICS_VOCAL_CONCERT", - "ios": "AgoraAudioEffectPresetRoomAcousVocalConcer", - "macos": "AgoraAudioEffectPresetRoomAcousVocalConcer" - }, - "ROOM_ACOUSTICS_STUDIO": { - "windows": "ROOM_ACOUSTICS_STUDIO", - "android": "ROOM_ACOUSTICS_STUDIO", - "ios": "AgoraAudioEffectPresetRoomAcousStudio", - "macos": "AgoraAudioEffectPresetRoomAcousStudio" - }, - "ROOM_ACOUSTICS_PHONOGRAPH": { - "windows": "ROOM_ACOUSTICS_PHONOGRAPH", - "android": "ROOM_ACOUSTICS_PHONOGRAPH", - "ios": "AgoraAudioEffectPresetRoomAcousPhonograph", - "macos": "AgoraAudioEffectPresetRoomAcousPhonograph" - }, - "ROOM_ACOUSTICS_VIRTUAL_STEREO": { - "windows": "ROOM_ACOUSTICS_VIRTUAL_STEREO", - "android": "ROOM_ACOUSTICS_VIRTUAL_STEREO", - "ios": "AgoraAudioEffectPresetRoomAcousVirtualStereo", - "macos": "AgoraAudioEffectPresetRoomAcousVirtualStereo" - }, - "ROOM_ACOUSTICS_SPACIAL": { - "windows": "ROOM_ACOUSTICS_SPACIAL", - "android": "ROOM_ACOUSTICS_SPACIAL", - "ios": "AgoraAudioEffectPresetRoomAcousSpatial", - "macos": "AgoraAudioEffectPresetRoomAcousSpatial" - }, - "ROOM_ACOUSTICS_ETHEREAL": { - "windows": "ROOM_ACOUSTICS_ETHEREAL", - "android": "ROOM_ACOUSTICS_ETHEREAL", - "ios": "AgoraAudioEffectPresetRoomAcousEthereal", - "macos": "AgoraAudioEffectPresetRoomAcousEthereal" - }, - "ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND": { - "windows": "ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND", - "android": "ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND", - "ios": "AgoraAudioEffectPresetRoomAcousVirtualSurroundSound", - "macos": "AgoraAudioEffectPresetRoomAcousVirtualSurroundSound" - }, - "ROOM_ACOUSTICS_CHORUS": { - "windows": "ROOM_ACOUSTICS_CHORUS", - "android": "ROOM_ACOUSTICS_CHORUS", - "ios": "AgoraAudioEffectPresetRoomAcousticsChorus", - "macos": "AgoraAudioEffectPresetRoomAcousticsChorus" - }, - "ROOM_ACOUSTICS_3D_VOICE": { - "windows": "ROOM_ACOUSTICS_3D_VOICE", - "android": "ROOM_ACOUSTICS_3D_VOICE", - "ios": "AgoraAudioEffectPresetRoomAcous3DVoice", - "macos": "AgoraAudioEffectPresetRoomAcous3DVoice" - }, - "VOICE_CHANGER_EFFECT_UNCLE": { - "windows": "VOICE_CHANGER_EFFECT_UNCLE", - "android": "VOICE_CHANGER_EFFECT_UNCLE", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectUncle", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectUncle" - }, - "VOICE_CHANGER_EFFECT_OLDMAN": { - "windows": "VOICE_CHANGER_EFFECT_OLDMAN", - "android": "VOICE_CHANGER_EFFECT_OLDMAN", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectOldMan", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectOldMan" - }, - "VOICE_CHANGER_EFFECT_BOY": { - "windows": "VOICE_CHANGER_EFFECT_BOY", - "android": "VOICE_CHANGER_EFFECT_BOY", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectBoy", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectBoy" - }, - "VOICE_CHANGER_EFFECT_SISTER": { - "windows": "VOICE_CHANGER_EFFECT_SISTER", - "android": "VOICE_CHANGER_EFFECT_SISTER", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectSister", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectSister" - }, - "VOICE_CHANGER_EFFECT_GIRL": { - "windows": "VOICE_CHANGER_EFFECT_GIRL", - "android": "VOICE_CHANGER_EFFECT_GIRL", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectGirl", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectGirl" - }, - "VOICE_CHANGER_EFFECT_PIGKING": { - "windows": "VOICE_CHANGER_EFFECT_PIGKING", - "android": "VOICE_CHANGER_EFFECT_PIGKING", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectPigKin", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectPigKin" - }, - "VOICE_CHANGER_EFFECT_HULK": { - "windows": "VOICE_CHANGER_EFFECT_HULK", - "android": "VOICE_CHANGER_EFFECT_HULK", - "ios": "AgoraAudioEffectPresetVoiceChangerEffectHulk", - "macos": "AgoraAudioEffectPresetVoiceChangerEffectHulk" - }, - "STYLE_TRANSFORMATION_RNB": { - "windows": "STYLE_TRANSFORMATION_RNB", - "android": "STYLE_TRANSFORMATION_RNB", - "ios": "AgoraAudioEffectPresetStyleTransformationRnb", - "macos": "AgoraAudioEffectPresetStyleTransformationRnb" - }, - "STYLE_TRANSFORMATION_POPULAR": { - "windows": "STYLE_TRANSFORMATION_POPULAR", - "android": "STYLE_TRANSFORMATION_POPULAR", - "ios": "AgoraAudioEffectPresetStyleTransformationPopular", - "macos": "AgoraAudioEffectPresetStyleTransformationPopular" - }, - "PITCH_CORRECTION": { - "windows": "PITCH_CORRECTION", - "android": "PITCH_CORRECTION", - "ios": "AgoraAudioEffectPresetPitchCorrection", - "macos": "AgoraAudioEffectPresetPitchCorrection" - }, "ENCODING_PREFERENCE": { "windows": "ENCODING_PREFERENCE", "android": "ENCODING_PREFERENCE", "ios": "AgoraEncodingPreference", "macos": "AgoraEncodingPreference" }, - "PREFER_AUTO": { - "windows": "PREFER_AUTO", - "android": "PREFER_AUTO", - "ios": " AgoraEncodingPreferAuto", - "macos": "AgoraEncodingPreferAuto" - }, - "PREFER_SOFTWARE": { - "windows": "PREFER_SOFTWARE", - "android": "PREFER_SOFTWARE", - "ios": "AgoraEncodingPrefersoftware", - "macos": "AgoraEncodingPrefersoftware" - }, - "PREFER_HARDWARE": { - "windows": "PREFER_HARDWARE", - "android": "PREFER_HARDWARE", - "ios": "AgoraEncodingPreferhardware", - "macos": "AgoraEncodingPreferhardware" - }, "AUDIO_EQUALIZATION_BAND_FREQUENCY": { "windows": "AUDIO_EQUALIZATION_BAND_FREQUENCY", "android": "AUDIO_EQUALIZATION_BAND_FREQUENCY", "ios": "AgoraAudioEqualizationBandFrequency", "macos": "AgoraAudioEqualizationBandFrequency" }, - "AUDIO_EQUALIZATION_BAND_31": { - "windows": "AUDIO_EQUALIZATION_BAND_31", - "android": "AUDIO_EQUALIZATION_BAND_31", - "ios": "AgoraAudioEqualizationBand31", - "macos": "AgoraAudioEqualizationBand31" - }, - "AUDIO_EQUALIZATION_BAND_62": { - "windows": "AUDIO_EQUALIZATION_BAND_62", - "android": "AUDIO_EQUALIZATION_BAND_62", - "ios": "AgoraAudioEqualizationBand62", - "macos": "AgoraAudioEqualizationBand62" - }, - "AUDIO_EQUALIZATION_BAND_125": { - "windows": "AUDIO_EQUALIZATION_BAND_125", - "android": "AUDIO_EQUALIZATION_BAND_125", - "ios": "AgoraAudioEqualizationBand125", - "macos": "AgoraAudioEqualizationBand125" - }, - "AUDIO_EQUALIZATION_BAND_250": { - "windows": "AUDIO_EQUALIZATION_BAND_250", - "android": "AUDIO_EQUALIZATION_BAND_250", - "ios": "AgoraAudioEqualizationBand250", - "macos": "AgoraAudioEqualizationBand250" - }, - "AUDIO_EQUALIZATION_BAND_500": { - "windows": "AUDIO_EQUALIZATION_BAND_500", - "android": "AUDIO_EQUALIZATION_BAND_500", - "ios": "AgoraAudioEqualizationBand500", - "macos": "AgoraAudioEqualizationBand500" - }, - "AUDIO_EQUALIZATION_BAND_1K": { - "windows": "AUDIO_EQUALIZATION_BAND_1K", - "android": "AUDIO_EQUALIZATION_BAND_1K", - "ios": "AgoraAudioEqualizationBand1K", - "macos": "AgoraAudioEqualizationBand1K" - }, - "AUDIO_EQUALIZATION_BAND_2K": { - "windows": "AUDIO_EQUALIZATION_BAND_2K", - "android": "AUDIO_EQUALIZATION_BAND_2K", - "ios": "AgoraAudioEqualizationBand2K", - "macos": "AgoraAudioEqualizationBand2K" - }, - "AUDIO_EQUALIZATION_BAND_4K": { - "windows": "AUDIO_EQUALIZATION_BAND_4K", - "android": "AUDIO_EQUALIZATION_BAND_4K", - "ios": "AgoraAudioEqualizationBand4K", - "macos": "AgoraAudioEqualizationBand4K" - }, - "AUDIO_EQUALIZATION_BAND_8K": { - "windows": "AUDIO_EQUALIZATION_BAND_8K", - "android": "AUDIO_EQUALIZATION_BAND_8K", - "ios": "AgoraAudioEqualizationBand8K", - "macos": "AgoraAudioEqualizationBand8K" - }, - "AUDIO_EQUALIZATION_BAND_16K": { - "windows": "AUDIO_EQUALIZATION_BAND_16K", - "android": "AUDIO_EQUALIZATION_BAND_16K", - "ios": "AgoraAudioEqualizationBand16K", - "macos": "AgoraAudioEqualizationBand16K" - }, "AUDIO_FRAME_TYPE": { "windows": "AUDIO_FRAME_TYPE" }, - "FRAME_TYPE_PCM16": { - "windows": "FRAME_TYPE_PCM16", - "android": "FRAME_TYPE_PCM16" - }, - "AUDIO_FRAME_POSITION_PLAYBACK": { - "windows": "AUDIO_FRAME_POSITION_PLAYBACK", - "android": "POSITION_PLAYBACK", - "ios": "AgoraAudioFramePositionPlayback", - "macos": "AgoraAudioFramePositionPlayback" - }, - "AUDIO_FRAME_POSITION_RECORD": { - "windows": "AUDIO_FRAME_POSITION_RECORD", - "android": "POSITION_RECORD", - "ios": "AgoraAudioFramePositionRecord", - "macos": "AgoraAudioFramePositionRecord" - }, - "AUDIO_FRAME_POSITION_MIXED": { - "windows": "AUDIO_FRAME_POSITION_MIXED", - "android": "POSITION_MIXED", - "ios": "AgoraAudioFramePositionMixed", - "macos": "AgoraAudioFramePositionMixed" - }, - "AUDIO_FRAME_POSITION_BEFORE_MIXING": { - "windows": "AUDIO_FRAME_POSITION_BEFORE_MIXING", - "android": "POSITION_BEFORE_MIXING", - "ios": "AgoraAudioFramePositionBeforeMixing", - "macos": "AgoraAudioFramePositionBeforeMixing" - }, - "AUDIO_FRAME_POSITION_EAR_MONITORING": { - "windows": "AUDIO_FRAME_POSITION_EAR_MONITORING", - "android": "POSITION_EAR_MONITORING", - "ios": "AgoraAudioFramePositionEarMonitoring", - "macos": "AgoraAudioFramePositionEarMonitoring" - }, "AUDIO_DUAL_MONO_MODE": { "windows": "AUDIO_DUAL_MONO_MODE", "android": "AudioDualMonoMode", "ios": "AgoraAudioDualMonoMode", "macos": "AgoraAudioDualMonoMode" }, - "AUDIO_DUAL_MONO_STEREO": { - "windows": "AUDIO_DUAL_MONO_STEREO", - "android": "AUDIO_DUAL_MONO_STEREO", - "ios": "AgoraAudioDuraMonoStereo", - "macos": "AgoraAudioDuraMonoStereo" - }, - "AUDIO_DUAL_MONO_L": { - "windows": "AUDIO_DUAL_MONO_L", - "android": "AUDIO_DUAL_MONO_L", - "ios": "AgoraAudioDualMonoL", - "macos": "AgoraAudioDualMonoL" - }, - "AUDIO_DUAL_MONO_R": { - "windows": "AUDIO_DUAL_MONO_R", - "android": "AUDIO_DUAL_MONO_R", - "ios": "AgoraAudioDualMonoR", - "macos": "AgoraAudioDualMonoR" - }, - "AUDIO_DUAL_MONO_MIX": { - "windows": "AUDIO_DUAL_MONO_MIX", - "android": "AUDIO_DUAL_MONO_MIX", - "ios": "AgoraAudioDualMonoMix", - "macos": "AgoraAudioDualMonoMix" - }, "AUDIO_MIXING_DUAL_MONO_MODE": { "windows": "AUDIO_MIXING_DUAL_MONO_MODE", "android": "AudioMixingDualMonoMode", "ios": "AgoraAudioMixingDualMonoMode", "macos": "AgoraAudioMixingDualMonoMode" }, - "AUDIO_MIXING_DUAL_MONO_AUTO": { - "windows": "AUDIO_MIXING_DUAL_MONO_AUTO", - "android": "AUDIO_MIXING_DUAL_MONO_AUTO", - "ios": "AgoraAudioMixingDualMonoAuto", - "macos": "AgoraAudioMixingDualMonoAuto" - }, - "AUDIO_MIXING_DUAL_MONO_L": { - "windows": "AUDIO_MIXING_DUAL_MONO_L", - "android": "AUDIO_MIXING_DUAL_MONO_L", - "ios": "AgoraAudioMixingDualMonoL", - "macos": "AgoraAudioMixingDualMonoL" - }, - "AUDIO_MIXING_DUAL_MONO_R": { - "windows": "AUDIO_MIXING_DUAL_MONO_R", - "android": "AUDIO_MIXING_DUAL_MONO_R", - "ios": "AgoraAudioMixingDualMonoR", - "macos": "AgoraAudioMixingDualMonoR" - }, - "AUDIO_MIXING_DUAL_MONO_MIX": { - "windows": "AUDIO_MIXING_DUAL_MONO_MIX", - "android": "AUDIO_MIXING_DUAL_MONO_MIX", - "ios": "AgoraAudioMixingDualMonoMix", - "macos": "AgoraAudioMixingDualMonoMix" - }, "AUDIO_MIXING_REASON_TYPE": { "windows": "AUDIO_MIXING_REASON_TYPE", "ios": "AgoraAudioMixingReasonCode", "macos": "AgoraAudioMixingReasonCode" }, - "AUDIO_MIXING_REASON_OK": { - "windows": "AUDIO_MIXING_REASON_OK", - "android": "AUDIO_MIXING_REASON_OK", - "ios": "AgoraAudioMixingReasonTypeOk", - "macos": "AgoraAudioMixingReasonTypeOk" - }, - "AUDIO_MIXING_REASON_CAN_NOT_OPEN": { - "windows": "AUDIO_MIXING_REASON_CAN_NOT_OPEN", - "android": "AUDIO_MIXING_REASON_CAN_NOT_OPEN", - "ios": "AgoraAudioMixingReasonTypeCanNotOpen", - "macos": "AgoraAudioMixingReasonTypeCanNotOpen" - }, - "AUDIO_MIXING_REASON_TOO_FREQUENT_CALL": { - "windows": "AUDIO_MIXING_REASON_TOO_FREQUENT_CALL", - "android": "AUDIO_MIXING_REASON_TOO_FREQUENT_CALL", - "ios": "AgoraAudioMixingReasonTypeTooFrequentlyCall", - "macos": "AgoraAudioMixingReasonTypeTooFrequentlyCall" - }, - "AUDIO_MIXING_REASON_INTERRUPTED_EOF": { - "windows": "AUDIO_MIXING_REASON_INTERRUPTED_EOF", - "android": "AUDIO_MIXING_REASON_INTERRUPTED_EOF", - "ios": "AgoraAudioMixingReasonTypeInterruptedEOF", - "macos": "AgoraAudioMixingReasonTypeInterruptedEOF" - }, - "AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED": { - "windows": "AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED", - "android": "AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED", - "ios": "AgoraAudioMixingReasonOneLoopCompleted", - "macos": "AgoraAudioMixingReasonOneLoopCompleted" - }, - "AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED": { - "windows": "AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED", - "android": "AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED", - "ios": "AgoraAudioMixingReasonAllLoopsCompleted", - "macos": "AgoraAudioMixingReasonAllLoopsCompleted" - }, - "AUDIO_MIXING_REASON_STOPPED_BY_USER": { - "windows": "AUDIO_MIXING_REASON_STOPPED_BY_USER", - "android": "AUDIO_MIXING_REASON_STOPPED_BY_USER", - "ios": "AgoraAudioMixingReasonStoppedByUser", - "macos": "AgoraAudioMixingReasonStoppedByUser" - }, "AUDIO_MIXING_STATE_TYPE": { "windows": "AUDIO_MIXING_STATE_TYPE", "ios": "AgoraAudioMixingStateType", "macos": "AgoraAudioMixingStateType" }, - "AUDIO_MIXING_STATE_PLAYING": { - "windows": "AUDIO_MIXING_STATE_PLAYING", - "android": "AUDIO_MIXING_STATE_PLAYING", - "ios": "AgoraAudioMixingStateTypePlaying", - "macos": "AgoraAudioMixingStateTypePlaying" - }, - "AUDIO_MIXING_STATE_PAUSED": { - "windows": "AUDIO_MIXING_STATE_PAUSED", - "android": "AUDIO_MIXING_STATE_PAUSED", - "ios": "AgoraAudioMixingStateTypePaused", - "macos": "AgoraAudioMixingStateTypePaused" - }, - "AUDIO_MIXING_STATE_STOPPED": { - "windows": "AUDIO_MIXING_STATE_STOPPED", - "android": "AUDIO_MIXING_STATE_STOPPED", - "ios": "AgoraAudioMixingStateTypeStopped", - "macos": "AgoraAudioMixingStateTypeStopped" - }, - "AUDIO_MIXING_STATE_FAILED": { - "windows": "AUDIO_MIXING_STATE_FAILED", - "android": "AUDIO_MIXING_STATE_FAILED", - "ios": "AgoraAudioMixingStateTypeFailed", - "macos": "AgoraAudioMixingStateTypeFailed" - }, - "AUDIO_PROCESSING_CHANNELS": { - "windows": "AUDIO_PROCESSING_CHANNELS", - "android": "AgoraAudioProcessChannels", - "ios": "AgoraAudioProcessChannels", - "macos": "AgoraAudioProcessChannels" - }, - "AUDIO_PROCESSING_MONO": { - "windows": "AUDIO_PROCESSING_MONO", - "android": "AGORA_AUDIO_MONO_PROCESSING", - "ios": "AgoraAudioProcessChannelsMono", - "macos": "AgoraAudioProcessChannelsMono" - }, - "AUDIO_PROCESSING_STEREO": { - "windows": "AUDIO_PROCESSING_STEREO", - "android": "AGORA_AUDIO_STEREO_PROCESSING", - "ios": "AgoraAudioProcessChannelsStereo", - "macos": "AgoraAudioProcessChannelsStereo" - }, "AUDIO_PROFILE_TYPE": { "windows": "AUDIO_PROFILE_TYPE", "android": "AudioProfile", "ios": "AgoraAudioProfile", "macos": "AgoraAudioProfile" }, - "AUDIO_PROFILE_DEFAULT": { - "windows": "AUDIO_PROFILE_DEFAULT", - "android": "DEFAULT", - "ios": "AgoraAudioProfileDefault", - "macos": "AgoraAudioProfileDefault" - }, - "AUDIO_PROFILE_SPEECH_STANDARD": { - "windows": "AUDIO_PROFILE_SPEECH_STANDARD", - "android": "SPEECH_STANDARD", - "ios": "AgoraAudioProfileSpeechStandard", - "macos": "AgoraAudioProfileSpeechStandard" - }, - "AUDIO_PROFILE_MUSIC_STANDARD": { - "windows": "AUDIO_PROFILE_MUSIC_STANDARD", - "android": "MUSIC_STANDARD", - "ios": "AgoraAudioProfileMusicStandard", - "macos": "AgoraAudioProfileMusicStandard" - }, - "AUDIO_PROFILE_MUSIC_STANDARD_STEREO": { - "windows": "AUDIO_PROFILE_MUSIC_STANDARD_STEREO", - "android": "MUSIC_STANDARD_STEREO", - "ios": "AgoraAudioProfileMusicStandardStereo", - "macos": "AgoraAudioProfileMusicStandardStereo" - }, - "AUDIO_PROFILE_MUSIC_HIGH_QUALITY": { - "windows": "AUDIO_PROFILE_MUSIC_HIGH_QUALITY", - "android": "MUSIC_HIGH_QUALITY", - "ios": "AgoraAudioProfileMusicHighQuality", - "macos": "AgoraAudioProfileMusicHighQuality" - }, - "AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO": { - "windows": "AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO", - "android": "MUSIC_HIGH_QUALITY_STEREO", - "ios": "AgoraAudioProfileMusicHighQualityStereo", - "macos": "AgoraAudioProfileMusicHighQualityStereo" - }, - "AUDIO_PROFILE_IOT": { - "windows": "AUDIO_PROFILE_IOT", - "android": "AUDIO_PROFILE_IOT", - "ios": "AgoraAudioProfileIot", - "macos": "AgoraAudioProfileIot" - }, - "AUDIO_PROFILE_NUM": { - "windows": "AUDIO_PROFILE_NUM", - "android": "AUDIO_PROFILE_NUM", - "ios": "AUDIO_PROFILE_NUM", - "macos": "AUDIO_PROFILE_NUM" - }, - "AUDIO_RANGE_MODE_WORLD": { - "windows": "AUDIO_RANGE_MODE_WORLD", - "android": "AUDIO_RANGE_MODE_WORLD", - "ios": "AgoraAudioRangeModeWorld", - "macos": "AgoraAudioRangeModeWorld" - }, - "AUDIO_RANGE_MODE_TEAM": { - "windows": "AUDIO_RANGE_MODE_TEAM", - "android": "AUDIO_RANGE_MODE_TEAM", - "ios": "AgoraAudioRangeModeTeam", - "macos": "AgoraAudioRangeModeTeam" - }, "AUDIO_FILE_RECORDING_TYPE": { "windows": "AUDIO_FILE_RECORDING_TYPE", "ios": "AgoraAudioFileRecordingType", "macos": "AgoraAudioFileRecordingType" }, - "AUDIO_FILE_RECORDING_MIC": { - "windows": "AUDIO_FILE_RECORDING_MIC", - "android": "AUDIO_FILE_RECORDING_MIC", - "ios": "AgoraAudioFileRecordingTypeMic", - "macos": "AgoraAudioFileRecordingTypeMic" - }, - "AUDIO_FILE_RECORDING_PLAYBACK": { - "windows": "AUDIO_FILE_RECORDING_PLAYBACK", - "android": "AUDIO_FILE_RECORDING_PLAYBACK", - "ios": "AgoraAudioFileRecordingTypePlayback", - "macos": "AgoraAudioFileRecordingTypePlayback" - }, - "AUDIO_FILE_RECORDING_MIXED": { - "windows": "AUDIO_FILE_RECORDING_MIXED", - "android": "AUDIO_FILE_RECORDING_MIXED", - "ios": "AgoraAudioFileRecordingTypeMixed", - "macos": "AgoraAudioFileRecordingTypeMixed" - }, "AUDIO_RECORDING_QUALITY_TYPE": { "windows": "AUDIO_RECORDING_QUALITY_TYPE", "ios": "AgoraAudioRecordingQuality", "macos": "AgoraAudioRecordingQuality" }, - "AUDIO_RECORDING_QUALITY_LOW": { - "windows": "AUDIO_RECORDING_QUALITY_LOW", - "android": "AUDIO_RECORDING_QUALITY_LOW", - "ios": "AgoraAudioRecordingQualityLow", - "macos": "AgoraAudioRecordingQualityLow" - }, - "AUDIO_RECORDING_QUALITY_MEDIUM": { - "windows": "AUDIO_RECORDING_QUALITY_MEDIUM", - "android": "AUDIO_RECORDING_QUALITY_MEDIUM", - "ios": "AgoraAudioRecordingQualityMedium", - "macos": "AgoraAudioRecordingQualityMedium" - }, - "AUDIO_RECORDING_QUALITY_HIGH": { - "windows": "AUDIO_RECORDING_QUALITY_HIGH", - "android": "AUDIO_RECORDING_QUALITY_HIGH", - "ios": "AgoraAudioRecordingQualityHigh", - "macos": "AgoraAudioRecordingQualityHigh" - }, - "AUDIO_RECORDING_QUALITY_ULTRA_HIGH": { - "windows": "AUDIO_RECORDING_QUALITY_ULTRA_HIGH", - "android": "AUDIO_RECORDING_QUALITY_ULTRA_HIGH", - "ios": "AgoraAudioRecordingQualityUltraHigh", - "macos": "AgoraAudioRecordingQualityUltraHigh" - }, - "AUDIO_REVERB_PRESET": { - "windows": "AUDIO_REVERB_PRESET", - "ios": "AgoraAudioReverbPreset", - "macos": "AgoraAudioReverbPreset" - }, - "AUDIO_REVERB_OFF": { - "windows": "AUDIO_REVERB_OFF", - "android": "AUDIO_REVERB_OFF", - "ios": "AgoraAudioReverbPresetOff", - "macos": "AgoraAudioReverbPresetOff" - }, - "AUDIO_REVERB_FX_KTV": { - "windows": "AUDIO_REVERB_FX_KTV", - "android": "AUDIO_REVERB_FX_KTV", - "ios": "AgoraAudioReverbPresetFxKTV", - "macos": "AgoraAudioReverbPresetFxKTV" - }, - "AUDIO_REVERB_FX_VOCAL_CONCERT": { - "windows": "AUDIO_REVERB_FX_VOCAL_CONCERT", - "android": "AUDIO_REVERB_FX_VOCAL_CONCERT", - "ios": "AgoraAudioReverbPresetFxVocalConcert", - "macos": "AgoraAudioReverbPresetFxVocalConcert" - }, - "AUDIO_REVERB_FX_UNCLE": { - "windows": "AUDIO_REVERB_FX_UNCLE", - "android": "AUDIO_REVERB_FX_UNCLE", - "ios": "AgoraAudioReverbPresetFxUncle", - "macos": "AgoraAudioReverbPresetFxUncle" - }, - "AUDIO_REVERB_FX_SISTER": { - "windows": "AUDIO_REVERB_FX_SISTER", - "android": "AUDIO_REVERB_FX_SISTER", - "ios": "AgoraAudioReverbPresetFxSister", - "macos": "AgoraAudioReverbPresetFxSister" - }, - "AUDIO_REVERB_FX_STUDIO": { - "windows": "AUDIO_REVERB_FX_STUDIO", - "android": "AUDIO_REVERB_FX_STUDIO", - "ios": "AgoraAudioReverbPresetFxStudio", - "macos": "AgoraAudioReverbPresetFxStudio" - }, - "AUDIO_REVERB_FX_POPULAR": { - "windows": "AUDIO_REVERB_FX_POPULAR", - "android": "AUDIO_REVERB_FX_POPULAR", - "ios": "AgoraAudioReverbPresetFxPopular", - "macos": "AgoraAudioReverbPresetFxPopular" - }, - "AUDIO_REVERB_FX_RNB": { - "windows": "AUDIO_REVERB_FX_RNB", - "android": "AUDIO_REVERB_FX_RNB", - "ios": "AgoraAudioReverbPresetFxRNB", - "macos": "AgoraAudioReverbPresetFxRNB" - }, - "AUDIO_REVERB_FX_PHONOGRAPH": { - "windows": "AUDIO_REVERB_FX_PHONOGRAPH", - "android": "AUDIO_REVERB_FX_PHONOGRAPH", - "ios": "AgoraAudioReverbPresetFxPhonograph", - "macos": "AgoraAudioReverbPresetFxPhonograph" - }, - "AUDIO_REVERB_POPULAR": { - "windows": "AUDIO_REVERB_POPULAR", - "android": "AUDIO_REVERB_POPULAR", - "ios": "AUDIO_REVERB_POPULAR", - "macos": "AUDIO_REVERB_POPULAR" - }, - "AUDIO_REVERB_RNB": { - "windows": "AUDIO_REVERB_RNB", - "android": "AUDIO_REVERB_RNB", - "ios": "AUDIO_REVERB_RNB", - "macos": "AUDIO_REVERB_RNB" - }, - "AUDIO_REVERB_ROCK": { - "windows": "AUDIO_REVERB_ROCK", - "android": "AUDIO_REVERB_ROCK", - "ios": "AUDIO_REVERB_ROCK", - "macos": "AUDIO_REVERB_ROCK" - }, - "AUDIO_REVERB_HIPHOP": { - "windows": "AUDIO_REVERB_HIPHOP", - "android": "AUDIO_REVERB_HIPHOP", - "ios": "AUDIO_REVERB_HIPHOP", - "macos": "AUDIO_REVERB_HIPHOP" - }, - "AUDIO_REVERB_VOCAL_CONCERT": { - "windows": "AUDIO_REVERB_VOCAL_CONCERT", - "android": "AUDIO_REVERB_VOCAL_CONCERT", - "ios": "AUDIO_REVERB_VOCAL_CONCERT", - "macos": "AUDIO_REVERB_VOCAL_CONCERT" - }, - "AUDIO_REVERB_KTV": { - "windows": "AUDIO_REVERB_KTV", - "android": "AUDIO_REVERB_KTV", - "ios": "AUDIO_REVERB_KTV", - "macos": "AUDIO_REVERB_KTV" - }, - "AUDIO_REVERB_STUDIO": { - "windows": "AUDIO_REVERB_STUDIO", - "android": "AUDIO_REVERB_STUDIO", - "ios": "AUDIO_REVERB_STUDIO", - "macos": "AUDIO_REVERB_STUDIO" - }, - "AUDIO_VIRTUAL_STEREO": { - "windows": "AUDIO_VIRTUAL_STEREO", - "android": "AUDIO_VIRTUAL_STEREO", - "ios": "AUDIO_VIRTUAL_STEREO", - "macos": "AUDIO_VIRTUAL_STEREO" - }, - "AUDIO_ELECTRONIC_VOICE": { - "windows": "AUDIO_ELECTRONIC_VOICE", - "android": "AUDIO_ELECTRONIC_VOICE", - "ios": "AUDIO_ELECTRONIC_VOICE", - "macos": "AUDIO_ELECTRONIC_VOICE" - }, - "AUDIO_THREEDIM_VOICE": { - "windows": "AUDIO_THREEDIM_VOICE", - "android": "AUDIO_THREEDIM_VOICE", - "ios": "AUDIO_THREEDIM_VOICE", - "macos": "AUDIO_THREEDIM_VOICE" - }, "AUDIO_REVERB_TYPE": { "windows": "AUDIO_REVERB_TYPE", "android": "AUDIO_REVERB_TYPE", "ios": "AgoraAudioReverbType", "macos": "AgoraAudioReverbType" }, - "AUDIO_REVERB_DRY_LEVEL": { - "windows": "AUDIO_REVERB_DRY_LEVEL", - "android": "AUDIO_REVERB_DRY_LEVEL", - "ios": "AgoraAudioReverbDryLevel", - "macos": "AgoraAudioReverbDryLevel" - }, - "AUDIO_REVERB_WET_LEVEL": { - "windows": "AUDIO_REVERB_WET_LEVEL", - "android": "AUDIO_REVERB_WET_LEVEL", - "ios": "AgoraAudioReverbWetLevel", - "macos": "AgoraAudioReverbWetLevel" - }, - "AUDIO_REVERB_ROOM_SIZE": { - "windows": "AUDIO_REVERB_ROOM_SIZE", - "android": "AUDIO_REVERB_ROOM_SIZE", - "ios": "AgoraAudioReverbRoomSize", - "macos": "AgoraAudioReverbRoomSize" - }, - "AUDIO_REVERB_WET_DELAY": { - "windows": "AUDIO_REVERB_WET_DELAY", - "android": "AUDIO_REVERB_WET_DELAY", - "ios": "AgoraAudioReverbWetDelay", - "macos": "AgoraAudioReverbWetDelay" - }, - "AUDIO_REVERB_STRENGTH": { - "windows": "AUDIO_REVERB_STRENGTH", - "android": "AUDIO_REVERB_STRENGTH", - "ios": "AgoraAudioReverbStrength", - "macos": "AgoraAudioReverbStrength" - }, "AudioRoute": { "windows": "AudioRoute", "ios": "AgoraAudioOutputRouting", "macos": "AgoraAudioOutputRouting" }, - "ROUTE_DEFAULT": { - "windows": "ROUTE_DEFAULT", - "android": "AUDIO_ROUTE_DEFAULT", - "ios": "AgoraAudioOutputRoutingDefault", - "macos": "AgoraAudioOutputRoutingDefault" - }, - "ROUTE_HEADSET": { - "windows": "ROUTE_HEADSET", - "android": "AUDIO_ROUTE_HEADSET", - "ios": "AgoraAudioOutputRoutingHeadset", - "macos": "AgoraAudioOutputRoutingHeadset" - }, - "ROUTE_EARPIECE": { - "windows": "ROUTE_EARPIECE", - "android": "AUDIO_ROUTE_EARPIECE", - "ios": "AgoraAudioOutputRoutingEarpiece", - "macos": "AgoraAudioOutputRoutingEarpiece" - }, - "ROUTE_HEADSETNOMIC": { - "windows": "ROUTE_HEADSETNOMIC", - "android": "AUDIO_ROUTE_HEADSETNOMIC", - "ios": "AgoraAudioOutputRoutingHeadsetNoMic", - "macos": "AgoraAudioOutputRoutingHeadsetNoMic" - }, - "ROUTE_SPEAKERPHONE": { - "windows": "ROUTE_SPEAKERPHONE", - "android": "AUDIO_ROUTE_SPEAKERPHONE", - "ios": "AgoraAudioOutputRoutingSpeakerphone", - "macos": "AgoraAudioOutputRoutingSpeakerphone" - }, - "ROUTE_LOUDSPEAKER": { - "windows": "ROUTE_LOUDSPEAKER", - "android": "AUDIO_ROUTE_LOUDSPEAKER", - "ios": "AgoraAudioOutputRoutingLoudspeaker", - "macos": "AgoraAudioOutputRoutingLoudspeaker" - }, - "ROUTE_BLUETOOTH_DEVICE_HFP": { - "windows": "ROUTE_BLUETOOTH_DEVICE_HFP", - "android": "AUDIO_ROUTE_BLUETOOTH_DEVICE_HFP", - "ios": "AgoraAudioOutputRoutingBluetoothDeviceHfp", - "macos": "AgoraAudioOutputRoutingBluetoothDeviceHfp" - }, - "ROUTE_USB": { - "windows": "ROUTE_USB", - "android": "AUDIO_ROUTE_USB", - "ios": "AUDIO_ROUTE_USB", - "macos": "AgoraAudioOutputRoutingUsb" - }, - "ROUTE_HDMI": { - "windows": "ROUTE_HDMI", - "android": "AUDIO_ROUTE_HDMI", - "ios": "AUDIO_ROUTE_HDMI", - "macos": "AgoraAudioOutputRoutingHdmi" - }, - "ROUTE_DISPLAYPORT": { - "windows": "ROUTE_DISPLAYPORT", - "android": "AUDIO_ROUTE_DISPLAYPORT", - "ios": "AUDIO_ROUTE_DISPLAYPORT", - "macos": "AgoraAudioOutputRoutingDisplayPort" - }, - "ROUTE_AIRPLAY": { - "windows": "ROUTE_AIRPLAY", - "android": "AUDIO_ROUTE_AIRPLAY", - "ios": "AUDIO_ROUTE_AIRPLAY", - "macos": "AgoraAudioOutputRoutingAirPlay" - }, - "ROUTE_BLUETOOTH_DEVICE_A2DP": { - "windows": "ROUTE_BLUETOOTH_DEVICE_A2DP", - "android": "AUDIO_ROUTE_BLUETOOTH_DEVICE_A2DP", - "ios": "AgoraAudioOutputRoutingBluetoothDeviceA2dp", - "macos": "AgoraAudioOutputRoutingBluetoothDeviceA2dp" - }, "AUDIO_SAMPLE_RATE_TYPE": { "windows": "AUDIO_SAMPLE_RATE_TYPE", "android": "AudioSampleRateType", "ios": "AgoraAudioSampleRateType", "macos": "AgoraAudioSampleRateType" }, - "AUDIO_SAMPLE_RATE_32000": { - "windows": "AUDIO_SAMPLE_RATE_32000", - "android": "AUDIO_SAMPLE_RATE_32000", - "ios": "AgoraAudioSampleRateType32000", - "macos": "AgoraAudioSampleRateType32000" - }, - "AUDIO_SAMPLE_RATE_44100": { - "windows": "AUDIO_SAMPLE_RATE_44100", - "android": "AUDIO_SAMPLE_RATE_44100", - "ios": "AgoraAudioSampleRateType44100", - "macos": "AgoraAudioSampleRateType44100" - }, - "AUDIO_SAMPLE_RATE_48000": { - "windows": "AUDIO_SAMPLE_RATE_48000", - "android": "AUDIO_SAMPLE_RATE_48000", - "ios": "AgoraAudioSampleRateType48000", - "macos": "AgoraAudioSampleRateType48000" - }, "AUDIO_SCENARIO_TYPE": { "windows": "AUDIO_SCENARIO_TYPE", - "android": "AudioScenario", "ios": "AgoraAudioScenario", "macos": "AgoraAudioScenario" }, - "AUDIO_SCENARIO_DEFAULT": { - "windows": "AUDIO_SCENARIO_DEFAULT", - "android": "AUDIO_SCENARIO_DEFAULT", - "ios": "AgoraAudioScenarioDefault", - "macos": "AgoraAudioScenarioDefault" - }, - "AUDIO_SCENARIO_CHATROOM": { - "windows": "AUDIO_SCENARIO_CHATROOM", - "android": "AUDIO_SCENARIO_CHATROOM", - "ios": "AgoraAudioScenarioChatRoom", - "macos": "AgoraAudioScenarioChatRoom" - }, - "AUDIO_SCENARIO_GAME_STREAMING": { - "windows": "AUDIO_SCENARIO_GAME_STREAMING", - "android": "AUDIO_SCENARIO_GAME_STREAMING", - "ios": "AgoraAudioScenarioGameStreaming", - "macos": "AgoraAudioScenarioGameStreaming" - }, - "AUDIO_SCENARIO_CHORUS": { - "windows": "AUDIO_SCENARIO_CHORUS", - "android": "AUDIO_SCENARIO_CHORUS", - "ios": "AgoraAudioScenarioChorus", - "macos": "AgoraAudioScenarioChorus" - }, - "AUDIO_SCENARIO_MEETING": { - "windows": "AUDIO_SCENARIO_MEETING", - "android": "AUDIO_SCENARIO_MEETING", - "ios": "AgoraAudioScenarioMeeting", - "macos": "AgoraAudioScenarioMeeting" - }, - "AUDIO_SCENARIO_AI_CLIENT": { - "windows": "AUDIO_SCENARIO_AI_CLIENT", - "android": "AUDIO_SCENARIO_AI_CLIENT", - "ios": "AgoraAudioScenarioAiClient", - "macos": "AgoraAudioScenarioAiClient" - }, - "AUDIO_SCENARIO_NUM": { - "windows": "AUDIO_SCENARIO_NUM" - }, "AUDIO_SESSION_OPERATION_RESTRICTION": { "windows": "AUDIO_SESSION_OPERATION_RESTRICTION", "ios": "AgoraAudioSessionOperationRestriction", "macos": "AgoraAudioSessionOperationRestriction" }, - "AUDIO_SESSION_OPERATION_RESTRICTION_NONE": { - "windows": "AUDIO_SESSION_OPERATION_RESTRICTION_NONE", - "ios": "AgoraAudioSessionOperationRestrictionNone", - "macos": "AgoraAudioSessionOperationRestrictionNone" - }, - "AUDIO_SESSION_OPERATION_RESTRICTION_SET_CATEGORY": { - "windows": "AUDIO_SESSION_OPERATION_RESTRICTION_SET_CATEGORY", - "ios": "AgoraAudioSessionOperationRestrictionSetCategory", - "macos": "AgoraAudioSessionOperationRestrictionSetCategory" - }, - "AUDIO_SESSION_OPERATION_RESTRICTION_CONFIGURE_SESSION": { - "windows": "AUDIO_SESSION_OPERATION_RESTRICTION_CONFIGURE_SESSION", - "ios": "AgoraAudioSessionOperationRestrictionConfigureSession", - "macos": "AgoraAudioSessionOperationRestrictionConfigureSession" - }, - "AUDIO_SESSION_OPERATION_RESTRICTION_DEACTIVATE_SESSION": { - "windows": "AUDIO_SESSION_OPERATION_RESTRICTION_DEACTIVATE_SESSION", - "ios": "AgoraAudioSessionOperationRestrictionDeactivateSession", - "macos": "AgoraAudioSessionOperationRestrictionDeactivateSession" - }, - "AUDIO_SESSION_OPERATION_RESTRICTION_ALL": { - "windows": "AUDIO_SESSION_OPERATION_RESTRICTION_ALL", - "ios": "AgoraAudioSessionOperationRestrictionAll", - "macos": "AgoraAudioSessionOperationRestrictionAll" - }, "AUDIO_TRACK_TYPE": { "windows": "AUDIO_TRACK_TYPE", "android": "AudioTrackType", "ios": "AgoraAudioTrackType", "macos": "AgoraAudioTrackType" }, - "AUDIO_TRACK_MIXABLE": { - "windows": "AUDIO_TRACK_MIXABLE", - "android": "AUDIO_TRACK_MIXABLE", - "ios": "AgoraAudioTrackTypeMixable", - "macos": "AgoraAudioTrackTypeMixable" - }, - "AUDIO_TRACK_DIRECT": { - "windows": "AUDIO_TRACK_DIRECT", - "android": "AUDIO_TRACK_DIRECT", - "ios": "AgoraAudioTrackTypeDirect", - "macos": "AgoraAudioTrackTypeDirect" - }, "CONNECTION_STATE_TYPE": { "windows": "CONNECTION_STATE_TYPE", "ios": "AgoraConnectionState", "macos": "AgoraConnectionState" }, - "CONNECTION_STATE_DISCONNECTED": { - "windows": "CONNECTION_STATE_DISCONNECTED", - "android": "CONNECTION_STATE_DISCONNECTED", - "ios": "AgoraConnectionStateDisconnected", - "macos": "AgoraConnectionStateDisconnected" - }, - "CONNECTION_STATE_CONNECTING": { - "windows": "CONNECTION_STATE_CONNECTING", - "android": "CONNECTION_STATE_CONNECTING", - "ios": "AgoraConnectionStateConnecting", - "macos": "AgoraConnectionStateConnecting" - }, - "CONNECTION_STATE_CONNECTED": { - "windows": "CONNECTION_STATE_CONNECTED", - "android": "CONNECTION_STATE_CONNECTED", - "ios": "AgoraConnectionStateConnected", - "macos": "AgoraConnectionStateConnected" - }, - "CONNECTION_STATE_RECONNECTING": { - "windows": "CONNECTION_STATE_RECONNECTING", - "android": "CONNECTION_STATE_RECONNECTING", - "ios": "AgoraConnectionStateReconnecting", - "macos": "AgoraConnectionStateReconnecting" - }, - "CONNECTION_STATE_FAILED": { - "windows": "CONNECTION_STATE_FAILED", - "android": "CONNECTION_STATE_FAILED", - "ios": "AgoraConnectionStateFailed", - "macos": "AgoraConnectionStateFailed" - }, "CONNECTION_CHANGED_REASON_TYPE": { "windows": "CONNECTION_CHANGED_REASON_TYPE", "ios": "AgoraConnectionChangedReason", "macos": "AgoraConnectionChangedReason" }, - "CONNECTION_CHANGED_CONNECTING": { - "windows": "CONNECTION_CHANGED_CONNECTING", - "android": "CONNECTION_CHANGED_CONNECTING", - "ios": "AgoraConnectionChangedReasonConnecting", - "macos": "AgoraConnectionChangedReasonConnecting" - }, - "CONNECTION_CHANGED_JOIN_SUCCESS": { - "windows": "CONNECTION_CHANGED_JOIN_SUCCESS", - "android": "CONNECTION_CHANGED_JOIN_SUCCESS", - "ios": "AgoraConnectionChangedReasonJoinSuccess", - "macos": "AgoraConnectionChangedReasonJoinSuccess" - }, - "CONNECTION_CHANGED_REJOIN_SUCCESS": { - "windows": "CONNECTION_CHANGED_REJOIN_SUCCESS", - "android": "CONNECTION_CHANGED_REJOIN_SUCCESS", - "ios": "AgoraConnectionChangedReasonRejoinSuccess", - "macos": "AgoraConnectionChangedReasonRejoinSuccess" - }, - "CONNECTION_CHANGED_LOST": { - "windows": "CONNECTION_CHANGED_LOST", - "android": "CONNECTION_CHANGED_LOST", - "ios": "AgoraConnectionChangedReasonLost", - "macos": "AgoraConnectionChangedReasonLost" - }, - "CONNECTION_CHANGED_ECHO_TEST": { - "windows": "CONNECTION_CHANGED_ECHO_TEST", - "android": "CONNECTION_CHANGED_ECHO_TEST", - "ios": "AgoraConnectionChangedReasonEchoTest", - "macos": "AgoraConnectionChangedReasonEchoTest" - }, - "CONNECTION_CHANGED_INTERRUPTED": { - "windows": "CONNECTION_CHANGED_INTERRUPTED", - "android": "CONNECTION_CHANGED_INTERRUPTED", - "ios": "AgoraConnectionChangedReasonInterrupted", - "macos": "AgoraConnectionChangedReasonInterrupted" - }, - "CONNECTION_CHANGED_BANNED_BY_SERVER": { - "windows": "CONNECTION_CHANGED_BANNED_BY_SERVER", - "android": "CONNECTION_CHANGED_BANNED_BY_SERVER", - "ios": "AgoraConnectionChangedReasonBannedByServer", - "macos": "AgoraConnectionChangedReasonBannedByServer" - }, - "CONNECTION_CHANGED_JOIN_FAILED": { - "windows": "CONNECTION_CHANGED_JOIN_FAILED", - "android": "CONNECTION_CHANGED_JOIN_FAILED", - "ios": "AgoraConnectionChangedReasonJoinFailed", - "macos": "AgoraConnectionChangedReasonJoinFailed" - }, - "CONNECTION_CHANGED_LEAVE_CHANNEL": { - "windows": "CONNECTION_CHANGED_LEAVE_CHANNEL", - "android": "CONNECTION_CHANGED_LEAVE_CHANNEL", - "ios": "AgoraConnectionChangedReasonLeaveChannel", - "macos": "AgoraConnectionChangedReasonLeaveChannel" - }, - "CONNECTION_CHANGED_INVALID_APP_ID": { - "windows": "CONNECTION_CHANGED_INVALID_APP_ID", - "android": "CONNECTION_CHANGED_INVALID_APP_ID", - "ios": "AgoraConnectionChangedReasonInvalidAppId", - "macos": "AgoraConnectionChangedReasonInvalidAppId" - }, - "CONNECTION_CHANGED_INVALID_CHANNEL_NAME": { - "windows": "CONNECTION_CHANGED_INVALID_CHANNEL_NAME", - "android": "CONNECTION_CHANGED_INVALID_CHANNEL_NAME", - "ios": "AgoraConnectionChangedReasonInvalidChannelName", - "macos": "AgoraConnectionChangedReasonInvalidChannelName" - }, - "CONNECTION_CHANGED_INVALID_TOKEN": { - "windows": "CONNECTION_CHANGED_INVALID_TOKEN", - "android": "CONNECTION_CHANGED_INVALID_TOKEN", - "ios": "AgoraConnectionChangedReasonInvalidToken", - "macos": "AgoraConnectionChangedReasonInvalidToken" - }, - "CONNECTION_CHANGED_TOKEN_EXPIRED": { - "windows": "CONNECTION_CHANGED_TOKEN_EXPIRED", - "android": "CONNECTION_CHANGED_TOKEN_EXPIRED", - "ios": "AgoraConnectionChangedReasonTokenExpired", - "macos": "AgoraConnectionChangedReasonTokenExpired" - }, - "CONNECTION_CHANGED_REJECTED_BY_SERVER": { - "windows": "CONNECTION_CHANGED_REJECTED_BY_SERVER", - "android": "CONNECTION_CHANGED_REJECTED_BY_SERVER", - "ios": "AgoraConnectionChangedReasonRejectedByServer", - "macos": "AgoraConnectionChangedReasonRejectedByServer" - }, - "CONNECTION_CHANGED_SETTING_PROXY_SERVER": { - "windows": "CONNECTION_CHANGED_SETTING_PROXY_SERVER", - "android": "CONNECTION_CHANGED_SETTING_PROXY_SERVER", - "ios": "AgoraConnectionChangedReasonSettingProxyServer", - "macos": "AgoraConnectionChangedReasonSettingProxyServer" - }, - "CONNECTION_CHANGED_RENEW_TOKEN": { - "windows": "CONNECTION_CHANGED_RENEW_TOKEN", - "android": "CONNECTION_CHANGED_RENEW_TOKEN", - "ios": "AgoraConnectionChangedReasonRenewToken", - "macos": "AgoraConnectionChangedReasonRenewToken" - }, - "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED": { - "windows": "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED", - "android": "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED", - "ios": "AgoraConnectionChangedReasonClientIpAddressChanged", - "macos": "AgoraConnectionChangedReasonClientIpAddressChanged" - }, - "CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT": { - "windows": "CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT", - "android": "CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT", - "ios": "AgoraConnectionChangedReasonKeepAliveTimeout", - "macos": "AgoraConnectionChangedReasonKeepAliveTimeout" - }, - "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER": { - "windows": "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER", - "android": "CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER", - "ios": "AgoraConnectionChangedClientIpAddressChangedByUser", - "macos": "AgoraConnectionChangedClientIpAddressChangedByUser" - }, - "CONNECTION_CHANGED_SAME_UID_LOGIN": { - "windows": "CONNECTION_CHANGED_SAME_UID_LOGIN", - "android": "CONNECTION_CHANGED_SAME_UID_LOGIN", - "ios": "AgoraConnectionChangedSameUidLogin", - "macos": "AgoraConnectionChangedSameUidLogin" - }, - "CONNECTION_CHANGED_TOO_MANY_BROADCASTERS": { - "windows": "CONNECTION_CHANGED_TOO_MANY_BROADCASTERS", - "android": "CONNECTION_CHANGED_TOO_MANY_BROADCASTERS", - "ios": "AgoraConnectionChangedTooManyBroadcasters", - "macos": "AgoraConnectionChangedTooManyBroadcasters" - }, "CAMERA_DIRECTION": { "windows": "CAMERA_DIRECTION", "android": "CAMERA_DIRECTION", "ios": "AgoraCameraDirection" }, - "CAMERA_REAR": { - "windows": "CAMERA_REAR", - "android": "CAMERA_REAR", - "ios": "AgoraCameraDirectionRear" - }, - "CAMERA_FRONT": { - "windows": "CAMERA_FRONT", - "android": "CAMERA_FRONT", - "ios": "AgoraCameraDirectionFront" - }, "CAMERA_FOCAL_LENGTH_TYPE": { "windows": "CAMERA_FOCAL_LENGTH_TYPE", "android": "CAMERA_FOCAL_LENGTH_TYPE", "ios": "AgoraFocalLength" }, - "CAMERA_FOCAL_LENGTH_DEFAULT": { - "windows": "CAMERA_FOCAL_LENGTH_DEFAULT", - "android": "CAMERA_FOCAL_LENGTH_DEFAULT", - "ios": "AgoraFocalLengthDefault" - }, - "CAMERA_FOCAL_LENGTH_WIDE_ANGLE": { - "windows": "CAMERA_FOCAL_LENGTH_WIDE_ANGLE", - "android": "CAMERA_FOCAL_LENGTH_WIDE_ANGLE", - "ios": "AgoraFocalLengthWide" - }, - "CAMERA_FOCAL_LENGTH_ULTRA_WIDE": { - "windows": "CAMERA_FOCAL_LENGTH_ULTRA_WIDE", - "android": "CAMERA_FOCAL_LENGTH_ULTRA_WIDE", - "ios": "AgoraFocalLengthUltraWide" - }, - "CAMERA_FOCAL_LENGTH_TELEPHOTO": { - "windows": "CAMERA_FOCAL_LENGTH_TELEPHOTO", - "ios": "AgoraFocalLengthTelephoto" - }, "CAPTURE_BRIGHTNESS_LEVEL_TYPE": { "windows": "CAPTURE_BRIGHTNESS_LEVEL_TYPE", "ios": "AgoraCaptureBrightnessLevelType", "macos": "AgoraCaptureBrightnessLevelType" }, - "CAPTURE_BRIGHTNESS_LEVEL_INVALID": { - "windows": "CAPTURE_BRIGHTNESS_LEVEL_INVALID", - "android": "CAPTURE_BRIGHTNESS_LEVEL_INVALID", - "ios": "AgoraCaptureBrightnessLevelInvalid", - "macos": "AgoraCaptureBrightnessLevelInvalid" - }, - "CAPTURE_BRIGHTNESS_LEVEL_NORMAL": { - "windows": "CAPTURE_BRIGHTNESS_LEVEL_NORMAL", - "android": "CAPTURE_BRIGHTNESS_LEVEL_NORMAL", - "ios": "AgoraCaptureBrightnessLevelNormal", - "macos": "AgoraCaptureBrightnessLevelNormal" - }, - "CAPTURE_BRIGHTNESS_LEVEL_BRIGHT": { - "windows": "CAPTURE_BRIGHTNESS_LEVEL_BRIGHT", - "android": "CAPTURE_BRIGHTNESS_LEVEL_BRIGHT", - "ios": "AgoraCaptureBrightnessLevelBright", - "macos": "AgoraCaptureBrightnessLevelBright" - }, - "CAPTURE_BRIGHTNESS_LEVEL_DARK": { - "windows": "CAPTURE_BRIGHTNESS_LEVEL_DARK", - "android": "CAPTURE_BRIGHTNESS_LEVEL_DARK", - "ios": "AgoraCaptureBrightnessLevelDark", - "macos": "AgoraCaptureBrightnessLevelDark" - }, - "CAPTURER_OUTPUT_PREFERENCE_AUTO": { - "windows": "CAPTURER_OUTPUT_PREFERENCE_AUTO", - "android": "CAPTURER_OUTPUT_PREFERENCE_AUTO" - }, - "CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE": { - "windows": "CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE", - "android": "CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE" - }, - "CAPTURER_OUTPUT_PREFERENCE_PREVIEW": { - "windows": "CAPTURER_OUTPUT_PREFERENCE_PREVIEW", - "android": "CAPTURER_OUTPUT_PREFERENCE_PREVIEW" - }, - "CAPTURER_OUTPUT_PREFERENCE_MANUAL": { - "windows": "CAPTURER_OUTPUT_PREFERENCE_MANUAL", - "android": "CAPTURER_OUTPUT_PREFERENCE_MANUAL" - }, "CHANNEL_MEDIA_RELAY_ERROR": { "windows": "CHANNEL_MEDIA_RELAY_ERROR", "ios": "AgoraChannelMediaRelayError", "macos": "AgoraChannelMediaRelayError" }, - "RELAY_OK": { - "windows": "RELAY_OK", - "android": "RELAY_OK", - "ios": "AgoraChannelMediaRelayErrorNone", - "macos": "AgoraChannelMediaRelayErrorNone" - }, - "RELAY_ERROR_SERVER_ERROR_RESPONSE": { - "windows": "RELAY_ERROR_SERVER_ERROR_RESPONSE", - "android": "RELAY_ERROR_SERVER_ERROR_RESPONSE", - "ios": "AgoraChannelMediaRelayErrorServerErrorResponse", - "macos": "AgoraChannelMediaRelayErrorServerErrorResponse" - }, - "RELAY_ERROR_SERVER_NO_RESPONSE": { - "windows": "RELAY_ERROR_SERVER_NO_RESPONSE", - "android": "RELAY_ERROR_SERVER_NO_RESPONSE", - "ios": "AgoraChannelMediaRelayErrorServerNoResponse", - "macos": "AgoraChannelMediaRelayErrorServerNoResponse" - }, - "RELAY_ERROR_NO_RESOURCE_AVAILABLE": { - "windows": "RELAY_ERROR_NO_RESOURCE_AVAILABLE", - "android": "RELAY_ERROR_NO_RESOURCE_AVAILABLE", - "ios": "AgoraChannelMediaRelayErrorNoResourceAvailable", - "macos": "AgoraChannelMediaRelayErrorNoResourceAvailable" - }, - "RELAY_ERROR_FAILED_JOIN_SRC": { - "windows": "RELAY_ERROR_FAILED_JOIN_SRC", - "android": "RELAY_ERROR_FAILED_JOIN_SRC", - "ios": "AgoraChannelMediaRelayErrorFailedJoinSourceChannel", - "macos": "AgoraChannelMediaRelayErrorFailedJoinSourceChannel" - }, - "RELAY_ERROR_FAILED_JOIN_DEST": { - "windows": "RELAY_ERROR_FAILED_JOIN_DEST", - "android": "RELAY_ERROR_FAILED_JOIN_DEST", - "ios": "AgoraChannelMediaRelayErrorFailedJoinDestinationChannel", - "macos": "AgoraChannelMediaRelayErrorFailedJoinDestinationChannel" - }, - "RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC": { - "windows": "RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC", - "android": "RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC", - "ios": "AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource", - "macos": "AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource" - }, - "RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST": { - "windows": "RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST", - "android": "RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST", - "ios": "AgoraChannelMediaRelayErrorFailedPacketSentToDestination", - "macos": "AgoraChannelMediaRelayErrorFailedPacketSentToDestination" - }, - "RELAY_ERROR_SERVER_CONNECTION_LOST": { - "windows": "RELAY_ERROR_SERVER_CONNECTION_LOST", - "android": "RELAY_ERROR_SERVER_CONNECTION_LOST", - "ios": "AgoraChannelMediaRelayErrorServerConnectionLost", - "macos": "AgoraChannelMediaRelayErrorServerConnectionLost" - }, - "RELAY_ERROR_INTERNAL_ERROR": { - "windows": "RELAY_ERROR_INTERNAL_ERROR", - "android": "RELAY_ERROR_INTERNAL_ERROR", - "ios": "AgoraChannelMediaRelayErrorInternalError", - "macos": "AgoraChannelMediaRelayErrorInternalError" - }, - "RELAY_ERROR_SRC_TOKEN_EXPIRED": { - "windows": "RELAY_ERROR_SRC_TOKEN_EXPIRED", - "android": "RELAY_ERROR_SRC_TOKEN_EXPIRED", - "ios": "AgoraChannelMediaRelayErrorSourceTokenExpired", - "macos": "AgoraChannelMediaRelayErrorSourceTokenExpired" - }, - "RELAY_ERROR_DEST_TOKEN_EXPIRED": { - "windows": "RELAY_ERROR_DEST_TOKEN_EXPIRED", - "android": "RELAY_ERROR_DEST_TOKEN_EXPIRED", - "ios": "AgoraChannelMediaRelayErrorDestinationTokenExpired", - "macos": "AgoraChannelMediaRelayErrorDestinationTokenExpired" - }, "CHANNEL_MEDIA_RELAY_STATE": { "windows": "CHANNEL_MEDIA_RELAY_STATE", "ios": "AgoraChannelMediaRelayState", "macos": "AgoraChannelMediaRelayState" }, - "RELAY_STATE_IDLE": { - "windows": "RELAY_STATE_IDLE", - "android": "RELAY_STATE_IDLE", - "ios": "AgoraChannelMediaRelayStateIdle", - "macos": "AgoraChannelMediaRelayStateIdle" - }, - "RELAY_STATE_CONNECTING": { - "windows": "RELAY_STATE_CONNECTING", - "android": "RELAY_STATE_CONNECTING", - "ios": "AgoraChannelMediaRelayStateConnecting", - "macos": "AgoraChannelMediaRelayStateConnecting" - }, - "RELAY_STATE_RUNNING": { - "windows": "RELAY_STATE_RUNNING", - "android": "RELAY_STATE_RUNNING", - "ios": "AgoraChannelMediaRelayStateRunning", - "macos": "AgoraChannelMediaRelayStateRunning" - }, - "RELAY_STATE_FAILURE": { - "windows": "RELAY_STATE_FAILURE", - "android": "RELAY_STATE_FAILURE", - "ios": "AgoraChannelMediaRelayStateFailure", - "macos": "AgoraChannelMediaRelayStateFailure" - }, "CHANNEL_PROFILE_TYPE": { "windows": "CHANNEL_PROFILE_TYPE", "ios": "AgoraChannelProfile", "macos": "AgoraChannelProfile" }, - "CHANNEL_PROFILE_COMMUNICATION": { - "windows": "CHANNEL_PROFILE_COMMUNICATION", - "android": "CHANNEL_PROFILE_COMMUNICATION", - "ios": "AgoraChannelProfileCommunication", - "macos": "AgoraChannelProfileCommunication" - }, - "CHANNEL_PROFILE_LIVE_BROADCASTING": { - "windows": "CHANNEL_PROFILE_LIVE_BROADCASTING", - "android": "CHANNEL_PROFILE_LIVE_BROADCASTING", - "ios": "AgoraChannelProfileLiveBroadcasting", - "macos": "AgoraChannelProfileLiveBroadcasting" - }, - "CHANNEL_PROFILE_GAME": { - "windows": "CHANNEL_PROFILE_GAME", - "android": "CHANNEL_PROFILE_GAME", - "ios": "AgoraChannelProfileGame", - "macos": "AgoraChannelProfileGame" - }, - "CHANNEL_PROFILE_CLOUD_GAMING": { - "windows": "CHANNEL_PROFILE_CLOUD_GAMING", - "android": "CHANNEL_PROFILE_CLOUD_GAMING", - "ios": "AgoraChannelProfileCloudGaming", - "macos": "AgoraChannelProfileCloudGaming" - }, "CLIENT_ROLE_TYPE": { "windows": "CLIENT_ROLE_TYPE", "ios": "AgoraClientRole", "macos": "AgoraClientRole" }, - "CLIENT_ROLE_BROADCASTER": { - "windows": "CLIENT_ROLE_BROADCASTER", - "android": "CLIENT_ROLE_BROADCASTER", - "ios": "AgoraClientRoleBroadcaster", - "macos": "AgoraClientRoleBroadcaster" - }, - "CLIENT_ROLE_AUDIENCE": { - "windows": "CLIENT_ROLE_AUDIENCE", - "android": "CLIENT_ROLE_AUDIENCE", - "ios": "AgoraClientRoleAudience", - "macos": "AgoraClientRoleAudience" - }, "CLIENT_ROLE_CHANGE_FAILED_REASON": { "windows": "CLIENT_ROLE_CHANGE_FAILED_REASON", "ios": "AgoraClientRoleChangeFailedReason", "macos": "AgoraClientRoleChangeFailedReason" }, - "CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS": { - "windows": "CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS", - "android": "CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS", - "ios": "AgoraClientRoleChangeFailedTooManyBroadcasters", - "macos": "AgoraClientRoleChangeFailedTooManyBroadcasters" - }, - "CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED": { - "windows": "CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED", - "android": "CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED", - "ios": "AgoraClientRoleChangeFailedNotAuthorized", - "macos": "AgoraClientRoleChangeFailedNotAuthorized" - }, - "CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT": { - "windows": "CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT", - "android": "CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT", - "ios": "AgoraClientRoleChangeFailedRequestTimeout", - "macos": "AgoraClientRoleChangeFailedRequestTimeout" - }, - "CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED": { - "windows": "CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED", - "android": "CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED", - "ios": "AgoraClientRoleChangeFailedConnectionFailed", - "macos": "AgoraClientRoleChangeFailedConnectionFailed" - }, "CLOUD_PROXY_TYPE": { "windows": "CLOUD_PROXY_TYPE", "ios": "AgoraCloudProxyType", "macos": "AgoraCloudProxyType" }, - "NONE_PROXY": { - "windows": "NONE_PROXY", - "android": "TRANSPORT_TYPE_NONE_PROXY", - "ios": "AgoraNoneProxyType", - "macos": "AgoraNoneProxyType" - }, - "UDP_PROXY": { - "windows": "UDP_PROXY", - "android": "TRANSPORT_TYPE_UDP_PROXY", - "ios": "AgoraUdpProxyType", - "macos": "AgoraUdpProxyType" - }, - "TCP_PROXY": { - "windows": "TCP_PROXY", - "android": "TRANSPORT_TYPE_TCP_PROXY", - "ios": "AgoraTcpProxyType", - "macos": "AgoraTcpProxyType" - }, "PROXY_TYPE": { "windows": "PROXY_TYPE", "ios": "AgoraProxyType", "macos": "AgoraProxyType" }, - "NONE_PROXY_TYPE": { - "windows": "NONE_PROXY_TYPE", - "android": "PROXY_TYPE_NONE_PROXY", - "ios": "AgoraNoneProxyType", - "macos": "AgoraNoneProxyType" - }, - "UDP_PROXY_TYPE": { - "windows": "UDP_PROXY_TYPE", - "android": "PROXY_TYPE_UDP_CLOUD_PROXY", - "ios": "AgoraUdpProxyType", - "macos": "AgoraUdpProxyType" - }, - "TCP_PROXY_TYPE": { - "windows": "TCP_PROXY_TYPE", - "android": "PROXY_TYPE_TCP_CLOUD_PROXY", - "ios": "AgoraTcpProxyType·", - "macos": "AgoraTcpProxyType·" - }, - "LOCAL_PROXY_TYPE": { - "windows": "LOCAL_PROXY_TYPE", - "android": "PROXY_TYPE_LOCAL_PROXY", - "ios": "AgoraLocalProxyType", - "macos": "AgoraLocalProxyType" - }, - "TCP_PROXY_AUTO_FALLBACK_TYPE": { - "windows": "TCP_PROXY_AUTO_FALLBACK_TYPE", - "android": "PROXY_TYPE_TCP_AUTO_FALLBACK", - "ios": "AgoraTcpProxyAutoFallbackType", - "macos": "AgoraTcpProxyAutoFallbackType" - }, "DEGRADATION_PREFERENCE": { "windows": "DEGRADATION_PREFERENCE", "android": "DEGRADATION_PREFERENCE", "ios": "AgoraDegradationPreference", "macos": "AgoraDegradationPreference" }, - "MAINTAIN_AUTO": { - "windows": "MAINTAIN_AUTO", - "android": "MAINTAIN_AUTO", - "ios": "AgoraDegradationMaintainAuto", - "macos": "AgoraDegradationMaintainAuto" - }, - "MAINTAIN_QUALITY": { - "windows": "MAINTAIN_QUALITY", - "android": "MAINTAIN_QUALITY", - "ios": "AgoraDegradationMaintainQuality", - "macos": "AgoraDegradationMaintainQuality" - }, - "MAINTAIN_FRAMERATE": { - "windows": "MAINTAIN_FRAMERATE", - "android": "MAINTAIN_FRAMERATE", - "ios": "AgoraDegradationMaintainFramerate", - "macos": "AgoraDegradationMaintainFramerate" - }, - "MAINTAIN_BALANCED": { - "windows": "MAINTAIN_BALANCED", - "android": "MAINTAIN_BALANCED", - "ios": "AgoraDegradationBalanced", - "macos": "AgoraDegradationBalanced" - }, - "MAINTAIN_RESOLUTION": { - "windows": "MAINTAIN_RESOLUTION", - "android": "MAINTAIN_RESOLUTION", - "ios": "AgoraDegradationMaintainResolution", - "macos": "AgoraDegradationMaintainResolution" - }, "DIRECT_CDN_STREAMING_REASON": { "windows": "DIRECT_CDN_STREAMING_REASON", "android": "DirectCdnStreamingReason", "ios": "AgoraDirectCdnStreamingReason", "macos": "AgoraDirectCdnStreamingReason" }, - "DIRECT_CDN_STREAMING_REASON_OK": { - "windows": "DIRECT_CDN_STREAMING_REASON_OK", - "android": "OK", - "ios": "AgoraDirectCdnStreamingReasonOK", - "macos": "AgoraDirectCdnStreamingReasonOK" - }, - "DIRECT_CDN_STREAMING_REASON_FAILED": { - "windows": "DIRECT_CDN_STREAMING_REASON_FAILED", - "android": "FAILED", - "ios": "AgoraDirectCdnStreamingReasonFailed", - "macos": "AgoraDirectCdnStreamingReasonFailed" - }, - "DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION": { - "windows": "DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION", - "android": "AUDIO_PUBLICATION", - "ios": "AgoraDirectCdnStreamingReasonAudioPublication", - "macos": "AgoraDirectCdnStreamingReasonAudioPublication" - }, - "DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION": { - "windows": "DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION", - "android": "VIDEO_PUBLICATION", - "ios": "AgoraDirectCdnStreamingReasonVideoPublication", - "macos": "AgoraDirectCdnStreamingReasonVideoPublication" - }, - "DIRECT_CDN_STREAMING_REASON_NET_CONNECT": { - "windows": "DIRECT_CDN_STREAMING_REASON_NET_CONNECT", - "android": "NET_CONNECT", - "ios": "AgoraDirectCdnStreamingReasonNetConnect", - "macos": "AgoraDirectCdnStreamingReasonNetConnect" - }, - "DIRECT_CDN_STREAMING_REASON_BAD_NAME": { - "windows": "DIRECT_CDN_STREAMING_REASON_BAD_NAME", - "android": "BAD_NAME", - "ios": "AgoraDirectCdnStreamingReasonBadName", - "macos": "AgoraDirectCdnStreamingReasonBadName" - }, "DIRECT_CDN_STREAMING_STATE": { "windows": "DIRECT_CDN_STREAMING_STATE", "android": "DirectCdnStreamingState", "ios": "AgoraDirectCdnStreamingState", "macos": "AgoraDirectCdnStreamingState" }, - "DIRECT_CDN_STREAMING_STATE_IDLE": { - "windows": "DIRECT_CDN_STREAMING_STATE_IDLE", - "android": "IDLE", - "ios": "AgoraDirectCdnStreamingStateIdle", - "macos": "AgoraDirectCdnStreamingStateIdle" - }, - "DIRECT_CDN_STREAMING_STATE_RUNNING": { - "windows": "DIRECT_CDN_STREAMING_STATE_RUNNING", - "android": "RUNNING", - "ios": "AgoraDirectCdnStreamingStateRunning", - "macos": "AgoraDirectCdnStreamingStateRunning" - }, - "DIRECT_CDN_STREAMING_STATE_STOPPED": { - "windows": "DIRECT_CDN_STREAMING_STATE_STOPPED", - "android": "STOPPED", - "ios": "AgoraDirectCdnStreamingStateStopped", - "macos": "AgoraDirectCdnStreamingStateStopped" - }, - "DIRECT_CDN_STREAMING_STATE_FAILED": { - "windows": "DIRECT_CDN_STREAMING_STATE_FAILED", - "android": "FAILED", - "ios": "AgoraDirectCdnStreamingStateFailed", - "macos": "AgoraDirectCdnStreamingStateFailed" - }, - "DIRECT_CDN_STREAMING_STATE_RECOVERING": { - "windows": "DIRECT_CDN_STREAMING_STATE_RECOVERING", - "android": "RECOVERING", - "ios": "AgoraDirectCdnStreamingStateRecovering", - "macos": "AgoraDirectCdnStreamingStateRecovering" - }, "ENCRYPTION_ERROR_TYPE": { "windows": "ENCRYPTION_ERROR_TYPE", - "android": "ENCRYPTION_ERROR_TYPE", "ios": "AgoraEncryptionErrorType", "macos": "AgoraEncryptionErrorType" }, - "ENCRYPTION_ERROR_INTERNAL_FAILURE": { - "windows": "ENCRYPTION_ERROR_INTERNAL_FAILURE", - "android": "ENCRYPTION_ERROR_INTERNAL_FAILURE", - "ios": "ENCRYPTION_ERROR_INTERNAL_FAILURE", - "macos": "ENCRYPTION_ERROR_INTERNAL_FAILURE" - }, - "ENCRYPTION_ERROR_DECRYPTION_FAILURE": { - "windows": "ENCRYPTION_ERROR_DECRYPTION_FAILURE", - "android": "ENCRYPTION_ERROR_DECRYPTION_FAILURE", - "ios": "ENCRYPTION_ERROR_DECRYPTION_FAILURE", - "macos": "ENCRYPTION_ERROR_DECRYPTION_FAILURE" - }, - "ENCRYPTION_ERROR_ENCRYPTION_FAILURE": { - "windows": "ENCRYPTION_ERROR_ENCRYPTION_FAILURE", - "android": "ENCRYPTION_ERROR_ENCRYPTION_FAILURE", - "ios": "ENCRYPTION_ERROR_ENCRYPTION_FAILURE", - "macos": "ENCRYPTION_ERROR_ENCRYPTION_FAILURE" - }, - "ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE": { - "windows": "ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE", - "android": "ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE", - "ios": "ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE", - "macos": "ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE" - }, - "ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE": { - "windows": "ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE", - "android": "ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE", - "ios": "ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE", - "macos": "ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE" - }, "ERROR_CODE_TYPE": { "windows": "ERROR_CODE_TYPE", "ios": "AgoraErrorCode", "macos": "AgoraErrorCode" }, - "ERR_OK": { - "windows": "ERR_OK", - "android": "ERR_OK", - "ios": "AgoraErrorCodeNoError", - "macos": "AgoraErrorCodeNoError" - }, - "ERR_FAILED": { - "windows": "ERR_FAILED", - "android": "ERR_FAILED", - "ios": "AgoraErrorCodeFailed", - "macos": "AgoraErrorCodeFailed" - }, - "ERR_INVALID_ARGUMENT": { - "windows": "ERR_INVALID_ARGUMENT", - "android": "ERR_INVALID_ARGUMENT", - "ios": "AgoraErrorCodeInvalidArgument", - "macos": "AgoraErrorCodeInvalidArgument" - }, - "ERR_NOT_READY": { - "windows": "ERR_NOT_READY", - "android": "ERR_NOT_READY", - "ios": "AgoraErrorCodeNotReady", - "macos": "AgoraErrorCodeNotReady" - }, - "ERR_NOT_SUPPORTED": { - "windows": "ERR_NOT_SUPPORTED", - "android": "ERR_NOT_SUPPORTED", - "ios": "AgoraErrorCodeNotSupported", - "macos": "AgoraErrorCodeNotSupported" - }, - "ERR_REFUSED": { - "windows": "ERR_REFUSED", - "android": "ERR_REFUSED", - "ios": "AgoraErrorCodeRefused", - "macos": "AgoraErrorCodeRefused" - }, - "ERR_BUFFER_TOO_SMALL": { - "windows": "ERR_BUFFER_TOO_SMALL", - "android": "ERR_BUFFER_TOO_SMALL", - "ios": "AgoraErrorCodeBufferTooSmall", - "macos": "AgoraErrorCodeBufferTooSmall" - }, - "ERR_NOT_INITIALIZED": { - "windows": "ERR_NOT_INITIALIZED", - "android": "ERR_NOT_INITIALIZED", - "ios": "AgoraErrorCodeNotInitialized", - "macos": "AgoraErrorCodeNotInitialized" - }, - "ERR_INVALID_STATE": { - "windows": "ERR_INVALID_STATE", - "android": "ERR_INVALID_STATE" - }, - "ERR_NO_PERMISSION": { - "windows": "ERR_NO_PERMISSION", - "android": "ERR_NO_PERMISSION", - "ios": "AgoraErrorCodeNoPermission", - "macos": "AgoraErrorCodeNoPermission" - }, - "ERR_TIMEDOUT": { - "windows": "ERR_TIMEDOUT", - "android": "ERR_TIMEDOUT", - "ios": "AgoraErrorCodeTimedOut", - "macos": "AgoraErrorCodeTimedOut" - }, - "ERR_JOIN_CHANNEL_REJECTED": { - "windows": "ERR_JOIN_CHANNEL_REJECTED", - "android": "ERR_JOIN_CHANNEL_REJECTED", - "ios": "AgoraErrorCodeJoinChannelRejected", - "macos": "AgoraErrorCodeJoinChannelRejected" - }, - "ERR_LEAVE_CHANNEL_REJECTED": { - "windows": "ERR_LEAVE_CHANNEL_REJECTED", - "android": "ERR_LEAVE_CHANNEL_REJECTED", - "ios": "AgoraErrorCodeLeaveChannelRejected", - "macos": "AgoraErrorCodeLeaveChannelRejected" - }, - "ERR_ALREADY_IN_USE": { - "windows": "ERR_ALREADY_IN_USE", - "android": "ERR_ALREADY_IN_USE", - "ios": "AgoraErrorCodeAlreadyInUse", - "macos": "AgoraErrorCodeAlreadyInUse" - }, - "ERR_ABORTED": { - "windows": "ERR_ABORTED", - "android": "ERR_ABORTED", - "ios": "AgoraErrorCodeAbort", - "macos": "AgoraErrorCodeAbort" - }, - "ERR_INIT_NET_ENGINE": { - "windows": "ERR_INIT_NET_ENGINE", - "ios": "AgoraErrorCodeInitNetEngine", - "macos": "AgoraErrorCodeInitNetEngine" - }, - "ERR_RESOURCE_LIMITED": { - "windows": "ERR_RESOURCE_LIMITED", - "android": "ERR_RESOURCE_LIMITED", - "ios": "AgoraErrorCodeResourceLimited", - "macos": "AgoraErrorCodeResourceLimited" - }, - "ERR_INVALID_APP_ID": { - "windows": "ERR_INVALID_APP_ID", - "android": "ERR_INVALID_APP_ID", - "ios": "AgoraErrorCodeInvalidAppId", - "macos": "AgoraErrorCodeInvalidAppId" - }, - "ERR_INVALID_CHANNEL_NAME": { - "windows": "ERR_INVALID_CHANNEL_NAME", - "android": "ERR_INVALID_CHANNEL_NAME", - "ios": "AgoraErrorCodeInvalidChannelId", - "macos": "AgoraErrorCodeInvalidChannelId" - }, - "ERR_NO_SERVER_RESOURCES": { - "windows": "ERR_NO_SERVER_RESOURCES", - "android": "ERR_NO_SERVER_RESOURCES", - "ios": "AgoraErrorCodeNoServerResources", - "macos": "AgoraErrorCodeNoServerResources" - }, - "ERR_TOKEN_EXPIRED": { - "windows": "ERR_TOKEN_EXPIRED", - "android": "ERR_TOKEN_EXPIRED", - "ios": "AgoraErrorCodeTokenExpired", - "macos": "AgoraErrorCodeTokenExpired" - }, - "ERR_INVALID_TOKEN": { - "windows": "ERR_INVALID_TOKEN", - "android": "ERR_INVALID_TOKEN", - "ios": "AgoraErrorCodeInvalidToken", - "macos": "AgoraErrorCodeInvalidToken" - }, - "ERR_CONNECTION_INTERRUPTED": { - "windows": "ERR_CONNECTION_INTERRUPTED", - "android": "ERR_CONNECTION_INTERRUPTED", - "ios": "AgoraErrorCodeConnectionInterrupted", - "macos": "AgoraErrorCodeConnectionInterrupted" - }, - "ERR_CONNECTION_LOST": { - "windows": "ERR_CONNECTION_LOST", - "android": "ERR_CONNECTION_LOST", - "ios": "AgoraErrorCodeConnectionLost", - "macos": "AgoraErrorCodeConnectionLost" - }, - "ERR_NOT_IN_CHANNEL": { - "windows": "ERR_NOT_IN_CHANNEL", - "android": "ERR_NOT_IN_CHANNEL", - "ios": "AgoraErrorCodeNotInChannel", - "macos": "AgoraErrorCodeNotInChannel" - }, - "ERR_SIZE_TOO_LARGE": { - "windows": "ERR_SIZE_TOO_LARGE", - "android": "ERR_SIZE_TOO_LARGE", - "ios": "AgoraErrorCodeSizeTooLarge", - "macos": "AgoraErrorCodeSizeTooLarge" - }, - "ERR_BITRATE_LIMIT": { - "windows": "ERR_BITRATE_LIMIT", - "android": "ERR_BITRATE_LIMIT", - "ios": "AgoraErrorCodeBitrateLimit", - "macos": "AgoraErrorCodeBitrateLimit" - }, - "ERR_TOO_MANY_DATA_STREAMS": { - "windows": "ERR_TOO_MANY_DATA_STREAMS", - "android": "ERR_TOO_MANY_DATA_STREAMS", - "ios": "AgoraErrorCodeTooManyDataStreams", - "macos": "AgoraErrorCodeTooManyDataStreams" - }, - "ERR_STREAM_MESSAGE_TIMEOUT": { - "windows": "ERR_STREAM_MESSAGE_TIMEOUT", - "android": "ERR_STREAM_MESSAGE_TIMEOUT", - "ios": "AgoraErrorCodeStreamMessageTimeout", - "macos": "AgoraErrorCodeStreamMessageTimeout" - }, - "ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED": { - "windows": "ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED", - "android": "ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED", - "ios": "AgoraErrorCodeSetClientRoleNotAuthorzed", - "macos": "AgoraErrorCodeSetClientRoleNotAuthorzed" - }, - "ERR_DECRYPTION_FAILED": { - "windows": "ERR_DECRYPTION_FAILED", - "android": "ERR_DECRYPTION_FAILED", - "ios": "AgoraErrorCodeDecryptionFailed", - "macos": "AgoraErrorCodeDecryptionFailed" - }, - "ERR_INVALID_USER_ID": { - "windows": "ERR_INVALID_USER_ID", - "android": "ERR_INVALID_USER_ID", - "ios": "AgoraErrorCodeInvalidUserId", - "macos": "AgoraErrorCodeInvalidUserId" - }, - "ERR_CLIENT_IS_BANNED_BY_SERVER": { - "windows": "ERR_CLIENT_IS_BANNED_BY_SERVER", - "android": "ERR_CLIENT_IS_BANNED_BY_SERVER", - "ios": "AgoraErrorCodeClientIsBannedByServer", - "macos": "AgoraErrorCodeClientIsBannedByServer" - }, - "ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH": { - "windows": "ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH", - "android": "ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH", - "ios": "AgoraErrorCodeEncryptedStreamNotAllowedPublish", - "macos": "AgoraErrorCodeEncryptedStreamNotAllowedPublish" - }, - "ERR_LICENSE_CREDENTIAL_INVALID": { - "windows": "ERR_LICENSE_CREDENTIAL_INVALID", - "android": "ERR_LICENSE_CREDENTIAL_INVALID", - "ios": "ERR_LICENSE_CREDENTIAL_INVALID", - "macos": "ERR_LICENSE_CREDENTIAL_INVALID" - }, - "ERR_INVALID_USER_ACCOUNT": { - "windows": "ERR_INVALID_USER_ACCOUNT", - "android": "ERR_INVALID_USER_ACCOUNT", - "ios": "AgoraErrorCodeInvalidUserAccount", - "macos": "AgoraErrorCodeInvalidUserAccount" - }, - "ERR_MODULE_NOT_FOUND": { - "windows": "ERR_MODULE_NOT_FOUND", - "android": "ERR_MODULE_NOT_FOUND", - "ios": "AgoraErrorCodeModuleNotFound", - "macos": "AgoraErrorCodeModuleNotFound" - }, - "ERR_LOAD_MEDIA_ENGINE": { - "windows": "ERR_LOAD_MEDIA_ENGINE", - "android": "ERR_LOAD_MEDIA_ENGINE", - "ios": "AgoraErrorCodeLoadMediaEngine", - "macos": "AgoraErrorCodeLoadMediaEngine" - }, - "ERR_ADM_GENERAL_ERROR": { - "windows": "ERR_ADM_GENERAL_ERROR", - "android": "ERR_ADM_GENERAL_ERROR", - "ios": "AgoraErrorCodeAdmGeneralError", - "macos": "AgoraErrorCodeAdmGeneralError" - }, - "ERR_ADM_INIT_PLAYOUT": { - "windows": "ERR_ADM_INIT_PLAYOUT", - "android": "ERR_ADM_INIT_PLAYOUT", - "ios": "AgoraErrorCodeAdmInitPlayout", - "macos": "AgoraErrorCodeAdmInitPlayout" - }, - "ERR_ADM_START_PLAYOUT": { - "windows": "ERR_ADM_START_PLAYOUT", - "android": "ERR_ADM_START_PLAYOUT", - "ios": "AgoraErrorCodeAdmStartPlayout", - "macos": "AgoraErrorCodeAdmStartPlayout" - }, - "ERR_ADM_STOP_PLAYOUT": { - "windows": "ERR_ADM_STOP_PLAYOUT", - "android": "ERR_ADM_STOP_PLAYOUT", - "ios": "AgoraErrorCodeAdmStopPlayout", - "macos": "AgoraErrorCodeAdmStopPlayout" - }, - "ERR_ADM_INIT_RECORDING": { - "windows": "ERR_ADM_INIT_RECORDING", - "android": "ERR_ADM_INIT_RECORDING", - "ios": "AgoraErrorCodeAdmInitRecording", - "macos": "AgoraErrorCodeAdmInitRecording" - }, - "ERR_ADM_START_RECORDING": { - "windows": "ERR_ADM_START_RECORDING", - "android": "ERR_ADM_START_RECORDING", - "ios": "AgoraErrorCodeAdmStartRecording", - "macos": "AgoraErrorCodeAdmStartRecording" - }, - "ERR_ADM_STOP_RECORDING": { - "windows": "ERR_ADM_STOP_RECORDING", - "android": "ERR_ADM_STOP_RECORDING", - "ios": "AgoraErrorCodeAdmStopRecording", - "macos": "AgoraErrorCodeAdmStopRecording" - }, - "ERR_VDM_CAMERA_NOT_AUTHORIZED": { - "windows": "ERR_VDM_CAMERA_NOT_AUTHORIZED", - "android": "ERR_VDM_CAMERA_NOT_AUTHORIZED", - "ios": "AgoraErrorCodeVdmCameraNotAuthorized", - "macos": "AgoraErrorCodeVdmCameraNotAuthorized" - }, - "ERR_DATASTREAM_DECRYPTION_FAILED": { - "windows": "ERR_DATASTREAM_DECRYPTION_FAILED", - "android": "ERR_DATASTREAM_DECRYPTION_FAILED", - "ios": "AgoraErrorCodeDatastreamDecryptionFailed", - "macos": "AgoraErrorCodeDatastreamDecryptionFailed" - }, "ENCRYPTION_MODE": { "windows": "ENCRYPTION_MODE", "android": "EncryptionMode", "ios": "AgoraEncryptionMode", "macos": "AgoraEncryptionMode" }, - "AES_128_XTS": { - "windows": "AES_128_XTS", - "android": "AES_128_XTS", - "ios": "AgoraEncryptionModeAES128XTS", - "macos": "AgoraEncryptionModeAES128XTS" - }, - "AES_128_ECB": { - "windows": "AES_128_ECB", - "android": "AES_128_ECB", - "ios": "AgoraEncryptionModeAES128ECB", - "macos": "AgoraEncryptionModeAES128ECB" - }, - "AES_256_XTS": { - "windows": "AES_256_XTS", - "android": "AES_256_XTS", - "ios": "AgoraEncryptionModeAES256XTS", - "macos": "AgoraEncryptionModeAES256XTS" - }, - "SM4_128_ECB": { - "windows": "SM4_128_ECB", - "android": "SM4_128_ECB", - "ios": "AgoraEncryptionModeSM4128ECB", - "macos": "AgoraEncryptionModeSM4128ECB" - }, - "AES_128_GCM": { - "windows": "AES_128_GCM", - "android": "AES_128_GCM", - "ios": "AgoraEncryptionModeAES128GCM", - "macos": "AgoraEncryptionModeAES128GCM" - }, - "AES_256_GCM": { - "windows": "AES_256_GCM", - "android": "AES_256_GCM", - "ios": "AgoraEncryptionModeAES256GCM", - "macos": "AgoraEncryptionModeAES256GCM" - }, - "AES_128_GCM2": { - "windows": "AES_128_GCM2", - "android": "AES_128_GCM2", - "ios": "AgoraEncryptionModeAES128GCM2", - "macos": "AgoraEncryptionModeAES128GCM2" - }, - "AES_256_GCM2": { - "windows": "AES_256_GCM2", - "android": "AES_256_GCM2", - "ios": "AgoraEncryptionModeAES256GCM2", - "macos": "AgoraEncryptionModeAES256GCM2" - }, - "MODE_END": { - "windows": "MODE_END", - "android": "MODE_END", - "ios": "AgoraEncryptionModeEnd", - "macos": "AgoraEncryptionModeEnd" - }, "EXPERIENCE_POOR_REASON": { "windows": "EXPERIENCE_POOR_REASON", "ios": "AgoraExperiencePoorReason", "macos": "AgoraExperiencePoorReason" }, - "EXPERIENCE_REASON_NONE": { - "windows": "EXPERIENCE_REASON_NONE", - "android": "EXPERIENCE_REASON_NONE", - "ios": "AgoraExperiencePoorReasonNone", - "macos": "AgoraExperiencePoorReasonNone" - }, - "REMOTE_NETWORK_QUALITY_POOR": { - "windows": "REMOTE_NETWORK_QUALITY_POOR", - "android": "REMOTE_NETWORK_QUALITY_POOR", - "ios": "AgoraExperiencePoorReasonRemoteNetworkQualityPoor", - "macos": "AgoraExperiencePoorReasonRemoteNetworkQualityPoor" - }, - "LOCAL_NETWORK_QUALITY_POOR": { - "windows": "LOCAL_NETWORK_QUALITY_POOR", - "android": "LOCAL_NETWORK_QUALITY_POOR", - "ios": "AgoraExperiencePoorReasonLocalNetworkQualityPoor", - "macos": "AgoraExperiencePoorReasonLocalNetworkQualityPoor" - }, - "WIRELESS_SIGNAL_POOR": { - "windows": "WIRELESS_SIGNAL_POOR", - "android": "WIRELESS_SIGNAL_POOR", - "ios": "AgoraExperiencePoorReasonWirelessSignalPoor", - "macos": "AgoraExperiencePoorReasonWirelessSignalPoor" - }, - "WIFI_BLUETOOTH_COEXIST": { - "windows": "WIFI_BLUETOOTH_COEXIST", - "android": "WIFI_BLUETOOTH_COEXIST", - "ios": "AgoraExperiencePoorReasonWifiBluetoothCoexist", - "macos": "AgoraExperiencePoorReasonWifiBluetoothCoexist" - }, "EXPERIENCE_QUALITY_TYPE": { "windows": "EXPERIENCE_QUALITY_TYPE", "ios": "AgoraExperienceQuality", "macos": "AgoraExperienceQuality" }, - "EXPERIENCE_QUALITY_GOOD": { - "windows": "EXPERIENCE_QUALITY_GOOD", - "android": "EXPERIENCE_QUALITY_GOOD", - "ios": "AgoraExperienceQualityGood", - "macos": "AgoraExperienceQualityGood" - }, - "EXPERIENCE_QUALITY_BAD": { - "windows": "EXPERIENCE_QUALITY_BAD", - "android": "EXPERIENCE_QUALITY_BAD", - "ios": "AgoraExperienceQualityBad", - "macos": "AgoraExperienceQualityBad" - }, - "FACE_SHAPE_AREA_NONE": { - "windows": "FACE_SHAPE_AREA_NONE", - "android": "FACE_SHAPE_AREA_NONE", - "ios": "AgoraFaceShapeAreaNone", - "macos": "AgoraFaceShapeAreaNone" - }, - "FACE_SHAPE_AREA_HEADSCALE": { - "windows": "FACE_SHAPE_AREA_HEADSCALE", - "android": "FACE_SHAPE_AREA_HEADSCALE", - "ios": "AgoraFaceShapeAreaHeadScale", - "macos": "AgoraFaceShapeAreaHeadScale" - }, - "FACE_SHAPE_AREA_FOREHEAD": { - "windows": "FACE_SHAPE_AREA_FOREHEAD", - "android": "FACE_SHAPE_AREA_FOREHEAD", - "ios": "AgoraFaceShapeAreaForehead", - "macos": "AgoraFaceShapeAreaForehead" - }, - "FACE_SHAPE_AREA_FACECONTOUR": { - "windows": "FACE_SHAPE_AREA_FACECONTOUR", - "android": "FACE_SHAPE_AREA_FACECONTOUR", - "ios": "AgoraFaceShapeAreaFaceContour", - "macos": "AgoraFaceShapeAreaFaceContour" - }, - "FACE_SHAPE_AREA_FACELENGTH": { - "windows": "FACE_SHAPE_AREA_FACELENGTH", - "android": "FACE_SHAPE_AREA_FACELENGTH", - "ios": "AgoraFaceShapeAreaFaceLength", - "macos": "AgoraFaceShapeAreaFaceLength" - }, - "FACE_SHAPE_AREA_FACEWIDTH": { - "windows": "FACE_SHAPE_AREA_FACEWIDTH", - "android": "FACE_SHAPE_AREA_FACEWIDTH", - "ios": "AgoraFaceShapeAreaFaceWidth", - "macos": "AgoraFaceShapeAreaFaceWidth" - }, - "FACE_SHAPE_AREA_CHEEKBONE": { - "windows": "FACE_SHAPE_AREA_CHEEKBONE", - "android": "FACE_SHAPE_AREA_CHEEKBONE", - "ios": "AgoraFaceShapeAreaCheekbone", - "macos": "AgoraFaceShapeAreaCheekbone" - }, - "FACE_SHAPE_AREA_CHEEK": { - "windows": "FACE_SHAPE_AREA_CHEEK", - "android": "FACE_SHAPE_AREA_CHEEK", - "ios": "AgoraFaceShapeAreaCheek", - "macos": "AgoraFaceShapeAreaCheek" - }, - "FACE_SHAPE_AREA_CHIN": { - "windows": "FACE_SHAPE_AREA_CHIN", - "android": "FACE_SHAPE_AREA_CHIN", - "ios": "AgoraFaceShapeAreaChin", - "macos": "AgoraFaceShapeAreaChin" - }, - "FACE_SHAPE_AREA_EYESCALE": { - "windows": "FACE_SHAPE_AREA_EYESCALE", - "android": "FACE_SHAPE_AREA_EYESCALE", - "ios": "AgoraFaceShapeAreaEyeScale", - "macos": "AgoraFaceShapeAreaEyeScale" - }, - "FACE_SHAPE_AREA_NOSELENGTH": { - "windows": "FACE_SHAPE_AREA_NOSELENGTH", - "android": "FACE_SHAPE_AREA_NOSELENGTH", - "ios": "AgoraFaceShapeAreaNoseLength", - "macos": "AgoraFaceShapeAreaNoseLength" - }, - "FACE_SHAPE_AREA_NOSEWIDTH": { - "windows": "FACE_SHAPE_AREA_NOSEWIDTH", - "android": "FACE_SHAPE_AREA_NOSEWIDTH", - "ios": "AgoraFaceShapeAreaNoseWidth", - "macos": "AgoraFaceShapeAreaNoseWidth" - }, - "FACE_SHAPE_AREA_MOUTHSCALE": { - "windows": "FACE_SHAPE_AREA_MOUTHSCALE", - "android": "FACE_SHAPE_AREA_MOUTHSCALE", - "ios": "AgoraFaceShapeAreaMouthScale", - "macos": "AgoraFaceShapeAreaMouthScale" - }, - "FACE_SHAPE_AREA_MANDIBLE": { - "windows": "FACE_SHAPE_AREA_MANDIBLE", - "android": "FACE_SHAPE_AREA_MANDIBLE", - "ios": "AgoraFaceShapeAreaMandible", - "macos": "AgoraFaceShapeAreaMandible" - }, - "FACE_SHAPE_AREA_EYEDISTANCE": { - "windows": "FACE_SHAPE_AREA_EYEDISTANCE", - "android": "FACE_SHAPE_AREA_EYEDISTANCE", - "ios": "AgoraFaceShapeAreaEyeDistance", - "macos": "AgoraFaceShapeAreaEyeDistance" - }, - "FACE_SHAPE_AREA_EYEPOSITION": { - "windows": "FACE_SHAPE_AREA_EYEPOSITION", - "android": "FACE_SHAPE_AREA_EYEPOSITION", - "ios": "AgoraFaceShapeAreaEyePosition", - "macos": "AgoraFaceShapeAreaEyePosition" - }, - "FACE_SHAPE_AREA_LOWEREYELID": { - "windows": "FACE_SHAPE_AREA_LOWEREYELID", - "android": "FACE_SHAPE_AREA_LOWEREYELID", - "ios": "AgoraFaceShapeAreaLowerEyelid", - "macos": "AgoraFaceShapeAreaLowerEyelid" - }, - "FACE_SHAPE_AREA_EYEPUPILS": { - "windows": "FACE_SHAPE_AREA_EYEPUPILS", - "android": "FACE_SHAPE_AREA_EYEPUPILS", - "ios": "AgoraFaceShapeAreaEyePupils", - "macos": "AgoraFaceShapeAreaEyePupils" - }, - "FACE_SHAPE_AREA_EYEINNERCORNER": { - "windows": "FACE_SHAPE_AREA_EYEINNERCORNER", - "android": "FACE_SHAPE_AREA_EYEINNERCORNER", - "ios": "AgoraFaceShapeAreaEyeInnerCorner", - "macos": "AgoraFaceShapeAreaEyeInnerCorner" - }, - "FACE_SHAPE_AREA_EYEOUTERCORNER": { - "windows": "FACE_SHAPE_AREA_EYEOUTERCORNER", - "android": "FACE_SHAPE_AREA_EYEOUTERCORNER", - "ios": "AgoraFaceShapeAreaEyeOuterCorner", - "macos": "AgoraFaceShapeAreaEyeOuterCorner" - }, - "FACE_SHAPE_AREA_NOSEWING": { - "windows": "FACE_SHAPE_AREA_NOSEWING", - "android": "FACE_SHAPE_AREA_NOSEWING", - "ios": "AgoraFaceShapeAreaNoseWing", - "macos": "AgoraFaceShapeAreaNoseWing" - }, - "FACE_SHAPE_AREA_NOSEROOT": { - "windows": "FACE_SHAPE_AREA_NOSEROOT", - "android": "FACE_SHAPE_AREA_NOSEROOT", - "ios": "AgoraFaceShapeAreaNoseRoot", - "macos": "AgoraFaceShapeAreaNoseRoot" - }, - "FACE_SHAPE_AREA_NOSEBRIDGE": { - "windows": "FACE_SHAPE_AREA_NOSEBRIDGE", - "android": "FACE_SHAPE_AREA_NOSEBRIDGE", - "ios": "AgoraFaceShapeAreaNoseBridge", - "macos": "AgoraFaceShapeAreaNoseBridge" - }, - "FACE_SHAPE_AREA_NOSETIP": { - "windows": "FACE_SHAPE_AREA_NOSETIP", - "android": "FACE_SHAPE_AREA_NOSETIP", - "ios": "AgoraFaceShapeAreaNoseTip", - "macos": "AgoraFaceShapeAreaNoseTip" - }, - "FACE_SHAPE_AREA_NOSEGENERAL": { - "windows": "FACE_SHAPE_AREA_NOSEGENERAL", - "android": "FACE_SHAPE_AREA_NOSEGENERAL", - "ios": "AgoraFaceShapeAreaNoseGeneral", - "macos": "AgoraFaceShapeAreaNoseGeneral" - }, - "FACE_SHAPE_AREA_MOUTHPOSITION": { - "windows": "FACE_SHAPE_AREA_MOUTHPOSITION", - "android": "FACE_SHAPE_AREA_MOUTHPOSITION", - "ios": "AgoraFaceShapeAreaMouthPosition", - "macos": "AgoraFaceShapeAreaMouthPosition" - }, - "FACE_SHAPE_AREA_MOUTHSMILE": { - "windows": "FACE_SHAPE_AREA_MOUTHSMILE", - "android": "FACE_SHAPE_AREA_MOUTHSMILE", - "ios": "AgoraFaceShapeAreaMouthSmile", - "macos": "AgoraFaceShapeAreaMouthSmile" - }, - "FACE_SHAPE_AREA_MOUTHLIP": { - "windows": "FACE_SHAPE_AREA_MOUTHLIP", - "android": "FACE_SHAPE_AREA_MOUTHLIP", - "ios": "AgoraFaceShapeAreaMouthLip", - "macos": "AgoraFaceShapeAreaMouthLip" - }, - "FACE_SHAPE_AREA_EYEBROWPOSITION": { - "windows": "FACE_SHAPE_AREA_EYEBROWPOSITION", - "android": "FACE_SHAPE_AREA_EYEBROWPOSITION", - "ios": "AgoraFaceShapeAreaEyebrowPosition", - "macos": "AgoraFaceShapeAreaEyebrowPosition" - }, - "FACE_SHAPE_AREA_EYEBROWTHICKNESS": { - "windows": "FACE_SHAPE_AREA_EYEBROWTHICKNESS", - "android": "FACE_SHAPE_AREA_EYEBROWTHICKNESS", - "ios": "AgoraFaceShapeAreaEyebrowThickness", - "macos": "AgoraFaceShapeAreaEyebrowThickness" - }, - "FACE_SHAPE_BEAUTY_STYLE_FEMALE": { - "windows": "FACE_SHAPE_BEAUTY_STYLE_FEMALE", - "android": "FACE_SHAPE_BEAUTY_STYLE_FEMALE", - "ios": "AgoraFaceShapeStyleFemale", - "macos": "AgoraFaceShapeStyleFemale" - }, - "FACE_SHAPE_BEAUTY_STYLE_MALE": { - "windows": "FACE_SHAPE_BEAUTY_STYLE_MALE", - "android": "FACE_SHAPE_BEAUTY_STYLE_MALE", - "ios": "AgoraFaceShapeStyleMale", - "macos": "AgoraFaceShapeStyleMale" - }, - "FACE_SHAPE_BEAUTY_STYLE_NATURAL": { - "windows": "FACE_SHAPE_BEAUTY_STYLE_NATURAL", - "android": "FACE_SHAPE_BEAUTY_STYLE_NATURAL", - "ios": "AgoraFaceShapeStyleNatural", - "macos": "AgoraFaceShapeStyleNatural" + "FACE_SHAPE_AREA": { + "windows": "FACE_SHAPE_AREA", + "ios": "AgoraFaceShapeArea", + "macos": "AgoraFaceShapeArea" + }, + "FACE_SHAPE_BEAUTY_STYLE": { + "windows": "FACE_SHAPE_BEAUTY_STYLE", + "ios": "AgoraFaceShapeStyle", + "macos": "AgoraFaceShapeStyle" }, "FeatureType": { "windows": "FeatureType", - "android": "FeatureType", "ios": "AgoraFeatureType", "macos": "AgoraFeatureType" }, - "VIDEO_VIRTUAL_BACKGROUND": { - "windows": "VIDEO_VIRTUAL_BACKGROUND", - "android": "VIDEO_VIRTUAL_BACKGROUND", - "ios": "AgoraVideoPreprocessVirtualBackground", - "macos": "AgoraVideoPreprocessVirtualBackground" - }, - "VIDEO_BEAUTY_EFFECT": { - "windows": "VIDEO_BEAUTY_EFFECT", - "android": "VIDEO_BEAUTY_EFFECT", - "ios": "AgoraVideoPreprocessBeauty", - "macos": "AgoraVideoPreprocessBeauty" - }, "FRAME_RATE": { "windows": "FRAME_RATE", "android": "FRAME_RATE", "ios": "AgoraVideoFrameRate", "macos": "AgoraVideoFrameRate" }, - "FRAME_RATE_FPS_1": { - "windows": "FRAME_RATE_FPS_1", - "android": "FRAME_RATE_FPS_1", - "ios": "AgoraVideoFrameRateFps1", - "macos": "AgoraVideoFrameRateFps1" - }, - "FRAME_RATE_FPS_7": { - "windows": "FRAME_RATE_FPS_7", - "android": "FRAME_RATE_FPS_7", - "ios": "AgoraVideoFrameRateFps7", - "macos": "AgoraVideoFrameRateFps7" - }, - "FRAME_RATE_FPS_10": { - "windows": "FRAME_RATE_FPS_10", - "android": "FRAME_RATE_FPS_10", - "ios": "AgoraVideoFrameRateFps10", - "macos": "AgoraVideoFrameRateFps10" - }, - "FRAME_RATE_FPS_15": { - "windows": "FRAME_RATE_FPS_15", - "android": "FRAME_RATE_FPS_15", - "ios": "AgoraVideoFrameRateFps15", - "macos": "AgoraVideoFrameRateFps15" - }, - "FRAME_RATE_FPS_24": { - "windows": "FRAME_RATE_FPS_24", - "android": "FRAME_RATE_FPS_24", - "ios": "AgoraVideoFrameRateFps24", - "macos": "AgoraVideoFrameRateFps24" - }, - "FRAME_RATE_FPS_30": { - "windows": "FRAME_RATE_FPS_30", - "android": "FRAME_RATE_FPS_30", - "ios": "AgoraVideoFrameRateFps30", - "macos": "AgoraVideoFrameRateFps30" - }, - "FRAME_RATE_FPS_60": { - "windows": "FRAME_RATE_FPS_60", - "android": "FRAME_RATE_FPS_60", - "ios": "AgoraVideoFrameRateFps60", - "macos": "AgoraVideoFrameRateFps60" - }, "HEADPHONE_EQUALIZER_PRESET": { "windows": "HEADPHONE_EQUALIZER_PRESET", - "android": "HEADPHONE_EQUALIZER_PRESET", "ios": "AgoraHeadphoneEQPreset", "macos": "AgoraHeadphoneEQPreset" }, - "HEADPHONE_EQUALIZER_OFF": { - "windows": "HEADPHONE_EQUALIZER_OFF", - "android": "HEADPHONE_EQUALIZER_OFF", - "ios": "AgoraAudioHeadphoneEQPresetOff", - "macos": "AgoraAudioHeadphoneEQPresetOff" - }, - "HEADPHONE_EQUALIZER_OVEREAR": { - "windows": "HEADPHONE_EQUALIZER_OVEREAR", - "android": "HEADPHONE_EQUALIZER_OVEREAR", - "ios": "AgoraAudioHeadphoneEQPresetOverear", - "macos": "AgoraAudioHeadphoneEQPresetOverear" - }, - "HEADPHONE_EQUALIZER_INEAR": { - "windows": "HEADPHONE_EQUALIZER_INEAR", - "android": "HEADPHONE_EQUALIZER_INEAR", - "ios": "AgoraAudioHeadphoneEQPresetInear", - "macos": "AgoraAudioHeadphoneEQPresetInear" - }, - "FORMAT_MP4": { - "windows": "FORMAT_MP4", - "android": "CONTAINER_MP4", - "ios": "AgoraMediaRecorderContainerFormatMP4", - "macos": "AgoraMediaRecorderContainerFormatMP4" + "MediaRecorderContainerFormat": { + "windows": "MediaRecorderContainerFormat", + "ios": "AgoraMediaRecorderContainerFormat", + "macos": "AgoraMediaRecorderContainerFormat" }, "MediaRecorderStreamType": { "windows": "MediaRecorderStreamType", "ios": "AgoraMediaRecorderStreamType", "macos": "AgoraMediaRecorderStreamType" }, - "STREAM_TYPE_AUDIO": { - "windows": "STREAM_TYPE_AUDIO", - "android": "STREAM_TYPE_AUDIO", - "ios": "AgoraMediaStreamTypeAudio", - "macos": "AgoraMediaStreamTypeAudio" - }, - "STREAM_TYPE_VIDEO": { - "windows": "STREAM_TYPE_VIDEO", - "android": "STREAM_TYPE_VIDEO", - "ios": "AgoraMediaStreamTypeVideo", - "macos": "AgoraMediaStreamTypeVideo" - }, - "STREAM_TYPE_BOTH": { - "windows": "STREAM_TYPE_BOTH", - "android": "STREAM_TYPE_BOTH", - "ios": "AgoraMediaRecorderStreamTypeBoth", - "macos": "AgoraMediaRecorderStreamTypeBoth" - }, "LASTMILE_PROBE_RESULT_STATE": { "windows": "LASTMILE_PROBE_RESULT_STATE", "ios": "AgoraLastmileProbeResultState", "macos": "AgoraLastmileProbeResultState" }, - "LASTMILE_PROBE_RESULT_COMPLETE": { - "windows": "LASTMILE_PROBE_RESULT_COMPLETE", - "android": "LASTMILE_PROBE_RESULT_COMPLETE", - "ios": "AgoraLastmileProbeResultComplete", - "macos": "AgoraLastmileProbeResultComplete" - }, - "LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE": { - "windows": "LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE", - "android": "LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE", - "ios": "AgoraLastmileProbeResultIncompleteNoBwe", - "macos": "AgoraLastmileProbeResultIncompleteNoBwe" - }, - "LASTMILE_PROBE_RESULT_UNAVAILABLE": { - "windows": "LASTMILE_PROBE_RESULT_UNAVAILABLE", - "android": "LASTMILE_PROBE_RESULT_UNAVAILABLE", - "ios": "AgoraLastmileProbeResultUnavailable", - "macos": "AgoraLastmileProbeResultUnavailable" - }, "LIGHTENING_CONTRAST_LEVEL": { "windows": "LIGHTENING_CONTRAST_LEVEL", "ios": "AgoraLighteningContrastLevel", "macos": "AgoraLighteningContrastLevel" }, - "LIGHTENING_CONTRAST_LOW": { - "windows": "LIGHTENING_CONTRAST_LOW", - "android": "LIGHTENING_CONTRAST_LOW", - "ios": "AgoraLighteningContrastLow", - "macos": "AgoraLighteningContrastLow" - }, - "LIGHTENING_CONTRAST_NORMAL": { - "windows": "LIGHTENING_CONTRAST_NORMAL", - "android": "LIGHTENING_CONTRAST_NORMAL", - "ios": "AgoraLighteningContrastNormal", - "macos": "AgoraLighteningContrastNormal" - }, - "LIGHTENING_CONTRAST_HIGH": { - "windows": "LIGHTENING_CONTRAST_HIGH", - "android": "LIGHTENING_CONTRAST_HIGH", - "ios": "AgoraLighteningContrastHigh", - "macos": "AgoraLighteningContrastHigh" - }, "LOCAL_AUDIO_STREAM_REASON": { "windows": "LOCAL_AUDIO_STREAM_REASON", "ios": "AgoraAudioLocalReason", "macos": "AgoraAudioLocalReason" }, - "LOCAL_AUDIO_STREAM_REASON_OK": { - "windows": "LOCAL_AUDIO_STREAM_REASON_OK", - "android": "LOCAL_AUDIO_STREAM_REASON_OK", - "ios": "AgoraAudioLocalReasonOK", - "macos": "AgoraAudioLocalReasonOK" - }, - "LOCAL_AUDIO_STREAM_REASON_FAILURE": { - "windows": "LOCAL_AUDIO_STREAM_REASON_FAILURE", - "android": "LOCAL_AUDIO_STREAM_REASON_FAILURE", - "ios": "AgoraAudioLocalReasonFailure", - "macos": "AgoraAudioLocalReasonFailure" - }, - "LOCAL_AUDIO_STREAM_REASON_DEVICE_NO_PERMISSION": { - "windows": "LOCAL_AUDIO_STREAM_REASON_DEVICE_NO_PERMISSION", - "android": "LOCAL_AUDIO_STREAM_REASON_DEVICE_NO_PERMISSION", - "ios": "AgoraAudioLocalReasonDeviceNoPermission", - "macos": "AgoraAudioLocalReasonDeviceNoPermission" - }, - "LOCAL_AUDIO_STREAM_REASON_DEVICE_BUSY": { - "windows": "LOCAL_AUDIO_STREAM_REASON_DEVICE_BUSY", - "android": "LOCAL_AUDIO_STREAM_REASON_DEVICE_BUSY", - "ios": "AgoraAudioLocalReasonDeviceBusy", - "macos": "AgoraAudioLocalReasonDeviceBusy" - }, - "LOCAL_AUDIO_STREAM_REASON_RECORD_FAILURE": { - "windows": "LOCAL_AUDIO_STREAM_REASON_RECORD_FAILURE", - "android": "LOCAL_AUDIO_STREAM_REASON_CAPTURE_FAILURE", - "ios": "AgoraAudioLocalReasonRecordFailure", - "macos": "AgoraAudioLocalReasonRecordFailure" - }, - "LOCAL_AUDIO_STREAM_REASON_ENCODE_FAILURE": { - "windows": "LOCAL_AUDIO_STREAM_REASON_ENCODE_FAILURE", - "android": "LOCAL_AUDIO_STREAM_REASON_ENCODE_FAILURE", - "ios": "AgoraAudioLocalReasonEncodeFailure", - "macos": "AgoraAudioLocalReasonEncodeFailure" - }, - "LOCAL_AUDIO_STREAM_REASON_NO_RECORDING_DEVICE": { - "windows": "LOCAL_AUDIO_STREAM_REASON_NO_RECORDING_DEVICE", - "macos": "AgoraAudioLocalReasonNoRecordingDevice" - }, - "LOCAL_AUDIO_STREAM_REASON_NO_PLAYOUT_DEVICE": { - "windows": "LOCAL_AUDIO_STREAM_REASON_NO_PLAYOUT_DEVICE", - "macos": "AgoraAudioLocalReasonNoPlayoutDevice" - }, - "LOCAL_AUDIO_STREAM_REASON_INTERRUPTED": { - "windows": "LOCAL_AUDIO_STREAM_REASON_INTERRUPTED", - "android": "LOCAL_AUDIO_STREAM_REASON_INTERRUPTED", - "ios": "AgoraAudioLocalReasonInterrupted" - }, - "LOCAL_AUDIO_STREAM_REASON_RECORD_INVALID_ID": { - "windows": "LOCAL_AUDIO_STREAM_REASON_RECORD_INVALID_ID" - }, - "LOCAL_AUDIO_STREAM_REASON_PLAYOUT_INVALID_ID": { - "windows": "LOCAL_AUDIO_STREAM_REASON_PLAYOUT_INVALID_ID" - }, "LOCAL_AUDIO_STREAM_STATE": { "windows": "LOCAL_AUDIO_STREAM_STATE", "ios": "AgoraAudioLocalState", "macos": "AgoraAudioLocalState" }, - "LOCAL_AUDIO_STREAM_STATE_STOPPED": { - "windows": "LOCAL_AUDIO_STREAM_STATE_STOPPED", - "android": "LOCAL_AUDIO_STREAM_STATE_STOPPED", - "ios": "AgoraAudioLocalStateStopped", - "macos": "AgoraAudioLocalStateStopped" - }, - "LOCAL_AUDIO_STREAM_STATE_RECORDING": { - "windows": "LOCAL_AUDIO_STREAM_STATE_RECORDING", - "android": "LOCAL_AUDIO_STREAM_STATE_RECORDING", - "ios": "AgoraAudioLocalStateRecording", - "macos": "AgoraAudioLocalStateRecording" - }, - "LOCAL_AUDIO_STREAM_STATE_ENCODING": { - "windows": "LOCAL_AUDIO_STREAM_STATE_ENCODING", - "android": "LOCAL_AUDIO_STREAM_STATE_ENCODING", - "ios": "AgoraAudioLocalStateEncoding", - "macos": "AgoraAudioLocalStateEncoding" - }, - "LOCAL_AUDIO_STREAM_STATE_FAILED": { - "windows": "LOCAL_AUDIO_STREAM_STATE_FAILED", - "android": "LOCAL_AUDIO_STREAM_STATE_FAILED", - "ios": "AgoraAudioLocalStateFailed", - "macos": "AgoraAudioLocalStateFailed" - }, - "ConnectivityFirst": { - "windows": "ConnectivityFirst", - "ios": "AgoraConnectivityFirst", - "macos": "AgoraConnectivityFirst" - }, - "LocalOnly": { - "windows": "LocalOnly", - "ios": "AgoraLocalOnly", - "macos": "AgoraLocalOnly" + "LOCAL_PROXY_MODE": { + "windows": "LOCAL_PROXY_MODE", + "ios": "AgoraLocalProxyMode", + "macos": "AgoraLocalProxyMode" }, "LOCAL_VIDEO_STREAM_REASON": { "windows": "LOCAL_VIDEO_STREAM_REASON", "ios": "AgoraLocalVideoStreamReason", "macos": "AgoraLocalVideoStreamReason" }, - "LOCAL_VIDEO_STREAM_REASON_OK": { - "windows": "LOCAL_VIDEO_STREAM_REASON_OK", - "android": "LOCAL_VIDEO_STREAM_REASON_OK", - "ios": "AgoraLocalVideoStreamReasonOK", - "macos": "AgoraLocalVideoStreamReasonOK" - }, - "LOCAL_VIDEO_STREAM_REASON_FAILURE": { - "windows": "LOCAL_VIDEO_STREAM_REASON_FAILURE", - "android": "LOCAL_VIDEO_STREAM_REASON_FAILURE", - "ios": "AgoraLocalVideoStreamReasonFailure", - "macos": "AgoraLocalVideoStreamReasonFailure" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_NO_PERMISSION": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_NO_PERMISSION", - "android": "LOCAL_VIDEO_STREAM_REASON_DEVICE_NO_PERMISSION", - "ios": "AgoraLocalVideoStreamReasonDeviceNoPermission", - "macos": "AgoraLocalVideoStreamReasonDeviceNoPermission" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_BUSY": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_BUSY", - "android": "LOCAL_VIDEO_STREAM_REASON_DEVICE_BUSY", - "ios": "AgoraLocalVideoStreamReasonDeviceBusy", - "macos": "AgoraLocalVideoStreamReasonDeviceBusy" - }, - "LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE": { - "windows": "LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE", - "android": "LOCAL_VIDEO_STREAM_REASON_CAPTURE_FAILURE", - "ios": "AgoraLocalVideoStreamReasonCaptureFailure", - "macos": "AgoraLocalVideoStreamReasonCaptureFailure" - }, - "LOCAL_VIDEO_STREAM_REASON_CODEC_NOT_SUPPORT": { - "windows": "LOCAL_VIDEO_STREAM_REASON_CODEC_NOT_SUPPORT", - "android": "LOCAL_VIDEO_STREAM_REASON_CODEC_NOT_SUPPORT", - "ios": "AgoraLocalVideoStreamReasonCodecNotSupport", - "macos": "AgoraLocalVideoStreamReasonCodecNotSupport" - }, - "LOCAL_VIDEO_STREAM_REASON_CAPTURE_INBACKGROUND": { - "windows": "LOCAL_VIDEO_STREAM_REASON_CAPTURE_INBACKGROUND", - "ios": "AgoraLocalVideoStreamReasonCaptureInBackGround" - }, - "LOCAL_VIDEO_STREAM_REASON_CAPTURE_MULTIPLE_FOREGROUND_APPS": { - "windows": "LOCAL_VIDEO_STREAM_REASON_CAPTURE_MULTIPLE_FOREGROUND_APPS", - "ios": "AgoraLocalVideoStreamReasonCaptureMultipleForegroundApps" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND", - "android": "LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND", - "ios": "AgoraLocalVideoStreamReasonCaptureNoDeviceFound", - "macos": "AgoraLocalVideoStreamReasonCaptureNoDeviceFound" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED", - "ios": "AgoraLocalVideoStreamReasonCaptureDeviceDisconnected", - "macos": "AgoraLocalVideoStreamReasonCaptureDeviceDisconnected" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_INVALID_ID": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_INVALID_ID", - "ios": "AgoraLocalVideoStreamReasonCaptureDeviceInvalidId", - "macos": "AgoraLocalVideoStreamReasonCaptureDeviceInvalidId" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED", - "android": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED", - "ios": "AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized", - "macos": "AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED", - "android": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED", - "ios": "AgoraLocalVideoStreamReasonScreenCaptureWindowClosed", - "macos": "AgoraLocalVideoStreamReasonScreenCaptureWindowClosed" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_OCCLUDED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_OCCLUDED" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT", - "android": "LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR", - "android": "LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_NO_PERMISSION": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_NO_PERMISSION", - "macos": "AgoraLocalVideoStreamReasonScreenCaptureNoPermission" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_AUTO_FALLBACK": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_AUTO_FALLBACK" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_PAUSED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_PAUSED" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_RESUMED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_RESUMED" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_HIDDEN": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_HIDDEN" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED", - "macos": "AgoraLocalVideoStreamReasonScreenCaptureRecoverFromMinimized" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE", - "android": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE" - }, - "LOCAL_VIDEO_STREAM_REASON_DEVICE_SYSTEM_PRESSURE": { - "windows": "LOCAL_VIDEO_STREAM_REASON_DEVICE_SYSTEM_PRESSURE" - }, - "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED": { - "windows": "LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED", - "macos": "AgoraLocalVideoStreamReasonScreenCaptureDisplayDisconnected" - }, "LOCAL_VIDEO_STREAM_STATE": { "windows": "LOCAL_VIDEO_STREAM_STATE", "ios": "AgoraVideoLocalState", "macos": "AgoraVideoLocalState" }, - "LOCAL_VIDEO_STREAM_STATE_STOPPED": { - "windows": "LOCAL_VIDEO_STREAM_STATE_STOPPED", - "android": "LOCAL_VIDEO_STREAM_STATE_STOPPED", - "ios": "AgoraVideoLocalStateStopped", - "macos": "AgoraVideoLocalStateStopped" - }, - "LOCAL_VIDEO_STREAM_STATE_CAPTURING": { - "windows": "LOCAL_VIDEO_STREAM_STATE_CAPTURING", - "android": "LOCAL_VIDEO_STREAM_STATE_CAPTURING", - "ios": "AgoraVideoLocalStateCapturing", - "macos": "AgoraVideoLocalStateCapturing" - }, - "LOCAL_VIDEO_STREAM_STATE_ENCODING": { - "windows": "LOCAL_VIDEO_STREAM_STATE_ENCODING", - "android": "LOCAL_VIDEO_STREAM_STATE_ENCODING", - "ios": "AgoraVideoLocalStateEncoding", - "macos": "AgoraVideoLocalStateEncoding" - }, - "LOCAL_VIDEO_STREAM_STATE_FAILED": { - "windows": "LOCAL_VIDEO_STREAM_STATE_FAILED", - "android": "LOCAL_VIDEO_STREAM_STATE_FAILED", - "ios": "AgoraVideoLocalStateFailed", - "macos": "AgoraVideoLocalStateFailed" - }, - "ERR_SCREEN_CAPTURE_PERMISSION_DENIED": { - "windows": "ERR_SCREEN_CAPTURE_PERMISSION_DENIED", - "android": "ERR_SCREEN_CAPTURE_PERMISSION_DENIED" - }, - "ERR_SCREEN_CAPTURE_SYSTEM_NOT_SUPPORTED": { - "windows": "ERR_SCREEN_CAPTURE_SYSTEM_NOT_SUPPORTED", - "android": "ERR_SCREEN_CAPTURE_SYSTEM_NOT_SUPPORTED" - }, - "ERR_SCREEN_CAPTURE_SYSTEM_AUDIO_NOT_SUPPORTED": { - "windows": "ERR_SCREEN_CAPTURE_SYSTEM_AUDIO_NOT_SUPPORTED", - "android": "ERR_SCREEN_CAPTURE_SYSTEM_AUDIO_NOT_SUPPORTED" - }, "LOG_FILTER_TYPE": { "windows": "LOG_FILTER_TYPE", "ios": "AgoraLogFilter", "macos": "AgoraLogFilter" }, - "LOG_FILTER_OFF": { - "windows": "LOG_FILTER_OFF", - "android": "LOG_FILTER_OFF", - "ios": "AgoraLogFilterOff", - "macos": "AgoraLogFilterOff" - }, - "LOG_FILTER_DEBUG": { - "windows": "LOG_FILTER_DEBUG", - "android": "LOG_FILTER_DEBUG", - "ios": "AgoraLogFilterDebug", - "macos": "AgoraLogFilterDebug" - }, - "LOG_FILTER_INFO": { - "windows": "LOG_FILTER_INFO", - "android": "LOG_FILTER_INFO", - "ios": "AgoraLogFilterInfo", - "macos": "AgoraLogFilterInfo" - }, - "LOG_FILTER_WARN": { - "windows": "LOG_FILTER_WARN", - "android": "LOG_FILTER_WARN", - "ios": "AgoraLogFilterWarning", - "macos": "AgoraLogFilterWarning" - }, - "LOG_FILTER_ERROR": { - "windows": "LOG_FILTER_ERROR", - "android": "LOG_FILTER_ERROR", - "ios": "AgoraLogFilterError", - "macos": "AgoraLogFilterError" - }, - "LOG_FILTER_CRITICAL": { - "windows": "LOG_FILTER_CRITICAL", - "android": "LOG_FILTER_CRITICAL", - "ios": "AgoraLogFilterCritical", - "macos": "AgoraLogFilterCritical" - }, "LOG_LEVEL": { "windows": "LOG_LEVEL", "android": "LogLevel", "ios": "AgoraLogLevel", "macos": "AgoraLogLevel" }, - "LOG_LEVEL_NONE": { - "windows": "LOG_LEVEL_NONE", - "android": "LOG_LEVEL_NONE", - "ios": "AgoraLogLevelNone", - "macos": "AgoraLogLevelNone" - }, - "LOG_LEVEL_INFO": { - "windows": "LOG_LEVEL_INFO", - "android": "LOG_LEVEL_INFO", - "ios": "AgoraLogLevelInfo", - "macos": "AgoraLogLevelInfo" - }, - "LOG_LEVEL_WARN": { - "windows": "LOG_LEVEL_WARN", - "android": "LOG_LEVEL_WARN", - "ios": "AgoraLogLevelWarn", - "macos": "AgoraLogLevelWarn" - }, - "LOG_LEVEL_ERROR": { - "windows": "LOG_LEVEL_ERROR", - "android": "LOG_LEVEL_ERROR", - "ios": "AgoraLogLevelError", - "macos": "AgoraLogLevelError" - }, - "LOG_LEVEL_FATAL": { - "windows": "LOG_LEVEL_FATAL", - "android": "LOG_LEVEL_FATAL", - "ios": "AgoraLogLevelFatal", - "macos": "AgoraLogLevelFatal" - }, "LOW_LIGHT_ENHANCE_MODE": { "windows": "LOW_LIGHT_ENHANCE_MODE", "ios": "AgoraLowlightEnhanceMode", "macos": "AgoraLowlightEnhanceMode" }, - "LOW_LIGHT_ENHANCE_AUTO": { - "windows": "LOW_LIGHT_ENHANCE_AUTO", - "android": "LOW_LIGHT_ENHANCE_AUTO", - "ios": "AgoraLowlightEnhanceModeAuto", - "macos": "AgoraLowlightEnhanceModeAuto" - }, - "LOW_LIGHT_ENHANCE_MANUAL": { - "windows": "LOW_LIGHT_ENHANCE_MANUAL", - "android": "LOW_LIGHT_ENHANCE_MANUAL", - "ios": "AgoraLowlightEnhanceModeManual", - "macos": "AgoraLowlightEnhanceModeManual" - }, "LOW_LIGHT_ENHANCE_LEVEL": { "windows": "LOW_LIGHT_ENHANCE_LEVEL", "ios": "AgoraLowlightEnhanceLevel", "macos": "AgoraLowlightEnhanceLevel" }, - "LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY": { - "windows": "LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY", - "android": "LOW_LIGHT_ENHANCE_LEVEL_HIGH_QUALITY", - "ios": "AgoraLowlightEnhanceLevelQuality", - "macos": "AgoraLowlightEnhanceLevelQuality" - }, - "LOW_LIGHT_ENHANCE_LEVEL_FAST": { - "windows": "LOW_LIGHT_ENHANCE_LEVEL_FAST", - "android": "LOW_LIGHT_ENHANCE_LEVEL_FAST", - "ios": "AgoraLowlightEnhanceLevelFast", - "macos": "AgoraLowlightEnhanceLevelFast" - }, - "MAX_CHANNEL_ID_LENGTH_TYPE": { - "windows": "MAX_CHANNEL_ID_LENGTH_TYPE" - }, - "MAX_CHANNEL_ID_LENGTH": { - "windows": "MAX_CHANNEL_ID_LENGTH" - }, "MAX_DEVICE_ID_LENGTH_TYPE": { "windows": "MAX_DEVICE_ID_LENGTH_TYPE" }, - "MAX_DEVICE_ID_LENGTH": { - "windows": "MAX_DEVICE_ID_LENGTH" - }, "MAX_USER_ACCOUNT_LENGTH_TYPE": { "windows": "MAX_USER_ACCOUNT_LENGTH_TYPE" }, - "MAX_USER_ACCOUNT_LENGTH": { - "windows": "MAX_USER_ACCOUNT_LENGTH" - }, "MEDIA_DEVICE_STATE_TYPE": { "windows": "MEDIA_DEVICE_STATE_TYPE" }, - "MEDIA_DEVICE_STATE_IDLE": { - "windows": "MEDIA_DEVICE_STATE_IDLE" - }, - "MEDIA_DEVICE_STATE_ACTIVE": { - "windows": "MEDIA_DEVICE_STATE_ACTIVE", - "android": "MEDIA_DEVICE_STATE_ACTIVE" - }, - "MEDIA_DEVICE_STATE_DISABLED": { - "windows": "MEDIA_DEVICE_STATE_DISABLED", - "android": "MEDIA_DEVICE_STATE_DISABLED" - }, - "MEDIA_DEVICE_STATE_PLUGGED_IN": { - "windows": "MEDIA_DEVICE_STATE_PLUGGED_IN" - }, - "MEDIA_DEVICE_STATE_NOT_PRESENT": { - "windows": "MEDIA_DEVICE_STATE_NOT_PRESENT", - "android": "MEDIA_DEVICE_STATE_NOT_PRESENT" - }, - "MEDIA_DEVICE_STATE_UNPLUGGED": { - "windows": "MEDIA_DEVICE_STATE_UNPLUGGED", - "android": "MEDIA_DEVICE_STATE_UNPLUGGED" - }, - "MEDIA_DEVICE_STATE_UNRECOMMENDED": { - "windows": "MEDIA_DEVICE_STATE_UNRECOMMENDED", - "android": "MEDIA_DEVICE_STATE_UNRECOMMENDED" - }, "MEDIA_DEVICE_TYPE": { "windows": "MEDIA_DEVICE_TYPE", "macos": "AgoraMediaDeviceType" }, - "UNKNOWN_AUDIO_DEVICE": { - "windows": "UNKNOWN_AUDIO_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioUnknown" - }, - "AUDIO_PLAYOUT_DEVICE": { - "windows": "AUDIO_PLAYOUT_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioPlayout" - }, - "AUDIO_RECORDING_DEVICE": { - "windows": "AUDIO_RECORDING_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioRecording" - }, - "VIDEO_RENDER_DEVICE": { - "windows": "VIDEO_RENDER_DEVICE", - "macos": "AgoraMediaDeviceTypeVideoRender" - }, - "VIDEO_CAPTURE_DEVICE": { - "windows": "VIDEO_CAPTURE_DEVICE", - "macos": "AgoraMediaDeviceTypeVideoCapture" - }, - "AUDIO_APPLICATION_PLAYOUT_DEVICE": { - "windows": "AUDIO_APPLICATION_PLAYOUT_DEVICE", - "android": "AUDIO_APPLICATION_PLAYOUT_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioApplicationPlayout" - }, - "AUDIO_VIRTUAL_PLAYOUT_DEVICE": { - "windows": "AUDIO_VIRTUAL_PLAYOUT_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioVirtualPlayout" - }, - "AUDIO_VIRTUAL_RECORDING_DEVICE": { - "windows": "AUDIO_VIRTUAL_RECORDING_DEVICE", - "macos": "AgoraMediaDeviceTypeAudioVirtualRecording" - }, "MEDIA_PLAYER_REASON": { "windows": "MEDIA_PLAYER_REASON", "android": "MediaPlayerReason", "ios": "AgoraMediaPlayerReason", "macos": "AgoraMediaPlayerReason" }, - "PLAYER_REASON_NONE": { - "windows": "PLAYER_REASON_NONE", - "android": "PLAYER_REASON_NONE", - "ios": "AgoraMediaPlayerReasonNone", - "macos": "AgoraMediaPlayerReasonNone" - }, - "PLAYER_REASON_INVALID_ARGUMENTS": { - "windows": "PLAYER_REASON_INVALID_ARGUMENTS", - "android": "PLAYER_REASON_INVALID_ARGUMENTS", - "ios": "AgoraMediaPlayerReasonInvalidArguments", - "macos": "AgoraMediaPlayerReasonInvalidArguments" - }, - "PLAYER_REASON_INTERNAL": { - "windows": "PLAYER_REASON_INTERNAL", - "android": "PLAYER_REASON_INTERNAL", - "ios": "AgoraMediaPlayerReasonInternal", - "macos": "AgoraMediaPlayerReasonInternal" - }, - "PLAYER_REASON_NO_RESOURCE": { - "windows": "PLAYER_REASON_NO_RESOURCE", - "android": "PLAYER_REASON_NO_RESOURCE", - "ios": "AgoraMediaPlayerReasonNoSource", - "macos": "AgoraMediaPlayerReasonNoSource" - }, - "PLAYER_REASON_INVALID_MEDIA_SOURCE": { - "windows": "PLAYER_REASON_INVALID_MEDIA_SOURCE", - "android": "PLAYER_REASON_INVALID_MEDIA_SOURCE", - "ios": "AgoraMediaPlayerReasonInvalidMediaSource", - "macos": "AgoraMediaPlayerReasonInvalidMediaSource" - }, - "PLAYER_REASON_UNKNOWN_STREAM_TYPE": { - "windows": "PLAYER_REASON_UNKNOWN_STREAM_TYPE", - "android": "PLAYER_REASON_UNKNOWN_STREAM_TYPE", - "ios": "AgoraMediaPlayerReasonUnknowStreamType", - "macos": "AgoraMediaPlayerReasonUnknowStreamType" - }, - "PLAYER_REASON_OBJ_NOT_INITIALIZED": { - "windows": "PLAYER_REASON_OBJ_NOT_INITIALIZED", - "android": "PLAYER_REASON_OBJ_NOT_INITIALIZED", - "ios": "AgoraMediaPlayerReasonObjNotInitialized", - "macos": "AgoraMediaPlayerReasonObjNotInitialized" - }, - "PLAYER_REASON_CODEC_NOT_SUPPORTED": { - "windows": "PLAYER_REASON_CODEC_NOT_SUPPORTED", - "android": "PLAYER_REASON_CODEC_NOT_SUPPORTED", - "ios": "AgoraMediaPlayerReasonCodecNotSupported", - "macos": "AgoraMediaPlayerReasonCodecNotSupported" - }, - "PLAYER_REASON_VIDEO_RENDER_FAILED": { - "windows": "PLAYER_REASON_VIDEO_RENDER_FAILED", - "android": "PLAYER_REASON_VIDEO_RENDER_FAILED", - "ios": "AgoraMediaPlayerReasonVideoRenderFailed", - "macos": "AgoraMediaPlayerReasonVideoRenderFailed" - }, - "PLAYER_REASON_INVALID_STATE": { - "windows": "PLAYER_REASON_INVALID_STATE", - "android": "PLAYER_REASON_INVALID_STATE", - "ios": "AgoraMediaPlayerReasonInvalidState", - "macos": "AgoraMediaPlayerReasonInvalidState" - }, - "PLAYER_REASON_URL_NOT_FOUND": { - "windows": "PLAYER_REASON_URL_NOT_FOUND", - "android": "PLAYER_REASON_URL_NOT_FOUND", - "ios": "AgoraMediaPlayerReasonUrlNotFound", - "macos": "AgoraMediaPlayerReasonUrlNotFound" - }, - "PLAYER_REASON_INVALID_CONNECTION_STATE": { - "windows": "PLAYER_REASON_INVALID_CONNECTION_STATE", - "android": "PLAYER_REASON_INVALID_CONNECTION_STATE", - "ios": "AgoraMediaPlayerReasonInvalidConnectState", - "macos": "AgoraMediaPlayerReasonInvalidConnectState" - }, - "PLAYER_REASON_SRC_BUFFER_UNDERFLOW": { - "windows": "PLAYER_REASON_SRC_BUFFER_UNDERFLOW", - "android": "PLAYER_REASON_SRC_BUFFER_UNDERFLOW", - "ios": "AgoraMediaPlayerReasonSrcBufferUnderflow", - "macos": "AgoraMediaPlayerReasonSrcBufferUnderflow" - }, - "PLAYER_REASON_INTERRUPTED": { - "windows": "PLAYER_REASON_INTERRUPTED", - "android": "PLAYER_REASON_INTERRUPTED", - "ios": "AgoraMediaPlayerReasonInterrupted", - "macos": "AgoraMediaPlayerReasonInterrupted" - }, - "PLAYER_REASON_NOT_SUPPORTED": { - "windows": "PLAYER_REASON_NOT_SUPPORTED", - "android": "PLAYER_REASON_NOT_SUPPORTED", - "ios": "AgoraMediaPlayerReasonNotSupported", - "macos": "AgoraMediaPlayerReasonNotSupported" - }, - "PLAYER_REASON_TOKEN_EXPIRED": { - "windows": "PLAYER_REASON_TOKEN_EXPIRED", - "android": "PLAYER_REASON_TOKEN_EXPIRED", - "ios": "AgoraMediaPlayerReasonTokenExpired", - "macos": "AgoraMediaPlayerReasonTokenExpired" - }, - "PLAYER_REASON_UNKNOWN": { - "windows": "PLAYER_REASON_UNKNOWN", - "android": "PLAYER_REASON_UNKNOWN", - "ios": "AgoraMediaPlayerReasonUnknown", - "macos": "AgoraMediaPlayerReasonUnknown" - }, "MEDIA_PLAYER_EVENT": { "windows": "MEDIA_PLAYER_EVENT", "android": "MediaPlayerEvent", "ios": "AgoraMediaPlayerEvent", "macos": "AgoraMediaPlayerEvent" }, - "PLAYER_EVENT_SEEK_BEGIN": { - "windows": "PLAYER_EVENT_SEEK_BEGIN", - "android": "PLAYER_EVENT_SEEK_BEGIN", - "ios": "AgoraMediaPlayerEventSeekBegin", - "macos": "AgoraMediaPlayerEventSeekBegin" - }, - "PLAYER_EVENT_SEEK_COMPLETE": { - "windows": "PLAYER_EVENT_SEEK_COMPLETE", - "android": "PLAYER_EVENT_SEEK_COMPLETE", - "ios": "AgoraMediaPlayerEventSeekComplete", - "macos": "AgoraMediaPlayerEventSeekComplete" - }, - "PLAYER_EVENT_SEEK_ERROR": { - "windows": "PLAYER_EVENT_SEEK_ERROR", - "android": "PLAYER_EVENT_SEEK_ERROR", - "ios": "AgoraMediaPlayerEventSeekError", - "macos": "AgoraMediaPlayerEventSeekError" - }, - "PLAYER_EVENT_AUDIO_TRACK_CHANGED": { - "windows": "PLAYER_EVENT_AUDIO_TRACK_CHANGED", - "android": "PLAYER_EVENT_AUDIO_TRACK_CHANGED", - "ios": "AgoraMediaPlayerEventAudioTrackChanged", - "macos": "AgoraMediaPlayerEventAudioTrackChanged" - }, - "PLAYER_EVENT_BUFFER_LOW": { - "windows": "PLAYER_EVENT_BUFFER_LOW", - "android": "PLAYER_EVENT_BUFFER_LOW", - "ios": "AgoraMediaPlayerEventBufferLow", - "macos": "AgoraMediaPlayerEventBufferLow" - }, - "PLAYER_EVENT_BUFFER_RECOVER": { - "windows": "PLAYER_EVENT_BUFFER_RECOVER", - "android": "PLAYER_EVENT_BUFFER_RECOVER", - "ios": "AgoraMediaPlayerEventBufferRecover", - "macos": "AgoraMediaPlayerEventBufferRecover" - }, - "PLAYER_EVENT_FREEZE_START": { - "windows": "PLAYER_EVENT_FREEZE_START", - "android": "PLAYER_EVENT_FREEZE_START", - "ios": "AgoraMediaPlayerEventFreezeStart", - "macos": "AgoraMediaPlayerEventFreezeStart" - }, - "PLAYER_EVENT_FREEZE_STOP": { - "windows": "PLAYER_EVENT_FREEZE_STOP", - "android": "PLAYER_EVENT_FREEZE_STOP", - "ios": "AgoraMediaPlayerEventFreezeStop", - "macos": "AgoraMediaPlayerEventFreezeStop" - }, - "PLAYER_EVENT_SWITCH_BEGIN": { - "windows": "PLAYER_EVENT_SWITCH_BEGIN", - "android": "PLAYER_EVENT_SWITCH_BEGIN", - "ios": "AgoraMediaPlayerEventSwitchBegin", - "macos": "AgoraMediaPlayerEventSwitchBegin" - }, - "PLAYER_EVENT_SWITCH_COMPLETE": { - "windows": "PLAYER_EVENT_SWITCH_COMPLETE", - "android": "PLAYER_EVENT_SWITCH_COMPLETE", - "ios": "AgoraMediaPlayerEventSwitchComplete", - "macos": "AgoraMediaPlayerEventSwitchComplete" - }, - "PLAYER_EVENT_SWITCH_ERROR": { - "windows": "PLAYER_EVENT_SWITCH_ERROR", - "android": "PLAYER_EVENT_SWITCH_ERROR", - "ios": "AgoraMediaPlayerEventSwitchError", - "macos": "AgoraMediaPlayerEventSwitchError" - }, - "PLAYER_EVENT_FIRST_DISPLAYED": { - "windows": "PLAYER_EVENT_FIRST_DISPLAYED", - "android": "PLAYER_EVENT_FIRST_DISPLAYED", - "ios": "AgoraMediaPlayerEventFirstDisplayed", - "macos": "AgoraMediaPlayerEventFirstDisplayed" - }, - "PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT": { - "windows": "PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT", - "android": "PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT", - "ios": "AgoraMediaPlayerEventReachCacheFileMaxCount", - "macos": "AgoraMediaPlayerEventReachCacheFileMaxCount" - }, - "PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE": { - "windows": "PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE", - "android": "PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE", - "ios": "AgoraMediaPlayerEventReachCacheFileMaxSize", - "macos": "AgoraMediaPlayerEventReachCacheFileMaxSize" - }, "MEDIA_PLAYER_METADATA_TYPE": { "windows": "MEDIA_PLAYER_METADATA_TYPE", "android": "MediaPlayerMetadataType", "ios": "AgoraMediaPlayerMetaDataType", "macos": "AgoraMediaPlayerMetaDataType" }, - "PLAYER_METADATA_TYPE_UNKNOWN": { - "windows": "PLAYER_METADATA_TYPE_UNKNOWN", - "android": "PLAYER_METADATA_TYPE_UNKNOWN", - "ios": "AgoraMediaPlayerMetaDataTypeUnknown", - "macos": "AgoraMediaPlayerMetaDataTypeUnknown" - }, - "PLAYER_METADATA_TYPE_SEI": { - "windows": "PLAYER_METADATA_TYPE_SEI", - "android": "PLAYER_METADATA_TYPE_SEI", - "ios": "AgoraMediaPlayerMetaDataTypeSEI", - "macos": "AgoraMediaPlayerMetaDataTypeSEI" - }, "MEDIA_PLAYER_STATE": { "windows": "MEDIA_PLAYER_STATE", "android": "MediaPlayerState", "ios": "AgoraMediaPlayerState", "macos": "AgoraMediaPlayerState" }, - "PLAYER_STATE_IDLE": { - "windows": "PLAYER_STATE_IDLE", - "android": "PLAYER_STATE_IDLE", - "ios": "AgoraMediaPlayerStateIdle", - "macos": "AgoraMediaPlayerStateIdle" - }, - "PLAYER_STATE_OPENING": { - "windows": "PLAYER_STATE_OPENING", - "android": "PLAYER_STATE_OPENING", - "ios": "AgoraMediaPlayerStateOpening", - "macos": "AgoraMediaPlayerStateOpening" - }, - "PLAYER_STATE_OPEN_COMPLETED": { - "windows": "PLAYER_STATE_OPEN_COMPLETED", - "android": "PLAYER_STATE_OPEN_COMPLETED", - "ios": "AgoraMediaPlayerStateOpenCompleted", - "macos": "AgoraMediaPlayerStateOpenCompleted" - }, - "PLAYER_STATE_PLAYING": { - "windows": "PLAYER_STATE_PLAYING", - "android": "PLAYER_STATE_PLAYING", - "ios": "AgoraMediaPlayerStatePlaying", - "macos": "AgoraMediaPlayerStatePlaying" - }, - "PLAYER_STATE_PAUSED": { - "windows": "PLAYER_STATE_PAUSED", - "android": "PLAYER_STATE_PAUSED", - "ios": "AgoraMediaPlayerStatePaused", - "macos": "AgoraMediaPlayerStatePaused" - }, - "PLAYER_STATE_PLAYBACK_COMPLETED": { - "windows": "PLAYER_STATE_PLAYBACK_COMPLETED", - "android": "PLAYER_STATE_PLAYBACK_COMPLETED", - "ios": "AgoraMediaPlayerStatePlayBackCompleted", - "macos": "AgoraMediaPlayerStatePlayBackCompleted" - }, - "PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED": { - "windows": "PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED", - "android": "PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED", - "ios": "AgoraMediaPlayerStatePlayBackAllLoopsCompleted", - "macos": "AgoraMediaPlayerStatePlayBackAllLoopsCompleted" - }, - "PLAYER_STATE_STOPPED": { - "windows": "PLAYER_STATE_STOPPED", - "android": "PLAYER_STATE_STOPPED", - "ios": "AgoraMediaPlayerStateStopped", - "macos": "AgoraMediaPlayerStateStopped" - }, - "PLAYER_STATE_FAILED": { - "windows": "PLAYER_STATE_FAILED", - "android": "PLAYER_STATE_FAILED", - "ios": "AgoraMediaPlayerStateFailed", - "macos": "AgoraMediaPlayerStateFailed" - }, "MEDIA_SOURCE_TYPE": { "windows": "MEDIA_SOURCE_TYPE", "android": "MediaSourceType", "ios": "AgoraMediaSourceType", "macos": "AgoraMediaSourceType" }, - "AUDIO_PLAYOUT_SOURCE": { - "windows": "AUDIO_PLAYOUT_SOURCE", - "android": "AUDIO_PLAYOUT_SOURCE", - "ios": "AgoraMediaSourceTypeAudioPlayout", - "macos": "AgoraMediaSourceTypeAudioPlayout" - }, - "AUDIO_RECORDING_SOURCE": { - "windows": "AUDIO_RECORDING_SOURCE", - "android": "AUDIO_RECORDING_SOURCE", - "ios": "AgoraMediaSourceTypeRecording", - "macos": "AgoraMediaSourceTypeRecording" - }, - "PRIMARY_CAMERA_SOURCE": { - "windows": "PRIMARY_CAMERA_SOURCE", - "android": "PRIMARY_CAMERA_SOURCE", - "ios": "AgoraMediaSourceTypePrimaryCamera", - "macos": "AgoraMediaSourceTypePrimaryCamera" - }, - "SECONDARY_CAMERA_SOURCE": { - "windows": "SECONDARY_CAMERA_SOURCE", - "android": "SECONDARY_CAMERA_SOURCE", - "ios": "AgoraMediaSourceTypeSecondaryCamera", - "macos": "AgoraMediaSourceTypeSecondaryCamera" - }, - "CUSTOM_VIDEO_SOURCE": { - "windows": "CUSTOM_VIDEO_SOURCE", - "android": "CUSTOM_VIDEO_SOURCE", - "ios": "AgoraMediaSourceTypeCustomVideo", - "macos": "AgoraMediaSourceTypeCustomVideo" - }, - "SPEECH_DRIVEN_VIDEO_SOURCE": { - "windows": "SPEECH_DRIVEN_VIDEO_SOURCE", - "android": "SPEECH_DRIVEN_VIDEO_SOURCE", - "ios": "AgoraMediaSourceTypeSpeechDriven", - "macos": "AgoraMediaSourceTypeSpeechDriven" - }, - "UNKNOWN_MEDIA_SOURCE": { - "windows": "UNKNOWN_MEDIA_SOURCE", - "android": "UNKNOWN_MEDIA_SOURCE", - "ios": "AgoraMediaSourceTypeUnknown", - "macos": "AgoraMediaSourceTypeUnknown" - }, "MEDIA_TRACE_EVENT": { "windows": "MEDIA_TRACE_EVENT", "android": "MEDIA_TRACE_EVENT", "ios": "AgoraMediaTraceEvent", "macos": "AgoraMediaTraceEvent" }, - "MEDIA_TRACE_EVENT_VIDEO_RENDERED": { - "windows": "MEDIA_TRACE_EVENT_VIDEO_RENDERED", - "android": "MEDIA_TRACE_EVENT_VIDEO_RENDERED", - "ios": "AgoraMediaTraceEventVideoRendered", - "macos": "AgoraMediaTraceEventVideoRendered" - }, - "MEDIA_TRACE_EVENT_VIDEO_DECODED": { - "windows": "MEDIA_TRACE_EVENT_VIDEO_DECODED", - "android": "MEDIA_TRACE_EVENT_VIDEO_DECODED", - "ios": "AgoraMediaTraceEventVideoDecoded", - "macos": "AgoraMediaTraceEventVideoDecoded" - }, "MEDIA_STREAM_TYPE": { "windows": "MEDIA_STREAM_TYPE", "android": "MediaStreamType", "ios": "AgoraMediaStreamType", "macos": "AgoraMediaStreamType" }, - "STREAM_TYPE_UNKNOWN": { - "windows": "STREAM_TYPE_UNKNOWN", - "android": "STREAM_TYPE_UNKNOWN", - "ios": "AgoraMediaStreamTypeUnknown", - "macos": "AgoraMediaStreamTypeUnknown" - }, - "STREAM_TYPE_SUBTITLE": { - "windows": "STREAM_TYPE_SUBTITLE", - "android": "STREAM_TYPE_SUBTITLE", - "ios": "AgoraMediaStreamTypeSubtitle", - "macos": "AgoraMediaStreamTypeSubtitle" - }, "METADATA_TYPE": { "windows": "METADATA_TYPE", "ios": "AgoraMetadataType", "macos": "AgoraMetadataType" }, - "UNKNOWN_METADATA": { - "windows": "UNKNOWN_METADATA", - "android": "UNKNOWN_METADATA", - "ios": "AgoraMetadataTypeUnknown", - "macos": "AgoraMetadataTypeUnknown" - }, - "VIDEO_METADATA": { - "windows": "VIDEO_METADATA", - "android": "VIDEO_METADATA", - "ios": "AgoraMetadataTypeVideo", - "macos": "AgoraMetadataTypeVideo" - }, - "MUSIC_CACHE_STATUS_TYPE_CACHED": { - "windows": "MUSIC_CACHE_STATUS_TYPE_CACHED", - "android": "MUSIC_CACHE_STATUS_TYPE_CACHED", - "ios": "AgoraMusicCacheStatusTypeCached" - }, - "MUSIC_CACHE_STATUS_TYPE_CACHING": { - "windows": "MUSIC_CACHE_STATUS_TYPE_CACHING", - "android": "MUSIC_CACHE_STATUS_TYPE_CACHING", - "ios": "AgoraMusicCacheStatusTypeCaching" - }, - "kMusicContentCenterReasonOk": { - "windows": "kMusicContentCenterReasonOk", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_OK", - "ios": "AgoraMusicContentCenterStateReasonOK" - }, - "kMusicContentCenterReasonError": { - "windows": "kMusicContentCenterReasonError", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_ERROR", - "ios": "AgoraMusicContentCenterStateReasonError" - }, - "kMusicContentCenterReasonGateway": { - "windows": "kMusicContentCenterReasonGateway", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_GATEWAY", - "ios": "AgoraMusicContentCenterStateReasonErrorGateway" - }, - "kMusicContentCenterReasonPermissionAndResource": { - "windows": "kMusicContentCenterReasonPermissionAndResource", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_PERMISSION_AND_RESOURCE", - "ios": "AgoraMusicContentCenterStateReasonErrorPermissionAndResource" - }, - "kMusicContentCenterReasonInternalDataParse": { - "windows": "kMusicContentCenterReasonInternalDataParse", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_INTERNAL_DATA_PARSE", - "ios": "AgoraMusicContentCenterStateReasonErrorInternalDataParse" - }, - "kMusicContentCenterReasonMusicLoading": { - "windows": "kMusicContentCenterReasonMusicLoading", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_LOADING", - "ios": "AgoraMusicContentCenterStateReasonErrorMusicLoading" - }, - "kMusicContentCenterReasonMusicDecryption": { - "windows": "kMusicContentCenterReasonMusicDecryption", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_MUSIC_DECRYPTION", - "ios": "AgoraMusicContentCenterStateReasonErrorMusicDecryption" - }, - "kMusicContentCenterReasonHttpInternalError": { - "windows": "kMusicContentCenterReasonHttpInternalError", - "android": "MUSIC_CONTENT_CENTER_STATE_REASON_HTTP_INTERNAL", - "ios": "AgoraMusicContentCenterStateReasonErrorHttpInternalError" - }, - "kMusicPlayModeOriginal": { - "windows": "kMusicPlayModeOriginal", - "android": "MUSIC_PLAY_MODE_ORIGINAL", - "ios": "AgoraMusicPlayModeOriginal" - }, - "kMusicPlayModeAccompany": { - "windows": "kMusicPlayModeAccompany", - "android": "MUSIC_PLAY_MODE_ACCOMPANY", - "ios": "AgoraMusicPlayModeAccompany" - }, - "kMusicPlayModeLeadSing": { - "windows": "kMusicPlayModeLeadSing", - "android": "MUSIC_PLAY_MODE_LEAD_SING", - "ios": "AgoraMusicPlayModeLeadsing" + "MUSIC_CACHE_STATUS_TYPE": { + "windows": "MUSIC_CACHE_STATUS_TYPE", + "ios": "AgoraMusicCacheStatusType" + }, + "MusicContentCenterStateReason": { + "windows": "MusicContentCenterStateReason", + "ios": "AgoraMusicContentCenterStateReason" + }, + "MusicPlayMode": { + "windows": "MusicPlayMode", + "android": "MusicPlayMode", + "ios": "AgoraMusicPlayMode" }, "NETWORK_TYPE": { "windows": "NETWORK_TYPE", "ios": "AgoraNetworkType", "macos": "AgoraNetworkType" }, - "NETWORK_TYPE_UNKNOWN": { - "windows": "NETWORK_TYPE_UNKNOWN", - "android": "NETWORK_TYPE_UNKNOWN", - "ios": "AgoraNetworkTypeUnknown", - "macos": "AgoraNetworkTypeUnknown" - }, - "NETWORK_TYPE_DISCONNECTED": { - "windows": "NETWORK_TYPE_DISCONNECTED", - "android": "NETWORK_TYPE_DISCONNECTED", - "ios": "AgoraNetworkTypeDisconnected", - "macos": "AgoraNetworkTypeDisconnected" - }, - "NETWORK_TYPE_LAN": { - "windows": "NETWORK_TYPE_LAN", - "android": "NETWORK_TYPE_LAN", - "ios": "AgoraNetworkTypeLAN", - "macos": "AgoraNetworkTypeLAN" - }, - "NETWORK_TYPE_WIFI": { - "windows": "NETWORK_TYPE_WIFI", - "android": "NETWORK_TYPE_WIFI", - "ios": "AgoraNetworkTypeWIFI", - "macos": "AgoraNetworkTypeWIFI" - }, - "NETWORK_TYPE_MOBILE_2G": { - "windows": "NETWORK_TYPE_MOBILE_2G", - "android": "NETWORK_TYPE_MOBILE_2G", - "ios": "AgoraNetworkType2G", - "macos": "AgoraNetworkType2G" - }, - "NETWORK_TYPE_MOBILE_3G": { - "windows": "NETWORK_TYPE_MOBILE_3G", - "android": "NETWORK_TYPE_MOBILE_3G", - "ios": "AgoraNetworkType3G", - "macos": "AgoraNetworkType3G" - }, - "NETWORK_TYPE_MOBILE_4G": { - "windows": "NETWORK_TYPE_MOBILE_4G", - "android": "NETWORK_TYPE_MOBILE_4G", - "ios": "AgoraNetworkType4G", - "macos": "AgoraNetworkType4G" - }, - "NETWORK_TYPE_MOBILE_5G": { - "windows": "NETWORK_TYPE_MOBILE_5G", - "android": "NETWORK_TYPE_MOBILE_5G", - "ios": "AgoraNetworkType5G", - "macos": "AgoraNetworkType5G" - }, "ORIENTATION_MODE": { "windows": "ORIENTATION_MODE", "android": "ORIENTATION_MODE", "ios": "AgoraVideoOutputOrientationMode", "macos": "AgoraVideoOutputOrientationMode" }, - "ORIENTATION_MODE_ADAPTIVE": { - "windows": "ORIENTATION_MODE_ADAPTIVE", - "android": "ORIENTATION_MODE_ADAPTIVE", - "ios": "AgoraVideoOutputOrientationModeAdaptative", - "macos": "AgoraVideoOutputOrientationModeAdaptative" - }, - "ORIENTATION_MODE_FIXED_LANDSCAPE": { - "windows": "ORIENTATION_MODE_FIXED_LANDSCAPE", - "android": "ORIENTATION_FIXED_LANDSCAPE", - "ios": "AgoraVideoOutputOrientationModeFixedLandscape", - "macos": "AgoraVideoOutputOrientationModeFixedLandscape" - }, - "ORIENTATION_MODE_FIXED_PORTRAIT": { - "windows": "ORIENTATION_MODE_FIXED_PORTRAIT", - "android": "ORIENTATION_FIXED_PORTRAIT", - "ios": "AgoraVideoOutputOrientationModeFixedPortrait", - "macos": "AgoraVideoOutputOrientationModeFixedPortrait" - }, "PreloadState": { "windows": "PreloadState", - "ios": "AgoraMusicContentCenterPreloadStatus" - }, - "kPreloadStateCompleted": { - "windows": "kPreloadStateCompleted", - "android": "PRELOAD_STATE_COMPLETED", - "ios": "AgoraMusicContentCenterPreloadStatusOK" - }, - "kPreloadStateFailed": { - "windows": "kPreloadStateFailed", - "android": "PRELOAD_STATE_FAILED", - "ios": "AgoraMusicContentCenterPreloadStatusError" - }, - "kPreloadStatePreloading": { - "windows": "kPreloadStatePreloading", - "android": "PRELOAD_STATE_PRELOADING", - "ios": "AgoraMusicContentCenterPreloadStatusPreloading" - }, - "kPreloadStateRemoved": { - "windows": "kPreloadStateRemoved", - "android": "PRELOAD_STATE_REMOVED", - "ios": "kPreloadStateRemoved" + "ios": "AgoraMusicContentCenterPreloadState" }, "PERMISSION_TYPE": { "windows": "PERMISSION_TYPE", "ios": "AgoraPermissionType", "macos": "AgoraPermissionType" }, - "RECORD_AUDIO": { - "windows": "RECORD_AUDIO", - "android": "RECORD_AUDIO", - "ios": "AgoraPermissionTypeRecordAudio", - "macos": "AgoraPermissionTypeRecordAudio" - }, - "CAMERA": { - "windows": "CAMERA", - "android": "CAMERA", - "ios": "AgoraPermissionTypeCamera", - "macos": "AgoraPermissionTypeCamera" - }, - "SCREEN_CAPTURE": { - "windows": "SCREEN_CAPTURE", - "android": "SCREEN_CAPTURE" - }, "PLAYER_PRELOAD_EVENT": { "windows": "PLAYER_PRELOAD_EVENT", "android": "MediaPlayerPreloadEvent", "ios": "AgoraMediaPlayerPreloadEvent", "macos": "AgoraMediaPlayerPreloadEvent" }, - "PLAYER_PRELOAD_EVENT_BEGIN": { - "windows": "PLAYER_PRELOAD_EVENT_BEGIN", - "android": "PLAYER_PRELOAD_EVENT_BEGIN", - "ios": "AgoraMediaPlayerPreloadEventBegin", - "macos": "AgoraMediaPlayerPreloadEventBegin" - }, - "PLAYER_PRELOAD_EVENT_COMPLETE": { - "windows": "PLAYER_PRELOAD_EVENT_COMPLETE", - "android": "PLAYER_PRELOAD_EVENT_COMPLETE", - "ios": "AgoraMediaPlayerPreloadEventComplete", - "macos": "AgoraMediaPlayerPreloadEventComplete" - }, - "PLAYER_PRELOAD_EVENT_ERROR": { - "windows": "PLAYER_PRELOAD_EVENT_ERROR", - "android": "PLAYER_PRELOAD_EVENT_ERROR", - "ios": "AgoraMediaPlayerPreloadEventError", - "macos": "AgoraMediaPlayerPreloadEventError" - }, - "PRIORITY_HIGH": { - "windows": "PRIORITY_HIGH", - "android": "USER_PRIORITY_HIGH" - }, - "PRIORITY_NORMAL": { - "windows": "PRIORITY_NORMAL", - "android": "USER_PRIORITY_NORANL" - }, "QUALITY_ADAPT_INDICATION": { "windows": "QUALITY_ADAPT_INDICATION", "ios": "AgoraVideoQualityAdaptIndication", "macos": "AgoraVideoQualityAdaptIndication" }, - "ADAPT_NONE": { - "windows": "ADAPT_NONE", - "android": "ADAPT_NONE", - "ios": "AgoraVideoQualityAdaptNone", - "macos": "AgoraVideoQualityAdaptNone" - }, - "ADAPT_UP_BANDWIDTH": { - "windows": "ADAPT_UP_BANDWIDTH", - "android": "ADAPT_UP_BANDWIDTH", - "ios": "AgoraVideoQualityAdaptUpBandwidth", - "macos": "AgoraVideoQualityAdaptUpBandwidth" - }, - "ADAPT_DOWN_BANDWIDTH": { - "windows": "ADAPT_DOWN_BANDWIDTH", - "android": "ADAPT_DOWN_BANDWIDTH", - "ios": "AgoraVideoQualityAdaptDownBandwidth", - "macos": "AgoraVideoQualityAdaptDownBandwidth" - }, - "QUALITY_REPORT_JSON": { - "windows": "QUALITY_REPORT_JSON", - "android": "QUALITY_REPORT_JSON" - }, - "QUALITY_REPORT_HTML": { - "windows": "QUALITY_REPORT_HTML", - "android": "QUALITY_REPORT_HTML" - }, "QUALITY_TYPE": { "windows": "QUALITY_TYPE", "ios": "AgoraNetworkQuality", "macos": "AgoraNetworkQuality" }, - "QUALITY_UNKNOWN": { - "windows": "QUALITY_UNKNOWN", - "android": "QUALITY_UNKNOWN", - "ios": "AgoraNetworkQualityUnknown", - "macos": "AgoraNetworkQualityUnknown" - }, - "QUALITY_EXCELLENT": { - "windows": "QUALITY_EXCELLENT", - "android": "QUALITY_EXCELLENT", - "ios": "AgoraNetworkQualityExcellent", - "macos": "AgoraNetworkQualityExcellent" - }, - "QUALITY_GOOD": { - "windows": "QUALITY_GOOD", - "android": "QUALITY_GOOD", - "ios": "AgoraNetworkQualityGood", - "macos": "AgoraNetworkQualityGood" - }, - "QUALITY_POOR": { - "windows": "QUALITY_POOR", - "android": "QUALITY_POOR", - "ios": "AgoraNetworkQualityPoor", - "macos": "AgoraNetworkQualityPoor" - }, - "QUALITY_BAD": { - "windows": "QUALITY_BAD", - "android": "QUALITY_BAD", - "ios": "AgoraNetworkQualityBad", - "macos": "AgoraNetworkQualityBad" - }, - "QUALITY_VBAD": { - "windows": "QUALITY_VBAD", - "android": "QUALITY_VBAD", - "ios": "AgoraNetworkQualityVBad", - "macos": "AgoraNetworkQualityVBad" - }, - "QUALITY_DOWN": { - "windows": "QUALITY_DOWN", - "android": "QUALITY_DOWN", - "ios": "AgoraNetworkQualityDown", - "macos": "AgoraNetworkQualityDown" - }, - "QUALITY_UNSUPPORTED": { - "windows": "QUALITY_UNSUPPORTED", - "android": "QUALITY_UNSUPPORTED", - "ios": "AgoraNetworkQualityUnsupported", - "macos": "AgoraNetworkQualityUnsupported" - }, - "QUALITY_DETECTING": { - "windows": "QUALITY_DETECTING", - "android": "QUALITY_DETECTING", - "ios": "AgoraNetworkQualityDetecting", - "macos": "AgoraNetworkQualityDetecting" - }, "RAW_AUDIO_FRAME_OP_MODE_TYPE": { "windows": "RAW_AUDIO_FRAME_OP_MODE_TYPE", "ios": "AgoraAudioRawFrameOperationMode", "macos": "AgoraAudioRawFrameOperationMode" }, - "RAW_AUDIO_FRAME_OP_MODE_READ_ONLY": { - "windows": "RAW_AUDIO_FRAME_OP_MODE_READ_ONLY", - "android": "RAW_AUDIO_FRAME_OP_MODE_READ_ONLY", - "ios": "AgoraAudioRawFrameOperationModeReadOnly", - "macos": "AgoraAudioRawFrameOperationModeReadOnly" - }, - "RAW_AUDIO_FRAME_OP_MODE_READ_WRITE": { - "windows": "RAW_AUDIO_FRAME_OP_MODE_READ_WRITE", - "android": "RAW_AUDIO_FRAME_OP_MODE_READ_WRITE", - "ios": "AgoraAudioRawFrameOperationModeReadWrite", - "macos": "AgoraAudioRawFrameOperationModeReadWrite" - }, "REMOTE_AUDIO_STATE": { "windows": "REMOTE_AUDIO_STATE", "ios": "AgoraAudioRemoteState", "macos": "AgoraAudioRemoteState" }, - "REMOTE_AUDIO_STATE_STOPPED": { - "windows": "REMOTE_AUDIO_STATE_STOPPED", - "android": "REMOTE_AUDIO_STATE_STOPPED", - "ios": "AgoraAudioRemoteStateStopped", - "macos": "AgoraAudioRemoteStateStopped" - }, - "REMOTE_AUDIO_STATE_STARTING": { - "windows": "REMOTE_AUDIO_STATE_STARTING", - "android": "REMOTE_AUDIO_STATE_STARTING", - "ios": "AgoraAudioRemoteStateStarting", - "macos": "AgoraAudioRemoteStateStarting" - }, - "REMOTE_AUDIO_STATE_DECODING": { - "windows": "REMOTE_AUDIO_STATE_DECODING", - "android": "REMOTE_AUDIO_STATE_DECODING", - "ios": "AgoraAudioRemoteStateDecoding", - "macos": "AgoraAudioRemoteStateDecoding" - }, - "REMOTE_AUDIO_STATE_FROZEN": { - "windows": "REMOTE_AUDIO_STATE_FROZEN", - "android": "REMOTE_AUDIO_STATE_FROZEN", - "ios": "AgoraAudioRemoteStateFrozen", - "macos": "AgoraAudioRemoteStateFrozen" - }, - "REMOTE_AUDIO_STATE_FAILED": { - "windows": "REMOTE_AUDIO_STATE_FAILED", - "android": "REMOTE_AUDIO_STATE_FAILED", - "ios": "AgoraAudioRemoteStateFailed", - "macos": "AgoraAudioRemoteStateFailed" - }, "REMOTE_VIDEO_STATE": { "windows": "REMOTE_VIDEO_STATE", "ios": "AgoraVideoRemoteState", "macos": "AgoraVideoRemoteState" }, - "REMOTE_VIDEO_STATE_STOPPED": { - "windows": "REMOTE_VIDEO_STATE_STOPPED", - "android": "REMOTE_VIDEO_STATE_STOPPED", - "ios": "AgoraVideoRemoteStateStopped", - "macos": "AgoraVideoRemoteStateStopped" - }, - "REMOTE_VIDEO_STATE_STARTING": { - "windows": "REMOTE_VIDEO_STATE_STARTING", - "android": "REMOTE_VIDEO_STATE_STARTING", - "ios": "AgoraVideoRemoteStateStarting", - "macos": "AgoraVideoRemoteStateStarting" - }, - "REMOTE_VIDEO_STATE_DECODING": { - "windows": "REMOTE_VIDEO_STATE_DECODING", - "android": "REMOTE_VIDEO_STATE_DECODING", - "ios": "AgoraVideoRemoteStateDecoding", - "macos": "AgoraVideoRemoteStateDecoding" - }, - "REMOTE_VIDEO_STATE_FROZEN": { - "windows": "REMOTE_VIDEO_STATE_FROZEN", - "android": "REMOTE_VIDEO_STATE_FROZEN", - "ios": "AgoraVideoRemoteStateFrozen", - "macos": "AgoraVideoRemoteStateFrozen" - }, - "REMOTE_VIDEO_STATE_FAILED": { - "windows": "REMOTE_VIDEO_STATE_FAILED", - "android": "REMOTE_VIDEO_STATE_FAILED", - "ios": "AgoraVideoRemoteStateFailed", - "macos": "AgoraVideoRemoteStateFailed" - }, "RteErrorCode": { "windows": "RteErrorCode", "android": "ErrorCode", "ios": "AgoraRteErrorCode", "macos": "AgoraRteErrorCode" }, - "kRteOk": { - "windows": "kRteOk", - "android": "OK", - "ios": "AgoraRteOk", - "macos": "AgoraRteOk" - }, - "kRteErrorDefault": { - "windows": "kRteErrorDefault", - "android": "DEFAULT", - "ios": "AgoraRteErrorDefault", - "macos": "AgoraRteErrorDefault" - }, - "kRteErrorInvalidArgument": { - "windows": "kRteErrorInvalidArgument", - "android": "INVALID_ARGUMENT", - "ios": "AgoraRteErrorInvalidArgument", - "macos": "AgoraRteErrorInvalidArgument" - }, - "kRteErrorInvalidOperation": { - "windows": "kRteErrorInvalidOperation", - "android": "INVALID_OPERATION", - "ios": "AgoraRteErrorInvalidOperation", - "macos": "AgoraRteErrorInvalidOperation" - }, - "kRteErrorNetworkError": { - "windows": "kRteErrorNetworkError", - "android": "NETWORK_ERROR", - "ios": "AgoraRteErrorNetworkError", - "macos": "AgoraRteErrorNetworkError" - }, - "kRteErrorAuthenticationFailed": { - "windows": "kRteErrorAuthenticationFailed", - "android": "AUTHENTICATION_FAILED", - "ios": "AgoraRteErrorAuthenticationFailed", - "macos": "AgoraRteErrorAuthenticationFailed" - }, - "kRteErrorStreamNotFound": { - "windows": "kRteErrorStreamNotFound", - "android": "STREAM_NOT_FOUND", - "ios": "AgoraRteErrorStreamNotFound", - "macos": "AgoraRteErrorStreamNotFound" - }, - "kRteVideoMirrorModeAuto": { - "windows": "kRteVideoMirrorModeAuto", - "android": "AUTO", - "ios": "AgoraRteVideoMirrorModeAuto", - "macos": "AgoraRteVideoMirrorModeAuto" - }, - "kRteVideoMirrorModeEnabled": { - "windows": "kRteVideoMirrorModeEnabled", - "android": "ENABLED", - "ios": "AgoraRteVideoMirrorModeEnabled", - "macos": "AgoraRteVideoMirrorModeEnabled" - }, - "kRteVideoMirrorModeDisabled": { - "windows": "kRteVideoMirrorModeDisabled", - "android": "DISABLED", - "ios": "AgoraRteVideoMirrorModeDisabled", - "macos": "AgoraRteVideoMirrorModeDisabled" + "RteVideoMirrorMode": { + "windows": "RteVideoMirrorMode", + "android": "VideoMirrorMode", + "ios": "AgoraRteVideoMirrorMode", + "macos": "AgoraRteVideoMirrorMode" }, "REMOTE_AUDIO_STATE_REASON": { "windows": "REMOTE_AUDIO_STATE_REASON", "ios": "AgoraAudioRemoteReason", "macos": "AgoraAudioRemoteReason" }, - "REMOTE_AUDIO_REASON_INTERNAL": { - "windows": "REMOTE_AUDIO_REASON_INTERNAL", - "android": "REMOTE_AUDIO_REASON_INTERNAL", - "ios": "AgoraAudioRemoteReasonInternal", - "macos": "AgoraAudioRemoteReasonInternal" - }, - "REMOTE_AUDIO_REASON_NETWORK_CONGESTION": { - "windows": "REMOTE_AUDIO_REASON_NETWORK_CONGESTION", - "android": "REMOTE_AUDIO_REASON_NETWORK_CONGESTION", - "ios": "AgoraAudioRemoteReasonNetworkCongestion", - "macos": "AgoraAudioRemoteReasonNetworkCongestion" - }, - "REMOTE_AUDIO_REASON_NETWORK_RECOVERY": { - "windows": "REMOTE_AUDIO_REASON_NETWORK_RECOVERY", - "android": "REMOTE_AUDIO_REASON_NETWORK_RECOVERY", - "ios": "AgoraAudioRemoteReasonNetworkRecovery", - "macos": "AgoraAudioRemoteReasonNetworkRecovery" - }, - "REMOTE_AUDIO_REASON_LOCAL_MUTED": { - "windows": "REMOTE_AUDIO_REASON_LOCAL_MUTED", - "android": "REMOTE_AUDIO_REASON_LOCAL_MUTED", - "ios": "AgoraAudioRemoteReasonLocalMuted", - "macos": "AgoraAudioRemoteReasonLocalMuted" - }, - "REMOTE_AUDIO_REASON_LOCAL_UNMUTED": { - "windows": "REMOTE_AUDIO_REASON_LOCAL_UNMUTED", - "android": "REMOTE_AUDIO_REASON_LOCAL_UNMUTED", - "ios": "AgoraAudioRemoteReasonLocalUnmuted", - "macos": "AgoraAudioRemoteReasonLocalUnmuted" - }, - "REMOTE_AUDIO_REASON_REMOTE_MUTED": { - "windows": "REMOTE_AUDIO_REASON_REMOTE_MUTED", - "android": "REMOTE_AUDIO_REASON_REMOTE_MUTED", - "ios": "AgoraAudioRemoteReasonRemoteMuted", - "macos": "AgoraAudioRemoteReasonRemoteMuted" - }, - "REMOTE_AUDIO_REASON_REMOTE_UNMUTED": { - "windows": "REMOTE_AUDIO_REASON_REMOTE_UNMUTED", - "android": "REMOTE_AUDIO_REASON_REMOTE_UNMUTED", - "ios": "AgoraAudioRemoteReasonRemoteUnmuted", - "macos": "AgoraAudioRemoteReasonRemoteUnmuted" - }, - "REMOTE_AUDIO_REASON_REMOTE_OFFLINE": { - "windows": "REMOTE_AUDIO_REASON_REMOTE_OFFLINE", - "android": "REMOTE_AUDIO_REASON_REMOTE_OFFLINE", - "ios": "AgoraAudioRemoteReasonRemoteOffline", - "macos": "AgoraAudioRemoteReasonRemoteOffline" - }, "REMOTE_VIDEO_STATE_REASON": { "windows": "REMOTE_VIDEO_STATE_REASON", "ios": "AgoraVideoRemoteReason", "macos": "AgoraVideoRemoteReason" }, - "REMOTE_VIDEO_STATE_REASON_INTERNAL": { - "windows": "REMOTE_VIDEO_STATE_REASON_INTERNAL", - "android": "REMOTE_VIDEO_STATE_REASON_INTERNAL", - "ios": "AgoraVideoRemoteReasonInternal", - "macos": "AgoraVideoRemoteReasonInternal" - }, - "REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION": { - "windows": "REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION", - "android": "REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION", - "ios": "AgoraVideoRemoteReasonCongestion", - "macos": "AgoraVideoRemoteReasonCongestion" - }, - "REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY": { - "windows": "REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY", - "android": "REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY", - "ios": "AgoraVideoRemoteReasonRecovery", - "macos": "AgoraVideoRemoteReasonRecovery" - }, - "REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED": { - "windows": "REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED", - "android": "REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED", - "ios": "AgoraVideoRemoteReasonLocalMuted", - "macos": "AgoraVideoRemoteReasonLocalMuted" - }, - "REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED": { - "windows": "REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED", - "android": "REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED", - "ios": "AgoraVideoRemoteReasonLocalUnmuted", - "macos": "AgoraVideoRemoteReasonLocalUnmuted" - }, - "REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED": { - "windows": "REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED", - "android": "REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED", - "ios": "AgoraVideoRemoteReasonRemoteMuted", - "macos": "AgoraVideoRemoteReasonRemoteMuted" - }, - "REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED": { - "windows": "REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED", - "android": "REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED", - "ios": "AgoraVideoRemoteReasonRemoteUnmuted", - "macos": "AgoraVideoRemoteReasonRemoteUnmuted" - }, - "REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE": { - "windows": "REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE", - "android": "REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE", - "ios": "AgoraVideoRemoteReasonRemoteOffline", - "macos": "AgoraVideoRemoteReasonRemoteOffline" - }, - "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK": { - "windows": "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK", - "android": "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK", - "ios": "AgoraVideoRemoteReasonAudioFallback", - "macos": "AgoraVideoRemoteReasonAudioFallback" - }, - "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY": { - "windows": "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY", - "android": "REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY", - "ios": "AgoraVideoRemoteReasonAudioFallbackRecovery", - "macos": "AgoraVideoRemoteReasonAudioFallbackRecovery" - }, - "REMOTE_VIDEO_STATE_REASON_SDK_IN_BACKGROUND": { - "windows": "REMOTE_VIDEO_STATE_REASON_SDK_IN_BACKGROUND", - "ios": "AgoraVideoRemoteReasonSDKInBackground", - "macos": "AgoraVideoRemoteReasonSDKInBackground" - }, - "REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT": { - "windows": "REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT", - "android": "REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT", - "ios": "AgoraVideoRemoteReasonCodecNotSupport", - "macos": "AgoraVideoRemoteReasonCodecNotSupport" - }, - "kRteAbrFallbackDisabled": { - "windows": "kRteAbrFallbackDisabled", - "android": "DISABLED", - "ios": "AgoraRteAbrFallbackDisabled", - "macos": "AgoraRteAbrFallbackDisabled" - }, - "kRteAbrFallbackLow": { - "windows": "kRteAbrFallbackLow", - "android": "LOW", - "ios": "AgoraRteAbrFallbackLow", - "macos": "AgoraRteAbrFallbackLow" - }, - "kRteAbrFallbackAudioOnly": { - "windows": "kRteAbrFallbackAudioOnly", - "android": "AUDIO_ONLY", - "ios": "AgoraRteAbrFallbackAudioOnly", - "macos": "AgoraRteAbrFallbackAudioOnly" - }, - "kRteAbrFallbackLayer1": { - "windows": "kRteAbrFallbackLayer1", - "android": "LAYER1", - "ios": "AgoraRteAbrFallbackLayer1", - "macos": "AgoraRteAbrFallbackLayer1" - }, - "kRteAbrFallbackLayer2": { - "windows": "kRteAbrFallbackLayer2", - "android": "LAYER2", - "ios": "AgoraRteAbrFallbackLayer2", - "macos": "AgoraRteAbrFallbackLayer2" - }, - "kRteAbrFallbackLayer3": { - "windows": "kRteAbrFallbackLayer3", - "android": "LAYER3", - "ios": "AgoraRteAbrFallbackLayer3", - "macos": "AgoraRteAbrFallbackLayer3" - }, - "kRteAbrFallbackLayer4": { - "windows": "kRteAbrFallbackLayer4", - "android": "LAYER4", - "ios": "AgoraRteAbrFallbackLayer4", - "macos": "AgoraRteAbrFallbackLayer4" - }, - "kRteAbrFallbackLayer5": { - "windows": "kRteAbrFallbackLayer5", - "android": "LAYER5", - "ios": "AgoraRteAbrFallbackLayer5", - "macos": "AgoraRteAbrFallbackLayer5" - }, - "kRteAbrFallbackLayer6": { - "windows": "kRteAbrFallbackLayer6", - "android": "LAYER6", - "ios": "AgoraRteAbrFallbackLayer6", - "macos": "AgoraRteAbrFallbackLayer6" - }, - "kRteAbrSubscriptionHigh": { - "windows": "kRteAbrSubscriptionHigh", - "android": "HIGH", - "ios": "AgoraRteAbrSubscriptionHigh", - "macos": "AgoraRteAbrSubscriptionHigh" - }, - "kRteAbrSubscriptionLow": { - "windows": "kRteAbrSubscriptionLow", - "android": "LOW", - "ios": "AgoraRteAbrSubscriptionLow", - "macos": "AgoraRteAbrSubscriptionLow" - }, - "kRteAbrSubscriptionLayer1": { - "windows": "kRteAbrSubscriptionLayer1", - "android": "LAYER1", - "ios": "AgoraRteAbrSubscriptionLayer1", - "macos": "AgoraRteAbrSubscriptionLayer1" - }, - "kRteAbrSubscriptionLayer2": { - "windows": "kRteAbrSubscriptionLayer2", - "android": "LAYER2", - "ios": "AgoraRteAbrSubscriptionLayer2", - "macos": "AgoraRteAbrSubscriptionLayer2" - }, - "kRteAbrSubscriptionLayer3": { - "windows": "kRteAbrSubscriptionLayer3", - "android": "LAYER3", - "ios": "AgoraRteAbrSubscriptionLayer3", - "macos": "AgoraRteAbrSubscriptionLayer3" - }, - "kRteAbrSubscriptionLayer4": { - "windows": "kRteAbrSubscriptionLayer4", - "android": "LAYER4", - "ios": "AgoraRteAbrSubscriptionLayer4", - "macos": "AgoraRteAbrSubscriptionLayer4" - }, - "kRteAbrSubscriptionLayer5": { - "windows": "kRteAbrSubscriptionLayer5", - "android": "LAYER5", - "ios": "AgoraRteAbrSubscriptionLayer5", - "macos": "AgoraRteAbrSubscriptionLayer5" - }, - "kRteAbrSubscriptionLayer6": { - "windows": "kRteAbrSubscriptionLayer6", - "android": "LAYER6", - "ios": "kRteAbrSubscriptionLayer6", - "macos": "kRteAbrSubscriptionLayer6" - }, - "kRteVideoRenderModeHidden": { - "windows": "kRteVideoRenderModeHidden", - "android": "HIDDEN", - "ios": "AgoraRteVideoRenderModeHidden", - "macos": "AgoraRteVideoRenderModeHidden" - }, - "kRteVideoRenderModeFit": { - "windows": "kRteVideoRenderModeFit", - "android": "FIT", - "ios": "AgoraRteVideoRenderModeFit", - "macos": "AgoraRteVideoRenderModeFit" - }, - "kRtePlayerMetadataTypeSei": { - "windows": "kRtePlayerMetadataTypeSei", - "ios": "AgoraRtePlayerMetadataTypeSei", - "macos": "AgoraRtePlayerMetadataTypeSei" + "RteAbrFallbackLayer": { + "windows": "RteAbrFallbackLayer", + "android": "AbrFallbackLayer", + "ios": "AgoraRteAbrFallbackLayer", + "macos": "AgoraRteAbrFallbackLayer" + }, + "RteAbrSubscriptionLayer": { + "windows": "RteAbrSubscriptionLayer", + "android": "AbrSubscriptionLayer", + "ios": "AgoraRteAbrSubscriptionLayer", + "macos": "AgoraRteAbrSubscriptionLayer" + }, + "RteVideoRenderMode": { + "windows": "RteVideoRenderMode", + "android": "VideoRenderMode", + "ios": "AgoraRteVideoRenderMode", + "macos": "AgoraRteVideoRenderMode" + }, + "RtePlayerMetadataType": { + "windows": "RtePlayerMetadataType", + "ios": "AgoraRtePlayerMetadataType", + "macos": "AgoraRtePlayerMetadataType" }, "VIDEO_STREAM_TYPE": { "windows": "VIDEO_STREAM_TYPE", @@ -12398,2688 +8656,286 @@ "ios": "AgoraVideoStreamType", "macos": "AgoraVideoStreamType" }, - "VIDEO_STREAM_HIGH": { - "windows": "VIDEO_STREAM_HIGH", - "android": "VIDEO_STREAM_HIGH", - "ios": "AgoraVideoStreamTypeHigh", - "macos": "AgoraVideoStreamTypeHigh" - }, - "VIDEO_STREAM_LOW": { - "windows": "VIDEO_STREAM_LOW", - "android": "VIDEO_STREAM_LOW", - "ios": "AgoraVideoStreamTypeLow", - "macos": "AgoraVideoStreamTypeLow" - }, - "VIDEO_STREAM_LAYER_1": { - "windows": "VIDEO_STREAM_LAYER_1", - "android": "VIDEO_STREAM_LAYER_1", - "ios": "AgoraVideoStreamTypeLayer1", - "macos": "AgoraVideoStreamTypeLayer1" - }, - "VIDEO_STREAM_LAYER_2": { - "windows": "VIDEO_STREAM_LAYER_2", - "android": "VIDEO_STREAM_LAYER_2", - "ios": "AgoraVideoStreamTypeLayer2", - "macos": "AgoraVideoStreamTypeLayer2" - }, - "VIDEO_STREAM_LAYER_3": { - "windows": "VIDEO_STREAM_LAYER_3", - "android": "VIDEO_STREAM_LAYER_3", - "ios": "AgoraVideoStreamTypeLayer3", - "macos": "AgoraVideoStreamTypeLayer3" - }, - "VIDEO_STREAM_LAYER_4": { - "windows": "VIDEO_STREAM_LAYER_4", - "android": "VIDEO_STREAM_LAYER_4", - "ios": "AgoraVideoStreamTypeLayer4", - "macos": "AgoraVideoStreamTypeLayer4" - }, - "VIDEO_STREAM_LAYER_5": { - "windows": "VIDEO_STREAM_LAYER_5", - "android": "VIDEO_STREAM_LAYER_5", - "ios": "AgoraVideoStreamTypeLayer5", - "macos": "AgoraVideoStreamTypeLayer5" - }, - "VIDEO_STREAM_LAYER_6": { - "windows": "VIDEO_STREAM_LAYER_6", - "android": "VIDEO_STREAM_LAYER_6", - "ios": "AgoraVideoStreamTypeLayer6", - "macos": "AgoraVideoStreamTypeLayer6" - }, "RecorderReasonCode": { "windows": "RecorderReasonCode", "ios": "AgoraMediaRecorderReasonCode", "macos": "AgoraMediaRecorderReasonCode" }, - "RECORDER_REASON_NONE": { - "windows": "RECORDER_REASON_NONE", - "android": "RECORDER_REASON_NONE", - "ios": "AgoraMediaRecorderReasonCodeNoError", - "macos": "AgoraMediaRecorderReasonCodeNoError" - }, - "RECORDER_ERROR_WRITE_FAILED": { - "windows": "RECORDER_ERROR_WRITE_FAILED", - "android": "RECORDER_ERROR_WRITE_FAILED", - "ios": "AgoraMediaRecorderReasonCodeWriteFailed", - "macos": "AgoraMediaRecorderReasonCodeWriteFailed" - }, - "RECORDER_ERROR_NO_STREAM": { - "windows": "RECORDER_ERROR_NO_STREAM", - "android": "RECORDER_ERROR_NO_STREAM", - "ios": "AgoraMediaRecorderReasonCodeNoStream", - "macos": "AgoraMediaRecorderReasonCodeNoStream" - }, - "RECORDER_ERROR_OVER_MAX_DURATION": { - "windows": "RECORDER_ERROR_OVER_MAX_DURATION", - "android": "RECORDER_ERROR_OVER_MAX_DURATION", - "ios": "AgoraMediaRecorderReasonCodeOverMaxDuration", - "macos": "AgoraMediaRecorderReasonCodeOverMaxDuration" - }, - "RECORDER_ERROR_CONFIG_CHANGED": { - "windows": "RECORDER_ERROR_CONFIG_CHANGED", - "android": "RECORDER_ERROR_CONFIG_CHANGED", - "ios": "AgoraMediaRecorderReasonCodeConfigChange", - "macos": "AgoraMediaRecorderReasonCodeConfigChange" - }, "RecorderState": { "windows": "RecorderState", "ios": "AgoraMediaRecorderState", "macos": "AgoraMediaRecorderState" }, - "RECORDER_STATE_ERROR": { - "windows": "RECORDER_STATE_ERROR", - "android": "RECORDER_STATE_ERROR", - "ios": "AgoraMediaRecorderStateError", - "macos": "AgoraMediaRecorderStateError" - }, - "RECORDER_STATE_START": { - "windows": "RECORDER_STATE_START", - "android": "RECORDER_STATE_START", - "ios": "AgoraMediaRecorderStateStarted", - "macos": "AgoraMediaRecorderStateStarted" - }, - "RECORDER_STATE_STOP": { - "windows": "RECORDER_STATE_STOP", - "android": "RECORDER_STATE_STOP", - "ios": "AgoraMediaRecorderStateStopped", - "macos": "AgoraMediaRecorderStateStopped" - }, "RENDER_MODE_TYPE": { "windows": "RENDER_MODE_TYPE", "ios": "AgoraVideoRenderMode", "macos": "AgoraVideoRenderMode" }, - "RENDER_MODE_HIDDEN": { - "windows": "RENDER_MODE_HIDDEN", - "android": "RENDER_MODE_HIDDEN", - "ios": "AgoraVideoRenderModeHidden", - "macos": "AgoraVideoRenderModeHidden" - }, - "RENDER_MODE_FIT": { - "windows": "RENDER_MODE_FIT", - "android": "RENDER_MODE_FIT", - "ios": "AgoraVideoRenderModeFit", - "macos": "AgoraVideoRenderModeFit" - }, - "RENDER_MODE_ADAPTIVE": { - "windows": "RENDER_MODE_ADAPTIVE", - "android": "RENDER_MODE_ADAPTIVE", - "ios": "AgoraVideoRenderModeAdaptive", - "macos": "AgoraVideoRenderModeAdaptive" - }, - "RTC": { - "windows": "RTC", - "ios": "AgoraRecorderStreamTypeRtc", - "macos": "AgoraRecorderStreamTypeRtc" - }, - "PREVIEW": { - "windows": "PREVIEW", - "ios": "AgoraRecorderStreamTypePreview", - "macos": "AgoraRecorderStreamTypePreview" - }, - "kRtePlayerEventFreezeStart": { - "windows": "kRtePlayerEventFreezeStart", - "android": "FREEZE_START", - "ios": "AgoraRtePlayerEventFreezeStart", - "macos": "AgoraRtePlayerEventFreezeStart" - }, - "kRtePlayerEventFreezeStop": { - "windows": "kRtePlayerEventFreezeStop", - "android": "FREEZE_STOP", - "ios": "AgoraRtePlayerEventFreezeStop", - "macos": "AgoraRtePlayerEventFreezeStop" - }, - "kRtePlayerEventAuthenticationWillExpire": { - "windows": "kRtePlayerEventAuthenticationWillExpire", - "android": "AUTHENTICATION_WILL_EXPIRE", - "ios": "AgoraRtePlayerEventAuthenticationWillExpire", - "macos": "AgoraRtePlayerEventAuthenticationWillExpire" - }, - "kRtePlayerEventAbrFallbackToAudioOnlyLayer": { - "windows": "kRtePlayerEventAbrFallbackToAudioOnlyLayer", - "android": "ABR_FALLBACK_TO_AUDIO_ONLY_LAYER", - "ios": "AgoraRtePlayerEventAbrFallbackToAudioOnlyLayer", - "macos": "AgoraRtePlayerEventAbrFallbackToAudioOnlyLayer" - }, - "kRtePlayerEventAbrRecoverFromAudioOnlyLayer": { - "windows": "kRtePlayerEventAbrRecoverFromAudioOnlyLayer", - "android": "ABR_RECOVER_FROM_AUDIO_ONLY_LAYER", - "ios": "AgoraRtePlayerEventAbrRecoverFromAudioOnlyLayer", - "macos": "AgoraRtePlayerEventAbrRecoverFromAudioOnlyLayer" - }, - "kRtePlayerEventSeekBegin": { - "windows": "kRtePlayerEventSeekBegin", - "android": "SEEK_BEGIN", - "ios": "AgoraRtePlayerEventSeekBegin", - "macos": "AgoraRtePlayerEventSeekBegin" - }, - "kRtePlayerEventSeekComplete": { - "windows": "kRtePlayerEventSeekComplete", - "android": "SEEK_COMPLETE", - "ios": "AgoraRtePlayerEventSeekComplete", - "macos": "AgoraRtePlayerEventSeekComplete" - }, - "kRtePlayerEventSeekError": { - "windows": "kRtePlayerEventSeekError", - "android": "SEEK_ERROR", - "ios": "AgoraRtePlayerEventSeekError", - "macos": "AgoraRtePlayerEventSeekError" - }, - "kRtePlayerEventBufferLow": { - "windows": "kRtePlayerEventBufferLow", - "android": "BUFFER_LOW", - "ios": "AgoraRtePlayerEventBufferLow", - "macos": "AgoraRtePlayerEventBufferLow" - }, - "kRtePlayerEventBufferRecover": { - "windows": "kRtePlayerEventBufferRecover", - "android": "BUFFER_RECOVER", - "ios": "AgoraRtePlayerEventBufferRecover", - "macos": "AgoraRtePlayerEventBufferRecover" - }, - "kRtePlayerEventOneLoopPlaybackCompleted": { - "windows": "kRtePlayerEventOneLoopPlaybackCompleted", - "android": "ONE_LOOP_PLAYBACK_COMPLETED", - "ios": "AgoraRtePlayerEventOneLoopPlaybackCompleted", - "macos": "AgoraRtePlayerEventOneLoopPlaybackCompleted" - }, - "kRtePlayerEventSwitchBegin": { - "windows": "kRtePlayerEventSwitchBegin", - "android": "SWITCH_BEGIN", - "ios": "AgoraRtePlayerEventSwitchBegin", - "macos": "AgoraRtePlayerEventSwitchBegin" - }, - "kRtePlayerEventSwitchComplete": { - "windows": "kRtePlayerEventSwitchComplete", - "android": "SWITCH_COMPLETE", - "ios": "AgoraRtePlayerEventSwitchComplete", - "macos": "AgoraRtePlayerEventSwitchComplete" - }, - "kRtePlayerEventSwitchError": { - "windows": "kRtePlayerEventSwitchError", - "android": "SWITCH_ERROR", - "ios": "AgoraRtePlayerEventSwitchError", - "macos": "AgoraRtePlayerEventSwitchError" - }, - "kRtePlayerEventFirstDisplayed": { - "windows": "kRtePlayerEventFirstDisplayed", - "android": "FIRST_DISPLAYED", - "ios": "AgoraRtePlayerEventFirstDisplayed", - "macos": "AgoraRtePlayerEventFirstDisplayed" - }, - "kRtePlayerEventReachCacheFileMaxCount": { - "windows": "kRtePlayerEventReachCacheFileMaxCount", - "android": "REACH_CACHE_FILE_MAX_COUNT", - "ios": "AgoraRtePlayerEventReachCacheFileMaxCount", - "macos": "AgoraRtePlayerEventReachCacheFileMaxCount" - }, - "kRtePlayerEventReachCacheFileMaxSize": { - "windows": "kRtePlayerEventReachCacheFileMaxSize", - "android": "REACH_CACHE_FILE_MAX_SIZE", - "ios": "AgoraRtePlayerEventReachCacheFileMaxSize", - "macos": "AgoraRtePlayerEventReachCacheFileMaxSize" - }, - "kRtePlayerEventTryOpenStart": { - "windows": "kRtePlayerEventTryOpenStart", - "android": "TRY_OPEN_START", - "ios": "AgoraRtePlayerEventTryOpenStart", - "macos": "AgoraRtePlayerEventTryOpenStart" - }, - "kRtePlayerEventTryOpenSucceed": { - "windows": "kRtePlayerEventTryOpenSucceed", - "android": "TRY_OPEN_SUCCEED", - "ios": "AgoraRtePlayerEventTryOpenSucceed", - "macos": "AgoraRtePlayerEventTryOpenSucceed" - }, - "kRtePlayerEventTryOpenFailed": { - "windows": "kRtePlayerEventTryOpenFailed", - "android": "TRY_OPEN_FAILED", - "ios": "AgoraRtePlayerEventTryOpenFailed", - "macos": "AgoraRtePlayerEventTryOpenFailed" - }, - "kRtePlayerEventAudioTrackChanged": { - "windows": "kRtePlayerEventAudioTrackChanged", - "android": "AUDIO_TRACK_CHANGED", - "ios": "AgoraRtePlayerEventAudioTrackChanged", - "macos": "AgoraRtePlayerEventAudioTrackChanged" + "RecorderStreamType": { + "windows": "RecorderStreamType", + "ios": "AgoraRecorderStreamType", + "macos": "AgoraRecorderStreamType" + }, + "RtePlayerEvent": { + "windows": "RtePlayerEvent", + "android": "PlayerEvent", + "ios": "AgoraRtePlayerEvent", + "macos": "AgoraRtePlayerEvent" }, "RTMP_STREAM_LIFE_CYCLE_TYPE": { "windows": "RTMP_STREAM_LIFE_CYCLE_TYPE", "ios": "AgoraRtmpStreamLifeCycle", "macos": "AgoraRtmpStreamLifeCycle" }, - "RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL": { - "windows": "RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL", - "ios": "AgoraRtmpStreamLifeCycleBindToChannel", - "macos": "AgoraRtmpStreamLifeCycleBindToChannel" - }, - "RTMP_STREAM_LIFE_CYCLE_BIND2OWNER": { - "windows": "RTMP_STREAM_LIFE_CYCLE_BIND2OWNER", - "ios": "AgoraRtmpStreamLifeCycleBindToOwner", - "macos": "AgoraRtmpStreamLifeCycleBindToOwner" - }, "RTMP_STREAM_PUBLISH_REASON": { "windows": "RTMP_STREAM_PUBLISH_REASON", "ios": "AgoraRtmpStreamingReason", "macos": "AgoraRtmpStreamingReason" }, - "RTMP_STREAM_PUBLISH_REASON_OK": { - "windows": "RTMP_STREAM_PUBLISH_REASON_OK", - "android": "RTMP_STREAM_PUBLISH_REASON_OK", - "ios": "AgoraRtmpStreamingReasonOK", - "macos": "AgoraRtmpStreamingReasonOK" - }, - "RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT": { - "windows": "RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT", - "android": "RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT", - "ios": "AgoraRtmpStreamingReasonInvalidParameters", - "macos": "AgoraRtmpStreamingReasonInvalidParameters" - }, - "RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED": { - "windows": "RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED", - "android": "RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED", - "ios": "AgoraRtmpStreamingReasonEncryptedStreamNotAllowed", - "macos": "AgoraRtmpStreamingReasonEncryptedStreamNotAllowed" - }, - "RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT": { - "windows": "RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT", - "android": "RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT", - "ios": "AgoraRtmpStreamingReasonConnectionTimeout", - "macos": "AgoraRtmpStreamingReasonConnectionTimeout" - }, - "RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR": { - "windows": "RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR", - "android": "RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR", - "ios": "AgoraRtmpStreamingReasonInternalServerError", - "macos": "AgoraRtmpStreamingReasonInternalServerError" - }, - "RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR": { - "windows": "RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR", - "android": "RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR", - "ios": "AgoraRtmpStreamingReasonRtmpServerError", - "macos": "AgoraRtmpStreamingReasonRtmpServerError" - }, - "RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN": { - "windows": "RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN", - "android": "RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN", - "ios": "AgoraRtmpStreamingReasonTooOften", - "macos": "AgoraRtmpStreamingReasonTooOften" - }, - "RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT": { - "windows": "RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT", - "android": "RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT", - "ios": "AgoraRtmpStreamingReasonReachLimit", - "macos": "AgoraRtmpStreamingReasonReachLimit" - }, - "RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED": { - "windows": "RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED", - "android": "RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED", - "ios": "AgoraRtmpStreamingReasonNotAuthorized", - "macos": "AgoraRtmpStreamingReasonNotAuthorized" - }, - "RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND": { - "windows": "RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND", - "android": "RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND", - "ios": "AgoraRtmpStreamingReasonStreamNotFound", - "macos": "AgoraRtmpStreamingReasonStreamNotFound" - }, - "RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED": { - "windows": "RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED", - "android": "RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED", - "ios": "AgoraRtmpStreamingReasonFormatNotSupported", - "macos": "AgoraRtmpStreamingReasonFormatNotSupported" - }, - "RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER": { - "windows": "RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER", - "android": "RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER", - "ios": "AgoraRtmpStreamingReasonNotBroadcaster", - "macos": "AgoraRtmpStreamingReasonNotBroadcaster" - }, - "RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM": { - "windows": "RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM", - "android": "RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM", - "ios": "AgoraRtmpStreamingReasonTranscodingNoMixStream", - "macos": "AgoraRtmpStreamingReasonTranscodingNoMixStream" - }, - "RTMP_STREAM_PUBLISH_REASON_NET_DOWN": { - "windows": "RTMP_STREAM_PUBLISH_REASON_NET_DOWN", - "android": "RTMP_STREAM_PUBLISH_REASON_NET_DOWN", - "ios": "AgoraRtmpStreamingReasonNetDown", - "macos": "AgoraRtmpStreamingReasonNetDown" - }, - "RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE": { - "windows": "RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE", - "android": "RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE", - "ios": "AgoraRtmpStreamingReasonInvalidPrivilege", - "macos": "AgoraRtmpStreamingReasonInvalidPrivilege" - }, - "RTMP_STREAM_UNPUBLISH_REASON_OK": { - "windows": "RTMP_STREAM_UNPUBLISH_REASON_OK", - "android": "RTMP_STREAM_UNPUBLISH_REASON_OK", - "ios": "AgoraRtmpStreamingReasonUnpublishOK", - "macos": "AgoraRtmpStreamingReasonUnpublishOK" - }, "RTMP_STREAM_PUBLISH_STATE": { "windows": "RTMP_STREAM_PUBLISH_STATE", "ios": "AgoraRtmpStreamingState", "macos": "AgoraRtmpStreamingState" }, - "RTMP_STREAM_PUBLISH_STATE_IDLE": { - "windows": "RTMP_STREAM_PUBLISH_STATE_IDLE", - "android": "RTMP_STREAM_PUBLISH_STATE_IDLE", - "ios": "AgoraRtmpStreamingStateIdle", - "macos": "AgoraRtmpStreamingStateIdle" - }, - "RTMP_STREAM_PUBLISH_STATE_CONNECTING": { - "windows": "RTMP_STREAM_PUBLISH_STATE_CONNECTING", - "android": "RTMP_STREAM_PUBLISH_STATE_CONNECTING", - "ios": "AgoraRtmpStreamingStateConnecting", - "macos": "AgoraRtmpStreamingStateConnecting" - }, - "RTMP_STREAM_PUBLISH_STATE_RUNNING": { - "windows": "RTMP_STREAM_PUBLISH_STATE_RUNNING", - "android": "RTMP_STREAM_PUBLISH_STATE_RUNNING", - "ios": "AgoraRtmpStreamingStateRunning", - "macos": "AgoraRtmpStreamingStateRunning" - }, - "RTMP_STREAM_PUBLISH_STATE_RECOVERING": { - "windows": "RTMP_STREAM_PUBLISH_STATE_RECOVERING", - "android": "RTMP_STREAM_PUBLISH_STATE_RECOVERING", - "ios": "AgoraRtmpStreamingStateRecovering", - "macos": "AgoraRtmpStreamingStateRecovering" - }, - "RTMP_STREAM_PUBLISH_STATE_FAILURE": { - "windows": "RTMP_STREAM_PUBLISH_STATE_FAILURE", - "android": "RTMP_STREAM_PUBLISH_STATE_FAILURE", - "ios": "AgoraRtmpStreamingStateFailure", - "macos": "AgoraRtmpStreamingStateFailure" - }, - "RTMP_STREAM_PUBLISH_STATE_DISCONNECTING": { - "windows": "RTMP_STREAM_PUBLISH_STATE_DISCONNECTING", - "android": "RTMP_STREAM_PUBLISH_STATE_DISCONNECTING", - "ios": "AgoraRtmpStreamingStateDisconnecting", - "macos": "AgoraRtmpStreamingStateDisconnecting" - }, - "kRtePlayerStateIdle": { - "windows": "kRtePlayerStateIdle", - "android": "IDLE", - "ios": "AgoraRtePlayerStateIdle", - "macos": "AgoraRtePlayerStateIdle" - }, - "kRtePlayerStateOpening": { - "windows": "kRtePlayerStateOpening", - "android": "OPENING", - "ios": "AgoraRtePlayerStateOpening", - "macos": "AgoraRtePlayerStateOpening" - }, - "kRtePlayerStateOpenCompleted": { - "windows": "kRtePlayerStateOpenCompleted", - "android": "OPEN_COMPLETED", - "ios": "AgoraRtePlayerStateOpenCompleted", - "macos": "AgoraRtePlayerStateOpenCompleted" - }, - "kRtePlayerStatePlaying": { - "windows": "kRtePlayerStatePlaying", - "android": "PLAYING", - "ios": "AgoraRtePlayerStatePlaying", - "macos": "AgoraRtePlayerStatePlaying" - }, - "kRtePlayerStatePaused": { - "windows": "kRtePlayerStatePaused", - "android": "PAUSED", - "ios": "AgoraRtePlayerStatePaused", - "macos": "AgoraRtePlayerStatePaused" - }, - "kRtePlayerStatePlaybackCompleted": { - "windows": "kRtePlayerStatePlaybackCompleted", - "android": "PLAYBACK_COMPLETED", - "ios": "AgoraRtePlayerStatePlaybackCompleted", - "macos": "AgoraRtePlayerStatePlaybackCompleted" - }, - "kRtePlayerStateStopped": { - "windows": "kRtePlayerStateStopped", - "android": "STOPPED", - "ios": "AgoraRtePlayerStateStopped", - "macos": "AgoraRtePlayerStateStopped" - }, - "kRtePlayerStateFailed": { - "windows": "kRtePlayerStateFailed", - "android": "FAILED", - "ios": "AgoraRtePlayerStateFailed", - "macos": "AgoraRtePlayerStateFailed" + "RtePlayerState": { + "windows": "RtePlayerState", + "android": "PlayerState", + "ios": "AgoraRtePlayerState", + "macos": "AgoraRtePlayerState" }, "RTMP_STREAMING_EVENT": { "windows": "RTMP_STREAMING_EVENT", "ios": "AgoraRtmpStreamingEvent", "macos": "AgoraRtmpStreamingEvent" }, - "RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE": { - "windows": "RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE", - "android": "RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE", - "ios": "AgoraRtmpStreamingEventFailedLoadImage", - "macos": "AgoraRtmpStreamingEventFailedLoadImage" - }, - "RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE": { - "windows": "RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE", - "android": "RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE", - "ios": "AgoraRtmpStreamingEventUrlAlreadyInUse", - "macos": "AgoraRtmpStreamingEventUrlAlreadyInUse" - }, - "RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT": { - "windows": "RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT", - "android": "RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT", - "ios": "AgoraRtmpStreamingEventAdvancedFeatureNotSupport", - "macos": "AgoraRtmpStreamingEventAdvancedFeatureNotSupport" - }, - "RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN": { - "windows": "RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN", - "android": "RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN", - "ios": "AgoraRtmpStreamingEventRequestTooOften", - "macos": "AgoraRtmpStreamingEventRequestTooOften" - }, "RHYTHM_PLAYER_STATE_TYPE": { "windows": "RHYTHM_PLAYER_STATE_TYPE", "ios": "AgoraRhythmPlayerState", "macos": "AgoraRhythmPlayerState" }, - "RHYTHM_PLAYER_STATE_IDLE": { - "windows": "RHYTHM_PLAYER_STATE_IDLE", - "android": "RHYTHM_PLAYER_STATE_IDLE", - "ios": "AgoraRhythmPlayerStateIdle", - "macos": "AgoraRhythmPlayerStateIdle" - }, - "RHYTHM_PLAYER_STATE_OPENING": { - "windows": "RHYTHM_PLAYER_STATE_OPENING", - "android": "RHYTHM_PLAYER_STATE_OPENING", - "ios": "AgoraRhythmPlayerStateOpening", - "macos": "AgoraRhythmPlayerStateOpening" - }, - "RHYTHM_PLAYER_STATE_DECODING": { - "windows": "RHYTHM_PLAYER_STATE_DECODING", - "android": "RHYTHM_PLAYER_STATE_DECODING", - "ios": "AgoraRhythmPlayerStateDecoding", - "macos": "AgoraRhythmPlayerStateDecoding" - }, - "RHYTHM_PLAYER_STATE_PLAYING": { - "windows": "RHYTHM_PLAYER_STATE_PLAYING", - "android": "RHYTHM_PLAYER_STATE_PLAYING", - "ios": "AgoraRhythmPlayerStatePlaying", - "macos": "AgoraRhythmPlayerStatePlaying" - }, - "RHYTHM_PLAYER_STATE_FAILED": { - "windows": "RHYTHM_PLAYER_STATE_FAILED", - "android": "RHYTHM_PLAYER_STATE_FAILED", - "ios": "AgoraRhythmPlayerStateFailed", - "macos": "AgoraRhythmPlayerStateFailed" - }, "RHYTHM_PLAYER_REASON": { "windows": "RHYTHM_PLAYER_REASON", "ios": "AgoraRhythmPlayerReason", "macos": "AgoraRhythmPlayerReason" }, - "RHYTHM_PLAYER_REASON_OK": { - "windows": "RHYTHM_PLAYER_REASON_OK", - "android": "RHYTHM_PLAYER_REASON_OK", - "ios": "AgoraRhythmPlayerReasonOK", - "macos": "AgoraRhythmPlayerReasonOK" - }, - "RHYTHM_PLAYER_REASON_FAILED": { - "windows": "RHYTHM_PLAYER_REASON_FAILED", - "android": "RHYTHM_PLAYER_REASON_FAILED", - "ios": "AgoraRhythmPlayerReasonFailed", - "macos": "AgoraRhythmPlayerReasonFailed" - }, - "RHYTHM_PLAYER_REASON_CAN_NOT_OPEN": { - "windows": "RHYTHM_PLAYER_REASON_CAN_NOT_OPEN", - "android": "RHYTHM_PLAYER_REASON_CAN_NOT_OPEN", - "ios": "AgoraRhythmPlayerReasonCanNotOpen", - "macos": "AgoraRhythmPlayerReasonCanNotOpen" - }, - "RHYTHM_PLAYER_REASON_CAN_NOT_PLAY": { - "windows": "RHYTHM_PLAYER_REASON_CAN_NOT_PLAY", - "android": "RHYTHM_PLAYER_REASON_CAN_NOT_PLAY", - "ios": "AgoraRhythmPlayerReasonCanNotPlay", - "macos": "AgoraRhythmPlayerReasonCanNotPlay" - }, - "RHYTHM_PLAYER_REASON_FILE_OVER_DURATION_LIMIT": { - "windows": "RHYTHM_PLAYER_REASON_FILE_OVER_DURATION_LIMIT", - "android": "RHYTHM_PLAYER_REASON_FILE_OVER_DURATION_LIMIT", - "ios": "AgoraRhythmPlayerReasonFileOverDurationLimit", - "macos": "AgoraRhythmPlayerReasonFileOverDurationLimit" - }, "SIMULCAST_STREAM_MODE": { "windows": "SIMULCAST_STREAM_MODE", - "android": "SIMULCAST_STREAM_MODE", + "android": "SimulcastStreamMode", "ios": "AgoraSimulcastStreamMode", "macos": "AgoraSimulcastStreamMode" }, - "AUTO_SIMULCAST_STREAM": { - "windows": "AUTO_SIMULCAST_STREAM", - "android": "AUTO_SIMULCAST_STREAM", - "ios": "AgoraAutoSimulcastStream", - "macos": "AgoraAutoSimulcastStream" - }, - "DISABLE_SIMULCAST_STREAM": { - "windows": "DISABLE_SIMULCAST_STREAM", - "android": "DISABLE_SIMULCAST_STREAM", - "ios": "AgoraDisableSimulcastStream", - "macos": "AgoraDisableSimulcastStream" - }, - "ENABLE_SIMULCAST_STREAM": { - "windows": "ENABLE_SIMULCAST_STREAM", - "android": "ENABLE_SIMULCAST_STREAM", - "ios": "AgoraEnableSimulcastStream", - "macos": "AgoraEnableSimulcastStream" - }, "STREAM_FALLBACK_OPTIONS": { "windows": "STREAM_FALLBACK_OPTIONS", "android": "StreamFallbackOptions", "ios": "AgoraStreamFallbackOptions", "macos": "AgoraStreamFallbackOptions" }, - "STREAM_FALLBACK_OPTION_DISABLED": { - "windows": "STREAM_FALLBACK_OPTION_DISABLED", - "android": "STREAM_FALLBACK_OPTION_DISABLED", - "ios": "AgoraStreamFallbackOptionDisabled", - "macos": "AgoraStreamFallbackOptionDisabled" - }, - "STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW": { - "windows": "STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW", - "android": "STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW", - "ios": "AgoraStreamFallbackOptionVideoStreamLow", - "macos": "AgoraStreamFallbackOptionVideoStreamLow" - }, - "STREAM_FALLBACK_OPTION_AUDIO_ONLY": { - "windows": "STREAM_FALLBACK_OPTION_AUDIO_ONLY", - "android": "STREAM_FALLBACK_OPTION_AUDIO_ONLY", - "ios": "AgoraStreamFallbackOptionAudioOnly", - "macos": "AgoraStreamFallbackOptionAudioOnly" - }, - "SAE_CONNECTION_STATE_CONNECTING": { - "windows": "SAE_CONNECTION_STATE_CONNECTING", - "android": "SAE_CONNECTION_STATE_CONNECTING", - "ios": "AgoraSaeConnectionStateConnecting", - "macos": "AgoraSaeConnectionStateConnecting" - }, - "SAE_CONNECTION_STATE_CONNECTED": { - "windows": "SAE_CONNECTION_STATE_CONNECTED", - "android": "SAE_CONNECTION_STATE_CONNECTED", - "ios": "AgoraSaeConnectionStateConnected", - "macos": "AgoraSaeConnectionStateConnected" - }, - "SAE_CONNECTION_STATE_DISCONNECTED": { - "windows": "SAE_CONNECTION_STATE_DISCONNECTED", - "android": "SAE_CONNECTION_STATE_DISCONNECTED", - "ios": "AgoraSaeConnectionStateDisconnected", - "macos": "AgoraSaeConnectionStateDisconnected" - }, - "SAE_CONNECTION_STATE_RECONNECTING": { - "windows": "SAE_CONNECTION_STATE_RECONNECTING", - "android": "SAE_CONNECTION_STATE_RECONNECTING", - "ios": "AgoraSaeConnectionStateReconnecting", - "macos": "AgoraSaeConnectionStateReconnecting" - }, - "SAE_CONNECTION_STATE_RECONNECTED": { - "windows": "SAE_CONNECTION_STATE_RECONNECTED", - "android": "SAE_CONNECTION_STATE_RECONNECTED", - "ios": "AgoraSaeConnectionStateReconnected", - "macos": "AgoraSaeConnectionStateReconnected" - }, - "SAE_CONNECTION_CHANGED_DEFAULT": { - "windows": "SAE_CONNECTION_CHANGED_DEFAULT", - "android": "SAE_CONNECTION_CHANGED_DEFAULT", - "ios": "AgoraSaeConnectionChangedReasonDefault", - "macos": "AgoraSaeConnectionChangedReasonDefault" - }, - "SAE_CONNECTION_CHANGED_CONNECTING": { - "windows": "SAE_CONNECTION_CHANGED_CONNECTING", - "android": "SAE_CONNECTION_CHANGED_CONNECTING", - "ios": "AgoraSaeConnectionChangedReasonConnecting", - "macos": "AgoraSaeConnectionChangedReasonConnecting" - }, - "SAE_CONNECTION_CHANGED_CREATE_ROOM_FAIL": { - "windows": "SAE_CONNECTION_CHANGED_CREATE_ROOM_FAIL", - "android": "SAE_CONNECTION_CHANGED_CREATE_ROOM_FAIL", - "ios": "AgoraSaeConnectionChangedReasonCreateRoomFail", - "macos": "AgoraSaeConnectionChangedReasonCreateRoomFail" - }, - "SAE_CONNECTION_CHANGED_RTM_DISCONNECT": { - "windows": "SAE_CONNECTION_CHANGED_RTM_DISCONNECT", - "android": "SAE_CONNECTION_CHANGED_RTM_DISCONNECT", - "ios": "AgoraSaeConnectionChangedReasonRtmDisconnect", - "macos": "AgoraSaeConnectionChangedReasonRtmDisconnect" - }, - "SAE_CONNECTION_CHANGED_RTM_ABORTED": { - "windows": "SAE_CONNECTION_CHANGED_RTM_ABORTED", - "android": "SAE_CONNECTION_CHANGED_RTM_ABORTED", - "ios": "AgoraSaeConnectionChangedReasonAborted", - "macos": "AgoraSaeConnectionChangedReasonAborted" - }, - "SAE_CONNECTION_CHANGED_LOST_SYNC": { - "windows": "SAE_CONNECTION_CHANGED_LOST_SYNC", - "android": "SAE_CONNECTION_CHANGED_LOST_SYNC", - "ios": "AgoraSaeConnectionChangedReasonLostSync", - "macos": "AgoraSaeConnectionChangedReasonLostSync" - }, "SCREEN_CAPTURE_FRAMERATE_CAPABILITY": { "windows": "SCREEN_CAPTURE_FRAMERATE_CAPABILITY", "ios": "AgoraScreenCaptureFrameRateCapability" }, - "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_15_FPS": { - "windows": "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_15_FPS", - "ios": "AgoraScreenCaptureFrameRate15FPS" - }, - "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_30_FPS": { - "windows": "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_30_FPS", - "ios": "AgoraScreenCaptureFrameRate30FPS" - }, - "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_60_FPS": { - "windows": "SCREEN_CAPTURE_FRAMERATE_CAPABILITY_60_FPS", - "ios": "AgoraScreenCaptureFrameRate60FPS" - }, "ScreenCaptureSourceType": { "windows": "ScreenCaptureSourceType", "macos": "AgoraScreenCaptureSourceType" }, - "ScreenCaptureSourceType_Unknown": { - "windows": "ScreenCaptureSourceType_Unknown", - "macos": "AgoraScreenCaptureSourceTypeUnknown" - }, - "ScreenCaptureSourceType_Window": { - "windows": "ScreenCaptureSourceType_Window", - "macos": "AgoraScreenCaptureSourceTypeWindow" - }, - "ScreenCaptureSourceType_Screen": { - "windows": "ScreenCaptureSourceType_Screen", - "macos": "AgoraScreenCaptureSourceTypeScreen" - }, - "ScreenCaptureSourceType_Custom": { - "windows": "ScreenCaptureSourceType_Custom", - "macos": "AgoraScreenCaptureSourceTypeCustom" - }, "SEG_MODEL_TYPE": { "windows": "SEG_MODEL_TYPE", "ios": "SegModelType", "macos": "SegModelType" }, - "SEG_MODEL_AI": { - "windows": "SEG_MODEL_AI", - "android": "SEG_MODEL_AI", - "ios": "SegModelAgoraAi", - "macos": "SegModelAgoraAi" - }, - "SEG_MODEL_GREEN": { - "windows": "SEG_MODEL_GREEN", - "android": "SEG_MODEL_GREEN", - "ios": "SegModelAgoraGreen", - "macos": "SegModelAgoraGreen" - }, "STREAM_PUBLISH_STATE": { "windows": "STREAM_PUBLISH_STATE", - "android": "STREAM_PUBLISH_STATE", "ios": "AgoraStreamPublishState", "macos": "AgoraStreamPublishState" }, - "PUB_STATE_IDLE": { - "windows": "PUB_STATE_IDLE", - "android": "PUB_STATE_IDLE", - "ios": "AgoraStreamPublishStateIdle", - "macos": "AgoraStreamPublishStateIdle" - }, - "PUB_STATE_NO_PUBLISHED": { - "windows": "PUB_STATE_NO_PUBLISHED", - "android": "PUB_STATE_NO_PUBLISHED", - "ios": "AgoraStreamPublishStateNoPublished", - "macos": "AgoraStreamPublishStateNoPublished" - }, - "PUB_STATE_PUBLISHING": { - "windows": "PUB_STATE_PUBLISHING", - "android": "PUB_STATE_PUBLISHING", - "ios": "AgoraStreamPublishStatePublishing", - "macos": "AgoraStreamPublishStatePublishing" - }, - "PUB_STATE_PUBLISHED": { - "windows": "PUB_STATE_PUBLISHED", - "android": "PUB_STATE_PUBLISHED", - "ios": "AgoraStreamPublishStatePublished", - "macos": "AgoraStreamPublishStatePublished" - }, "SCREEN_SCENARIO_TYPE": { "windows": "SCREEN_SCENARIO_TYPE", "android": "ScreenScenarioType", "ios": "AgoraScreenScenarioType", "macos": "AgoraScreenScenarioType" }, - "SCREEN_SCENARIO_DOCUMENT": { - "windows": "SCREEN_SCENARIO_DOCUMENT", - "android": "SCREEN_SCENARIO_DOCUMENT", - "ios": "AgoraScreenScenarioDocument", - "macos": "AgoraScreenScenarioDocument" - }, - "SCREEN_SCENARIO_GAMING": { - "windows": "SCREEN_SCENARIO_GAMING", - "android": "SCREEN_SCENARIO_GAMING", - "ios": "AgoraScreenScenarioGaming", - "macos": "AgoraScreenScenarioGaming" - }, - "SCREEN_SCENARIO_VIDEO": { - "windows": "SCREEN_SCENARIO_VIDEO", - "android": "SCREEN_SCENARIO_VIDEO", - "ios": "AgoraScreenScenarioVideo", - "macos": "AgoraScreenScenarioVideo" - }, - "SCREEN_SCENARIO_RDC": { - "windows": "SCREEN_SCENARIO_RDC", - "ios": "AgoraScreenScenarioRDC", - "macos": "AgoraScreenScenarioRDC" - }, "STREAM_SUBSCRIBE_STATE": { "windows": "STREAM_SUBSCRIBE_STATE", "ios": "AgoraStreamSubscribeState", "macos": "AgoraStreamSubscribeState" }, - "SUB_STATE_IDLE": { - "windows": "SUB_STATE_IDLE", - "android": "SUB_STATE_IDLE", - "ios": "AgoraStreamSubscribeStateIdle", - "macos": "AgoraStreamSubscribeStateIdle" - }, - "SUB_STATE_NO_SUBSCRIBED": { - "windows": "SUB_STATE_NO_SUBSCRIBED", - "android": "SUB_STATE_NO_SUBSCRIBED", - "ios": "AgoraStreamSubscribeStateNoSubscribed", - "macos": "AgoraStreamSubscribeStateNoSubscribed" - }, - "SUB_STATE_SUBSCRIBING": { - "windows": "SUB_STATE_SUBSCRIBING", - "android": "SUB_STATE_SUBSCRIBING", - "ios": "AgoraStreamSubscribeStateSubscribing", - "macos": "AgoraStreamSubscribeStateSubscribing" - }, - "SUB_STATE_SUBSCRIBED": { - "windows": "SUB_STATE_SUBSCRIBED", - "android": "SUB_STATE_SUBSCRIBED", - "ios": "AgoraStreamSubscribeStateSubscribed", - "macos": "AgoraStreamSubscribeStateSubscribed" - }, "USER_OFFLINE_REASON_TYPE": { "windows": "USER_OFFLINE_REASON_TYPE", "ios": "AgoraUserOfflineReason", "macos": "AgoraUserOfflineReason" }, - "USER_OFFLINE_QUIT": { - "windows": "USER_OFFLINE_QUIT", - "android": "USER_OFFLINE_QUIT", - "ios": "AgoraUserOfflineReasonQuit", - "macos": "AgoraUserOfflineReasonQuit" - }, - "USER_OFFLINE_DROPPED": { - "windows": "USER_OFFLINE_DROPPED", - "android": "USER_OFFLINE_DROPPED", - "ios": "AgoraUserOfflineReasonDropped", - "macos": "AgoraUserOfflineReasonDropped" - }, - "USER_OFFLINE_BECOME_AUDIENCE": { - "windows": "USER_OFFLINE_BECOME_AUDIENCE", - "android": "USER_OFFLINE_BECOME_AUDIENCE", - "ios": "AgoraUserOfflineReasonBecomeAudience", - "macos": "AgoraUserOfflineReasonBecomeAudience" - }, "VIDEO_APPLICATION_SCENARIO_TYPE": { "windows": "VIDEO_APPLICATION_SCENARIO_TYPE", "android": "VideoScenario", "ios": "AgoraApplicationScenarioType", "macos": "AgoraApplicationScenarioType" }, - "APPLICATION_SCENARIO_GENERAL": { - "windows": "APPLICATION_SCENARIO_GENERAL", - "android": "APPLICATION_SCENARIO_GENERAL", - "ios": "AgoraApplicationGeneralScenario", - "macos": "AgoraApplicationGeneralScenario" - }, - "APPLICATION_SCENARIO_MEETING": { - "windows": "APPLICATION_SCENARIO_MEETING", - "android": "APPLICATION_SCENARIO_MEETING", - "ios": "AgoraApplicationMeetingScenario", - "macos": "AgoraApplicationMeetingScenario" - }, - "APPLICATION_SCENARIO_1V1": { - "windows": "APPLICATION_SCENARIO_1V1", - "android": "APPLICATION_SCENARIO_1V1", - "ios": "AgoraApplication1V1Scenario", - "macos": "AgoraApplication1V1Scenario" - }, - "APPLICATION_SCENARIO_LIVESHOW": { - "windows": "APPLICATION_SCENARIO_LIVESHOW", - "android": "APPLICATION_SCENARIO_LIVESHOW", - "ios": "AgoraApplicationLiveShowScenario", - "macos": "AgoraApplicationLiveShowScenario" - }, "VIDEO_BUFFER_TYPE": { "windows": "VIDEO_BUFFER_TYPE" }, - "VIDEO_BUFFER_RAW_DATA": { - "windows": "VIDEO_BUFFER_RAW_DATA", - "android": "VIDEO_BUFFER_RAW_DATA", - "ios": "AgoraVideoBufferTypeRawData", - "macos": "AgoraVideoBufferTypeRawData" - }, - "VIDEO_BUFFER_ARRAY": { - "windows": "VIDEO_BUFFER_ARRAY" - }, - "VIDEO_BUFFER_TEXTURE": { - "windows": "VIDEO_BUFFER_TEXTURE" - }, - "VIDEO_CAPTURE_UNKNOWN": { - "windows": "VIDEO_CAPTURE_UNKNOWN", - "android": "VIDEO_CAPTURE_UNKNOWN" - }, - "VIDEO_CAPTURE_CAMERA": { - "windows": "VIDEO_CAPTURE_CAMERA", - "android": "VIDEO_CAPTURE_CAMERA" - }, - "VIDEO_CAPTURE_SCREEN": { - "windows": "VIDEO_CAPTURE_SCREEN", - "android": "VIDEO_CAPTURE_SCREEN" - }, "VIDEO_DENOISER_MODE": { "windows": "VIDEO_DENOISER_MODE", "ios": "AgoraVideoDenoiserMode", "macos": "AgoraVideoDenoiserMode" }, - "VIDEO_DENOISER_AUTO": { - "windows": "VIDEO_DENOISER_AUTO", - "android": "VIDEO_DENOISER_AUTO", - "ios": "AgoraVideoDenoiserModeAuto", - "macos": "AgoraVideoDenoiserModeAuto" - }, - "VIDEO_DENOISER_MANUAL": { - "windows": "VIDEO_DENOISER_MANUAL", - "android": "VIDEO_DENOISER_MANUAL", - "ios": "AgoraVideoDenoiserModeManual", - "macos": "AgoraVideoDenoiserModeManual" - }, "VIDEO_DENOISER_LEVEL": { "windows": "VIDEO_DENOISER_LEVEL", "ios": "AgoraVideoDenoiserLevel", "macos": "AgoraVideoDenoiserLevel" }, - "VIDEO_DENOISER_LEVEL_HIGH_QUALITY": { - "windows": "VIDEO_DENOISER_LEVEL_HIGH_QUALITY", - "android": "VIDEO_DENOISER_LEVEL_HIGH_QUALITY", - "ios": "AgoraVideoDenoiserLevelHighQuality", - "macos": "AgoraVideoDenoiserLevelHighQuality" - }, - "VIDEO_DENOISER_LEVEL_FAST": { - "windows": "VIDEO_DENOISER_LEVEL_FAST", - "android": "VIDEO_DENOISER_LEVEL_FAST", - "ios": "AgoraVideoDenoiserLevelFast", - "macos": "AgoraVideoDenoiserLevelFast" - }, - "VIDEO_DENOISER_LEVEL_STRENGTH": { - "windows": "VIDEO_DENOISER_LEVEL_STRENGTH", - "android": "VIDEO_DENOISER_LEVEL_STRENGTH", - "ios": "AgoraVideoDenoiserLevelStrength", - "macos": "AgoraVideoDenoiserLevelStrength" - }, "VIDEO_SOURCE_TYPE": { "windows": "VIDEO_SOURCE_TYPE", "android": "VideoSourceType", "ios": "AgoraVideoSourceType", "macos": "AgoraVideoSourceType" }, - "VIDEO_SOURCE_CAMERA_PRIMARY": { - "windows": "VIDEO_SOURCE_CAMERA_PRIMARY", - "android": "VIDEO_SOURCE_CAMERA_PRIMARY" - }, - "VIDEO_SOURCE_CAMERA": { - "windows": "VIDEO_SOURCE_CAMERA", - "android": "VIDEO_SOURCE_CAMERA", - "ios": "AgoraVideoSourceTypeCamera", - "macos": "AgoraVideoSourceTypeCamera" - }, - "VIDEO_SOURCE_CAMERA_SECONDARY": { - "windows": "VIDEO_SOURCE_CAMERA_SECONDARY", - "android": "VIDEO_SOURCE_CAMERA_SECONDARY", - "ios": "AgoraVideoSourceTypeCameraSecondary", - "macos": "AgoraVideoSourceTypeCameraSecondary" - }, - "VIDEO_SOURCE_SCREEN_PRIMARY": { - "windows": "VIDEO_SOURCE_SCREEN_PRIMARY", - "android": "VIDEO_SOURCE_SCREEN_PRIMARY" - }, - "VIDEO_SOURCE_SCREEN": { - "windows": "VIDEO_SOURCE_SCREEN", - "android": "VIDEO_SOURCE_SCREEN", - "ios": "AgoraVideoSourceTypeScreen", - "macos": "AgoraVideoSourceTypeScreen" - }, - "VIDEO_SOURCE_SCREEN_SECONDARY": { - "windows": "VIDEO_SOURCE_SCREEN_SECONDARY", - "android": "VIDEO_SOURCE_SCREEN_SECONDARY", - "ios": "AgoraVideoSourceTypeScreenSecondary", - "macos": "AgoraVideoSourceTypeScreenSecondary" - }, - "VIDEO_SOURCE_CUSTOM": { - "windows": "VIDEO_SOURCE_CUSTOM", - "android": "VIDEO_SOURCE_CUSTOM", - "ios": "AgoraVideoSourceTypeCustom", - "macos": "AgoraVideoSourceTypeCustom" - }, - "VIDEO_SOURCE_MEDIA_PLAYER": { - "windows": "VIDEO_SOURCE_MEDIA_PLAYER", - "android": "VIDEO_SOURCE_MEDIA_PLAYER", - "ios": "AgoraVideoSourceTypeMediaPlayer", - "macos": "AgoraVideoSourceTypeMediaPlayer" - }, - "VIDEO_SOURCE_RTC_IMAGE_PNG": { - "windows": "VIDEO_SOURCE_RTC_IMAGE_PNG", - "android": "VIDEO_SOURCE_RTC_IMAGE_PNG", - "ios": "AgoraVideoSourceTypeImagePNG", - "macos": "AgoraVideoSourceTypeImagePNG" - }, - "VIDEO_SOURCE_RTC_IMAGE_JPEG": { - "windows": "VIDEO_SOURCE_RTC_IMAGE_JPEG", - "android": "VIDEO_SOURCE_RTC_IMAGE_JPEG", - "ios": "AgoraVideoSourceTypeImageJPEG", - "macos": "AgoraVideoSourceTypeImageJPEG" - }, - "VIDEO_SOURCE_RTC_IMAGE_GIF": { - "windows": "VIDEO_SOURCE_RTC_IMAGE_GIF", - "android": "VIDEO_SOURCE_RTC_IMAGE_GIF", - "ios": "AgoraVideoSourceTypeImageGIF", - "macos": "AgoraVideoSourceTypeImageGIF" - }, - "VIDEO_SOURCE_REMOTE": { - "windows": "VIDEO_SOURCE_REMOTE", - "android": "VIDEO_SOURCE_REMOTE", - "ios": "AgoraVideoSourceTypeRemote", - "macos": "AgoraVideoSourceTypeRemote" - }, - "VIDEO_SOURCE_TRANSCODED": { - "windows": "VIDEO_SOURCE_TRANSCODED", - "android": "VIDEO_SOURCE_TRANSCODED", - "ios": "AgoraVideoSourceTypeTransCoded", - "macos": "AgoraVideoSourceTypeTransCoded" - }, - "VIDEO_SOURCE_CAMERA_THIRD": { - "windows": "VIDEO_SOURCE_CAMERA_THIRD", - "android": "VIDEO_SOURCE_CAMERA_THIRD", - "macos": "AgoraVideoSourceTypeCameraThird" - }, - "VIDEO_SOURCE_CAMERA_FOURTH": { - "windows": "VIDEO_SOURCE_CAMERA_FOURTH", - "android": "VIDEO_SOURCE_CAMERA_FOURTH", - "macos": "AgoraVideoSourceTypeCameraFourth" - }, - "VIDEO_SOURCE_SCREEN_THIRD": { - "windows": "VIDEO_SOURCE_SCREEN_THIRD", - "macos": "AgoraVideoSourceTypeScreenThird" - }, - "VIDEO_SOURCE_SCREEN_FOURTH": { - "windows": "VIDEO_SOURCE_SCREEN_FOURTH", - "macos": "AgoraVideoSourceTypeScreenFourth" - }, - "VIDEO_SOURCE_SPEECH_DRIVEN": { - "windows": "VIDEO_SOURCE_SPEECH_DRIVEN", - "android": "VIDEO_SOURCE_SPEECH_DRIVEN", - "ios": "AgoraVideoSourceTypeSpeechDriven", - "macos": "AgoraVideoSourceTypeSpeechDriven" - }, - "VIDEO_SOURCE_UNKNOWN": { - "windows": "VIDEO_SOURCE_UNKNOWN", - "android": "VIDEO_SOURCE_UNKNOWN", - "ios": "AgoraVideoSourceTypeUnknown", - "macos": "AgoraVideoSourceTypeUnknown" - }, "VIDEO_CODEC_CAPABILITY_LEVEL": { "windows": "VIDEO_CODEC_CAPABILITY_LEVEL", "ios": "AgoraVideoCodecCapabilityLevel", "macos": "AgoraVideoCodecCapabilityLevel" }, - "CODEC_CAPABILITY_LEVEL_UNSPECIFIED": { - "windows": "CODEC_CAPABILITY_LEVEL_UNSPECIFIED", - "android": "CODEC_CAPABILITY_LEVEL_UNSPECIFIED", - "ios": "AgoraVideoCodecCapabilityLevelUnspecified", - "macos": "AgoraVideoCodecCapabilityLevelUnspecified" - }, - "CODEC_CAPABILITY_LEVEL_BASIC_SUPPORT": { - "windows": "CODEC_CAPABILITY_LEVEL_BASIC_SUPPORT", - "android": "CODEC_CAPABILITY_LEVEL_BASIC_SUPPORT", - "ios": "AgoraVideoCodecCapabilityLevelBasicSupport", - "macos": "AgoraVideoCodecCapabilityLevelBasicSupport" - }, - "CODEC_CAPABILITY_LEVEL_1080P30FPS": { - "windows": "CODEC_CAPABILITY_LEVEL_1080P30FPS", - "android": "CODEC_CAPABILITY_LEVEL_1080P30FPS", - "ios": "AgoraVideoCodecCapabilityLevel1080p30fps", - "macos": "AgoraVideoCodecCapabilityLevel1080p30fps" - }, - "CODEC_CAPABILITY_LEVEL_1080P60FPS": { - "windows": "CODEC_CAPABILITY_LEVEL_1080P60FPS", - "android": "CODEC_CAPABILITY_LEVEL_1080P60FPS", - "ios": "AgoraVideoCodecCapabilityLevel1080p60fps", - "macos": "AgoraVideoCodecCapabilityLevel1080p60fps" - }, - "CODEC_CAPABILITY_LEVEL_4K60FPS": { - "windows": "CODEC_CAPABILITY_LEVEL_4K60FPS", - "android": "CODEC_CAPABILITY_LEVEL_4K60FPS", - "ios": "AgoraVideoCodecCapabilityLevel4k60fps", - "macos": "AgoraVideoCodecCapabilityLevel4k60fps" - }, "VIDEO_CODEC_PROFILE_TYPE": { "windows": "VIDEO_CODEC_PROFILE_TYPE", "android": "VideoCodecProfileType", "ios": "AgoraVideoCodecProfileType", "macos": "AgoraVideoCodecProfileType" }, - "VIDEO_CODEC_PROFILE_BASELINE": { - "windows": "VIDEO_CODEC_PROFILE_BASELINE", - "android": "BASELINE", - "ios": "AgoraVideoCodecProfileTypeBaseLine", - "macos": "AgoraVideoCodecProfileTypeBaseLine" - }, - "VIDEO_CODEC_PROFILE_MAIN": { - "windows": "VIDEO_CODEC_PROFILE_MAIN", - "android": "MAIN", - "ios": "AgoraVideoCodecProfileTypeMain", - "macos": "AgoraVideoCodecProfileTypeMain" - }, - "VIDEO_CODEC_PROFILE_HIGH": { - "windows": "VIDEO_CODEC_PROFILE_HIGH", - "android": "HIGH", - "ios": "AgoraVideoCodecProfileTypeHigh", - "macos": "AgoraVideoCodecProfileTypeHigh" - }, "VIDEO_CODEC_TYPE": { "windows": "VIDEO_CODEC_TYPE", "android": "VIDEO_CODEC_TYPE", "ios": "AgoraVideoCodecType", "macos": "AgoraVideoCodecType" }, - "VIDEO_CODEC_NONE": { - "windows": "VIDEO_CODEC_NONE", - "android": "VIDEO_CODEC_NONE", - "ios": "AgoraVideoCodecTypeNone", - "macos": "AgoraVideoCodecTypeNone" - }, - "VIDEO_CODEC_VP8": { - "windows": "VIDEO_CODEC_VP8", - "android": "VIDEO_CODEC_VP8", - "ios": "AgoraVideoCodecTypeVP8", - "macos": "AgoraVideoCodecTypeVP8" - }, - "VIDEO_CODEC_H264": { - "windows": "VIDEO_CODEC_H264", - "android": "VIDEO_CODEC_H264", - "ios": "AgoraVideoCodecTypeH264", - "macos": "AgoraVideoCodecTypeH264" - }, - "VIDEO_CODEC_H265": { - "windows": "VIDEO_CODEC_H265", - "android": "VIDEO_CODEC_H265", - "ios": "AgoraVideoCodecTypeH265", - "macos": "AgoraVideoCodecTypeH265" - }, - "VIDEO_CODEC_AV1": { - "windows": "VIDEO_CODEC_AV1", - "android": "VIDEO_CODEC_AV1", - "ios": "AgoraVideoCodecTypeAV1", - "macos": "AgoraVideoCodecTypeAV1" - }, - "VIDEO_CODEC_GENERIC": { - "windows": "VIDEO_CODEC_GENERIC", - "android": "VIDEO_CODEC_GENERIC", - "ios": "AgoraVideoCodecTypeGeneric", - "macos": "AgoraVideoCodecTypeGeneric" - }, - "VIDEO_CODEC_GENERIC_H264": { - "windows": "VIDEO_CODEC_GENERIC_H264", - "android": "VIDEO_CODEC_GENERIC_H264" - }, - "VIDEO_CODEC_GENERIC_JPEG": { - "windows": "VIDEO_CODEC_GENERIC_JPEG", - "android": "VIDEO_CODEC_GENERIC_JPEG", - "ios": "AgoraVideoCodecTypeGenericJpeg", - "macos": "AgoraVideoCodecTypeGenericJpeg" - }, "VIDEO_CODEC_TYPE_FOR_STREAM": { "windows": "VIDEO_CODEC_TYPE_FOR_STREAM", "android": "VideoCodecType", "ios": "AgoraVideoCodecTypeForStream", "macos": "AgoraVideoCodecTypeForStream" }, - "VIDEO_CODEC_H264_FOR_STREAM": { - "windows": "VIDEO_CODEC_H264_FOR_STREAM", - "android": "H264", - "ios": "AgoraVideoCodecTypeH264ForStream", - "macos": "AgoraVideoCodecTypeH264ForStream" - }, - "VIDEO_CODEC_H265_FOR_STREAM": { - "windows": "VIDEO_CODEC_H265_FOR_STREAM", - "android": "H265", - "ios": "AgoraVideoCodecTypeH265ForStream", - "macos": "AgoraVideoCodecTypeH265ForStream" - }, "VIDEO_CONTENT_HINT": { "windows": "VIDEO_CONTENT_HINT", "ios": "AgoraVideoContentHint" }, - "CONTENT_HINT_NONE": { - "windows": "CONTENT_HINT_NONE", - "android": "SCREEN_CAPTURE_CONTENT_HINT_NONE", - "ios": "AgoraVideoContentHintNone" - }, - "CONTENT_HINT_MOTION": { - "windows": "CONTENT_HINT_MOTION", - "android": "SCREEN_CAPTURE_CONTENT_HINT_MOTION", - "ios": "AgoraVideoContentHintMotion" - }, - "CONTENT_HINT_DETAILS": { - "windows": "CONTENT_HINT_DETAILS", - "android": "SCREEN_CAPTURE_CONTENT_HINT_DETAILS", - "ios": "AgoraVideoContentHintDetails" - }, "VIDEO_FRAME_PROCESS_MODE": { "windows": "VIDEO_FRAME_PROCESS_MODE", - "android": "VIDEO_FRAME_PROCESS_MODE", "ios": "AgoraVideoFrameProcessMode", "macos": "AgoraVideoFrameProcessMode" }, - "PROCESS_MODE_READ_ONLY": { - "windows": "PROCESS_MODE_READ_ONLY", - "android": "PROCESS_MODE_READ_ONLY", - "ios": "AgoraVideoFrameProcessModeReadOnly", - "macos": "AgoraVideoFrameProcessModeReadOnly" - }, - "PROCESS_MODE_READ_WRITE": { - "windows": "PROCESS_MODE_READ_WRITE", - "android": "PROCESS_MODE_READ_WRITE", - "ios": "AgoraVideoFrameProcessModeReadWrite", - "macos": "AgoraVideoFrameProcessModeReadWrite" - }, "VIDEO_FRAME_TYPE": { "windows": "VIDEO_FRAME_TYPE", "ios": "AgoraVideoFrameType", "macos": "AgoraVideoFrameType" }, - "VIDEO_FRAME_TYPE_BLANK_FRAME": { - "windows": "VIDEO_FRAME_TYPE_BLANK_FRAME", - "android": "VIDEO_FRAME_TYPE_BLANK_FRAME", - "ios": "AgoraVideoFrameTypeBlankFrame", - "macos": "AgoraVideoFrameTypeBlankFrame" - }, - "VIDEO_FRAME_TYPE_KEY_FRAME": { - "windows": "VIDEO_FRAME_TYPE_KEY_FRAME", - "android": "VIDEO_FRAME_TYPE_KEY_FRAME", - "ios": "AgoraVideoFrameTypeKeyFrame", - "macos": "AgoraVideoFrameTypeKeyFrame" - }, - "VIDEO_FRAME_TYPE_DELTA_FRAME": { - "windows": "VIDEO_FRAME_TYPE_DELTA_FRAME", - "android": "VIDEO_FRAME_TYPE_DELTA_FRAME", - "ios": "AgoraVideoFrameTypeDeltaFrame", - "macos": "AgoraVideoFrameTypeDeltaFrame" - }, - "VIDEO_FRAME_TYPE_B_FRAME": { - "windows": "VIDEO_FRAME_TYPE_B_FRAME", - "android": "VIDEO_FRAME_TYPE_B_FRAME", - "ios": "AgoraVideoFrameTypeBFrame", - "macos": "AgoraVideoFrameTypeBFrame" - }, - "VIDEO_FRAME_TYPE_DROPPABLE_FRAME": { - "windows": "VIDEO_FRAME_TYPE_DROPPABLE_FRAME", - "android": "VIDEO_FRAME_TYPE_DROPPABLE_FRAME", - "ios": "AgoraVideoFrameTypeDroppableFrame", - "macos": "AgoraVideoFrameTypeDroppableFrame" - }, - "VIDEO_FRAME_TYPE_UNKNOWN": { - "windows": "VIDEO_FRAME_TYPE_UNKNOW", - "android": "VIDEO_FRAME_TYPE_UNKNOW", - "ios": "AgoraVideoFrameTypeUnknow", - "macos": "AgoraVideoFrameTypeUnknow" - }, "VIDEO_MIRROR_MODE_TYPE": { "windows": "VIDEO_MIRROR_MODE_TYPE", "ios": "AgoraVideoMirrorMode", "macos": "AgoraVideoMirrorMode" }, - "VIDEO_MIRROR_MODE_AUTO": { - "windows": "VIDEO_MIRROR_MODE_AUTO", - "android": "VIDEO_MIRROR_MODE_AUTO", - "ios": "AgoraVideoMirrorModeAuto", - "macos": "AgoraVideoMirrorModeAuto" - }, - "VIDEO_MIRROR_MODE_ENABLED": { - "windows": "VIDEO_MIRROR_MODE_ENABLED", - "android": "VIDEO_MIRROR_MODE_ENABLED", - "ios": "AgoraVideoMirrorModeEnabled", - "macos": "AgoraVideoMirrorModeEnabled" - }, - "VIDEO_MIRROR_MODE_DISABLED": { - "windows": "VIDEO_MIRROR_MODE_DISABLED", - "android": "VIDEO_MIRROR_MODE_DISABLED", - "ios": "AgoraVideoMirrorModeDisabled", - "macos": "AgoraVideoMirrorModeDisabled" - }, "VIDEO_MODULE_POSITION": { "windows": "VIDEO_MODULE_POSITION", "android": "VideoModulePosition", "ios": "AgoraVideoModulePosition", "macos": "AgoraVideoModulePosition" }, - "POSITION_POST_CAPTURER": { - "windows": "POSITION_POST_CAPTURER", - "android": "VIDEO_MODULE_POSITION_POST_CAPTURER", - "ios": "AgoraVideoModulePositionPostCapture", - "macos": "AgoraVideoModulePositionPostCapture" - }, - "POSITION_PRE_RENDERER": { - "windows": "POSITION_PRE_RENDERER", - "android": "VIDEO_MODULE_POSITION_PRE_RENDERER", - "ios": "AgoraVideoModulePositionPreRenderer", - "macos": "AgoraVideoModulePositionPreRenderer" - }, - "POSITION_PRE_ENCODER": { - "windows": "POSITION_PRE_ENCODER", - "android": "VIDEO_MODULE_POSITION_PRE_ENCODER", - "ios": "AgoraVideoModulePositionPreEncoder", - "macos": "AgoraVideoModulePositionPreEncoder" - }, - "POSITION_POST_CAPTURER_ORIGIN": { - "windows": "POSITION_POST_CAPTURER_ORIGIN", - "android": "VIDEO_MODULE_POSITION_POST_CAPTURER_ORIGIN", - "ios": "AgoraVideoModulePositionPostCaptureOrigin", - "macos": "AgoraVideoModulePositionPostCaptureOrigin" - }, "VIDEO_ORIENTATION": { "windows": "VIDEO_ORIENTATION", - "ios": "AgoraVideoRotation", - "macos": "AgoraVideoRotation" - }, - "VIDEO_ORIENTATION_0": { - "windows": "VIDEO_ORIENTATION_0", - "android": "VIDEO_ORIENTATION_0", - "ios": "AgoraVideoRotationNone", - "macos": "AgoraVideoRotationNone" - }, - "VIDEO_ORIENTATION_90": { - "windows": "VIDEO_ORIENTATION_90", - "android": "VIDEO_ORIENTATION_90", - "ios": "AgoraVideoRotation90", - "macos": "AgoraVideoRotation90" - }, - "VIDEO_ORIENTATION_180": { - "windows": "VIDEO_ORIENTATION_180", - "android": "VIDEO_ORIENTATION_180", - "ios": "AgoraVideoRotation180", - "macos": "AgoraVideoRotation180" - }, - "VIDEO_ORIENTATION_270": { - "windows": "VIDEO_ORIENTATION_270", - "android": "VIDEO_ORIENTATION_270", - "ios": "AgoraVideoRotation270", - "macos": "AgoraVideoRotation270" + "ios": "AgoraVideoFrameOrientation", + "macos": "AgoraVideoFrameOrientation" }, "VIDEO_PIXEL_FORMAT": { "windows": "VIDEO_PIXEL_FORMAT", "ios": "AgoraVideoFormat", "macos": "AgoraVideoFormat" }, - "VIDEO_PIXEL_DEFAULT": { - "windows": "VIDEO_PIXEL_DEFAULT", - "android": "VIDEO_PIXEL_DEFAULT", - "ios": "AgoraVideoFormatDefault", - "macos": "AgoraVideoFormatDefault" - }, - "VIDEO_PIXEL_I420": { - "windows": "VIDEO_PIXEL_I420", - "android": "VIDEO_PIXEL_I420", - "ios": "AgoraVideoPixelFormatI420", - "macos": "AgoraVideoPixelFormatI420" - }, - "VIDEO_PIXEL_BGRA": { - "windows": "VIDEO_PIXEL_BGRA", - "android": "VIDEO_PIXEL_BGRA", - "ios": "AgoraVideoPixelFormatBGRA", - "macos": "AgoraVideoPixelFormatBGRA" - }, - "VIDEO_PIXEL_NV21": { - "windows": "VIDEO_PIXEL_NV21", - "android": "VIDEO_PIXEL_NV21", - "ios": "AgoraVideoFormatNV21", - "macos": "AgoraVideoFormatNV21" - }, - "VIDEO_PIXEL_RGBA": { - "windows": "VIDEO_PIXEL_RGBA", - "android": "VIDEO_PIXEL_RGBA", - "ios": "AgoraVideoFormatRGBA", - "macos": "AgoraVideoFormatRGBA" - }, - "VIDEO_PIXEL_IMC2": { - "windows": "VIDEO_PIXEL_IMC2", - "android": "VIDEO_PIXEL_IMC2", - "ios": "VIDEO_PIXEL_IMC2", - "macos": "VIDEO_PIXEL_IMC2" - }, - "VIDEO_PIXEL_ARGB": { - "windows": "VIDEO_PIXEL_ARGB", - "android": "VIDEO_PIXEL_ARGB", - "ios": "VIDEO_PIXEL_ARGB", - "macos": "VIDEO_PIXEL_ARGB" - }, - "VIDEO_PIXEL_NV12": { - "windows": "VIDEO_PIXEL_NV12", - "android": "VIDEO_PIXEL_NV12", - "ios": "AgoraVideoFormatNV12", - "macos": "AgoraVideoFormatNV12" - }, - "VIDEO_PIXEL_I422": { - "windows": "VIDEO_PIXEL_I422", - "android": "VIDEO_PIXEL_I422", - "ios": "AgoraVideoFormatI422", - "macos": "AgoraVideoFormatI422" - }, - "VIDEO_TEXTURE_ID3D11TEXTURE2D": { - "windows": "VIDEO_TEXTURE_ID3D11TEXTURE2D" - }, - "VIDEO_TEXTURE_2D": { - "windows": "VIDEO_TEXTURE_2D", - "android": "VIDEO_TEXTURE_2D" - }, - "VIDEO_TEXTURE_OES": { - "windows": "VIDEO_TEXTURE_OES", - "android": "VIDEO_TEXTURE_OES" - }, "VIDEO_VIEW_SETUP_MODE": { "windows": "VIDEO_VIEW_SETUP_MODE", "ios": "AgoraVideoViewSetupMode", "macos": "AgoraVideoViewSetupMode" }, - "VIDEO_VIEW_SETUP_REPLACE": { - "windows": "VIDEO_VIEW_SETUP_REPLACE", - "android": "VIEW_SETUP_MODE_REPLACE", - "ios": "AgoraVideoViewSetupReplace", - "macos": "AgoraVideoViewSetupReplace" - }, - "VIDEO_VIEW_SETUP_ADD": { - "windows": "VIDEO_VIEW_SETUP_ADD", - "android": "VIEW_SETUP_MODE_ADD", - "ios": "AgoraVideoViewSetupAdd", - "macos": "AgoraVideoViewSetupAdd" - }, - "VIDEO_VIEW_SETUP_REMOVE": { - "windows": "VIDEO_VIEW_SETUP_REMOVE", - "android": "VIEW_SETUP_MODE_REMOVE", - "ios": "AgoraVideoViewSetupRemove", - "macos": "AgoraVideoViewSetupRemove" - }, "VIDEO_TRANSCODER_ERROR": { "windows": "VIDEO_TRANSCODER_ERROR", "ios": "AgoraVideoTranscoderError", "macos": "AgoraVideoTranscoderError" }, - "VT_ERR_OK": { - "windows": "VT_ERR_OK", - "macos": "AgoraVideoTranscoderErrorOK" - }, - "VT_ERR_VIDEO_SOURCE_NOT_READY": { - "windows": "VT_ERR_VIDEO_SOURCE_NOT_READY", - "ios": "AgoraVideoTranscoderErrorVideoSourceNotReady", - "macos": "AgoraVideoTranscoderErrorVideoSourceNotReady" - }, - "VT_ERR_INVALID_VIDEO_SOURCE_TYPE": { - "windows": "VT_ERR_INVALID_VIDEO_SOURCE_TYPE", - "ios": "AgoraVideoTranscoderErrorInvalidVideoSourceType", - "macos": "AgoraVideoTranscoderErrorInvalidVideoSourceType" - }, - "VT_ERR_INVALID_IMAGE_PATH": { - "windows": "VT_ERR_INVALID_IMAGE_PATH", - "ios": "AgoraVideoTranscoderErrorInvalidImagePath", - "macos": "AgoraVideoTranscoderErrorInvalidImagePath" - }, - "VT_ERR_UNSUPPORT_IMAGE_FORMAT": { - "windows": "VT_ERR_UNSUPPORT_IMAGE_FORMAT", - "ios": "AgoraVideoTranscoderErrorUnsupportImageFormat", - "macos": "AgoraVideoTranscoderErrorUnsupportImageFormat" - }, - "VT_ERR_INVALID_LAYOUT": { - "windows": "VT_ERR_INVALID_LAYOUT", - "ios": "AgoraVideoTranscoderErrorInvalidLayout", - "macos": "AgoraVideoTranscoderErrorInvalidLayout" - }, - "VT_ERR_INTERNAL": { - "windows": "VT_ERR_INTERNAL", - "ios": "AgoraVideoTranscoderErrorInternal", - "macos": "AgoraVideoTranscoderErrorInternal" - }, "VOICE_AI_TUNER_TYPE": { "windows": "VOICE_AI_TUNER_TYPE", "android": "VOICE_AI_TUNER_TYPE", "ios": "AgoraVoiceAITunerType", "macos": "AgoraVoiceAITunerType" }, - "VOICE_AI_TUNER_MATURE_MALE": { - "windows": "VOICE_AI_TUNER_MATURE_MALE", - "android": "VOICE_AI_TUNER_MATURE_MALE", - "ios": "AgoraVoiceAITunerMatureMale", - "macos": "AgoraVoiceAITunerMatureMale" - }, - "VOICE_AI_TUNER_FRESH_MALE": { - "windows": "VOICE_AI_TUNER_FRESH_MALE", - "android": "VOICE_AI_TUNER_FRESH_MALE", - "ios": "AgoraVoiceAITunerFreshMale", - "macos": "AgoraVoiceAITunerFreshMale" - }, - "VOICE_AI_TUNER_ELEGANT_FEMALE": { - "windows": "VOICE_AI_TUNER_ELEGANT_FEMALE", - "android": "VOICE_AI_TUNER_ELEGANT_FEMALE", - "ios": "AgoraVoiceAITunerElegantFemale", - "macos": "AgoraVoiceAITunerElegantFemale" - }, - "VOICE_AI_TUNER_SWEET_FEMALE": { - "windows": "VOICE_AI_TUNER_SWEET_FEMALE", - "android": "VOICE_AI_TUNER_SWEET_FEMALE", - "ios": "AgoraVoiceAITunerSweetFemale", - "macos": "AgoraVoiceAITunerSweetFemale" - }, - "VOICE_AI_TUNER_WARM_MALE_SINGING": { - "windows": "VOICE_AI_TUNER_WARM_MALE_SINGING", - "android": "VOICE_AI_TUNER_WARM_MALE_SINGING", - "ios": "AgoraVoiceAITunerWarmMaleSinging", - "macos": "AgoraVoiceAITunerWarmMaleSinging" - }, - "VOICE_AI_TUNER_GENTLE_FEMALE_SINGING": { - "windows": "VOICE_AI_TUNER_GENTLE_FEMALE_SINGING", - "android": "VOICE_AI_TUNER_GENTLE_FEMALE_SINGING", - "ios": "AgoraVoiceAITunerGentleFemaleSinging", - "macos": "AgoraVoiceAITunerGentleFemaleSinging" - }, - "VOICE_AI_TUNER_HUSKY_MALE_SINGING": { - "windows": "VOICE_AI_TUNER_HUSKY_MALE_SINGING", - "android": "VOICE_AI_TUNER_HUSKY_MALE_SINGING", - "ios": "AgoraVoiceAITunerHuskyMaleSinging", - "macos": "AgoraVoiceAITunerHuskyMaleSinging" - }, - "VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING": { - "windows": "VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING", - "android": "VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING", - "ios": "AgoraVoiceAITunerWarmElegantFemaleSinging", - "macos": "AgoraVoiceAITunerWarmElegantFemaleSinging" - }, - "VOICE_AI_TUNER_POWERFUL_MALE_SINGING": { - "windows": "VOICE_AI_TUNER_POWERFUL_MALE_SINGING", - "android": "VOICE_AI_TUNER_POWERFUL_MALE_SINGING", - "ios": "AgoraVoiceAITunerPowerfulMaleSinging", - "macos": "AgoraVoiceAITunerPowerfulMaleSinging" - }, - "VOICE_AI_TUNER_DREAMY_FEMALE_SINGING": { - "windows": "VOICE_AI_TUNER_DREAMY_FEMALE_SINGING", - "android": "VOICE_AI_TUNER_DREAMY_FEMALE_SINGING", - "ios": "AgoraVoiceAITunerDreamyFemaleSinging", - "macos": "AgoraVoiceAITunerDreamyFemaleSinging" - }, "VOICE_BEAUTIFIER_PRESET": { "windows": "VOICE_BEAUTIFIER_PRESET", "ios": "AgoraVoiceBeautifierPreset", "macos": "AgoraVoiceBeautifierPreset" }, - "VOICE_BEAUTIFIER_OFF": { - "windows": "VOICE_BEAUTIFIER_OFF", - "android": "VOICE_BEAUTIFIER_OFF", - "ios": "AgoraVoiceBeautifierPresetOff", - "macos": "AgoraVoiceBeautifierPresetOff" - }, - "CHAT_BEAUTIFIER_MAGNETIC": { - "windows": "CHAT_BEAUTIFIER_MAGNETIC", - "android": "CHAT_BEAUTIFIER_MAGNETIC", - "ios": "AgoraVoiceBeautifierPresetChatBeautifierMagnetic", - "macos": "AgoraVoiceBeautifierPresetChatBeautifierMagnetic" - }, - "CHAT_BEAUTIFIER_FRESH": { - "windows": "CHAT_BEAUTIFIER_FRESH", - "android": "CHAT_BEAUTIFIER_FRESH", - "ios": "AgoraVoiceBeautifierPresetChatBeautifierFresh", - "macos": "AgoraVoiceBeautifierPresetChatBeautifierFresh" - }, - "CHAT_BEAUTIFIER_VITALITY": { - "windows": "CHAT_BEAUTIFIER_VITALITY", - "android": "CHAT_BEAUTIFIER_VITALITY", - "ios": "AgoraVoiceBeautifierPresetChatBeautifierVitality", - "macos": "AgoraVoiceBeautifierPresetChatBeautifierVitality" - }, - "SINGING_BEAUTIFIER": { - "windows": "SINGING_BEAUTIFIER", - "android": "SINGING_BEAUTIFIER", - "ios": "AgoraVoiceBeautifierPresetSingingBeautifier", - "macos": "AgoraVoiceBeautifierPresetSingingBeautifier" - }, - "TIMBRE_TRANSFORMATION_VIGOROUS": { - "windows": "TIMBRE_TRANSFORMATION_VIGOROUS", - "android": "TIMBRE_TRANSFORMATION_VIGOROUS", - "ios": "AgoraVoiceBeautifierTimbreTransformationVigorous", - "macos": "AgoraVoiceBeautifierTimbreTransformationVigorous" - }, - "TIMBRE_TRANSFORMATION_DEEP": { - "windows": "TIMBRE_TRANSFORMATION_DEEP", - "android": "TIMBRE_TRANSFORMATION_DEEP", - "ios": "AgoraVoiceBeautifierTimbreTransformationDeep", - "macos": "AgoraVoiceBeautifierTimbreTransformationDeep" - }, - "TIMBRE_TRANSFORMATION_MELLOW": { - "windows": "TIMBRE_TRANSFORMATION_MELLOW", - "android": "TIMBRE_TRANSFORMATION_MELLOW", - "ios": "AgoraVoiceBeautifierTimbreTransformationMellow", - "macos": "AgoraVoiceBeautifierTimbreTransformationMellow" - }, - "TIMBRE_TRANSFORMATION_FALSETTO": { - "windows": "TIMBRE_TRANSFORMATION_FALSETTO", - "android": "TIMBRE_TRANSFORMATION_FALSETTO", - "ios": "AgoraVoiceBeautifierTimbreTransformationFalsetto", - "macos": "AgoraVoiceBeautifierTimbreTransformationFalsetto" - }, - "TIMBRE_TRANSFORMATION_FULL": { - "windows": "TIMBRE_TRANSFORMATION_FULL", - "android": "TIMBRE_TRANSFORMATION_FULL", - "ios": "AgoraVoiceBeautifierTimbreTransformationFull", - "macos": "AgoraVoiceBeautifierTimbreTransformationFull" - }, - "TIMBRE_TRANSFORMATION_CLEAR": { - "windows": "TIMBRE_TRANSFORMATION_CLEAR", - "android": "TIMBRE_TRANSFORMATION_CLEAR", - "ios": "AgoraVoiceBeautifierTimbreTransformationClear", - "macos": "AgoraVoiceBeautifierTimbreTransformationClear" - }, - "TIMBRE_TRANSFORMATION_RESOUNDING": { - "windows": "TIMBRE_TRANSFORMATION_RESOUNDING", - "android": "TIMBRE_TRANSFORMATION_RESOUNDING", - "ios": "AgoraVoiceBeautifierTimbreTransformationResounding", - "macos": "AgoraVoiceBeautifierTimbreTransformationResounding" - }, - "TIMBRE_TRANSFORMATION_RINGING": { - "windows": "TIMBRE_TRANSFORMATION_RINGING", - "android": "TIMBRE_TRANSFORMATION_RINGING", - "ios": "AgoraVoiceBeautifierTimbreTransformatRinging", - "macos": "AgoraVoiceBeautifierTimbreTransformatRinging" - }, - "ULTRA_HIGH_QUALITY_VOICE": { - "windows": "ULTRA_HIGH_QUALITY_VOICE", - "android": "ULTRA_HIGH_QUALITY_VOICE", - "ios": "AgoraVoiceBeautifierUltraHighQuality", - "macos": "AgoraVoiceBeautifierUltraHighQuality" - }, - "VOICE_CHANGER_PRESET": { - "windows": "VOICE_CHANGER_PRESET", - "ios": "AgoraAudioVoiceChanger", - "macos": "AgoraAudioVoiceChanger" - }, - "VOICE_CHANGER_OFF": { - "windows": "VOICE_CHANGER_OFF", - "android": "VOICE_CHANGER_OFF", - "ios": "AgoraAudioVoiceChangerOff", - "macos": "AgoraAudioVoiceChangerOff" - }, - "VOICE_CHANGER_OLDMAN": { - "windows": "VOICE_CHANGER_OLDMAN", - "android": "VOICE_CHANGER_OLDMAN", - "ios": "AgoraAudioVoiceChangerOldMan", - "macos": "AgoraAudioVoiceChangerOldMan" - }, - "VOICE_CHANGER_BABYBOY": { - "windows": "VOICE_CHANGER_BABYBOY", - "android": "VOICE_CHANGER_BABYBOY", - "ios": "AgoraAudioVoiceChangerBabyBoy", - "macos": "AgoraAudioVoiceChangerBabyBoy" - }, - "VOICE_CHANGER_BABYGIRL": { - "windows": "VOICE_CHANGER_BABYGIRL", - "android": "VOICE_CHANGER_BABYGIRL", - "ios": "AgoraAudioVoiceChangerBabyGirl", - "macos": "AgoraAudioVoiceChangerBabyGirl" - }, - "VOICE_CHANGER_ZHUBAJIE": { - "windows": "VOICE_CHANGER_ZHUBAJIE", - "android": "VOICE_CHANGER_ZHUBAJIE", - "ios": "AgoraAudioVoiceChangerZhuBaJie", - "macos": "AgoraAudioVoiceChangerZhuBaJie" - }, - "VOICE_CHANGER_ETHEREAL": { - "windows": "VOICE_CHANGER_ETHEREAL", - "android": "VOICE_CHANGER_ETHEREAL", - "ios": "AgoraAudioVoiceChangerEthereal", - "macos": "AgoraAudioVoiceChangerEthereal" - }, - "VOICE_CHANGER_HULK": { - "windows": "VOICE_CHANGER_HULK", - "android": "VOICE_CHANGER_HULK", - "ios": "AgoraAudioVoiceChangerHulk", - "macos": "AgoraAudioVoiceChangerHulk" - }, - "VOICE_BEAUTY_VIGOROUS": { - "windows": "VOICE_BEAUTY_VIGOROUS", - "android": "VOICE_BEAUTY_VIGOROUS", - "ios": "AgoraAudioVoiceBeautyVigorous", - "macos": "AgoraAudioVoiceBeautyVigorous" - }, - "VOICE_BEAUTY_DEEP": { - "windows": "VOICE_BEAUTY_DEEP", - "android": "VOICE_BEAUTY_DEEP", - "ios": "AgoraAudioVoiceBeautyDeep", - "macos": "AgoraAudioVoiceBeautyDeep" - }, - "VOICE_BEAUTY_MELLOW": { - "windows": "VOICE_BEAUTY_MELLOW", - "android": "VOICE_BEAUTY_MELLOW", - "ios": "AgoraAudioVoiceBeautyMellow", - "macos": "AgoraAudioVoiceBeautyMellow" - }, - "VOICE_BEAUTY_FALSETTO": { - "windows": "VOICE_BEAUTY_FALSETTO", - "android": "VOICE_BEAUTY_FALSETTO", - "ios": "AgoraAudioVoiceBeautyFalsetto", - "macos": "AgoraAudioVoiceBeautyFalsetto" - }, - "VOICE_BEAUTY_FULL": { - "windows": "VOICE_BEAUTY_FULL", - "android": "VOICE_BEAUTY_FULL", - "ios": "AgoraAudioVoiceBeautyFull", - "macos": "AgoraAudioVoiceBeautyFull" - }, - "VOICE_BEAUTY_CLEAR": { - "windows": "VOICE_BEAUTY_CLEAR", - "android": "VOICE_BEAUTY_CLEAR", - "ios": "AgoraAudioVoiceBeautyClear", - "macos": "AgoraAudioVoiceBeautyClear" - }, - "VOICE_BEAUTY_RESOUNDING": { - "windows": "VOICE_BEAUTY_RESOUNDING", - "android": "VOICE_BEAUTY_RESOUNDING", - "ios": "AgoraAudioVoiceBeautyResounding", - "macos": "AgoraAudioVoiceBeautyResounding" - }, - "VOICE_BEAUTY_RINGING": { - "windows": "VOICE_BEAUTY_RINGING", - "android": "VOICE_BEAUTY_RINGING", - "ios": "AgoraAudioVoiceBeautyRinging", - "macos": "AgoraAudioVoiceBeautyRinging" - }, - "VOICE_BEAUTY_SPACIAL": { - "windows": "VOICE_BEAUTY_SPACIAL", - "android": "VOICE_BEAUTY_SPACIAL", - "ios": "VAgoraAudioVoiceBeautySpacial", - "macos": "VAgoraAudioVoiceBeautySpacial" - }, - "GENERAL_BEAUTY_VOICE_MALE_MAGNETIC": { - "windows": "GENERAL_BEAUTY_VOICE_MALE_MAGNETIC", - "android": "GENERAL_BEAUTY_VOICE_MALE_MAGNETIC", - "ios": "AgoraAudioGeneralBeautyVoiceMaleMagnetic", - "macos": "AgoraAudioGeneralBeautyVoiceMaleMagnetic" - }, - "GENERAL_BEAUTY_VOICE_FEMALE_FRESH": { - "windows": "GENERAL_BEAUTY_VOICE_FEMALE_FRESH", - "android": "GENERAL_BEAUTY_VOICE_FEMALE_FRESH", - "ios": "AgoraAudioGeneralBeautyVoiceFemaleFresh", - "macos": "AgoraAudioGeneralBeautyVoiceFemaleFresh" - }, - "GENERAL_BEAUTY_VOICE_FEMALE_VITALITY": { - "windows": "GENERAL_BEAUTY_VOICE_FEMALE_VITALITY", - "android": "GENERAL_BEAUTY_VOICE_FEMALE_VITALITY", - "ios": "AgoraAudioGeneralBeautyVoiceFemaleVitality", - "macos": "AgoraAudioGeneralBeautyVoiceFemaleVitality" - }, "INTERFACE_ID_TYPE": { "windows": "INTERFACE_ID_TYPE" }, - "AGORA_IID_AUDIO_DEVICE_MANAGER": { - "windows": "AGORA_IID_AUDIO_DEVICE_MANAGER" - }, - "AGORA_IID_VIDEO_DEVICE_MANAGER": { - "windows": "AGORA_IID_VIDEO_DEVICE_MANAGER" - }, - "AGORA_IID_PARAMETER_ENGINE": { - "windows": "AGORA_IID_PARAMETER_ENGINE" - }, - "AGORA_IID_MEDIA_ENGINE": { - "windows": "AGORA_IID_MEDIA_ENGINE" - }, - "AGORA_IID_SIGNALING_ENGINE": { - "windows": "AGORA_IID_SIGNALING_ENGINE" - }, - "AGORA_IID_LOCAL_SPATIAL_AUDIO": { - "windows": "AGORA_IID_LOCAL_SPATIAL_AUDIO" - }, - "AGORA_IID_MUSIC_CONTENT_CENTER": { - "windows": "AGORA_IID_MUSIC_CONTENT_CENTER" - }, "VOICE_CONVERSION_PRESET": { "windows": "VOICE_CONVERSION_PRESET", "ios": "AgoraVoiceConversionPreset", "macos": "AgoraVoiceConversionPreset" }, - "VOICE_CONVERSION_OFF": { - "windows": "VOICE_CONVERSION_OFF", - "android": "VOICE_CONVERSION_OFF", - "ios": "AgoraVoiceConversionPresetOff", - "macos": "AgoraVoiceConversionPresetOff" - }, - "VOICE_CHANGER_NEUTRAL": { - "windows": "VOICE_CHANGER_NEUTRAL", - "android": "VOICE_CHANGER_NEUTRAL", - "ios": "AgoraVoiceConversionPresetNeutral", - "macos": "AgoraVoiceConversionPresetNeutral" - }, - "VOICE_CHANGER_SWEET": { - "windows": "VOICE_CHANGER_SWEET", - "android": "VOICE_CHANGER_SWEET", - "ios": "AgoraVoiceConversionPresetSweet", - "macos": "AgoraVoiceConversionPresetSweet" - }, - "VOICE_CHANGER_SOLID": { - "windows": "VOICE_CHANGER_SOLID", - "android": "VOICE_CHANGER_SOLID", - "ios": "AgoraVoiceConversionPresetChangerSolid", - "macos": "AgoraVoiceConversionPresetChangerSolid" - }, - "VOICE_CHANGER_BASS": { - "windows": "VOICE_CHANGER_BASS", - "android": "VOICE_CHANGER_BASS", - "ios": "AgoraVoiceConversionPresetChangerBass", - "macos": "AgoraVoiceConversionPresetChangerBass" - }, "WATERMARK_SOURCE_TYPE": { "windows": "WATERMARK_SOURCE_TYPE", "ios": "WatermarkType", "macos": "WatermarkType" }, - "IMAGE": { - "windows": "IMAGE", - "ios": "WatermarkTypeImage", - "macos": "WatermarkTypeImage" - }, - "BUFFER": { - "windows": "BUFFER", - "ios": "WatermarkTypeBuffer", - "macos": "WatermarkTypeBuffer" - }, - "LITERAL": { - "windows": "LITERAL" - }, - "TIMESTAMPS": { - "windows": "TIMESTAMPS" - }, "MultipathMode": { "windows": "MultipathMode", "android": "MultipathMode", "ios": "AgoraMultipathMode", "macos": "AgoraMultipathMode" }, - "Duplicate": { - "windows": "Duplicate", - "android": "MULTIPATH_MODE_DUPLICATE", - "ios": "AgoraMultipathModeDuplicate", - "macos": "AgoraMultipathModeDuplicate" - }, - "Dynamic": { - "windows": "Dynamic", - "android": "MULTIPATH_MODE_DYNAMIC", - "ios": "AgoraMultipathModeDynamic", - "macos": "AgoraMultipathModeDynamic" - }, "MultipathType": { "windows": "MultipathType", "android": "MultipathType", "ios": "AgoraMultipathType", "macos": "AgoraMultipathType" }, - "LAN": { - "windows": "LAN", - "android": "MULTIPATH_TYPE_LAN", - "ios": "AgoraMultipathTypeLAN", - "macos": "AgoraMultipathTypeLAN" - }, - "WIFI": { - "windows": "WIFI", - "android": "MULTIPATH_TYPE_WIFI", - "ios": "AgoraMultipathTypeWIFI", - "macos": "AgoraMultipathTypeWIFI" - }, - "Mobile": { - "windows": "Mobile", - "android": "MULTIPATH_TYPE_MOBILE", - "ios": "AgoraMultipathTypeMobile", - "macos": "AgoraMultipathTypeMobile" - }, - "Unknown": { - "windows": "Unknown", - "android": "MULTIPATH_TYPE_UNKNOWN", - "ios": "AgoraMultipathTypeUnknown", - "macos": "AgoraMultipathTypeUnknown" - }, "SCREEN_COLOR_TYPE": { "windows": "SCREEN_COLOR_TYPE", "ios": "ScreenColorType", "macos": "ScreenColorType" }, - "SCREEN_COLOR_AUTO": { - "windows": "SCREEN_COLOR_AUTO", - "android": "SCREEN_COLOR_AUTO", - "ios": "ScreenColorAuto", - "macos": "ScreenColorAuto" - }, - "SCREEN_COLOR_GREEN": { - "windows": "SCREEN_COLOR_GREEN", - "android": "SCREEN_COLOR_GREEN", - "ios": "ScreenColorGreen", - "macos": "ScreenColorGreen" - }, - "SCREEN_COLOR_BLUE": { - "windows": "SCREEN_COLOR_BLUE", - "android": "SCREEN_COLOR_BLUE", - "ios": "ScreenColorBlue", - "macos": "ScreenColorBlue" - }, "RENEW_TOKEN_ERROR_CODE": { "windows": "RENEW_TOKEN_ERROR_CODE", "android": "RenewTokenErrorCode", "ios": "AgoraRenewTokenErrorCode", "macos": "AgoraRenewTokenErrorCode" }, - "RENEW_TOKEN_SUCCESS": { - "windows": "RENEW_TOKEN_SUCCESS", - "android": "RENEW_TOKEN_SUCCESS", - "ios": "AgoraRenewTokenSuccess", - "macos": "AgoraRenewTokenSuccess" - }, - "RENEW_TOKEN_FAILURE": { - "windows": "RENEW_TOKEN_FAILURE", - "android": "RENEW_TOKEN_FAILURE", - "ios": "AgoraRenewTokenFailure", - "macos": "AgoraRenewTokenFailure" - }, - "RENEW_TOKEN_TOKEN_EXPIRED": { - "windows": "RENEW_TOKEN_TOKEN_EXPIRED", - "android": "RENEW_TOKEN_TOKEN_EXPIRED" - }, - "RENEW_TOKEN_INVALID_TOKEN": { - "windows": "RENEW_TOKEN_INVALID_TOKEN", - "android": "RENEW_TOKEN_INVALID_TOKEN", - "ios": "AgoraRenewTokenInvalidToken", - "macos": "AgoraRenewTokenInvalidToken" - }, - "RENEW_TOKEN_INVALID_CHANNEL_NAME": { - "windows": "RENEW_TOKEN_INVALID_CHANNEL_NAME", - "android": "RENEW_TOKEN_INVALID_CHANNEL_NAME", - "ios": "AgoraRenewTokenInvalidChannelName", - "macos": "AgoraRenewTokenInvalidChannelName" - }, - "RENEW_TOKEN_INCONSISTENT_APPID": { - "windows": "RENEW_TOKEN_INCONSISTENT_APPID", - "android": "RENEW_TOKEN_INCONSISTENT_APPID", - "ios": "AgoraRenewTokenInconsistentAppId", - "macos": "AgoraRenewTokenInconsistentAppId" - }, - "RENEW_TOKEN_CANCELED_BY_NEW_REQUEST": { - "windows": "RENEW_TOKEN_CANCELED_BY_NEW_REQUEST", - "android": "RENEW_TOKEN_CANCELED_BY_NEW_REQUEST", - "ios": "AgoraRenewTokenCanceledByNewRequest", - "macos": "AgoraRenewTokenCanceledByNewRequest" - }, "VIDEO_EFFECT_NODE_ID": { "windows": "VIDEO_EFFECT_NODE_ID", "android": "VIDEO_EFFECT_NODE_ID", "ios": "AgoraVideoEffectNodeId", "macos": "AgoraVideoEffectNodeId" }, - "BEAUTY": { - "windows": "BEAUTY", - "android": "BEAUTY", - "ios": "AgoraVideoEffectNodeBeauty", - "macos": "AgoraVideoEffectNodeBeauty" - }, - "STYLE_MAKEUP": { - "windows": "STYLE_MAKEUP", - "android": "STYLE_MAKEUP", - "ios": "AgoraVideoEffectNodeStyleMakeup", - "macos": "AgoraVideoEffectNodeStyleMakeup" - }, - "FILTER": { - "windows": "FILTER", - "android": "FILTER", - "ios": "AgoraVideoEffectNodeFilter", - "macos": "AgoraVideoEffectNodeFilter" - }, "VIDEO_EFFECT_ACTION": { "windows": "VIDEO_EFFECT_ACTION", "android": "VIDEO_EFFECT_ACTION", "ios": "AgoraVideoEffectAction", "macos": "AgoraVideoEffectAction" }, - "SAVE": { - "windows": "SAVE", - "android": "SAVE", - "ios": "AgoraVideoEffectActionSave", - "macos": "AgoraVideoEffectActionSave" - }, - "RESET": { - "windows": "RESET", - "android": "RESET", - "ios": "AgoraVideoEffectActionReset", - "macos": "AgoraVideoEffectActionReset" - }, - "StreamLayerIndex": { - "windows": "StreamLayerIndex", - "android": "StreamLayerIndex", - "ios": "AgoraStreamLayerIndex", - "macos": "AgoraStreamLayerIndex" - }, - "STREAM_LAYER_1": { - "windows": "STREAM_LAYER_1", - "android": "STREAM_LAYER_1", - "ios": "AgoraStreamLayer1", - "macos": "AgoraStreamLayer1" - }, - "STREAM_LAYER_2": { - "windows": "STREAM_LAYER_2", - "android": "STREAM_LAYER_2", - "ios": "AgoraStreamLayer2", - "macos": "AgoraStreamLayer2" - }, - "STREAM_LAYER_3": { - "windows": "STREAM_LAYER_3", - "android": "STREAM_LAYER_3", - "ios": "AgoraStreamLayer3", - "macos": "AgoraStreamLayer3" - }, - "STREAM_LAYER_4": { - "windows": "STREAM_LAYER_4", - "android": "STREAM_LAYER_4", - "ios": "AgoraStreamLayer4", - "macos": "AgoraStreamLayer4" - }, - "STREAM_LAYER_5": { - "windows": "STREAM_LAYER_5", - "android": "STREAM_LAYER_5", - "ios": "AgoraStreamLayer5", - "macos": "AgoraStreamLayer5" - }, - "STREAM_LAYER_6": { - "windows": "STREAM_LAYER_6", - "android": "STREAM_LAYER_6", - "ios": "AgoraStreamLayer6", - "macos": "AgoraStreamLayer6" - }, - "STREAM_LOW": { - "windows": "STREAM_LOW", - "android": "STREAM_LOW", - "ios": "AgoraStreamLow", - "macos": "AgoraStreamLow" - }, - "STREAM_LAYER_COUNT_MAX": { - "windows": "STREAM_LAYER_COUNT_MAX", - "android": "STREAM_LAYER_COUNT_MAX", - "ios": "AgoraStreamLayerCountMax", - "macos": "AgoraStreamLayerCountMax" - }, - "channelID": { - "windows": "channelId", - "android": "channelId" - }, - "info": { - "windows": "info", - "android": "info" - }, - "uid": { - "windows": "uid", - "android": "uid" - }, - "deprecate-encryption": { - "windows": "v3.2.0", - "android": "v3.2.0", - "ios": "v3.2.0", - "macos": "v3.2.0" - }, - "since-cameraconfig": { - "windows": "v3.3.0", - "android": "v3.3.0", - "ios": "v3.3.0", - "macos": "v3.3.0" - }, - "since-setbeautyeffect": { - "windows": "v3.0.0", - "android": "v3.0.0", - "ios": "v3.0.0", - "macos": "v3.0.0" - }, - "filePath-example": { - "windows": "C:\\music\\audio.mp4", - "android": "content://com.android.providers.media.documents/document/audio%203A14441", - "ios": "/var/mobile/Containers/Data/audio.mp4", - "macos": "/var/mobile/Containers/Data/audio.mp4" - }, - "recordingPath-example": { - "windows": "C:\\music\\audio.aac", - "android": "/sdcard/emulated/0/audio.aac", - "ios": "/var/mobile/Containers/Data/audio.aac", - "macos": "/var/mobile/Containers/Data/audio.aac" - }, - "imagePath-example": { - "windows": "C:\\Users\\\\AppData\\Local\\Agora\\\\example.jpg", - "android": "/storage/emulated/0/Android/data//files/example.jpg", - "ios": "/AppSandbox/Library/Caches/example.jpg", - "macos": "~/Library/Logs/example.jpg" - }, - "lib-file": { - "windows": "libagora_ai_denoise_extension.dll", - "android": "libagora_ai_denoise_extension.dll" - }, - "STANDARD_BITRATE": { - "windows": "STANDARD_BITRATE", - "android": "STANDARD_BITRATE", - "ios": "AgoraVideoBitrateStandard", - "macos": "AgoraVideoBitrateStandard" - }, - "COMPATIBLE_BITRATE": { - "windows": "COMPATIBLE_BITRATE", - "android": "COMPATIBLE_BITRATE", - "ios": "AgoraVideoBitrateCompatible", - "macos": "AgoraVideoBitrateCompatible" - }, - "true": { - "windows": "true", - "android": "true", - "ios": "YES", - "macos": "YES" - }, - "false": { - "windows": "false", - "android": "false", - "ios": "NO", - "macos": "NO" - }, - "NULL": { - "windows": "NULL", - "android": "NULL", - "ios": "nil", - "macos": "nil" - }, - "clearvision": { - "windows": "libagora_clear_vision_extension.dll", - "android": "libagora_clear_vision_extension.so", - "ios": "AgoraClearVisionExtension.xcframework", - "macos": "AgoraClearVisionExtension.framework" - }, - "superresolution": { - "windows": "libagora_super_resolution_extension.so (Android); AgoraSuperResolutionExtension.xcframework (iOS)", - "android": "libagora_super_resolution_extension.so", - "ios": "AgoraSuperResolutionExtension.xcframework" - }, - "noisesuppression": { - "windows": "libagora_ai_noise_suppression_extension.dll", - "android": "libagora_ai_noise_suppression_extension.so", - "ios": "AgoraAiNoiseSuppressionExtension.xcframework", - "macos": "AgoraAiNoiseSuppressionExtension.xcframework" - }, - "audiobeauty": { - "windows": "libagora_audio_beauty_extension.dll", - "android": "libagora_audio_beauty_extension.so", - "ios": "AgoraAudioBeautyExtension.xcframework", - "macos": "AgoraAudioBeautyExtension.framework" - }, - "spatialaudio": { - "windows": "libagora_spatial_audio_extension.dll", - "android": "libagora_spatial_audio_extension.so", - "ios": "AgoraSpatialAudioExtension.xcframework", - "macos": "AgoraSpatialAudioExtension.framework" - }, - "moderation": { - "windows": "libagora_content_inspect_extension.dll", - "android": "agora_content_inspect_extension.so", - "ios": "AgoraContentInspectExtension.xcframework", - "macos": "AgoraContentInspectExtension.framework" - }, - "segmentation": { - "windows": "libagora_segmentation_extension.dll", - "android": "libagora_segmentation_extension.so", - "ios": "AgoraVideoSegmentationExtension.xcframework", - "macos": "AgoraVideoSegmentationExtension.framework" - }, - "CONTENT_INSPECT_DEVICE_INVALID": { - "android": "CONTENT_INSPECT_DEVICE_INVALID", - "ios": "AgoraContentInspectDeviceTypeInvalid", - "macos": "AgoraContentInspectDeviceTypeInvalid" - }, - "CONTENT_INSPECT_DEVICE_AGORA": { - "android": "CONTENT_INSPECT_DEVICE_AGORA", - "ios": "AgoraContentInspectDeviceTypeAgora", - "macos": "AgoraContentInspectDeviceTypeAgora" - }, - "CAMERA_EXTRA": { - "android": "CAMERA_EXTRA" - }, - "RELAY_EVENT_NETWORK_DISCONNECTED": { - "android": "RELAY_EVENT_NETWORK_DISCONNECTED" - }, - "RELAY_EVENT_NETWORK_CONNECTED": { - "android": "RELAY_EVENT_NETWORK_CONNECTED" - }, - "RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL": { - "android": "RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL" - }, - "RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL": { - "android": "RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL" - }, - "RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL": { - "android": "RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL" - }, - "RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC": { - "android": "RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC" - }, - "RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC": { - "android": "RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC" - }, - "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL": { - "android": "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL" - }, - "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE": { - "android": "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE" - }, - "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL": { - "android": "RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL" - }, - "RELAY_EVENT_VIDEO_PROFILE_UPDATE": { - "android": "RELAY_EVENT_VIDEO_PROFILE_UPDATE" - }, - "RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS": { - "android": "RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS" - }, - "RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED": { - "android": "RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED" - }, - "RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS": { - "android": "RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS" - }, - "RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED": { - "android": "RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED" - }, - "CHANNEL_PROFILE_COMMUNICATION_1v1": { - "android": "CHANNEL_PROFILE_COMMUNICATION_1v1" - }, - "OK": { - "android": "OK" - }, - "FAILED": { - "android": "FAILED" - }, - "AUDIO_PUBLICATION": { - "android": "AUDIO_PUBLICATION" - }, - "VIDEO_PUBLICATION": { - "android": "VIDEO_PUBLICATION" - }, - "NET_CONNECT": { - "android": "NET_CONNECT" - }, - "BAD_NAME": { - "android": "BAD_NAME" - }, - "INJECT_STREAM_STATUS_START_SUCCESS": { - "android": "INJECT_STREAM_STATUS_START_SUCCESS" - }, - "INJECT_STREAM_STATUS_START_ALREADY_EXISTS": { - "android": "INJECT_STREAM_STATUS_START_ALREADY_EXISTS" - }, - "INJECT_STREAM_STATUS_START_UNAUTHORIZED": { - "android": "INJECT_STREAM_STATUS_START_UNAUTHORIZED" - }, - "INJECT_STREAM_STATUS_START_TIMEDOUT": { - "android": "INJECT_STREAM_STATUS_START_TIMEDOUT" - }, - "INJECT_STREAM_STATUS_START_FAILED": { - "android": "INJECT_STREAM_STATUS_START_FAILED" - }, - "INJECT_STREAM_STATUS_STOP_SUCCESS": { - "android": "INJECT_STREAM_STATUS_STOP_SUCCESS" - }, - "INJECT_STREAM_STATUS_STOP_NOT_FOUND": { - "android": "INJECT_STREAM_STATUS_STOP_NOT_FOUND" - }, - "INJECT_STREAM_STATUS_STOP_UNAUTHORIZED": { - "android": "INJECT_STREAM_STATUS_STOP_UNAUTHORIZED" - }, - "INJECT_STREAM_STATUS_STOP_TIMEDOUT": { - "android": "INJECT_STREAM_STATUS_STOP_TIMEDOUT" - }, - "INJECT_STREAM_STATUS_STOP_FAILED": { - "android": "INJECT_STREAM_STATUS_STOP_FAILED" - }, - "INJECT_STREAM_STATUS_BROKEN": { - "android": "INJECT_STREAM_STATUS_BROKEN" - }, - "PLAYER_EVENT_UNKNOWN": { - "android": "PLAYER_EVENT_UNKNOWN" - }, - "PLAYER_STATE_UNKNOWN": { - "android": "PLAYER_STATE_UNKNOWN" - }, - "VIDEO_PROFILE_LANDSCAPE_120P": { - "android": "VIDEO_PROFILE_LANDSCAPE_120P" - }, - "VIDEO_PROFILE_LANDSCAPE_120P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_120P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_180P": { - "android": "VIDEO_PROFILE_LANDSCAPE_180P" - }, - "VIDEO_PROFILE_LANDSCAPE_180P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_180P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_180P_4": { - "android": "VIDEO_PROFILE_LANDSCAPE_180P_4" - }, - "VIDEO_PROFILE_LANDSCAPE_240P": { - "android": "VIDEO_PROFILE_LANDSCAPE_240P" - }, - "VIDEO_PROFILE_LANDSCAPE_240P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_240P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_240P_4": { - "android": "VIDEO_PROFILE_LANDSCAPE_240P_4" - }, - "VIDEO_PROFILE_LANDSCAPE_360P": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_4": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_4" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_6": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_6" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_7": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_7" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_8": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_8" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_9": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_9" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_10": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_10" - }, - "VIDEO_PROFILE_LANDSCAPE_360P_11": { - "android": "VIDEO_PROFILE_LANDSCAPE_360P_11" - }, - "VIDEO_PROFILE_LANDSCAPE_480P": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_4": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_4" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_6": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_6" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_8": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_8" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_9": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_9" - }, - "VIDEO_PROFILE_LANDSCAPE_480P_10": { - "android": "VIDEO_PROFILE_LANDSCAPE_480P_10" - }, - "VIDEO_PROFILE_LANDSCAPE_720P": { - "android": "VIDEO_PROFILE_LANDSCAPE_720P" - }, - "VIDEO_PROFILE_LANDSCAPE_720P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_720P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_720P_5": { - "android": "VIDEO_PROFILE_LANDSCAPE_720P_5" - }, - "VIDEO_PROFILE_LANDSCAPE_720P_6": { - "android": "VIDEO_PROFILE_LANDSCAPE_720P_6" - }, - "VIDEO_PROFILE_LANDSCAPE_1080P": { - "android": "VIDEO_PROFILE_LANDSCAPE_1080P" - }, - "VIDEO_PROFILE_LANDSCAPE_1080P_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_1080P_3" - }, - "VIDEO_PROFILE_LANDSCAPE_1080P_5": { - "android": "VIDEO_PROFILE_LANDSCAPE_1080P_5" - }, - "VIDEO_PROFILE_LANDSCAPE_1440P": { - "android": "VIDEO_PROFILE_LANDSCAPE_1440P" - }, - "VIDEO_PROFILE_LANDSCAPE_1440P_2": { - "android": "VIDEO_PROFILE_LANDSCAPE_1440P_2" - }, - "VIDEO_PROFILE_LANDSCAPE_4K": { - "android": "VIDEO_PROFILE_LANDSCAPE_4K" - }, - "VIDEO_PROFILE_LANDSCAPE_4K_3": { - "android": "VIDEO_PROFILE_LANDSCAPE_4K_3" - }, - "VIDEO_PROFILE_PORTRAIT_120P": { - "android": "VIDEO_PROFILE_PORTRAIT_120P" - }, - "VIDEO_PROFILE_PORTRAIT_120P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_120P_3" - }, - "VIDEO_PROFILE_PORTRAIT_180P": { - "android": "VIDEO_PROFILE_PORTRAIT_180P" - }, - "VIDEO_PROFILE_PORTRAIT_180P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_180P_3" - }, - "VIDEO_PROFILE_PORTRAIT_180P_4": { - "android": "VIDEO_PROFILE_PORTRAIT_180P_4" - }, - "VIDEO_PROFILE_PORTRAIT_240P": { - "android": "VIDEO_PROFILE_PORTRAIT_240P" - }, - "VIDEO_PROFILE_PORTRAIT_240P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_240P_3" - }, - "VIDEO_PROFILE_PORTRAIT_240P_4": { - "android": "VIDEO_PROFILE_PORTRAIT_240P_4" - }, - "VIDEO_PROFILE_PORTRAIT_360P": { - "android": "VIDEO_PROFILE_PORTRAIT_360P" - }, - "VIDEO_PROFILE_PORTRAIT_360P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_3" - }, - "VIDEO_PROFILE_PORTRAIT_360P_4": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_4" - }, - "VIDEO_PROFILE_PORTRAIT_360P_6": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_6" - }, - "VIDEO_PROFILE_PORTRAIT_360P_7": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_7" - }, - "VIDEO_PROFILE_PORTRAIT_360P_8": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_8" - }, - "VIDEO_PROFILE_PORTRAIT_360P_9": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_9" - }, - "VIDEO_PROFILE_PORTRAIT_360P_10": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_10" - }, - "VIDEO_PROFILE_PORTRAIT_360P_11": { - "android": "VIDEO_PROFILE_PORTRAIT_360P_11" - }, - "VIDEO_PROFILE_PORTRAIT_480P": { - "android": "VIDEO_PROFILE_PORTRAIT_480P" - }, - "VIDEO_PROFILE_PORTRAIT_480P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_3" - }, - "VIDEO_PROFILE_PORTRAIT_480P_4": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_4" - }, - "VIDEO_PROFILE_PORTRAIT_480P_6": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_6" - }, - "VIDEO_PROFILE_PORTRAIT_480P_8": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_8" - }, - "VIDEO_PROFILE_PORTRAIT_480P_9": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_9" - }, - "VIDEO_PROFILE_PORTRAIT_480P_10": { - "android": "VIDEO_PROFILE_PORTRAIT_480P_10" - }, - "VIDEO_PROFILE_PORTRAIT_720P": { - "android": "VIDEO_PROFILE_PORTRAIT_720P" - }, - "VIDEO_PROFILE_PORTRAIT_720P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_720P_3" - }, - "VIDEO_PROFILE_PORTRAIT_720P_5": { - "android": "VIDEO_PROFILE_PORTRAIT_720P_5" - }, - "VIDEO_PROFILE_PORTRAIT_720P_6": { - "android": "VIDEO_PROFILE_PORTRAIT_720P_6" - }, - "VIDEO_PROFILE_PORTRAIT_1080P": { - "android": "VIDEO_PROFILE_PORTRAIT_1080P" - }, - "VIDEO_PROFILE_PORTRAIT_1080P_3": { - "android": "VIDEO_PROFILE_PORTRAIT_1080P_3" - }, - "VIDEO_PROFILE_PORTRAIT_1080P_5": { - "android": "VIDEO_PROFILE_PORTRAIT_1080P_5" - }, - "VIDEO_PROFILE_PORTRAIT_1440P": { - "android": "VIDEO_PROFILE_PORTRAIT_1440P" - }, - "VIDEO_PROFILE_PORTRAIT_1440P_2": { - "android": "VIDEO_PROFILE_PORTRAIT_1440P_2" - }, - "VIDEO_PROFILE_PORTRAIT_4K": { - "android": "VIDEO_PROFILE_PORTRAIT_4K" - }, - "VIDEO_PROFILE_PORTRAIT_4K_3": { - "android": "VIDEO_PROFILE_PORTRAIT_4K_3" - }, - "VIDEO_PROFILE_DEFAULT": { - "android": "VIDEO_PROFILE_DEFAULT" - }, - "typedef": { - "android": "Class 及 Enum", - "macos": "Class 及 Enum" - }, - "class": { - "android": "Class", - "macos": "Class" - }, - "CHANNEL_PROFILE_COMMUNICATION_1V1": { - "ios": "AgoraChannelProfileCommunication_1v1", - "macos": "AgoraChannelProfileCommunication_1v1" - }, - "CHANNEL_PROFILE_LIVE_BROADCASTING_2": { - "ios": "AgoraChannelProfileLiveBroadcasting_2", - "macos": "AgoraChannelProfileLiveBroadcasting_2" - }, - "LOCAL_VIDEO_STREAM_REASON_SYSTEM_PRESSURE": { - "ios": "AgoraLocalVideoStreamReasonSystemPressure" - }, - "AgoraLocalVideoStreamErrorExtensionCaptureStarted": { - "ios": "AgoraLocalVideoStreamReasonExtensionCaptureStarted" - }, - "AgoraLocalVideoStreamErrorExtensionCaptureStoped": { - "ios": "AgoraLocalVideoStreamReasonExtensionCaptureStoped" - }, - "AgoraLocalVideoStreamErrorExtensionCaptureDisconnected": { - "ios": "AgoraLocalVideoStreamReasonExtensionCaptureDisconnected" - }, - "AgoraMediaRecorderStreamTypeAudio": { - "ios": "AgoraMediaRecorderStreamTypeAudio", - "macos": "AgoraMediaRecorderStreamTypeAudio" - }, - "AgoraMediaRecorderStreamTypeVideo": { - "ios": "AgoraMediaRecorderStreamTypeVideo", - "macos": "AgoraMediaRecorderStreamTypeVideo" + "AUDIO_PROCESSING_CHANNELS": { + "android": "AudioProcessingChannelsEnum", + "ios": "AgoraAudioProcessChannels", + "macos": "AgoraAudioProcessChannels" }, "AgoraMediaPlayerRenderMode": { "ios": "AgoraMediaPlayerRenderMode", "macos": "AgoraMediaPlayerRenderMode" }, - "AgoraMediaPlayerRenderModeHidden": { - "ios": "AgoraMediaPlayerRenderModeHidden", - "macos": "AgoraMediaPlayerRenderModeHidden" - }, - "AgoraMediaPlayerRenderModeFit": { - "ios": "AgoraMediaPlayerRenderModeFit", - "macos": "AgoraMediaPlayerRenderModeFit" - }, - "VIDEO_BUFFER_PIXEL_BUFFER": { - "ios": "AgoraVideoBufferTypePixelBuffer", - "macos": "AgoraVideoBufferTypePixelBuffer" - }, "hwEncoderAccelerating": { "ios": "AgoraVideoHwEncoderAccelerating", "macos": "AgoraVideoHwEncoderAccelerating" }, - "VideoHwEncoderSoftware": { - "ios": "AgoraVideoHwEncoderSoftware", - "macos": "AgoraVideoHwEncoderSoftware" - }, - "VideoHwEncoderHardware": { - "ios": "AgoraVideoHwEncoderHardware", - "macos": "AgoraVideoHwEncoderHardware" - }, - "AgoraVideoFormatCVPixelNV12": { - "ios": "AgoraVideoFormatCVPixelNV12", - "macos": "AgoraVideoFormatCVPixelNV12" - }, - "AgoraVideoFormatCVPixelI420": { - "ios": "AgoraVideoFormatCVPixelI420", - "macos": "AgoraVideoFormatCVPixelI420" - }, - "AgoraVideoFormatCVPixelBGRA": { - "ios": "AgoraVideoFormatCVPixelBGRA", - "macos": "AgoraVideoFormatCVPixelBGRA" + "VIDEO_FRAME_POSITION": { + "ios": "AgoraVideoFramePosition", + "macos": "AgoraVideoFramePosition" }, "WatermarkBufferFormat": { "ios": "WatermarkBufferFormat", "macos": "WatermarkBufferFormat" - }, - "WatermarkBufferFormatI420": { - "ios": "WatermarkBufferFormatI420", - "macos": "WatermarkBufferFormatI420" - }, - "WatermarkBufferFormatBGRA": { - "ios": "WatermarkBufferFormatBGRA", - "macos": "WatermarkBufferFormatBGRA" - }, - "WatermarkBufferFormatNV21": { - "ios": "WatermarkBufferFormatNV21", - "macos": "WatermarkBufferFormatNV21" - }, - "WatermarkBufferFormatRGBA": { - "ios": "WatermarkBufferFormatRGBA", - "macos": "WatermarkBufferFormatRGBA" - }, - "AUDIO_MIXING_ERROR_OK": { - "macos": "AgoraAudioMixingReasonTypeOk" - }, - "RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY": { - "macos": "AgoraAudioRawFrameOperationModeWriteOnly" - }, - "FACE_SHAPE_AREA": { - "windows": "FACE_SHAPE_AREA", - "ios": "AgoraFaceShapeArea", - "macos": "AgoraFaceShapeArea" - }, - "FACE_SHAPE_BEAUTY_STYLE": { - "windows": "FACE_SHAPE_BEAUTY_STYLE", - "ios": "AgoraFaceShapeStyle", - "macos": "AgoraFaceShapeStyle" - }, - "MediaRecorderContainerFormat": { - "windows": "MediaRecorderContainerFormat", - "ios": "AgoraMediaRecorderContainerFormat", - "macos": "AgoraMediaRecorderContainerFormat" - }, - "LOCAL_PROXY_MODE": { - "windows": "LOCAL_PROXY_MODE", - "ios": "AgoraLocalProxyMode", - "macos": "AgoraLocalProxyMode" - }, - "MUSIC_CACHE_STATUS_TYPE": { - "windows": "MUSIC_CACHE_STATUS_TYPE", - "android": "MusicCacheStatusType", - "ios": "AgoraMusicCacheStatusType" - }, - "MusicContentCenterStateReason": { - "windows": "MusicContentCenterStateReason", - "android": "MusicContentCenterStateReason", - "ios": "AgoraMusicContentCenterStateReason" - }, - "MusicPlayMode": { - "windows": "MusicPlayMode", - "android": "MusicPlayMode", - "ios": "AgoraMusicPlayMode" - }, - "RteVideoMirrorMode": { - "windows": "RteVideoMirrorMode", - "android": "VideoMirrorMode", - "ios": "AgoraRteVideoMirrorMode", - "macos": "AgoraRteVideoMirrorMode" - }, - "RteAbrFallbackLayer": { - "windows": "RteAbrFallbackLayer", - "android": "AbrFallbackLayer", - "ios": "AgoraRteAbrFallbackLayer", - "macos": "AgoraRteAbrFallbackLayer" - }, - "RteAbrSubscriptionLayer": { - "windows": "RteAbrSubscriptionLayer", - "android": "AbrSubscriptionLayer", - "ios": "AgoraRteAbrSubscriptionLayer", - "macos": "AgoraRteAbrSubscriptionLayer" - }, - "RteVideoRenderMode": { - "windows": "RteVideoRenderMode", - "android": "VideoRenderMode", - "ios": "AgoraRteVideoRenderMode", - "macos": "AgoraRteVideoRenderMode" - }, - "RtePlayerMetadataType": { - "windows": "RtePlayerMetadataType", - "ios": "AgoraRtePlayerMetadataType", - "macos": "AgoraRtePlayerMetadataType" - }, - "RecorderStreamType": { - "windows": "RecorderStreamType", - "ios": "AgoraRecorderStreamType", - "macos": "AgoraRecorderStreamType" - }, - "RtePlayerEvent": { - "windows": "RtePlayerEvent", - "android": "PlayerEvent", - "ios": "AgoraRtePlayerEvent", - "macos": "AgoraRtePlayerEvent" - }, - "RtePlayerState": { - "windows": "RtePlayerState", - "android": "PlayerState", - "ios": "AgoraRtePlayerState", - "macos": "AgoraRtePlayerState" - }, - "VIDEO_FRAME_POSITION": { - "ios": "AgoraVideoFramePosition", - "macos": "AgoraVideoFramePosition" } } } \ No newline at end of file