UNPKG

@banuba/agora-extension

Version:

Banuba WebAR Agora extension

76 lines (73 loc) 2.83 kB
import { Extension as Extension$1, VideoProcessor as VideoProcessor$1, IProcessorContext } from 'agora-rte-extension'; import { Player } from '@banuba/webar'; /** Same options as of Player.create(), see {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Player.html#create} */ type VideoProcessorOptions = Parameters<(typeof Player)["create"]>[0]; /** Banuba WebAR extension for Agora RTC */ declare class Extension extends Extension$1<VideoProcessor> { private readonly _options; constructor(opts: VideoProcessorOptions); /** Checks if the browser is capable to perform AR processing */ checkCompatibility(): boolean; protected _createProcessor(): VideoProcessor; } /** Banuba WebAR processor for Agora RTC */ declare class VideoProcessor extends VideoProcessor$1 { private readonly _player; private readonly _output; name: string; constructor(opts: VideoProcessorOptions); protected onTrack(track: MediaStreamTrack, ctx: IProcessorContext): Promise<void>; protected onEnableChange(): Promise<void>; /** * Adds AR modules from URL * @example * ```ts * // This is a syntax sugar over * // import { Module } from "@banuba/webar" * // const face_tracker = new Module("/path/to/face_tracker.zip") * // await processor.addModule(face_tracker) * * await processor.addModule("/path/to/face_tracker.zip") * ``` */ addModule(...urls: string[]): ReturnType<Player["addModule"]>; /** * Adds @banuba/webar Module to the processor * * See {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Module.html} for more details. * @example * ```ts * import { Module } from "@banuba/webar" * * const face_tracker = new Module("/path/to/face_tracker.zip") * * await processor.addModule(face_tracker) * ``` */ addModule(...modules: Parameters<Player["addModule"]>): ReturnType<Player["addModule"]>; /** * Applies AR effect from URL * @example s */ applyEffect(url: string): ReturnType<Player["applyEffect"]>; /** * Applies `@banuba/webar`'s Effect * * See {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Effect.html} for more details. * @example * ```ts * import { Effect } from "@banuba/webar" * * const octopus = new Effect("/path/to/Octopus.zip") * * await processor.applyEffect(octopus) * ``` */ applyEffect(effect: Parameters<Player["applyEffect"]>[0]): ReturnType<Player["applyEffect"]>; /** Clears effect applied to the processor */ clearEffect(): Promise<void>; /** Destroys the processor, clears all the resources used */ destroy(): Promise<void>; } export { Extension, Extension as default };