import { NativeModules } from 'react-native'; import type { Errors } from '../native/ZoomVideoSdk'; import {ZoomVideoSdkVirtualBackgroundItem} from "./ZoomVideoSdkVirtualBackgroundItem"; const { RNZoomVideoSdkVirtualBackgroundHelper } = NativeModules; /** * Virtual background helper. */ export type ZoomVideoSdkVirtualBackgroundHelperType = { /** * Determine whether the user can support smart virtual backgrounds. */ isSupportVirtualBackground: () => Promise; /** * Add virtual background object. */ addVirtualBackgroundItem: (filePath: string) => Promise; /** * Remove virtual background object. */ removeVirtualBackgroundItem: (imageName: string) => Promise; /** * Returns a collection of virtual background item as an object of type ZoomVideoSDKVirtualBackgroundItem. */ getVirtualBackgroundItemList: () => Promise; /** * Select virtual background item. */ setVirtualBackgroundItem: (imageName: string) => Promise; }; export class ZoomVideoSdkVirtualBackgroundHelper implements ZoomVideoSdkVirtualBackgroundHelperType { async isSupportVirtualBackground() { return await RNZoomVideoSdkVirtualBackgroundHelper.isSupportVirtualBackground(); } async addVirtualBackgroundItem(filePath: string) { return await RNZoomVideoSdkVirtualBackgroundHelper.addVirtualBackgroundItem(filePath); } async removeVirtualBackgroundItem(imageName: string) { return await RNZoomVideoSdkVirtualBackgroundHelper.removeVirtualBackgroundItem(imageName); } async getVirtualBackgroundItemList() { const items = await RNZoomVideoSdkVirtualBackgroundHelper.getVirtualBackgroundItemList(); return items.map((item: ZoomVideoSdkVirtualBackgroundItem) => new ZoomVideoSdkVirtualBackgroundItem(item)); } async setVirtualBackgroundItem(imageName: string) { return await RNZoomVideoSdkVirtualBackgroundHelper.setVirtualBackgroundItem(imageName); } }