@4players/odin
Version:
A cross-platform SDK enabling developers to integrate real-time VoIP chat technology into their projects
119 lines (118 loc) • 5.23 kB
TypeScript
import { Peer as PeerData } from '@4players/odin-common/api';
import { Room } from '../room';
import { OdinEvent, OdinEventTarget } from '../../utils/odin-event-target';
import { AudioActivityPayload, AudioInputPayload, AudioOutputPayload, MediaPayload, UserDataChangedPayload, VideoInputPayload, VideoOutputPayload } from '../room/types';
import { PeerEvents } from './types';
/**
* Class describing a single peer inside an `OdinRoom`.
*/
export declare class Peer extends OdinEventTarget<PeerEvents> {
protected _peerData: PeerData;
readonly room: Room;
readonly id: number;
/**
* The userId that was provided by the token when joining the room.
*/
readonly userId: string;
/**
* This method is for SDK internal usage and might get removed.
* @deprecated
* @param {OdinEvent<AudioActivityPayload>} event - The audio event containing the payload
* with RMS power level information.
*/
readonly rmsDBFSHandler: (event: OdinEvent<AudioActivityPayload>) => void;
/**
* This method is for SDK internal usage and might get removed.
*
* @deprecated
* @param {OdinEvent<AudioActivityPayload>} event - The audio activity event containing relevant payload data.
*/
readonly audioActivityHandler: (event: OdinEvent<AudioActivityPayload>) => void;
/**
* A callback function that is invoked when audio activity occurs and voice activity detection (VAD) was set to true.
*
* @param {AudioActivityPayload} payload - An object containing the AudioMedia.
*/
onAudioActivity?: (payload: AudioActivityPayload) => void;
/**
* A callback function invoked when there is an update to the audio power level in rmsDBFS.
* This function can be used to handle or process audio activity, such as
* monitoring sound levels or visualizing audio input.
*
* @param {AudioActivityPayload} payload - An object containing the AudioMedia.
*/
onPowerLevel?: (payload: AudioActivityPayload) => void;
/**
* A callback function that gets invoked when a new audio or video media was started.
*
* @param {MediaPayload} payload - An object containing the media that was started.
*/
onMediaStarted?: (payload: MediaPayload) => void;
/**
* A callback function that gets invoked when an audio or video media was stopped.
*
* @param {MediaPayload} payload - An object containing the media that was stopped.
*/
onMediaStopped?: (payload: MediaPayload) => void;
/**
* A callback function that gets invoked when an AudioInput was started.
*
* @param {AudioInputPayload} payload - An object containing the AudioInput that was started.
*/
onAudioInputStarted?: (payload: AudioInputPayload) => void;
/**
* A callback function that gets invoked when a VideoInput was started.
*
* @param {VideoInputPayload} payload - An object containing the VideoInput that was started.
*/
onVideoInputStarted?: (payload: VideoInputPayload) => void;
/**
* A callback function that gets invoked when a VideoInput was stopped.
*
* @param {VideoInputPayload} payload - An object containing the VideoInput that was stopped.
*/
onVideoInputStopped?: (payload: VideoInputPayload) => void;
/**
* A callback function that gets invoked when an AudioInput was stopped.
*
* @param {AudioInputPayload} payload - An object containing the AudioInput that was stopped.
*/
onAudioInputStopped?: (payload: AudioInputPayload) => void;
/**
* A callback function that gets invoked when an AudioOutput was started.
*
* @param {AudioOutputPayload} payload - An object containing the AudioOutput that was started.
*/
onAudioOutputStarted?: (payload: AudioOutputPayload) => void;
/**
* A callback function that gets invoked when an AudioOutput was stopped.
*
* @param {AudioOutputPayload} payload - An object containing the AudioOutput that was stopped.
*/
onAudioOutputStopped?: (payload: AudioOutputPayload) => void;
/**
* A callback function that gets invoked when a VideoOutput was started.
*
* @param {AudioOutputPayload} payload - An object containing the VideoOutput that was started.
*/
onVideoOutputStarted?: (payload: VideoOutputPayload) => void;
/**
* A callback function that gets invoked when a VideoOutput was stopped.
*
* @param {VideoOutputPayload} payload - An object containing the VideoOutput that was stopped.
*/
onVideoOutputStopped?: (payload: VideoOutputPayload) => void;
/**
* A callback function invoked when user data is changed.
*
* @param {UserDataChangedPayload} payload - An object containing the peer and the room.
*/
onUserDataChanged?: (payload: UserDataChangedPayload) => void;
/**
* Creates an instance of the class with the provided peer data, room, and remote status.
*
* @param {PeerData} _peerData - The peer data object containing information about the peer.
* @param {Room} room - The room instance associated with the peer.
*/
constructor(_peerData: PeerData, room: Room);
}