@vkontakte/videoplayer-core 2.0.155 → 2.0.156-dev.04ce2cd1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015.cjs +83 -136
- package/es2015.esm.js +77 -130
- package/es2018.cjs +77 -130
- package/es2018.esm.js +75 -128
- package/es2024.cjs +83 -136
- package/es2024.esm.js +81 -134
- package/esnext.cjs +83 -136
- package/esnext.esm.js +81 -134
- package/evergreen.esm.js +82 -135
- package/package.json +2 -2
- package/types/enums/AndroidPreferredFormat.d.ts +6 -6
- package/types/enums/IOSPreferredFormat.d.ts +2 -2
- package/types/enums/WebmCodecStrategy.d.ts +5 -5
- package/types/index.d.ts +16 -13
- package/types/player/Player.d.ts +219 -210
- package/types/player/types.d.ts +595 -591
- package/types/player/utils/optimisticPosition.d.ts +7 -7
- package/types/player/utils/selectContainer.d.ts +1 -1
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
- package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
- package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
- package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
- package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
- package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
- package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
- package/types/providers/ChromecastProvider/index.d.ts +23 -23
- package/types/providers/ChromecastProvider/types.d.ts +7 -7
- package/types/providers/ChromecastProvider/utils.d.ts +1 -1
- package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -33
- package/types/providers/DashLiveProvider/index.d.ts +1 -1
- package/types/providers/DashLiveProvider/types.d.ts +17 -17
- package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
- package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +149 -150
- package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
- package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
- package/types/providers/DashProvider/baseDashProvider.d.ts +57 -56
- package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
- package/types/providers/DashProvider/dashProvider.d.ts +4 -4
- package/types/providers/DashProvider/index.d.ts +2 -2
- package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
- package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProvider/lib/buffer.d.ts +123 -122
- package/types/providers/DashProvider/lib/fetcher.d.ts +70 -69
- package/types/providers/DashProvider/lib/player.d.ts +109 -107
- package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProvider/lib/types.d.ts +20 -20
- package/types/providers/DashProvider/lib/utils.d.ts +4 -4
- package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +58 -57
- package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
- package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
- package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
- package/types/providers/DashProviderVirtual/index.d.ts +2 -2
- package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +15 -14
- package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +94 -92
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
- package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +68 -67
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
- package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
- package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
- package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
- package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
- package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
- package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
- package/types/providers/HlsLiveProvider/index.d.ts +29 -28
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +19 -19
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
- package/types/providers/MpegProvider/index.d.ts +17 -17
- package/types/providers/ProviderContainer/index.d.ts +47 -45
- package/types/providers/ProviderContainer/types.d.ts +16 -16
- package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
- package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +9 -8
- package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +58 -57
- package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
- package/types/providers/types.d.ts +103 -102
- package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +40 -39
- package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
- package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
- package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +5 -4
- package/types/providers/utils/LiveOffset/index.d.ts +12 -12
- package/types/providers/utils/LiveOffset/types.d.ts +8 -8
- package/types/providers/utils/StallsManager.d.ts +49 -49
- package/types/providers/utils/debug.d.ts +13 -12
- package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
- package/types/providers/utils/generateLiveUrl.d.ts +4 -4
- package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
- package/types/providers/utils/mergeIntervals.d.ts +1 -1
- package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
- package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
- package/types/providers/utils/parsers/index.d.ts +1 -1
- package/types/providers/utils/parsers/mpd.d.ts +1 -1
- package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +18 -17
- package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
- package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
- package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
- package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
- package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +27 -26
- package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
- package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
- package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
- package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
- package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
- package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
- package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
- package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +4 -5
- package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
- package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
- package/types/providers/utils/parsers/types.d.ts +137 -139
- package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
- package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
- package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
- package/types/providers/utils/syncDesiredState.d.ts +10 -10
- package/types/providers/utils/syncPlaybackState.d.ts +2 -2
- package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
- package/types/utils/3d/Camera3D.d.ts +11 -11
- package/types/utils/3d/CameraRotationManager.d.ts +59 -59
- package/types/utils/3d/Scene3D.d.ts +129 -129
- package/types/utils/3d/types.d.ts +14 -14
- package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
- package/types/utils/ClientChecker/index.d.ts +2 -2
- package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
- package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
- package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
- package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
- package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
- package/types/utils/ClientChecker/types/checker.d.ts +1 -1
- package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
- package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
- package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
- package/types/utils/StateMachine/StateMachine.d.ts +17 -17
- package/types/utils/StateMachine/types.d.ts +56 -56
- package/types/utils/StatefulIterator/index.d.ts +13 -13
- package/types/utils/ThroughputEstimator.d.ts +22 -22
- package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
- package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
- package/types/utils/autoSelectTrack.d.ts +28 -27
- package/types/utils/buffer/createTimeRanges.d.ts +2 -1
- package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
- package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
- package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
- package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
- package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
- package/types/utils/changePlaybackRate.d.ts +1 -1
- package/types/utils/decodingInfoLogger.d.ts +1 -1
- package/types/utils/mediaSource.d.ts +1 -5
- package/types/utils/observeElementVisibility.d.ts +1 -1
- package/types/utils/playbackTelemetry.d.ts +4 -4
- package/types/utils/playerOptions.d.ts +3 -3
- package/types/utils/qualityLimits.d.ts +15 -14
- package/types/utils/setStateWithSubscribe.d.ts +6 -3
- package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
- package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
- package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
- package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
- package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
- package/types/utils/smoothedValue/types.d.ts +16 -16
- package/types/utils/tuningConfig.d.ts +304 -287
- package/types/utils/videoFormat.d.ts +1 -1
package/types/player/types.d.ts
CHANGED
|
@@ -1,673 +1,677 @@
|
|
|
1
|
-
import { IObservable, IValueObservable, IValueSubject, ILogEntry, Kbps, Milliseconds, Seconds, IRectangle, IError, QualityLimits, VideoQuality } from
|
|
2
|
-
import { Pixel } from
|
|
1
|
+
import type { IObservable, IValueObservable, IValueSubject, ILogEntry, Kbps, Milliseconds, Seconds, IRectangle, IError, QualityLimits, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { Pixel } from "../utils/3d/types";
|
|
3
3
|
export interface StartEnd<Unit extends number> {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
start: Unit;
|
|
5
|
+
end: Unit;
|
|
6
6
|
}
|
|
7
7
|
export interface IPlayer {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
8
|
+
info: IPlayerInfo;
|
|
9
|
+
events: IPlayerEvents;
|
|
10
|
+
/**
|
|
11
|
+
* Инициализация видео
|
|
12
|
+
*/
|
|
13
|
+
initVideo(config: IConfig): IPlayer;
|
|
14
|
+
/**
|
|
15
|
+
* Полная деинициализация плеера
|
|
16
|
+
*/
|
|
17
|
+
destroy(): void;
|
|
18
|
+
prepare(): IPlayer;
|
|
19
|
+
play(): IPlayer;
|
|
20
|
+
pause(): IPlayer;
|
|
21
|
+
stop(): IPlayer;
|
|
22
|
+
/**
|
|
23
|
+
* @param time
|
|
24
|
+
* @param forcePrecise Для длинных видео перемотка по-умолчанию может быть не точной (т.к. точная выполняется долго). С этим флагом перемотка будет гарантировано точной (но возможно медленной)
|
|
25
|
+
*/
|
|
26
|
+
seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
|
|
27
|
+
/**
|
|
28
|
+
* @param percent: number [0; 1]
|
|
29
|
+
*/
|
|
30
|
+
seekPercent(percent: number): IPlayer;
|
|
31
|
+
/**
|
|
32
|
+
* @param percent: number [0; 1]
|
|
33
|
+
* @param muted Флаг, отражающий нужно ли сделать мьют.
|
|
34
|
+
* @param skipVideoElVolumeSync Флаг, который не меняет громкость у видеоэлемента
|
|
35
|
+
*/
|
|
36
|
+
setVolume(percent: number, muted?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
|
|
37
|
+
/**
|
|
38
|
+
* @param muted Флаг, отражающий нужно ли сделать мьют.
|
|
39
|
+
* @param forced Флаг, который игнорирует внутренние механики простановки mute значения
|
|
40
|
+
* и ставит то значение, которое передали в функцию.
|
|
41
|
+
* @param skipVideoElVolumeSync Флаг, который не меняет громкость у видеоэлемента
|
|
42
|
+
*/
|
|
43
|
+
setMuted(muted: boolean, forced?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
|
|
44
|
+
setAudioStream(stream: IVideoStream): IPlayer;
|
|
45
|
+
setVideoStream(stream: IVideoStream): IPlayer;
|
|
46
|
+
setQuality(quality: VideoQuality): IPlayer;
|
|
47
|
+
setAutoQuality(enable: boolean): IPlayer;
|
|
48
|
+
setAutoQualityLimits(limit: QualityLimits): IPlayer;
|
|
49
|
+
/**
|
|
50
|
+
* Установить предопределенные настройки лимитов.
|
|
51
|
+
*/
|
|
52
|
+
setPredefinedQualityLimits(type: PredefinedQualityLimits): IPlayer;
|
|
53
|
+
startCameraManualRotation(mx: number, my: number): IPlayer;
|
|
54
|
+
stopCameraManualRotation(immediate: boolean): IPlayer;
|
|
55
|
+
moveCameraFocusPX(mx: Pixel, my: Pixel, dt: number): IPlayer;
|
|
56
|
+
holdCamera(): IPlayer;
|
|
57
|
+
releaseCamera(): IPlayer;
|
|
58
|
+
setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
|
|
59
|
+
setLooped(isLooped: boolean): IPlayer;
|
|
60
|
+
setExternalTextTracks(tracks: Omit<IExternalTextTrack, "type">[]): IPlayer;
|
|
61
|
+
selectTextTrack(id: ITextTrack["id"] | undefined): IPlayer;
|
|
62
|
+
setTextTrackCueSettings(settings: ICueSettings): IPlayer;
|
|
63
|
+
setLiveLowLatency(isLowLatency: boolean): IPlayer;
|
|
64
|
+
/**
|
|
65
|
+
* Включает или отключает Chromecast
|
|
66
|
+
*/
|
|
67
|
+
toggleChromecast(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Возвращает наиболее точное время воспроизведения.
|
|
70
|
+
* Может быть точнее, чем `info.position$` в промежутках между timeupdate
|
|
71
|
+
*/
|
|
72
|
+
getExactTime(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Возвращает все логи с момента инициализации плеера
|
|
75
|
+
*/
|
|
76
|
+
getAllLogs(): ILogEntry[];
|
|
77
|
+
experimental: {
|
|
78
|
+
/**
|
|
79
|
+
* Элемент, который сейчас вставлен в container.
|
|
80
|
+
* Может быть видеоэлементом, iframe и вообще чем угодно в общем случае.
|
|
81
|
+
*/
|
|
82
|
+
element$: IValueObservable<HTMLVideoElement | undefined>;
|
|
83
|
+
enableDebugTelemetry$: IValueSubject<boolean>;
|
|
84
|
+
dumpTelemetry: (receiver: (value: Record<string, any>) => void) => void;
|
|
85
|
+
/** функция вычисления текущей позиции проигрывания из под провадера (если расчет нестандартный) */
|
|
86
|
+
getCurrentTime$: IValueSubject<(() => number) | null>;
|
|
87
|
+
};
|
|
85
88
|
}
|
|
86
89
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
* События плеера.
|
|
91
|
+
* События, начинающиеся с `will...` случаются в начале совершения действия,
|
|
92
|
+
* остальные - в момент окончания действия.
|
|
93
|
+
*/
|
|
91
94
|
export interface IPlayerEvents {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Плеер получил ссылку и начал полезную работу
|
|
97
|
+
*/
|
|
98
|
+
inited$: IObservable<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Предзагрузка окончена и плеер готов стартовать немедленно. Если предзагрузка не инициировалась, события не будет
|
|
101
|
+
*/
|
|
102
|
+
ready$: IObservable<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Видео начало воспроизведение в первый раз
|
|
105
|
+
* Соответствует первому для видео внешнему запуску воспроизведения
|
|
106
|
+
*/
|
|
107
|
+
started$: IObservable<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Любое начало воспроизведения. Первои и после паузы
|
|
110
|
+
*/
|
|
111
|
+
playing$: IObservable<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Видео на паузе
|
|
114
|
+
*/
|
|
115
|
+
paused$: IObservable<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Плеер остановлен
|
|
118
|
+
*/
|
|
119
|
+
stopped$: IObservable<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Запрошена предзагрузка видео
|
|
122
|
+
*/
|
|
123
|
+
willReady$: IObservable<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Запрошена пауза
|
|
126
|
+
*/
|
|
127
|
+
willPause$: IObservable<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Запрошено первый старт воспроизведения
|
|
130
|
+
*/
|
|
131
|
+
willStart$: IObservable<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Запрошено возобновление воспроизведения после паузы
|
|
134
|
+
*/
|
|
135
|
+
willResume$: IObservable<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Плеер будет остановлен
|
|
138
|
+
*/
|
|
139
|
+
willStop$: IObservable<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Плеер будет уничтожен, в момент события можно синхронно запросить последние данные о его состоянии.
|
|
142
|
+
*/
|
|
143
|
+
willDestruct$: IObservable<void>;
|
|
144
|
+
/**
|
|
145
|
+
* @deprecated
|
|
146
|
+
*/
|
|
147
|
+
watchCoverageRecord$: IObservable<StartEnd<Seconds>>;
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated
|
|
150
|
+
*/
|
|
151
|
+
watchCoverageLive$: IObservable<StartEnd<Milliseconds>>;
|
|
152
|
+
/**
|
|
153
|
+
* Ошибка в работе после которой воспроизведение было восстановлено
|
|
154
|
+
*/
|
|
155
|
+
managedError$: IObservable<IError>;
|
|
156
|
+
/**
|
|
157
|
+
* Критическая ошибка, воспроизведение более не возможно
|
|
158
|
+
*/
|
|
159
|
+
fatalError$: IObservable<IError>;
|
|
160
|
+
/**
|
|
161
|
+
* Проигрывание видео завершено
|
|
162
|
+
*/
|
|
163
|
+
ended$: IObservable<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Видео доиграло до конца, перемоталось в начало и заиграло снова, в параметре время в которое произошло переключение
|
|
166
|
+
*/
|
|
167
|
+
looped$: IObservable<Seconds>;
|
|
168
|
+
/**
|
|
169
|
+
* Совершена перемотка
|
|
170
|
+
*/
|
|
171
|
+
seeked$: IObservable<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Запрошена перемотка
|
|
174
|
+
*/
|
|
175
|
+
willSeek$: IObservable<ISeekRequest>;
|
|
176
|
+
/**
|
|
177
|
+
* Браузер не разрешил стартовать со звуком
|
|
178
|
+
*/
|
|
179
|
+
autoplaySoundProhibited$: IObservable<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Был отправлен запрос за манифестом
|
|
182
|
+
* Событие поддерживается не во всех провайдерах
|
|
183
|
+
*/
|
|
184
|
+
manifestRequested$: IObservable<void>;
|
|
185
|
+
/**
|
|
186
|
+
* Запрос за первыми данными манифеста был успешно получен
|
|
187
|
+
* Событие поддерживается не во всех провайдерах
|
|
188
|
+
*/
|
|
189
|
+
firstBytesManifest$: IObservable<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Запрос за манифестом был успешно получен
|
|
192
|
+
* Событие поддерживается не во всех провайдерах
|
|
193
|
+
*/
|
|
194
|
+
manifestReceived$: IObservable<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Был отправлен запрос за первыми медиа данными
|
|
197
|
+
* Событие поддерживается не во всех провайдерах
|
|
198
|
+
*/
|
|
199
|
+
firstBytesRequested$: IObservable<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Запрос за первыми медиа данными был успешно получен
|
|
202
|
+
* Событие поддерживается не во всех провайдерах
|
|
203
|
+
*/
|
|
204
|
+
firstBytesReceived$: IObservable<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Получен первый кусок контента от сервера раздачи видео
|
|
207
|
+
* Событие поддерживается не во всех провайдерах (т.к. не все способы проигрывания видео поддерживают такой интерфейс)
|
|
208
|
+
*
|
|
209
|
+
* Содержит время в миллисекундах: сколько прошло с момента инициализации
|
|
210
|
+
*/
|
|
211
|
+
firstBytes$: IObservable<Milliseconds>;
|
|
212
|
+
/**
|
|
213
|
+
* Загружена метадата в видео элементе
|
|
214
|
+
*/
|
|
215
|
+
loadedMetadata$: IObservable<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Показан первый кадр
|
|
218
|
+
*
|
|
219
|
+
* Содержит время в миллисекундах: сколько прошло времени с инициализации
|
|
220
|
+
*/
|
|
221
|
+
firstFrame$: IObservable<Milliseconds>;
|
|
222
|
+
/**
|
|
223
|
+
* Плеер готов начать воспроизведение
|
|
224
|
+
*
|
|
225
|
+
* Содержит время в миллисекундах: сколько прошло времени с инициализации
|
|
226
|
+
*/
|
|
227
|
+
canplay$: IObservable<Milliseconds>;
|
|
228
|
+
/**
|
|
229
|
+
* Логи для отладки
|
|
230
|
+
*/
|
|
231
|
+
log$: IObservable<ILogEntry>;
|
|
232
|
+
/**
|
|
233
|
+
* Ошибки запроса данных, которые должны полечится перезапуском плеера
|
|
234
|
+
*/
|
|
235
|
+
fetcherRecoverableError$: IObservable<IError>;
|
|
236
|
+
/**
|
|
237
|
+
* Произошел серьезный/долгий стол.
|
|
238
|
+
*/
|
|
239
|
+
severeStallOccured$: IObservable<boolean>;
|
|
237
240
|
}
|
|
238
241
|
export interface IPlayerInfo {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
242
|
+
/**
|
|
243
|
+
* Оптимистичный статут плеера. Так например, значение будет равно Playing сразу после вызова play().
|
|
244
|
+
* Фактическое состояние лучше отслеживать по событиям (например, playing$)
|
|
245
|
+
*/
|
|
246
|
+
playbackState$: IValueObservable<PlaybackState | undefined>;
|
|
247
|
+
/**
|
|
248
|
+
* Текущая позиция.
|
|
249
|
+
*
|
|
250
|
+
* default value: `0`
|
|
251
|
+
*/
|
|
252
|
+
position$: IValueObservable<Seconds>;
|
|
253
|
+
/**
|
|
254
|
+
* Длительность видео.
|
|
255
|
+
*
|
|
256
|
+
* default value: `Infinity`
|
|
257
|
+
*/
|
|
258
|
+
duration$: IValueObservable<Seconds>;
|
|
259
|
+
/**
|
|
260
|
+
* default value: `false`
|
|
261
|
+
*/
|
|
262
|
+
muted$: IValueObservable<boolean>;
|
|
263
|
+
/**
|
|
264
|
+
* default value: `1`
|
|
265
|
+
*/
|
|
266
|
+
volume$: IValueObservable<number>;
|
|
267
|
+
currentVideoStream$: IValueObservable<IVideoStream | undefined>;
|
|
268
|
+
availableVideoStreams$: IValueObservable<IVideoStream[]>;
|
|
269
|
+
availableVideoTracks$: IValueObservable<IVideoTrack[]>;
|
|
270
|
+
currentAudioStream$: IValueObservable<IAudioStream | undefined>;
|
|
271
|
+
availableAudioStreams$: IValueObservable<IAudioStream[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Список доступных качеств. Отсортированы по возрастанию.
|
|
274
|
+
*
|
|
275
|
+
* default value: `[]`
|
|
276
|
+
*/
|
|
277
|
+
availableQualities$: IValueObservable<VideoQuality[]>;
|
|
278
|
+
/**
|
|
279
|
+
* Список фпс для доступных качеств
|
|
280
|
+
*
|
|
281
|
+
* default value: `{}`
|
|
282
|
+
*/
|
|
283
|
+
availableQualitiesFps$: IValueObservable<FpsByQuality>;
|
|
284
|
+
/**
|
|
285
|
+
* Список доступных аудиодорожек
|
|
286
|
+
*
|
|
287
|
+
* default value: `[]`
|
|
288
|
+
*/
|
|
289
|
+
availableAudioTracks$: IValueSubject<IAudioTrack[]>;
|
|
290
|
+
/**
|
|
291
|
+
* Доступна ли аудио дорожка
|
|
292
|
+
*
|
|
293
|
+
* default value: true
|
|
294
|
+
*/
|
|
295
|
+
isAudioAvailable$: IValueSubject<boolean>;
|
|
296
|
+
/**
|
|
297
|
+
* Реальное качество, в котором сейчас воспроизводится видео.
|
|
298
|
+
*
|
|
299
|
+
* default value: `undefined`
|
|
300
|
+
*/
|
|
301
|
+
currentQuality$: IValueObservable<VideoQuality | undefined>;
|
|
302
|
+
/**
|
|
303
|
+
* Будет ли плеер адаптивно переключать качество в зависимости от канала пользователя
|
|
304
|
+
*/
|
|
305
|
+
isAutoQualityEnabled$: IValueObservable<boolean>;
|
|
306
|
+
/**
|
|
307
|
+
* Доступна ли установка лимитов авто качества
|
|
308
|
+
*/
|
|
309
|
+
autoQualityLimitingAvailable$: IValueObservable<boolean>;
|
|
310
|
+
/**
|
|
311
|
+
* Текущие лимиты авто-качества
|
|
312
|
+
*/
|
|
313
|
+
autoQualityLimits$: IValueObservable<QualityLimits>;
|
|
314
|
+
/**
|
|
315
|
+
* Отображает тип лимитов по качеству.
|
|
316
|
+
*/
|
|
317
|
+
predefinedQualityLimitType$: IValueObservable<PredefinedQualityLimits>;
|
|
318
|
+
/**
|
|
319
|
+
* Текущая скорость воспроизведения
|
|
320
|
+
*/
|
|
321
|
+
currentPlaybackRate$: IValueObservable<PlaybackRate>;
|
|
322
|
+
/**
|
|
323
|
+
* Текущий буффер плеера (тот, который содержит текущую позицию воспроизведения)
|
|
324
|
+
*
|
|
325
|
+
* default value: `undefined`
|
|
326
|
+
*/
|
|
327
|
+
currentBuffer$: IValueObservable<StartEnd<Seconds> | undefined>;
|
|
328
|
+
/**
|
|
329
|
+
* Текущий браузерный буффер (тот, который содержит текущую позицию воспроизведения)
|
|
330
|
+
*
|
|
331
|
+
* default value: `undefined`
|
|
332
|
+
*/
|
|
333
|
+
currentNativeBuffer$: IValueObservable<StartEnd<Seconds> | undefined>;
|
|
334
|
+
/**
|
|
335
|
+
* Статус буферизации видео. true если буфер пустой и воспроизведение прервано
|
|
336
|
+
* В отличии от isStalled показывает и буферизации на старте и после перемотки
|
|
337
|
+
*/
|
|
338
|
+
isBuffering$: IValueObservable<boolean>;
|
|
339
|
+
/**
|
|
340
|
+
* Статус только нежелательной буферизации, возникает при опустошении буфера в процессе воспроизведения
|
|
341
|
+
* и не возникает при начальном наполнении буфера или после перемотки
|
|
342
|
+
*/
|
|
343
|
+
isStalled$: IValueObservable<boolean>;
|
|
344
|
+
/**
|
|
345
|
+
* Закончилось ли видео
|
|
346
|
+
*/
|
|
347
|
+
isEnded$: IValueObservable<boolean>;
|
|
348
|
+
/**
|
|
349
|
+
* Зациклено ли видео
|
|
350
|
+
*/
|
|
351
|
+
isLooped$: IValueObservable<boolean>;
|
|
352
|
+
/**
|
|
353
|
+
* Бесконечный ли стрим
|
|
354
|
+
*/
|
|
355
|
+
isLive$: IValueObservable<boolean | undefined>;
|
|
356
|
+
/**
|
|
357
|
+
* Был ли завершен бесконечный стрим
|
|
358
|
+
*/
|
|
359
|
+
isLiveEnded$: IValueObservable<boolean | null>;
|
|
360
|
+
/**
|
|
361
|
+
* Доступно ли ускоренное воспроизведении в лайв трансляции
|
|
362
|
+
*/
|
|
363
|
+
canChangePlaybackSpeed$: IValueObservable<boolean | undefined>;
|
|
364
|
+
/**
|
|
365
|
+
* Играем ли мы сейчас самый актуальный кадр лайва
|
|
366
|
+
*/
|
|
367
|
+
atLiveEdge$: IValueObservable<boolean | undefined>;
|
|
368
|
+
/**
|
|
369
|
+
* Может ли плеер доиграть буффер законченной трансляции при перемотке
|
|
370
|
+
*/
|
|
371
|
+
canPlayLiveTailBuffer$: IValueObservable<boolean>;
|
|
372
|
+
/**
|
|
373
|
+
* Играем ли мы сейчас самый старый кадр лайва
|
|
374
|
+
*/
|
|
375
|
+
atLiveDurationEdge$: IValueObservable<boolean | undefined>;
|
|
376
|
+
/**
|
|
377
|
+
* Серверное время текущего кадра
|
|
378
|
+
*/
|
|
379
|
+
liveTime$: IValueObservable<Milliseconds | undefined>;
|
|
380
|
+
/**
|
|
381
|
+
* Буферное время текущего кадра
|
|
382
|
+
*/
|
|
383
|
+
liveBufferTime$: IValueObservable<Milliseconds | undefined>;
|
|
384
|
+
/**
|
|
385
|
+
* Задержка лайв стрима
|
|
386
|
+
*/
|
|
387
|
+
liveLatency$: IValueObservable<Milliseconds | undefined>;
|
|
388
|
+
/**
|
|
389
|
+
* Формат, в котором сейчас воспроизводится видео
|
|
390
|
+
*/
|
|
391
|
+
currentFormat$: IValueObservable<VideoFormat | undefined>;
|
|
392
|
+
/**
|
|
393
|
+
* Список всех доступных субтитров
|
|
394
|
+
*/
|
|
395
|
+
availableTextTracks$: IValueObservable<ITextTrack[]>;
|
|
396
|
+
/**
|
|
397
|
+
* Выбранная и отображаемая дорожка субтитров
|
|
398
|
+
*/
|
|
399
|
+
currentTextTrack$: IValueObservable<ITextTrack["id"] | undefined>;
|
|
400
|
+
/**
|
|
401
|
+
* Рассчитанная ширина канала пользователя
|
|
402
|
+
*/
|
|
403
|
+
throughputEstimation$: IValueObservable<Kbps | undefined>;
|
|
404
|
+
/**
|
|
405
|
+
* Round-Trip-Time, время от отправки запроса до получения ответа. Весьма неточное.
|
|
406
|
+
*/
|
|
407
|
+
rttEstimation$: IValueObservable<Milliseconds | undefined>;
|
|
408
|
+
/**
|
|
409
|
+
* Битрейт текущей видео-дорожки
|
|
410
|
+
*/
|
|
411
|
+
videoBitrate$: IValueObservable<Kbps | undefined>;
|
|
412
|
+
/**
|
|
413
|
+
* Хост с которого воспроизводится видео
|
|
414
|
+
*/
|
|
415
|
+
hostname$: IValueObservable<string | undefined>;
|
|
416
|
+
/**
|
|
417
|
+
* Тип HTTP соединения последнего запроса
|
|
418
|
+
*/
|
|
419
|
+
httpConnectionType$: IValueObservable<HttpConnectionType | undefined>;
|
|
420
|
+
/**
|
|
421
|
+
* Было ли переиспользовано последнее HTTP соединение
|
|
422
|
+
*/
|
|
423
|
+
httpConnectionReused$: IValueObservable<boolean | undefined>;
|
|
424
|
+
/**
|
|
425
|
+
* Дополнительные данные-метрики по HTTP соединению
|
|
426
|
+
*/
|
|
427
|
+
httpConnectionMetrics$: IValueSubject<HttpConnectionMetrics | undefined>;
|
|
428
|
+
/**
|
|
429
|
+
* Данные по загрузке по сети
|
|
430
|
+
*/
|
|
431
|
+
httpDownloadMetrics$: IValueObservable<HttpDownloadMetrics | undefined>;
|
|
432
|
+
/**
|
|
433
|
+
* Состояние подключения Chromecast
|
|
434
|
+
*/
|
|
435
|
+
chromecastState$: IValueObservable<ChromecastState>;
|
|
436
|
+
/**
|
|
437
|
+
* Имя устройства, куда выводится видео через Chromecast.
|
|
438
|
+
* `undefined`, если видео не играет на Chromecast устройстве
|
|
439
|
+
*/
|
|
440
|
+
chromecastDeviceName$: IValueObservable<string | undefined>;
|
|
441
|
+
/**
|
|
442
|
+
* Фактический размер видео
|
|
443
|
+
*/
|
|
444
|
+
intrinsicVideoSize$: IValueObservable<{
|
|
445
|
+
width: number;
|
|
446
|
+
height: number;
|
|
447
|
+
} | undefined>;
|
|
448
|
+
/**
|
|
449
|
+
* Признак того, что сейчас проигрывается 3D-видео
|
|
450
|
+
*/
|
|
451
|
+
is3DVideo$: IValueObservable<boolean>;
|
|
452
|
+
/**
|
|
453
|
+
* Где сейчас рисуется картинка
|
|
454
|
+
*/
|
|
455
|
+
surface$: IValueObservable<Surface | undefined>;
|
|
456
|
+
/**
|
|
457
|
+
* Список всех доступных источников
|
|
458
|
+
*/
|
|
459
|
+
availableSources$: IValueObservable<ISources | undefined>;
|
|
460
|
+
/**
|
|
461
|
+
* Длина видео сегмента
|
|
462
|
+
*/
|
|
463
|
+
currentVideoSegmentLength$: IValueSubject<number>;
|
|
464
|
+
/**
|
|
465
|
+
* Длина аудио сегмента
|
|
466
|
+
*/
|
|
467
|
+
currentAudioSegmentLength$: IValueSubject<number>;
|
|
465
468
|
}
|
|
466
469
|
export declare enum PlaybackState {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
470
|
+
STOPPED = "stopped",
|
|
471
|
+
READY = "ready",
|
|
472
|
+
PLAYING = "playing",
|
|
473
|
+
PAUSED = "paused"
|
|
471
474
|
}
|
|
472
475
|
export interface IVolumeState {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
476
|
+
/**
|
|
477
|
+
* range: [0;1]
|
|
478
|
+
*/
|
|
479
|
+
volume: number;
|
|
480
|
+
muted: boolean;
|
|
478
481
|
}
|
|
479
482
|
export interface IConfig {
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
483
|
+
container: string | HTMLElement;
|
|
484
|
+
sources: ISources;
|
|
485
|
+
meta?: IMetadata;
|
|
486
|
+
failoverHosts?: string[];
|
|
487
|
+
volumeMultiplier?: number;
|
|
488
|
+
panelSize?: IRectangle;
|
|
489
|
+
isMuted?: boolean;
|
|
486
490
|
}
|
|
487
491
|
export interface ISources {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
492
|
+
[VideoFormat.MPEG]?: IMpegSource;
|
|
493
|
+
[VideoFormat.DASH]?: IDashURLSource;
|
|
494
|
+
[VideoFormat.DASH_SEP]?: IDashURLSource;
|
|
495
|
+
[VideoFormat.DASH_WEBM]?: IDashURLSource;
|
|
496
|
+
[VideoFormat.DASH_WEBM_AV1]?: IDashURLSource;
|
|
497
|
+
[VideoFormat.DASH_STREAMS]?: IDashURLSource;
|
|
498
|
+
[VideoFormat.DASH_ONDEMAND]?: IDashURLSource;
|
|
499
|
+
[VideoFormat.DASH_LIVE]?: IDashURLSource;
|
|
500
|
+
[VideoFormat.DASH_LIVE_CMAF]?: IDashURLSource;
|
|
501
|
+
[VideoFormat.DASH_LIVE_WEBM]?: IDashURLSource;
|
|
502
|
+
[VideoFormat.HLS]?: IHLSSource;
|
|
503
|
+
[VideoFormat.HLS_ONDEMAND]?: IHLSSource;
|
|
504
|
+
[VideoFormat.HLS_FMP4]?: IHLSSource;
|
|
505
|
+
[VideoFormat.HLS_LIVE]?: IHLSLiveSource;
|
|
506
|
+
[VideoFormat.HLS_LIVE_CMAF]?: IHLSLiveSource;
|
|
507
|
+
[VideoFormat.WEB_RTC_LIVE]?: URLSource;
|
|
504
508
|
}
|
|
505
509
|
export interface IMetadata {
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
510
|
+
title?: string;
|
|
511
|
+
subtitle?: string;
|
|
512
|
+
videoId?: string;
|
|
509
513
|
}
|
|
510
514
|
export type QualitySetSource = Partial<Record<VideoQuality, string>>;
|
|
511
515
|
export type URLSource = {
|
|
512
|
-
|
|
513
|
-
|
|
516
|
+
type: "url";
|
|
517
|
+
url: string;
|
|
514
518
|
};
|
|
515
519
|
export type RawSource = {
|
|
516
|
-
|
|
517
|
-
|
|
520
|
+
type: "raw";
|
|
521
|
+
raw: string;
|
|
518
522
|
};
|
|
519
523
|
export type URLSourceWithSeek = URLSource & Partial<{
|
|
520
|
-
|
|
524
|
+
maxSeekBackTime: Milliseconds;
|
|
521
525
|
}>;
|
|
522
526
|
export type IMpegSource = QualitySetSource;
|
|
523
527
|
export type IDashURLSource = URLSource & {
|
|
524
|
-
|
|
528
|
+
compatibilityMode?: boolean;
|
|
525
529
|
};
|
|
526
530
|
export type IDashSource = URLSource | RawSource;
|
|
527
531
|
export type IHLSSource = URLSource;
|
|
528
532
|
export type IHLSLiveSource = URLSourceWithSeek;
|
|
529
533
|
export declare enum VideoFormat {
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
534
|
+
MPEG = "MPEG",
|
|
535
|
+
/** @deprecated Больше не транскодируется */
|
|
536
|
+
DASH = "DASH",
|
|
537
|
+
DASH_SEP = "DASH_SEP",
|
|
538
|
+
/** @deprecated Используйте DASH_SEP */ DASH_SEP_VK = "DASH_SEP",
|
|
539
|
+
DASH_WEBM = "DASH_WEBM",
|
|
540
|
+
DASH_WEBM_AV1 = "DASH_WEBM_AV1",
|
|
541
|
+
DASH_STREAMS = "DASH_STREAMS",
|
|
542
|
+
/** @deprecated Используйте DASH_WEBM */ DASH_WEBM_VK = "DASH_WEBM",
|
|
543
|
+
DASH_ONDEMAND = "DASH_ONDEMAND",
|
|
544
|
+
/** @deprecated Используйте DASH_ONDEMAND */ DASH_ONDEMAND_VK = "DASH_ONDEMAND",
|
|
545
|
+
DASH_LIVE = "DASH_LIVE",
|
|
546
|
+
DASH_LIVE_CMAF = "DASH_LIVE_CMAF",
|
|
547
|
+
/** @deprecated */
|
|
548
|
+
DASH_LIVE_WEBM = "DASH_LIVE_WEBM",
|
|
549
|
+
HLS = "HLS",
|
|
550
|
+
HLS_ONDEMAND = "HLS_ONDEMAND",
|
|
551
|
+
/** @deprecated Используйте HLS */ HLS_JS = "HLS",
|
|
552
|
+
HLS_FMP4 = "HLS_FMP4",
|
|
553
|
+
HLS_LIVE = "HLS_LIVE",
|
|
554
|
+
HLS_LIVE_CMAF = "HLS_LIVE_CMAF",
|
|
555
|
+
WEB_RTC_LIVE = "WEB_RTC_LIVE"
|
|
552
556
|
}
|
|
553
557
|
export declare enum VideoCodec {
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
+
AV1 = "av1",
|
|
559
|
+
VP9 = "vp9",
|
|
560
|
+
AVC1 = "avc1",
|
|
561
|
+
HEV1 = "hev1"
|
|
558
562
|
}
|
|
559
563
|
export declare enum AudioCodec {
|
|
560
|
-
|
|
561
|
-
|
|
564
|
+
OPUS = "opus",
|
|
565
|
+
MP4A = "mp4a"
|
|
562
566
|
}
|
|
563
567
|
export interface IVideoStream {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
568
|
+
id: string;
|
|
569
|
+
language?: string;
|
|
570
|
+
hdr?: boolean;
|
|
571
|
+
codec?: string;
|
|
572
|
+
label?: string;
|
|
569
573
|
}
|
|
570
574
|
export interface IBaseTrack {
|
|
571
|
-
|
|
572
|
-
|
|
575
|
+
id: string;
|
|
576
|
+
bitrate?: Kbps;
|
|
573
577
|
}
|
|
574
578
|
export interface IVideoTrack extends IBaseTrack {
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
579
|
+
quality: VideoQuality;
|
|
580
|
+
size?: IRectangle;
|
|
581
|
+
fps?: number;
|
|
582
|
+
streamId?: IVideoStream["id"];
|
|
583
|
+
tvDisabled?: boolean;
|
|
580
584
|
}
|
|
581
585
|
export interface IAudioStream {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
586
|
+
id: string;
|
|
587
|
+
language?: string;
|
|
588
|
+
label?: string;
|
|
589
|
+
codec?: string;
|
|
590
|
+
isDefault?: boolean;
|
|
587
591
|
}
|
|
588
592
|
export type IAudioTrack = IBaseTrack;
|
|
589
593
|
interface ITextTrackBase {
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
594
|
+
type: "external" | "internal";
|
|
595
|
+
id: string;
|
|
596
|
+
language?: string;
|
|
597
|
+
label?: string;
|
|
598
|
+
url?: string;
|
|
599
|
+
isAuto?: boolean;
|
|
596
600
|
}
|
|
597
601
|
export interface IExternalTextTrack extends ITextTrackBase {
|
|
598
|
-
|
|
599
|
-
|
|
602
|
+
type: "external";
|
|
603
|
+
url: string;
|
|
600
604
|
}
|
|
601
605
|
export interface IInternalTextTrack extends ITextTrackBase {
|
|
602
|
-
|
|
603
|
-
|
|
606
|
+
type: "internal";
|
|
607
|
+
url: string;
|
|
604
608
|
}
|
|
605
609
|
export type ITextTrack = IExternalTextTrack | IInternalTextTrack;
|
|
606
610
|
export interface ICueSettings {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
+
align?: "left" | "center" | "right";
|
|
612
|
+
position?: number | "auto";
|
|
613
|
+
size?: number;
|
|
614
|
+
line?: number | "auto";
|
|
611
615
|
}
|
|
612
616
|
export declare enum VideoDestination {
|
|
613
|
-
|
|
614
|
-
|
|
617
|
+
SCREEN = "SCREEN",
|
|
618
|
+
CHROMECAST = "CHROMECAST"
|
|
615
619
|
}
|
|
616
620
|
export declare enum ChromecastState {
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
+
NOT_AVAILABLE = "NOT_AVAILABLE",
|
|
622
|
+
AVAILABLE = "AVAILABLE",
|
|
623
|
+
CONNECTING = "CONNECTING",
|
|
624
|
+
CONNECTED = "CONNECTED"
|
|
621
625
|
}
|
|
622
626
|
export interface ISeekRequest {
|
|
623
|
-
|
|
624
|
-
|
|
627
|
+
from: Seconds;
|
|
628
|
+
to: Seconds;
|
|
625
629
|
}
|
|
626
630
|
export declare enum HttpConnectionType {
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
631
|
+
HTTP1 = "http1",
|
|
632
|
+
HTTP2 = "http2",
|
|
633
|
+
QUIC = "quic"
|
|
630
634
|
}
|
|
631
635
|
export interface HttpConnectionMetrics {
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
636
|
+
dnsResolveTime: number;
|
|
637
|
+
tcpHandshakeTime: number;
|
|
638
|
+
tlsHandshakeTime: number;
|
|
639
|
+
totalConnectTime: number;
|
|
640
|
+
url: string;
|
|
641
|
+
networkType: string;
|
|
638
642
|
}
|
|
639
643
|
export interface HttpDownloadMetrics {
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
644
|
+
bytes: number;
|
|
645
|
+
speed: number;
|
|
646
|
+
url: string;
|
|
643
647
|
}
|
|
644
648
|
export declare enum SeekOperationState {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
649
|
+
None = "none",
|
|
650
|
+
Requested = "requested",
|
|
651
|
+
Applying = "applying"
|
|
648
652
|
}
|
|
649
653
|
type SeekStateNone = {
|
|
650
|
-
|
|
654
|
+
state: SeekOperationState.None;
|
|
651
655
|
};
|
|
652
656
|
type SeekStateNotNone = {
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
657
|
+
state: Exclude<SeekOperationState, SeekOperationState.None>;
|
|
658
|
+
position: Milliseconds;
|
|
659
|
+
forcePrecise: boolean;
|
|
656
660
|
};
|
|
657
661
|
export type SeekState = SeekStateNone | SeekStateNotNone;
|
|
658
662
|
export type FpsByQuality = Partial<Record<VideoQuality, number>>;
|
|
659
663
|
export type PlaybackRate = number;
|
|
660
664
|
export declare enum Surface {
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
665
|
+
NONE = "none",
|
|
666
|
+
INLINE = "inline",
|
|
667
|
+
FULLSCREEN = "fullscreen",
|
|
668
|
+
SECOND_SCREEN = "second_screen",
|
|
669
|
+
PIP = "pip",
|
|
670
|
+
INVISIBLE = "invisible"
|
|
667
671
|
}
|
|
668
672
|
export declare enum PredefinedQualityLimits {
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
673
|
+
TRAFFIC_SAVING = "traffic_saving",
|
|
674
|
+
HIGH_QUALITY = "high_quality",
|
|
675
|
+
UNKNOWN = "unknown"
|
|
672
676
|
}
|
|
673
677
|
export {};
|