@vkontakte/videoplayer-core 2.0.154-dev.6d21d9b3.0 → 2.0.154-dev.784f4859.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/es2018.cjs +77 -131
- package/es2018.esm.js +75 -129
- package/es2024.cjs +81 -135
- package/es2024.esm.js +79 -133
- package/esnext.cjs +81 -135
- package/esnext.esm.js +79 -133
- package/evergreen.esm.js +80 -134
- 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 +217 -210
- package/types/player/types.d.ts +589 -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 +106 -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 +32 -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 +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 +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 +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 +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 +28 -28
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +18 -19
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
- package/types/providers/MpegProvider/index.d.ts +16 -17
- package/types/providers/ProviderContainer/index.d.ts +45 -46
- 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 +57 -57
- package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
- package/types/providers/types.d.ts +102 -103
- 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 +2 -2
- 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 +131 -133
- 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 +8 -12
- 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 +276 -275
- package/types/utils/videoFormat.d.ts +1 -1
- package/es2015.cjs +0 -184
- package/es2015.esm.js +0 -184
package/types/player/types.d.ts
CHANGED
|
@@ -1,671 +1,671 @@
|
|
|
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
|
+
*/
|
|
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
|
-
|
|
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
|
+
currentAudioStream$: IValueObservable<IAudioStream | undefined>;
|
|
267
|
+
availableAudioStreams$: IValueObservable<IAudioStream[]>;
|
|
268
|
+
/**
|
|
269
|
+
* Список доступных качеств. Отсортированы по возрастанию.
|
|
270
|
+
*
|
|
271
|
+
* default value: `[]`
|
|
272
|
+
*/
|
|
273
|
+
availableQualities$: IValueObservable<VideoQuality[]>;
|
|
274
|
+
/**
|
|
275
|
+
* Список фпс для доступных качеств
|
|
276
|
+
*
|
|
277
|
+
* default value: `{}`
|
|
278
|
+
*/
|
|
279
|
+
availableQualitiesFps$: IValueObservable<FpsByQuality>;
|
|
280
|
+
/**
|
|
281
|
+
* Список доступных аудиодорожек
|
|
282
|
+
*
|
|
283
|
+
* default value: `[]`
|
|
284
|
+
*/
|
|
285
|
+
availableAudioTracks$: IValueSubject<IAudioTrack[]>;
|
|
286
|
+
/**
|
|
287
|
+
* Доступна ли аудио дорожка
|
|
288
|
+
*
|
|
289
|
+
* default value: true
|
|
290
|
+
*/
|
|
291
|
+
isAudioAvailable$: IValueSubject<boolean>;
|
|
292
|
+
/**
|
|
293
|
+
* Реальное качество, в котором сейчас воспроизводится видео.
|
|
294
|
+
*
|
|
295
|
+
* default value: `undefined`
|
|
296
|
+
*/
|
|
297
|
+
currentQuality$: IValueObservable<VideoQuality | undefined>;
|
|
298
|
+
/**
|
|
299
|
+
* Будет ли плеер адаптивно переключать качество в зависимости от канала пользователя
|
|
300
|
+
*/
|
|
301
|
+
isAutoQualityEnabled$: IValueObservable<boolean>;
|
|
302
|
+
/**
|
|
303
|
+
* Доступна ли установка лимитов авто качества
|
|
304
|
+
*/
|
|
305
|
+
autoQualityLimitingAvailable$: IValueObservable<boolean>;
|
|
306
|
+
/**
|
|
307
|
+
* Текущие лимиты авто-качества
|
|
308
|
+
*/
|
|
309
|
+
autoQualityLimits$: IValueObservable<QualityLimits>;
|
|
310
|
+
/**
|
|
311
|
+
* Отображает тип лимитов по качеству.
|
|
312
|
+
*/
|
|
313
|
+
predefinedQualityLimitType$: IValueObservable<PredefinedQualityLimits>;
|
|
314
|
+
/**
|
|
315
|
+
* Текущая скорость воспроизведения
|
|
316
|
+
*/
|
|
317
|
+
currentPlaybackRate$: IValueObservable<PlaybackRate>;
|
|
318
|
+
/**
|
|
319
|
+
* Текущий буффер плеера (тот, который содержит текущую позицию воспроизведения)
|
|
320
|
+
*
|
|
321
|
+
* default value: `undefined`
|
|
322
|
+
*/
|
|
323
|
+
currentBuffer$: IValueObservable<StartEnd<Seconds> | undefined>;
|
|
324
|
+
/**
|
|
325
|
+
* Текущий браузерный буффер (тот, который содержит текущую позицию воспроизведения)
|
|
326
|
+
*
|
|
327
|
+
* default value: `undefined`
|
|
328
|
+
*/
|
|
329
|
+
currentNativeBuffer$: IValueObservable<StartEnd<Seconds> | undefined>;
|
|
330
|
+
/**
|
|
331
|
+
* Статус буферизации видео. true если буфер пустой и воспроизведение прервано
|
|
332
|
+
* В отличии от isStalled показывает и буферизации на старте и после перемотки
|
|
333
|
+
*/
|
|
334
|
+
isBuffering$: IValueObservable<boolean>;
|
|
335
|
+
/**
|
|
336
|
+
* Статус только нежелательной буферизации, возникает при опустошении буфера в процессе воспроизведения
|
|
337
|
+
* и не возникает при начальном наполнении буфера или после перемотки
|
|
338
|
+
*/
|
|
339
|
+
isStalled$: IValueObservable<boolean>;
|
|
340
|
+
/**
|
|
341
|
+
* Закончилось ли видео
|
|
342
|
+
*/
|
|
343
|
+
isEnded$: IValueObservable<boolean>;
|
|
344
|
+
/**
|
|
345
|
+
* Зациклено ли видео
|
|
346
|
+
*/
|
|
347
|
+
isLooped$: IValueObservable<boolean>;
|
|
348
|
+
/**
|
|
349
|
+
* Бесконечный ли стрим
|
|
350
|
+
*/
|
|
351
|
+
isLive$: IValueObservable<boolean | undefined>;
|
|
352
|
+
/**
|
|
353
|
+
* Был ли завершен бесконечный стрим
|
|
354
|
+
*/
|
|
355
|
+
isLiveEnded$: IValueObservable<boolean | null>;
|
|
356
|
+
/**
|
|
357
|
+
* Доступно ли ускоренное воспроизведении в лайв трансляции
|
|
358
|
+
*/
|
|
359
|
+
canChangePlaybackSpeed$: IValueObservable<boolean | undefined>;
|
|
360
|
+
/**
|
|
361
|
+
* Играем ли мы сейчас самый актуальный кадр лайва
|
|
362
|
+
*/
|
|
363
|
+
atLiveEdge$: IValueObservable<boolean | undefined>;
|
|
364
|
+
/**
|
|
365
|
+
* Может ли плеер доиграть буффер законченной трансляции при перемотке
|
|
366
|
+
*/
|
|
367
|
+
canPlayLiveTailBuffer$: IValueObservable<boolean>;
|
|
368
|
+
/**
|
|
369
|
+
* Играем ли мы сейчас самый старый кадр лайва
|
|
370
|
+
*/
|
|
371
|
+
atLiveDurationEdge$: IValueObservable<boolean | undefined>;
|
|
372
|
+
/**
|
|
373
|
+
* Серверное время текущего кадра
|
|
374
|
+
*/
|
|
375
|
+
liveTime$: IValueObservable<Milliseconds | undefined>;
|
|
376
|
+
/**
|
|
377
|
+
* Буферное время текущего кадра
|
|
378
|
+
*/
|
|
379
|
+
liveBufferTime$: IValueObservable<Milliseconds | undefined>;
|
|
380
|
+
/**
|
|
381
|
+
* Задержка лайв стрима
|
|
382
|
+
*/
|
|
383
|
+
liveLatency$: IValueObservable<Milliseconds | undefined>;
|
|
384
|
+
/**
|
|
385
|
+
* Формат, в котором сейчас воспроизводится видео
|
|
386
|
+
*/
|
|
387
|
+
currentFormat$: IValueObservable<VideoFormat | undefined>;
|
|
388
|
+
/**
|
|
389
|
+
* Список всех доступных субтитров
|
|
390
|
+
*/
|
|
391
|
+
availableTextTracks$: IValueObservable<ITextTrack[]>;
|
|
392
|
+
/**
|
|
393
|
+
* Выбранная и отображаемая дорожка субтитров
|
|
394
|
+
*/
|
|
395
|
+
currentTextTrack$: IValueObservable<ITextTrack["id"] | undefined>;
|
|
396
|
+
/**
|
|
397
|
+
* Рассчитанная ширина канала пользователя
|
|
398
|
+
*/
|
|
399
|
+
throughputEstimation$: IValueObservable<Kbps | undefined>;
|
|
400
|
+
/**
|
|
401
|
+
* Round-Trip-Time, время от отправки запроса до получения ответа. Весьма неточное.
|
|
402
|
+
*/
|
|
403
|
+
rttEstimation$: IValueObservable<Milliseconds | undefined>;
|
|
404
|
+
/**
|
|
405
|
+
* Битрейт текущей видео-дорожки
|
|
406
|
+
*/
|
|
407
|
+
videoBitrate$: IValueObservable<Kbps | undefined>;
|
|
408
|
+
/**
|
|
409
|
+
* Хост с которого воспроизводится видео
|
|
410
|
+
*/
|
|
411
|
+
hostname$: IValueObservable<string | undefined>;
|
|
412
|
+
/**
|
|
413
|
+
* Тип HTTP соединения последнего запроса
|
|
414
|
+
*/
|
|
415
|
+
httpConnectionType$: IValueObservable<HttpConnectionType | undefined>;
|
|
416
|
+
/**
|
|
417
|
+
* Было ли переиспользовано последнее HTTP соединение
|
|
418
|
+
*/
|
|
419
|
+
httpConnectionReused$: IValueObservable<boolean | undefined>;
|
|
420
|
+
/**
|
|
421
|
+
* Дополнительные данные-метрики по HTTP соединению
|
|
422
|
+
*/
|
|
423
|
+
httpConnectionMetrics$: IValueSubject<HttpConnectionMetrics | undefined>;
|
|
424
|
+
/**
|
|
425
|
+
* Данные по загрузке по сети
|
|
426
|
+
*/
|
|
427
|
+
httpDownloadMetrics$: IValueObservable<HttpDownloadMetrics | undefined>;
|
|
428
|
+
/**
|
|
429
|
+
* Состояние подключения Chromecast
|
|
430
|
+
*/
|
|
431
|
+
chromecastState$: IValueObservable<ChromecastState>;
|
|
432
|
+
/**
|
|
433
|
+
* Имя устройства, куда выводится видео через Chromecast.
|
|
434
|
+
* `undefined`, если видео не играет на Chromecast устройстве
|
|
435
|
+
*/
|
|
436
|
+
chromecastDeviceName$: IValueObservable<string | undefined>;
|
|
437
|
+
/**
|
|
438
|
+
* Фактический размер видео
|
|
439
|
+
*/
|
|
440
|
+
intrinsicVideoSize$: IValueObservable<{
|
|
441
|
+
width: number;
|
|
442
|
+
height: number;
|
|
443
|
+
} | undefined>;
|
|
444
|
+
/**
|
|
445
|
+
* Признак того, что сейчас проигрывается 3D-видео
|
|
446
|
+
*/
|
|
447
|
+
is3DVideo$: IValueObservable<boolean>;
|
|
448
|
+
/**
|
|
449
|
+
* Где сейчас рисуется картинка
|
|
450
|
+
*/
|
|
451
|
+
surface$: IValueObservable<Surface | undefined>;
|
|
452
|
+
/**
|
|
453
|
+
* Список всех доступных источников
|
|
454
|
+
*/
|
|
455
|
+
availableSources$: IValueObservable<ISources | undefined>;
|
|
456
|
+
/**
|
|
457
|
+
* Длина видео сегмента
|
|
458
|
+
*/
|
|
459
|
+
currentVideoSegmentLength$: IValueSubject<number>;
|
|
460
|
+
/**
|
|
461
|
+
* Длина аудио сегмента
|
|
462
|
+
*/
|
|
463
|
+
currentAudioSegmentLength$: IValueSubject<number>;
|
|
464
464
|
}
|
|
465
465
|
export declare enum PlaybackState {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
466
|
+
STOPPED = "stopped",
|
|
467
|
+
READY = "ready",
|
|
468
|
+
PLAYING = "playing",
|
|
469
|
+
PAUSED = "paused"
|
|
470
470
|
}
|
|
471
471
|
export interface IVolumeState {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
472
|
+
/**
|
|
473
|
+
* range: [0;1]
|
|
474
|
+
*/
|
|
475
|
+
volume: number;
|
|
476
|
+
muted: boolean;
|
|
477
477
|
}
|
|
478
478
|
export interface IConfig {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
479
|
+
container: string | HTMLElement;
|
|
480
|
+
sources: ISources;
|
|
481
|
+
meta?: IMetadata;
|
|
482
|
+
failoverHosts?: string[];
|
|
483
|
+
volumeMultiplier?: number;
|
|
484
|
+
panelSize?: IRectangle;
|
|
485
485
|
}
|
|
486
486
|
export interface ISources {
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
487
|
+
[VideoFormat.MPEG]?: IMpegSource;
|
|
488
|
+
[VideoFormat.DASH]?: IDashURLSource;
|
|
489
|
+
[VideoFormat.DASH_SEP]?: IDashURLSource;
|
|
490
|
+
[VideoFormat.DASH_WEBM]?: IDashURLSource;
|
|
491
|
+
[VideoFormat.DASH_WEBM_AV1]?: IDashURLSource;
|
|
492
|
+
[VideoFormat.DASH_STREAMS]?: IDashURLSource;
|
|
493
|
+
[VideoFormat.DASH_ONDEMAND]?: IDashURLSource;
|
|
494
|
+
[VideoFormat.DASH_LIVE]?: IDashURLSource;
|
|
495
|
+
[VideoFormat.DASH_LIVE_CMAF]?: IDashURLSource;
|
|
496
|
+
[VideoFormat.DASH_LIVE_WEBM]?: IDashURLSource;
|
|
497
|
+
[VideoFormat.HLS]?: IHLSSource;
|
|
498
|
+
[VideoFormat.HLS_ONDEMAND]?: IHLSSource;
|
|
499
|
+
[VideoFormat.HLS_FMP4]?: IHLSSource;
|
|
500
|
+
[VideoFormat.HLS_LIVE]?: IHLSLiveSource;
|
|
501
|
+
[VideoFormat.HLS_LIVE_CMAF]?: IHLSLiveSource;
|
|
502
|
+
[VideoFormat.WEB_RTC_LIVE]?: URLSource;
|
|
503
503
|
}
|
|
504
504
|
export interface IMetadata {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
505
|
+
title?: string;
|
|
506
|
+
subtitle?: string;
|
|
507
|
+
videoId?: string;
|
|
508
508
|
}
|
|
509
509
|
export type QualitySetSource = Partial<Record<VideoQuality, string>>;
|
|
510
510
|
export type URLSource = {
|
|
511
|
-
|
|
512
|
-
|
|
511
|
+
type: "url";
|
|
512
|
+
url: string;
|
|
513
513
|
};
|
|
514
514
|
export type RawSource = {
|
|
515
|
-
|
|
516
|
-
|
|
515
|
+
type: "raw";
|
|
516
|
+
raw: string;
|
|
517
517
|
};
|
|
518
518
|
export type URLSourceWithSeek = URLSource & Partial<{
|
|
519
|
-
|
|
519
|
+
maxSeekBackTime: Milliseconds;
|
|
520
520
|
}>;
|
|
521
521
|
export type IMpegSource = QualitySetSource;
|
|
522
522
|
export type IDashURLSource = URLSource & {
|
|
523
|
-
|
|
523
|
+
compatibilityMode?: boolean;
|
|
524
524
|
};
|
|
525
525
|
export type IDashSource = URLSource | RawSource;
|
|
526
526
|
export type IHLSSource = URLSource;
|
|
527
527
|
export type IHLSLiveSource = URLSourceWithSeek;
|
|
528
528
|
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
|
-
|
|
529
|
+
MPEG = "MPEG",
|
|
530
|
+
/** @deprecated Больше не транскодируется */
|
|
531
|
+
DASH = "DASH",
|
|
532
|
+
DASH_SEP = "DASH_SEP",
|
|
533
|
+
/** @deprecated Используйте DASH_SEP */ DASH_SEP_VK = "DASH_SEP",
|
|
534
|
+
DASH_WEBM = "DASH_WEBM",
|
|
535
|
+
DASH_WEBM_AV1 = "DASH_WEBM_AV1",
|
|
536
|
+
DASH_STREAMS = "DASH_STREAMS",
|
|
537
|
+
/** @deprecated Используйте DASH_WEBM */ DASH_WEBM_VK = "DASH_WEBM",
|
|
538
|
+
DASH_ONDEMAND = "DASH_ONDEMAND",
|
|
539
|
+
/** @deprecated Используйте DASH_ONDEMAND */ DASH_ONDEMAND_VK = "DASH_ONDEMAND",
|
|
540
|
+
DASH_LIVE = "DASH_LIVE",
|
|
541
|
+
DASH_LIVE_CMAF = "DASH_LIVE_CMAF",
|
|
542
|
+
/** @deprecated */
|
|
543
|
+
DASH_LIVE_WEBM = "DASH_LIVE_WEBM",
|
|
544
|
+
HLS = "HLS",
|
|
545
|
+
HLS_ONDEMAND = "HLS_ONDEMAND",
|
|
546
|
+
/** @deprecated Используйте HLS */ HLS_JS = "HLS",
|
|
547
|
+
HLS_FMP4 = "HLS_FMP4",
|
|
548
|
+
HLS_LIVE = "HLS_LIVE",
|
|
549
|
+
HLS_LIVE_CMAF = "HLS_LIVE_CMAF",
|
|
550
|
+
WEB_RTC_LIVE = "WEB_RTC_LIVE"
|
|
551
551
|
}
|
|
552
552
|
export declare enum VideoCodec {
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
553
|
+
AV1 = "av1",
|
|
554
|
+
VP9 = "vp9",
|
|
555
|
+
AVC1 = "avc1",
|
|
556
|
+
HEV1 = "hev1"
|
|
557
557
|
}
|
|
558
558
|
export declare enum AudioCodec {
|
|
559
|
-
|
|
560
|
-
|
|
559
|
+
OPUS = "opus",
|
|
560
|
+
MP4A = "mp4a"
|
|
561
561
|
}
|
|
562
562
|
export interface IVideoStream {
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
563
|
+
id: string;
|
|
564
|
+
language?: string;
|
|
565
|
+
hdr?: boolean;
|
|
566
|
+
codec?: string;
|
|
567
|
+
label?: string;
|
|
568
568
|
}
|
|
569
569
|
export interface IBaseTrack {
|
|
570
|
-
|
|
571
|
-
|
|
570
|
+
id: string;
|
|
571
|
+
bitrate?: Kbps;
|
|
572
572
|
}
|
|
573
573
|
export interface IVideoTrack extends IBaseTrack {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
574
|
+
quality: VideoQuality;
|
|
575
|
+
size?: IRectangle;
|
|
576
|
+
fps?: number;
|
|
577
|
+
streamId?: IVideoStream["id"];
|
|
578
578
|
}
|
|
579
579
|
export interface IAudioStream {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
580
|
+
id: string;
|
|
581
|
+
language?: string;
|
|
582
|
+
label?: string;
|
|
583
|
+
codec?: string;
|
|
584
|
+
isDefault?: boolean;
|
|
585
585
|
}
|
|
586
586
|
export type IAudioTrack = IBaseTrack;
|
|
587
587
|
interface ITextTrackBase {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
588
|
+
type: "external" | "internal";
|
|
589
|
+
id: string;
|
|
590
|
+
language?: string;
|
|
591
|
+
label?: string;
|
|
592
|
+
url?: string;
|
|
593
|
+
isAuto?: boolean;
|
|
594
594
|
}
|
|
595
595
|
export interface IExternalTextTrack extends ITextTrackBase {
|
|
596
|
-
|
|
597
|
-
|
|
596
|
+
type: "external";
|
|
597
|
+
url: string;
|
|
598
598
|
}
|
|
599
599
|
export interface IInternalTextTrack extends ITextTrackBase {
|
|
600
|
-
|
|
601
|
-
|
|
600
|
+
type: "internal";
|
|
601
|
+
url: string;
|
|
602
602
|
}
|
|
603
603
|
export type ITextTrack = IExternalTextTrack | IInternalTextTrack;
|
|
604
604
|
export interface ICueSettings {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
605
|
+
align?: "left" | "center" | "right";
|
|
606
|
+
position?: number | "auto";
|
|
607
|
+
size?: number;
|
|
608
|
+
line?: number | "auto";
|
|
609
609
|
}
|
|
610
610
|
export declare enum VideoDestination {
|
|
611
|
-
|
|
612
|
-
|
|
611
|
+
SCREEN = "SCREEN",
|
|
612
|
+
CHROMECAST = "CHROMECAST"
|
|
613
613
|
}
|
|
614
614
|
export declare enum ChromecastState {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
615
|
+
NOT_AVAILABLE = "NOT_AVAILABLE",
|
|
616
|
+
AVAILABLE = "AVAILABLE",
|
|
617
|
+
CONNECTING = "CONNECTING",
|
|
618
|
+
CONNECTED = "CONNECTED"
|
|
619
619
|
}
|
|
620
620
|
export interface ISeekRequest {
|
|
621
|
-
|
|
622
|
-
|
|
621
|
+
from: Seconds;
|
|
622
|
+
to: Seconds;
|
|
623
623
|
}
|
|
624
624
|
export declare enum HttpConnectionType {
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
625
|
+
HTTP1 = "http1",
|
|
626
|
+
HTTP2 = "http2",
|
|
627
|
+
QUIC = "quic"
|
|
628
628
|
}
|
|
629
629
|
export interface HttpConnectionMetrics {
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
630
|
+
dnsResolveTime: number;
|
|
631
|
+
tcpHandshakeTime: number;
|
|
632
|
+
tlsHandshakeTime: number;
|
|
633
|
+
totalConnectTime: number;
|
|
634
|
+
url: string;
|
|
635
|
+
networkType: string;
|
|
636
636
|
}
|
|
637
637
|
export interface HttpDownloadMetrics {
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
638
|
+
bytes: number;
|
|
639
|
+
speed: number;
|
|
640
|
+
url: string;
|
|
641
641
|
}
|
|
642
642
|
export declare enum SeekOperationState {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
643
|
+
None = "none",
|
|
644
|
+
Requested = "requested",
|
|
645
|
+
Applying = "applying"
|
|
646
646
|
}
|
|
647
647
|
type SeekStateNone = {
|
|
648
|
-
|
|
648
|
+
state: SeekOperationState.None;
|
|
649
649
|
};
|
|
650
650
|
type SeekStateNotNone = {
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
651
|
+
state: Exclude<SeekOperationState, SeekOperationState.None>;
|
|
652
|
+
position: Milliseconds;
|
|
653
|
+
forcePrecise: boolean;
|
|
654
654
|
};
|
|
655
655
|
export type SeekState = SeekStateNone | SeekStateNotNone;
|
|
656
656
|
export type FpsByQuality = Partial<Record<VideoQuality, number>>;
|
|
657
657
|
export type PlaybackRate = number;
|
|
658
658
|
export declare enum Surface {
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
659
|
+
NONE = "none",
|
|
660
|
+
INLINE = "inline",
|
|
661
|
+
FULLSCREEN = "fullscreen",
|
|
662
|
+
SECOND_SCREEN = "second_screen",
|
|
663
|
+
PIP = "pip",
|
|
664
|
+
INVISIBLE = "invisible"
|
|
665
665
|
}
|
|
666
666
|
export declare enum PredefinedQualityLimits {
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
667
|
+
TRAFFIC_SAVING = "traffic_saving",
|
|
668
|
+
HIGH_QUALITY = "high_quality",
|
|
669
|
+
UNKNOWN = "unknown"
|
|
670
670
|
}
|
|
671
671
|
export {};
|