react-native-theoplayer
Version:
A THEOplayer video component for react-native.
36 lines (30 loc) • 1.13 kB
text/typescript
import type { HespLatencies, TheoLiveAPI } from 'react-native-theoplayer';
import type { ChromelessPlayer } from 'theoplayer';
export class TheoLiveWebAdapter implements TheoLiveAPI {
constructor(private _player: ChromelessPlayer) {}
get currentLatency(): Promise<number> {
const currentLatency = this._player.latency.currentLatency;
return currentLatency ? Promise.resolve(currentLatency) : Promise.reject<number>('latency not available');
}
get latencies(): Promise<HespLatencies> {
const webLatencies = this._player.hesp?.latencies;
if (webLatencies) {
return Promise.resolve({
engineLatency: webLatencies?.engine,
distributionLatency: webLatencies?.distribution,
playerLatency: webLatencies?.player,
theoliveLatency: webLatencies?.theolive,
});
} else {
return Promise.reject<HespLatencies>('latencies not available');
}
}
set authToken(token: string) {
if (this._player.theoLive) {
this._player.theoLive.authToken = token;
}
}
get authToken(): string | undefined {
return this._player.theoLive?.authToken;
}
}