@banuba/agora-extension
Version:
Banuba WebAR Agora extension
76 lines (73 loc) • 2.83 kB
TypeScript
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 };