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