enableAlphaChannelVideoEncode method

Future<int?> enableAlphaChannelVideoEncode({
  1. required AlphaLayout alphaLayout,
})

@valid since 3.58 @detail api @hiddensdk(audiosdk) @author zhuhongshuyu @brief 开启自定义采集视频帧的 Alpha 通道编码功能。
适用于需要分离推流端视频主体与背景,且在拉流端可自定义渲染背景的场景。 @param alphaLayout 分离后的 Alpha 通道相对于 RGB 通道信息的排列位置。当前仅支持 AlphaLayout.TOP,即置于 RGB 通道信息上方。 @return 方法调用结果:
- 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。 @note - 该接口仅作用于自定义采集的、并且使用 RGBA 色彩模型的视频帧,包括 VideoPixelFormat.TEXTURE_2D、VideoPixelFormat.TEXTURE_OES、VideoPixelFormat.RGBA。 - 该接口须在发布视频流之前调用。 - 调用本接口开启 Alpha 通道编码后,你需调用 pushExternalVideoFrame{@link #RTCEngine#pushExternalVideoFrame} 把自定义采集的视频帧推送至 RTC SDK。若推送了不支持的视频帧格式,则调用 pushExternalVideoFrame{@link #RTCEngine#pushExternalVideoFrame} 时会返回错误码 ReturnStatus.RETURN_STATUS_PARAMETER_ERR。

Implementation

Future<int?> enableAlphaChannelVideoEncode(
    {required AlphaLayout alphaLayout}) async {
  $a() => ($instance as $p_a.RTCEngine).enableAlphaChannelVideoEncode(
      t_AlphaLayout.code_to_android(alphaLayout));
  $i() => ($instance as $p_i.ByteRTCEngine)
      .enableAlphaChannelVideoEncode(t_AlphaLayout.code_to_ios(alphaLayout));

  if (Platform.isAndroid) {
    return $a();
  } else if (Platform.isIOS) {
    return $i();
  } else {
    throw UnsupportedError(
        'Not Support Platform ${Platform.operatingSystem}');
  }
}