@signalwire/realtime-api
Version:
SignalWire RealTime SDK for Node.js
45 lines • 1.91 kB
TypeScript
/**
* Once we have new interface for Browser SDK;
* RoomSessionPlayback in core should be removed
* RoomSessionPlayback in realtime-api should be moved to core
*/
import type { VideoPlaybackContract, VideoPlaybackEventParams } from '@signalwire/core';
import { ListenSubscriber } from '../../ListenSubscriber';
import { RealTimeRoomPlaybackEvents, RealTimeRoomPlaybackListeners, RealtimeRoomPlaybackListenersEventsMapping } from '../../types';
import { RoomSession } from '../RoomSession';
/**
* Instances of this class allow you to control (e.g., pause, resume, stop) the
* playback inside a room session. You can obtain instances of this class by
* starting a playback from the desired {@link RoomSession} (see
* {@link RoomSession.play})
*/
export interface RoomSessionPlaybackOptions {
roomSession: RoomSession;
payload: VideoPlaybackEventParams;
}
export declare class RoomSessionPlayback extends ListenSubscriber<RealTimeRoomPlaybackListeners, RealTimeRoomPlaybackEvents> implements VideoPlaybackContract {
private _payload;
protected _eventMap: RealtimeRoomPlaybackListenersEventsMapping;
constructor(options: RoomSessionPlaybackOptions);
get id(): string;
get roomId(): string;
get roomSessionId(): string;
get url(): string;
get state(): "paused" | "completed" | "playing";
get volume(): number;
get startedAt(): Date | undefined;
get endedAt(): Date | undefined;
get position(): number;
get seekable(): boolean;
get hasEnded(): boolean;
/** @internal */
setPayload(payload: VideoPlaybackEventParams): void;
pause(): Promise<void>;
resume(): Promise<void>;
stop(): Promise<void>;
setVolume(volume: number): Promise<void>;
seek(timecode: number): Promise<void>;
forward(offset?: number): Promise<void>;
rewind(offset?: number): Promise<void>;
}
//# sourceMappingURL=RoomSessionPlayback.d.ts.map