@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.
Files changed (186) hide show
  1. package/es2015.cjs +184 -0
  2. package/es2015.esm.js +184 -0
  3. package/es2018.cjs +129 -75
  4. package/es2018.esm.js +127 -73
  5. package/es2024.cjs +135 -81
  6. package/es2024.esm.js +133 -79
  7. package/esnext.cjs +135 -81
  8. package/esnext.esm.js +133 -79
  9. package/evergreen.esm.js +134 -80
  10. package/package.json +2 -2
  11. package/types/enums/AndroidPreferredFormat.d.ts +6 -6
  12. package/types/enums/IOSPreferredFormat.d.ts +2 -2
  13. package/types/enums/WebmCodecStrategy.d.ts +5 -5
  14. package/types/index.d.ts +13 -16
  15. package/types/player/Player.d.ts +210 -217
  16. package/types/player/types.d.ts +591 -589
  17. package/types/player/utils/optimisticPosition.d.ts +7 -7
  18. package/types/player/utils/selectContainer.d.ts +1 -1
  19. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
  20. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
  21. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
  22. package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
  23. package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
  24. package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
  25. package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
  26. package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
  27. package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
  28. package/types/providers/ChromecastProvider/index.d.ts +23 -23
  29. package/types/providers/ChromecastProvider/types.d.ts +6 -6
  30. package/types/providers/ChromecastProvider/utils.d.ts +1 -1
  31. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -32
  32. package/types/providers/DashLiveProvider/index.d.ts +1 -1
  33. package/types/providers/DashLiveProvider/types.d.ts +17 -17
  34. package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
  35. package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +150 -149
  36. package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +30 -12
  37. package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +22 -19
  38. package/types/providers/DashProvider/baseDashProvider.d.ts +56 -56
  39. package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
  40. package/types/providers/DashProvider/dashProvider.d.ts +4 -4
  41. package/types/providers/DashProvider/index.d.ts +2 -2
  42. package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
  43. package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
  44. package/types/providers/DashProvider/lib/buffer.d.ts +122 -123
  45. package/types/providers/DashProvider/lib/fetcher.d.ts +69 -70
  46. package/types/providers/DashProvider/lib/player.d.ts +107 -109
  47. package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
  48. package/types/providers/DashProvider/lib/types.d.ts +20 -20
  49. package/types/providers/DashProvider/lib/utils.d.ts +5 -5
  50. package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +57 -57
  51. package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
  52. package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
  53. package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
  54. package/types/providers/DashProviderVirtual/index.d.ts +2 -2
  55. package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +14 -15
  56. package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
  57. package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
  58. package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
  59. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
  60. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +92 -94
  61. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
  62. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
  63. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
  64. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
  65. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +67 -68
  66. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +100 -103
  67. package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
  68. package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
  69. package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
  70. package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
  71. package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
  72. package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
  73. package/types/providers/HlsLiveProvider/index.d.ts +28 -28
  74. package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
  75. package/types/providers/HlsProvider/index.d.ts +19 -18
  76. package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
  77. package/types/providers/MpegProvider/index.d.ts +17 -16
  78. package/types/providers/ProviderContainer/index.d.ts +45 -45
  79. package/types/providers/ProviderContainer/types.d.ts +16 -16
  80. package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
  81. package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +8 -9
  82. package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
  83. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +57 -57
  84. package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
  85. package/types/providers/types.d.ts +102 -102
  86. package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +39 -40
  87. package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
  88. package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -1
  89. package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
  90. package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
  91. package/types/providers/utils/HTMLVideoElement/pool.d.ts +4 -4
  92. package/types/providers/utils/LiveOffset/index.d.ts +12 -12
  93. package/types/providers/utils/LiveOffset/types.d.ts +8 -8
  94. package/types/providers/utils/StallsManager.d.ts +49 -49
  95. package/types/providers/utils/debug.d.ts +12 -13
  96. package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
  97. package/types/providers/utils/generateLiveUrl.d.ts +4 -4
  98. package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
  99. package/types/providers/utils/mergeIntervals.d.ts +1 -1
  100. package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
  101. package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
  102. package/types/providers/utils/parsers/index.d.ts +1 -1
  103. package/types/providers/utils/parsers/mpd.d.ts +1 -1
  104. package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +17 -18
  105. package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
  106. package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
  107. package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
  108. package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
  109. package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
  110. package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
  111. package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +26 -27
  112. package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
  113. package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
  114. package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
  115. package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
  116. package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
  117. package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
  118. package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
  119. package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
  120. package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
  121. package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
  122. package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
  123. package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
  124. package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
  125. package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
  126. package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
  127. package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
  128. package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
  129. package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
  130. package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
  131. package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
  132. package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +5 -4
  133. package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
  134. package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
  135. package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
  136. package/types/providers/utils/parsers/types.d.ts +139 -131
  137. package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
  138. package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
  139. package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
  140. package/types/providers/utils/syncDesiredState.d.ts +9 -7
  141. package/types/providers/utils/syncPlaybackState.d.ts +2 -2
  142. package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +3 -3
  143. package/types/utils/3d/Camera3D.d.ts +11 -11
  144. package/types/utils/3d/CameraRotationManager.d.ts +59 -59
  145. package/types/utils/3d/Scene3D.d.ts +129 -129
  146. package/types/utils/3d/types.d.ts +14 -14
  147. package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
  148. package/types/utils/ClientChecker/index.d.ts +2 -2
  149. package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
  150. package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
  151. package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
  152. package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
  153. package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
  154. package/types/utils/ClientChecker/types/checker.d.ts +1 -1
  155. package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
  156. package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
  157. package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
  158. package/types/utils/StateMachine/StateMachine.d.ts +17 -17
  159. package/types/utils/StateMachine/types.d.ts +56 -56
  160. package/types/utils/StatefulIterator/index.d.ts +13 -13
  161. package/types/utils/ThroughputEstimator.d.ts +22 -22
  162. package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
  163. package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
  164. package/types/utils/autoSelectTrack.d.ts +27 -28
  165. package/types/utils/buffer/createTimeRanges.d.ts +1 -2
  166. package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
  167. package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
  168. package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
  169. package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
  170. package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
  171. package/types/utils/changePlaybackRate.d.ts +1 -1
  172. package/types/utils/decodingInfoLogger.d.ts +1 -1
  173. package/types/utils/mediaSource.d.ts +5 -1
  174. package/types/utils/observeElementVisibility.d.ts +1 -1
  175. package/types/utils/playbackTelemetry.d.ts +4 -4
  176. package/types/utils/playerOptions.d.ts +3 -3
  177. package/types/utils/qualityLimits.d.ts +14 -15
  178. package/types/utils/setStateWithSubscribe.d.ts +3 -6
  179. package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
  180. package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
  181. package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
  182. package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
  183. package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
  184. package/types/utils/smoothedValue/types.d.ts +16 -16
  185. package/types/utils/tuningConfig.d.ts +287 -276
  186. package/types/utils/videoFormat.d.ts +1 -1
