Interface DeviceController

When you are done using a DeviceController, you should perform some cleanup steps in order to avoid memory leaks:

  1. Call DeviceController.destroy to stop all active audio and video inputs.
  2. Remove any device change observers that you registered by using DeviceControllerFacade.removeDeviceChangeObserver.
  3. Drop your reference to the controller to allow it to be garbage collected.
interface DeviceController {
    eventController?: EventController;
    addDeviceChangeObserver(observer: DeviceChangeObserver): void;
    chooseAudioOutput(deviceId: string): Promise<void>;
    chooseVideoInputQuality(
        width: number,
        height: number,
        frameRate: number,
    ): void;
    createAnalyserNodeForAudioInput(): RemovableAnalyserNode;
    destroy(): Promise<void>;
    getVideoInputQualitySettings(): VideoQualitySettings;
    listAudioInputDevices(forceUpdate?: boolean): Promise<MediaDeviceInfo[]>;
    listAudioOutputDevices(forceUpdate?: boolean): Promise<MediaDeviceInfo[]>;
    listVideoInputDevices(forceUpdate?: boolean): Promise<MediaDeviceInfo[]>;
    mixIntoAudioInput(stream: MediaStream): MediaStreamAudioSourceNode;
    removeDeviceChangeObserver(observer: DeviceChangeObserver): void;
    setDeviceLabelTrigger(trigger: () => Promise<MediaStream>): void;
    startAudioInput(device: AudioInputDevice): Promise<MediaStream>;
    startVideoInput(device: VideoInputDevice): Promise<MediaStream>;
    startVideoPreviewForVideoInput(element: HTMLVideoElement): void;
    stopAudioInput(): Promise<void>;
    stopVideoInput(): Promise<void>;
    stopVideoPreviewForVideoInput(element: HTMLVideoElement): void;
}

Hierarchy (View Summary)

Properties

eventController?: EventController

EventController for publishing events.

Methods

  • Starts a video preview of the currently selected video and binds it a video element to be displayed before a meeting begins. Make sure to call [[stopVideoPreviewForVideoInput]] when the preview is no longer necessary so that the stream can be released and turn off the camera if it is not being used anymore.

    Parameters

    • element: HTMLVideoElement

    Returns void