# Remove backgrounds with an alpha channel

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

> The code on this page works with either the **default UI** or the **custom UI**.

Meeting hosts who hold a raw streaming token can enable alpha channel mode, which requests that Zoom send both the original video data and a mask demarking the edge of a participant's body. The SDK can then use the alpha mask and raw data to remove the participant's background and render meeting participants natively in the host's virtual world.

## Add new methods

Add a new method to the `ZoomSDKMeetingActionController.h` class.

```objectivec
/**
 * @brief Callback event of alpha channel mode changes.
 * @param isAlphaModeOn YES means it's in alpha channel mode. Otherwise, it's not.
 */
- (void)onVideoAlphaChannelStatusChanged:(BOOL)isAlphaModeOn;
```

This callback is triggered when alpha channel mode is turned on.

Add these methods to the `ZoomSDKMeetingActionController.h` class.

```objectivec
/**
 * @brief Determine if alpha channel mode can be enabled.
 * @return YES means it can be enabled. Otherwise NO.
 */
- (BOOL)canEnableAlphaChannelMode;

/**
 * @brief Enable or disable alpha channel mode.
 * @param enabled YES indicates to enable alpha channel mode. Otherwise, disable it.
 * @return If the function succeeds, the return value is ZoomSDKError_Success.
 */
- (ZoomSDKError)enableAlphaChannelMode:(BOOL)enabled;

/**
 * @brief Determine if alpha channel mode is enabled.
 * @return YES indicates is in alpha channel mode. Otherwise NO.
 */
- (BOOL)isAlphaChannelModeEnabled;
```

## Enable alpha channel mode

Before enabling the alpha channel, call `canEnableAlphaChannelMode` to check whether the alpha channel mode is enabled. To enable or disable the alpha channel, call `EnableAlphaChannelMode`.

Add a new method to the `ZoomSDKRenderer.h` class.

```objectivec
/**
 * @brief Get video alpha mask data buffer.
 * @return buffer address if alpha data exists. Otherwise nil.
 */
-(char*_Nullable)getAlphaBuffer;

/**
 * @brief Get the alpha buffer length.
  * @return The length of alpha data.
 */
-(unsigned int)getAlphaBufferLen;
```

The raw data will have two more values after performing these steps: `GetAlphaBuffer` for the alpha data buffer, and another, `GetAlphaBufferLen`, for the alpha data buffer length.

---