@@ -1,671 +1,673 @@
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";
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
- start: Unit;
5
- end: Unit;
4
+ start: Unit;
5
+ end: Unit;
6
6
  }
7
7
  export interface IPlayer {
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
- };
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
- 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>;
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
- * Оптимистичный статут плеера. Так например, значение будет равно 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>;
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
- STOPPED = "stopped",
467
- READY = "ready",
468
- PLAYING = "playing",
469
- PAUSED = "paused"
467
+ STOPPED = "stopped",
468
+ READY = "ready",
469
+ PLAYING = "playing",
470
+ PAUSED = "paused"
470
471
  }
471
472
  export interface IVolumeState {
472
- /**
473
- * range: [0;1]
474
- */
475
- volume: number;
476
- muted: boolean;
473
+ /**
474
+ * range: [0;1]
475
+ */
476
+ volume: number;
477
+ muted: boolean;
477
478
  }
478
479
  export interface IConfig {
479
- container: string | HTMLElement;
480
- sources: ISources;
481
- meta?: IMetadata;
482
- failoverHosts?: string[];
483
- volumeMultiplier?: number;
484
- panelSize?: IRectangle;
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
- [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;
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
- title?: string;
506
- subtitle?: string;
507
- videoId?: string;
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
- type: "url";
512
- url: string;
512
+ type: 'url';
513
+ url: string;
513
514
  };
514
515
  export type RawSource = {
515
- type: "raw";
516
- raw: string;
516
+ type: 'raw';
517
+ raw: string;
517
518
  };
518
519
  export type URLSourceWithSeek = URLSource & Partial<{
519
- maxSeekBackTime: Milliseconds;
520
+ maxSeekBackTime: Milliseconds;
520
521
  }>;
521
522
  export type IMpegSource = QualitySetSource;
522
523
  export type IDashURLSource = URLSource & {
523
- compatibilityMode?: boolean;
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
- 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"
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
- AV1 = "av1",
554
- VP9 = "vp9",
555
- AVC1 = "avc1",
556
- HEV1 = "hev1"
554
+ AV1 = "av1",
555
+ VP9 = "vp9",
556
+ AVC1 = "avc1",// H264, AVC
557
+ HEV1 = "hev1"
557
558
  }
558
559
  export declare enum AudioCodec {
559
- OPUS = "opus",
560
- MP4A = "mp4a"
560
+ OPUS = "opus",
561
+ MP4A = "mp4a"
561
562
  }
562
563
  export interface IVideoStream {
563
- id: string;
564
- language?: string;
565
- hdr?: boolean;
566
- codec?: string;
567
- label?: string;
564
+ id: string;
565
+ language?: string;
566
+ hdr?: boolean;
567
+ codec?: string;
568
+ label?: string;
568
569
  }
569
570
  export interface IBaseTrack {
570
- id: string;
571
- bitrate?: Kbps;
571
+ id: string;
572
+ bitrate?: Kbps;
572
573
  }
573
574
  export interface IVideoTrack extends IBaseTrack {
574
- quality: VideoQuality;
575
- size?: IRectangle;
576
- fps?: number;
577
- streamId?: IVideoStream["id"];
575
+ quality: VideoQuality;
576
+ size?: IRectangle;
577
+ fps?: number;
578
+ streamId?: IVideoStream['id'];
579
+ tvDisabled?: boolean;
578
580
  }
579
581
  export interface IAudioStream {
580
- id: string;
581
- language?: string;
582
- label?: string;
583
- codec?: string;
584
- isDefault?: boolean;
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
- type: "external" | "internal";
589
- id: string;
590
- language?: string;
591
- label?: string;
592
- url?: string;
593
- isAuto?: boolean;
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
- type: "external";
597
- url: string;
598
+ type: 'external';
599
+ url: string;
598
600
  }
599
601
  export interface IInternalTextTrack extends ITextTrackBase {
600
- type: "internal";
601
- url: string;
602
+ type: 'internal';
603
+ url: string;
602
604
  }
603
605
  export type ITextTrack = IExternalTextTrack | IInternalTextTrack;
604
606
  export interface ICueSettings {
605
- align?: "left" | "center" | "right";
606
- position?: number | "auto";
607
- size?: number;
608
- line?: number | "auto";
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
- SCREEN = "SCREEN",
612
- CHROMECAST = "CHROMECAST"
613
+ SCREEN = "SCREEN",
614
+ CHROMECAST = "CHROMECAST"
613
615
  }
614
616
  export declare enum ChromecastState {
615
- NOT_AVAILABLE = "NOT_AVAILABLE",
616
- AVAILABLE = "AVAILABLE",
617
- CONNECTING = "CONNECTING",
618
- CONNECTED = "CONNECTED"
617
+ NOT_AVAILABLE = "NOT_AVAILABLE",
618
+ AVAILABLE = "AVAILABLE",
619
+ CONNECTING = "CONNECTING",
620
+ CONNECTED = "CONNECTED"
619
621
  }
620
622
  export interface ISeekRequest {
621
- from: Seconds;
622
- to: Seconds;
623
+ from: Seconds;
624
+ to: Seconds;
623
625
  }
624
626
  export declare enum HttpConnectionType {
625
- HTTP1 = "http1",
626
- HTTP2 = "http2",
627
- QUIC = "quic"
627
+ HTTP1 = "http1",
628
+ HTTP2 = "http2",
629
+ QUIC = "quic"
628
630
  }
629
631
  export interface HttpConnectionMetrics {
630
- dnsResolveTime: number;
631
- tcpHandshakeTime: number;
632
- tlsHandshakeTime: number;
633
- totalConnectTime: number;
634
- url: string;
635
- networkType: string;
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
- bytes: number;
639
- speed: number;
640
- url: string;
640
+ bytes: number;
641
+ speed: number;
642
+ url: string;
641
643
  }
642
644
  export declare enum SeekOperationState {
643
- None = "none",
644
- Requested = "requested",
645
- Applying = "applying"
645
+ None = "none",
646
+ Requested = "requested",
647
+ Applying = "applying"
646
648
  }
647
649
  type SeekStateNone = {
648
- state: SeekOperationState.None;
650
+ state: SeekOperationState.None;
649
651
  };
650
652
  type SeekStateNotNone = {
651
- state: Exclude<SeekOperationState, SeekOperationState.None>;
652
- position: Milliseconds;
653
- forcePrecise: boolean;
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
- NONE = "none",
660
- INLINE = "inline",
661
- FULLSCREEN = "fullscreen",
662
- SECOND_SCREEN = "second_screen",
663
- PIP = "pip",
664
- INVISIBLE = "invisible"
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
- TRAFFIC_SAVING = "traffic_saving",
668
- HIGH_QUALITY = "high_quality",
669
- UNKNOWN = "unknown"
669
+ TRAFFIC_SAVING = "traffic_saving",
670
+ HIGH_QUALITY = "high_quality",
671
+ UNKNOWN = "unknown"
670
672
  }
671
673
  export {};