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