Skip to main content

Other

CompositionStreamControllerAPI

The CLEAN compositional contract — exactly what a track-driven Broadcast reads + a SourceProvider. ZERO legacy device/mute/pause/disable surface (C9). The 1:1 replacement for the DELETED legacy pair contract, MINUS its legacy members. BOTH the concrete CompositionStreamController class AND the frozen MediaStreamControllerAPI satisfy this; the latter ADDS the legacy members on top (so call.broadcast of a compat controller still typechecks). It is an interface — not the class — so a delegating bridge stays assignable.

It extends ONLY IEventEmitter<CompositionStreamControllerEvents> (the FULL event map, which includes source + disposed) and inlines the SourceProvider / Disposable / Serializable NON-emitter members — extending those interfaces directly would clash on IEventEmitter's methods (each carries its own narrower event map). The shape is STRUCTURALLY a SourceProvider<MediaStream> + Disposable + Serializable (asserted in the spec), so it stays assignable everywhere those are required.

interface CompositionStreamControllerAPI {
kind: media-stream;
}

ViewerAnalyticsEvent

Re-exports the viewer-analytics API. See attachViewerAnalytics.

interface ViewerAnalyticsEvent {
event: object;
labels: Record<string, string>;
}

ViewerAnalyticsOptions

Options for attachViewerAnalytics.

interface ViewerAnalyticsOptions {
heartbeatIntervalMs?: number;
}

CompositionStreamControllerEvents

The CLEAN compositional events — three, all compositional, ZERO legacy device events (C9). A track-driven consumer (Broadcast) reads tracksChanged; the player loader + Broadcast read source.

type CompositionStreamControllerEvents = {
disposed: void;
source: MediaStream;
tracksChanged: MediaStream;
}

ViewerAnalyticsAction

Re-exports the viewer-analytics API. See attachViewerAnalytics.

type ViewerAnalyticsAction = view_start | view_heartbeat | view_end
unknown | unknown | unknown

ViewerAnalyticsSink

Caller-provided transport. Core builds the event; the sink ships it.

type ViewerAnalyticsSink = object
unknown

attachViewerAnalytics

Re-exports the viewer-analytics API. See attachViewerAnalytics.

import { attachViewerAnalytics } from '@video/video-client-core';
function attachViewerAnalytics(player: object, options: ViewerAnalyticsOptions): object

Attributes

  • playerobjectRequired

  • optionsViewerAnalyticsOptionsRequired