@vkontakte/videoplayer-core 2.0.154-dev.48c0527e.0 → 2.0.154-dev.6d21d9b3.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/es2015.cjs +184 -0
  2. package/es2015.esm.js +184 -0
  3. package/es2018.cjs +131 -77
  4. package/es2018.esm.js +129 -75
  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 +589 -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 +106 -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 +7 -7
  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 +4 -4
  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 +46 -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 +103 -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/forcePlay.d.ts +5 -5
  89. package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
  90. package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -2
  91. package/types/providers/utils/LiveOffset/index.d.ts +12 -12
  92. package/types/providers/utils/LiveOffset/types.d.ts +8 -8
  93. package/types/providers/utils/StallsManager.d.ts +49 -49
  94. package/types/providers/utils/debug.d.ts +12 -13
  95. package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
  96. package/types/providers/utils/generateLiveUrl.d.ts +4 -4
  97. package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
  98. package/types/providers/utils/mergeIntervals.d.ts +1 -1
  99. package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
  100. package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
  101. package/types/providers/utils/parsers/index.d.ts +1 -1
  102. package/types/providers/utils/parsers/mpd.d.ts +1 -1
  103. package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +17 -18
  104. package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
  105. package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
  106. package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
  107. package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
  108. package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
  109. package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
  110. package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +26 -27
  111. package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
  112. package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
  113. package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
  114. package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
  115. package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
  116. package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
  117. package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
  118. package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
  119. package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
  120. package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
  121. package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
  122. package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
  123. package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
  124. package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
  125. package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
  126. package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
  127. package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
  128. package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
  129. package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
  130. package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
  131. package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +5 -4
  132. package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
  133. package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
  134. package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
  135. package/types/providers/utils/parsers/types.d.ts +133 -131
  136. package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
  137. package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
  138. package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
  139. package/types/providers/utils/syncDesiredState.d.ts +12 -8
  140. package/types/providers/utils/syncPlaybackState.d.ts +2 -2
  141. package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
  142. package/types/utils/3d/Camera3D.d.ts +11 -11
  143. package/types/utils/3d/CameraRotationManager.d.ts +59 -59
  144. package/types/utils/3d/Scene3D.d.ts +129 -129
  145. package/types/utils/3d/types.d.ts +14 -14
  146. package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
  147. package/types/utils/ClientChecker/index.d.ts +2 -2
  148. package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
  149. package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
  150. package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
  151. package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
  152. package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
  153. package/types/utils/ClientChecker/types/checker.d.ts +1 -1
  154. package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
  155. package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
  156. package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
  157. package/types/utils/StateMachine/StateMachine.d.ts +17 -17
  158. package/types/utils/StateMachine/types.d.ts +56 -56
  159. package/types/utils/StatefulIterator/index.d.ts +13 -13
  160. package/types/utils/ThroughputEstimator.d.ts +22 -22
  161. package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
  162. package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
  163. package/types/utils/autoSelectTrack.d.ts +27 -28
  164. package/types/utils/buffer/createTimeRanges.d.ts +1 -2
  165. package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
  166. package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
  167. package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
  168. package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
  169. package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
  170. package/types/utils/changePlaybackRate.d.ts +1 -1
  171. package/types/utils/decodingInfoLogger.d.ts +1 -1
  172. package/types/utils/mediaSource.d.ts +5 -1
  173. package/types/utils/observeElementVisibility.d.ts +1 -1
  174. package/types/utils/playbackTelemetry.d.ts +4 -4
  175. package/types/utils/playerOptions.d.ts +3 -3
  176. package/types/utils/qualityLimits.d.ts +14 -15
  177. package/types/utils/setStateWithSubscribe.d.ts +3 -6
  178. package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
  179. package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
  180. package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
  181. package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
  182. package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
  183. package/types/utils/smoothedValue/types.d.ts +16 -16
  184. package/types/utils/tuningConfig.d.ts +275 -276
  185. package/types/utils/videoFormat.d.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.154-dev.48c0527e.0",
3
+ "version": "2.0.154-dev.6d21d9b3.0",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -54,6 +54,6 @@
54
54
  "**/*.d.ts"
55
55
  ],
56
56
  "dependencies": {
57
- "@vkontakte/videoplayer-shared": "1.0.83-dev.48c0527e.0"
57
+ "@vkontakte/videoplayer-shared": "1.0.83-dev.6d21d9b3.0"
58
58
  }
59
59
  }
@@ -1,8 +1,8 @@
1
1
  export declare enum AndroidPreferredFormat {
2
- DASH = "dash",
3
- HLS = "hls",
4
- MPEG = "mpeg",
5
- DASH_ANY_MPEG = "dash_any_mpeg",
6
- DASH_ANY_WEBM = "dash_any_webm",
7
- DASH_SEP = "dash_sep"
2
+ DASH = "dash",// Все дэши согласно обычным приоритетам
3
+ HLS = "hls",
4
+ MPEG = "mpeg",
5
+ DASH_ANY_MPEG = "dash_any_mpeg",// SEP/ONDEMAND -> MPEG -> ... (вебм дэшы не должны играть совсем)
6
+ DASH_ANY_WEBM = "dash_any_webm",// WEBM/WEBM_AV1 -> MPEG -> ... (мпег дэшы не должны играть совсем)
7
+ DASH_SEP = "dash_sep"
8
8
  }
@@ -1,4 +1,4 @@
1
1
  export declare enum IOSPreferredFormat {
2
- HLS = "hls",
3
- HLS_FMP4 = "hls_fmp4"
2
+ HLS = "hls",
3
+ HLS_FMP4 = "hls_fmp4"
4
4
  }
@@ -1,7 +1,7 @@
1
1
  export declare enum WebmCodecStrategy {
2
- VP9 = "vp9",
3
- AV1 = "av1",
4
- NONE = "none",
5
- SMOOTH = "smooth",
6
- POWER_EFFICIENT = "power_efficient"
2
+ VP9 = "vp9",
3
+ AV1 = "av1",
4
+ NONE = "none",
5
+ SMOOTH = "smooth",
6
+ POWER_EFFICIENT = "power_efficient"
7
7
  }
package/types/index.d.ts CHANGED
@@ -1,18 +1,15 @@
1
- import { VERSION } from "./env";
2
- import type { IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSource, ISeekRequest, URLSource, RawSource, URLSourceWithSeek } from "./player/types";
3
- import { VideoFormat, Surface, PredefinedQualityLimits, VideoCodec } from "./player/types";
4
- import Player from "./player/Player";
5
- import type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream } from "./player/types";
6
- import { PlaybackState, ChromecastState, HttpConnectionType } from "./player/types";
7
- import type { IOptionalTuningConfig } from "./utils/tuningConfig";
8
- export { clientChecker, isMobile } from "./utils/ClientChecker";
9
- export { areValidLiveRecordSources } from "./utils/videoFormat";
10
- export { WebmCodecStrategy } from "./enums/WebmCodecStrategy";
11
- import type { ISubscription, IUnsubscriber, IEmitter, IObservable, IValueObservable, IValue, IOperator, IListener, ILogEntry, IRange, ExactVideoQuality } from "@vkontakte/videoplayer-shared";
12
- import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from "@vkontakte/videoplayer-shared";
1
+ import { VERSION } from './env';
2
+ import { VideoFormat, IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSource, ISeekRequest, URLSource, RawSource, URLSourceWithSeek, Surface, PredefinedQualityLimits, VideoCodec } from './player/types';
3
+ import Player from './player/Player';
4
+ import { IPlayer, PlaybackState, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, ChromecastState, HttpConnectionType, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream } from './player/types';
5
+ import type { IOptionalTuningConfig } from './utils/tuningConfig';
6
+ export { clientChecker, isMobile } from './utils/ClientChecker';
7
+ export { areValidLiveRecordSources } from './utils/videoFormat';
8
+ export { WebmCodecStrategy } from './enums/WebmCodecStrategy';
9
+ import type { ISubscription, IUnsubscriber, IEmitter, IObservable, IValueObservable, IValue, IOperator, IListener, ILogEntry, IRange, ExactVideoQuality } from '@vkontakte/videoplayer-shared';
10
+ import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from '@vkontakte/videoplayer-shared';
13
11
  /**
14
- * @deprecated
15
- */
12
+ * @deprecated
13
+ */
16
14
  declare const SDK_VERSION: string;
17
- export type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, ExactVideoQuality, IRange, ISeekRequest, ICueSettings, PlaybackRate, IVideoStream, IAudioStream };
18
- export { Player, PlaybackState, ChromecastState, HttpConnectionType, Surface, Subscription, VideoFormat, VideoQuality, Observable, Subject, ValueSubject, VERSION, SDK_VERSION, PredefinedQualityLimits, VideoCodec };
15
+ export { Player, IPlayer, PlaybackState, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ChromecastState, HttpConnectionType, Surface, Subscription, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, VideoFormat, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, VideoQuality, ExactVideoQuality, Observable, Subject, ValueSubject, IRange, ISeekRequest, ICueSettings, VERSION, SDK_VERSION, PlaybackRate, IVideoStream, IAudioStream, PredefinedQualityLimits, VideoCodec, };
@@ -1,219 +1,212 @@
1
- import { dump } from "../utils/playbackTelemetry";
2
- import type { IOptionalTuningConfig } from "../utils/tuningConfig";
3
- import type { IError, ILogEntry, Kbps, Milliseconds, Seconds, QualityLimits, VideoQuality, ITracer } from "@vkontakte/videoplayer-shared";
4
- import { Subject, ValueSubject } from "@vkontakte/videoplayer-shared";
5
- import { ChromecastState, type FpsByQuality, type HttpConnectionType, type HttpConnectionMetrics, type HttpDownloadMetrics, type IAudioStream, type IAudioTrack, type IConfig, type ICueSettings, type IExternalTextTrack, type IPlayer, type ISeekRequest, type ISources, type ITextTrack, type IVideoStream, type PlaybackRate, PlaybackState, PredefinedQualityLimits, type StartEnd, Surface, type VideoFormat } from "./types";
6
- import type { IPlayerOptions } from "../utils/playerOptions";
7
- /** Конкретный тип для Player.info с ValueSubject вместо IValueObservable */
8
- interface PlayerInfoImpl {
9
- playbackState$: ValueSubject<PlaybackState | undefined>;
10
- position$: ValueSubject<number>;
11
- duration$: ValueSubject<number>;
12
- muted$: ValueSubject<boolean>;
13
- volume$: ValueSubject<number>;
14
- availableVideoStreams$: ValueSubject<IVideoStream[]>;
15
- currentVideoStream$: ValueSubject<IVideoStream | undefined>;
16
- availableQualities$: ValueSubject<VideoQuality[]>;
17
- availableQualitiesFps$: ValueSubject<FpsByQuality>;
18
- currentQuality$: ValueSubject<VideoQuality | undefined>;
19
- isAutoQualityEnabled$: ValueSubject<boolean>;
20
- autoQualityLimitingAvailable$: ValueSubject<boolean>;
21
- autoQualityLimits$: ValueSubject<QualityLimits>;
22
- predefinedQualityLimitType$: ValueSubject<PredefinedQualityLimits>;
23
- availableAudioStreams$: ValueSubject<IAudioStream[]>;
24
- currentAudioStream$: ValueSubject<IVideoStream | undefined>;
25
- availableAudioTracks$: ValueSubject<IAudioTrack[]>;
26
- isAudioAvailable$: ValueSubject<boolean>;
27
- currentPlaybackRate$: ValueSubject<PlaybackRate>;
28
- currentBuffer$: ValueSubject<StartEnd<Seconds>>;
29
- currentNativeBuffer$: ValueSubject<StartEnd<Seconds>>;
30
- isBuffering$: ValueSubject<boolean>;
31
- isStalled$: ValueSubject<boolean>;
32
- isEnded$: ValueSubject<boolean>;
33
- isLooped$: ValueSubject<boolean>;
34
- isLive$: ValueSubject<boolean | undefined>;
35
- isLiveEnded$: ValueSubject<boolean | null>;
36
- canPlayLiveTailBuffer$: ValueSubject<boolean>;
37
- canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
38
- atLiveEdge$: ValueSubject<boolean | undefined>;
39
- atLiveDurationEdge$: ValueSubject<boolean | undefined>;
40
- liveTime$: ValueSubject<Milliseconds | undefined>;
41
- liveBufferTime$: ValueSubject<Milliseconds | undefined>;
42
- liveLatency$: ValueSubject<Milliseconds | undefined>;
43
- currentFormat$: ValueSubject<VideoFormat | undefined>;
44
- availableTextTracks$: ValueSubject<ITextTrack[]>;
45
- currentTextTrack$: ValueSubject<ITextTrack["id"] | undefined>;
46
- throughputEstimation$: ValueSubject<Kbps | undefined>;
47
- rttEstimation$: ValueSubject<Milliseconds | undefined>;
48
- videoBitrate$: ValueSubject<Kbps | undefined>;
49
- hostname$: ValueSubject<string | undefined>;
50
- httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
51
- httpConnectionReused$: ValueSubject<boolean | undefined>;
52
- httpConnectionMetrics$: ValueSubject<HttpConnectionMetrics | undefined>;
53
- httpDownloadMetrics$: ValueSubject<HttpDownloadMetrics | undefined>;
54
- surface$: ValueSubject<Surface>;
55
- chromecastState$: ValueSubject<ChromecastState>;
56
- chromecastDeviceName$: ValueSubject<string | undefined>;
57
- intrinsicVideoSize$: ValueSubject<{
58
- width: number;
59
- height: number;
60
- } | undefined>;
61
- availableSources$: ValueSubject<ISources | undefined>;
62
- is3DVideo$: ValueSubject<boolean>;
63
- currentVideoSegmentLength$: ValueSubject<number>;
64
- currentAudioSegmentLength$: ValueSubject<number>;
65
- }
66
- /** Конкретный тип для Player.events с Subject вместо IObservable */
67
- interface PlayerEventsImpl {
68
- inited$: Subject<void>;
69
- ready$: Subject<void>;
70
- started$: Subject<void>;
71
- playing$: Subject<void>;
72
- paused$: Subject<void>;
73
- stopped$: Subject<void>;
74
- willReady$: Subject<void>;
75
- willStart$: Subject<void>;
76
- willResume$: Subject<void>;
77
- willPause$: Subject<void>;
78
- willStop$: Subject<void>;
79
- willDestruct$: Subject<void>;
80
- watchCoverageRecord$: Subject<StartEnd<Seconds>>;
81
- watchCoverageLive$: Subject<StartEnd<Milliseconds>>;
82
- managedError$: Subject<IError>;
83
- fatalError$: Subject<IError>;
84
- fetcherRecoverableError$: Subject<IError>;
85
- ended$: Subject<void>;
86
- looped$: Subject<Seconds>;
87
- seeked$: Subject<void>;
88
- willSeek$: Subject<ISeekRequest>;
89
- autoplaySoundProhibited$: Subject<void>;
90
- manifestRequested$: Subject<void>;
91
- firstBytesManifest$: Subject<void>;
92
- manifestReceived$: Subject<void>;
93
- firstBytesRequested$: Subject<void>;
94
- firstBytesReceived$: Subject<void>;
95
- firstBytes$: Subject<Milliseconds>;
96
- loadedMetadata$: Subject<void>;
97
- firstFrame$: Subject<Milliseconds>;
98
- canplay$: Subject<Milliseconds>;
99
- log$: Subject<ILogEntry>;
100
- fetcherError$: Subject<IError>;
101
- severeStallOccured$: Subject<boolean>;
102
- }
103
- /** Конкретный тип для Player.experimental */
104
- interface PlayerExperimentalImpl {
105
- element$: ValueSubject<HTMLVideoElement | undefined>;
106
- enableDebugTelemetry$: ValueSubject<boolean>;
107
- dumpTelemetry: typeof dump;
108
- getCurrentTime$: ValueSubject<(() => number) | null>;
109
- }
1
+ import { IOptionalTuningConfig } from '../utils/tuningConfig';
2
+ import { IError, ILogEntry, Seconds, Subject, ValueSubject, QualityLimits, VideoQuality, ITracer } from '@vkontakte/videoplayer-shared';
3
+ import { ChromecastState, HttpConnectionType, HttpConnectionMetrics, HttpDownloadMetrics, IAudioStream, IConfig, ICueSettings, IExternalTextTrack, IPlayer, ISeekRequest, ISources, ITextTrack, IVideoStream, PlaybackRate, PlaybackState, PredefinedQualityLimits, StartEnd, Surface, VideoFormat } from './types';
4
+ import { IPlayerOptions } from '../utils/playerOptions';
110
5
  export default class Player implements IPlayer {
111
- private subscription;
112
- private domContainer;
113
- private providerContainer?;
114
- private chromecastInitializer;
115
- private logger;
116
- private tracer;
117
- private abrLogger;
118
- private config;
119
- private tuning;
120
- private throughputEstimator;
121
- private internalsExposure;
122
- private isPlaybackStarted;
123
- private initedAt;
124
- private hasLiveOffsetByPaused;
125
- private hasLiveOffsetByPausedTimer;
126
- private playerInitRequest;
127
- private playerInited;
128
- private explicitInitialQuality;
129
- private wasSetStartedQuality;
130
- private desiredState;
131
- info: PlayerInfoImpl;
132
- events: PlayerEventsImpl;
133
- experimental: PlayerExperimentalImpl;
134
- private devNullLog;
135
- private collectDecodingInfoDestroyCb;
136
- constructor(tuning?: IOptionalTuningConfig, tracer?: ITracer, playerOptions?: IPlayerOptions);
137
- initVideo(config: IConfig): IPlayer;
138
- destroy(): void;
139
- private waitInit;
140
- prepare(): IPlayer;
141
- play(): IPlayer;
142
- pause(): IPlayer;
143
- stop(): IPlayer;
144
- seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
145
- /**
146
- * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
147
- * @param percent: number [0, 1];
148
- */
149
- seekPercent(percent: number): IPlayer;
150
- setVolume(percent: number, desiredMuted?: boolean): IPlayer;
151
- setMuted(muted: boolean, forced?: boolean): IPlayer;
152
- setVideoStream(stream: IVideoStream): IPlayer;
153
- setAudioStream(stream: IAudioStream): IPlayer;
154
- setQuality(quality: VideoQuality): IPlayer;
155
- setAutoQuality(enable: boolean): IPlayer;
156
- setAutoQualityLimits(limits: QualityLimits): IPlayer;
157
- setPredefinedQualityLimits(type: PredefinedQualityLimits): this;
158
- setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
159
- setExternalTextTracks(tracks: Omit<IExternalTextTrack, "type">[]): IPlayer;
160
- selectTextTrack(id: ITextTrack["id"] | undefined): IPlayer;
161
- setTextTrackCueSettings(settings: ICueSettings): IPlayer;
162
- setLiveLowLatency(isLowLatency: boolean): IPlayer;
163
- setLooped(isLooped: boolean): IPlayer;
164
- toggleChromecast(): void;
165
- /**
166
- * Starts 3D-camera constant rotation
167
- * Base rotation speed is provided through the tuning config
168
- *
169
- * @param mx - camera X rotation speed multiplier
170
- * @param my - camera Y rotation speed multiplier
171
- *
172
- * 1 - positive direction
173
- * 0.5 - half speed in positive direction
174
- * 0 - no rotation
175
- * -1 negative direction
176
- * -2 double speed in negative direction
177
- *
178
- * Limitations:
179
- * When camera reaches angles 180 or -180 in vertical direction it stops.
180
- * z-axis is frozen for now
181
- *
182
- * Set all zeroes to stop the camera rotation
183
- * startCameraManualRotation(0, 0);
184
- */
185
- startCameraManualRotation(mx: number, my: number): this;
186
- /**
187
- * Rotates 3d-camera to given angles relative to current position
188
- */
189
- stopCameraManualRotation(immediate?: boolean): this;
190
- /**
191
- * Rotates 3d-camera to given angles relative to current position
192
- * using mouse deltas and scene fov
193
- */
194
- moveCameraFocusPX(dxpx: number, dypx: number): this;
195
- /**
196
- * "Holds" camera so that it can not perform movement without manual control
197
- */
198
- holdCamera(): this;
199
- /**
200
- * "Releases" the camera so that it can move using its internal logic
201
- */
202
- releaseCamera(): this;
203
- getExactTime(): Seconds;
204
- getAllLogs(): ILogEntry[];
205
- private getScene3D;
206
- private setIntrinsicVideoSize;
207
- private initDesiredStateSubscriptions;
208
- private initProviderContainerSubscription;
209
- private initChromecastSubscription;
210
- private initStartingVideoTrack;
211
- private setStartingVideoTrack;
212
- private initLogs;
213
- private initDebugTelemetry;
214
- private initTracerSubscription;
215
- private initWakeLock;
216
- private setVideoTrackIdByQuality;
217
- private getActiveLiveDelay;
218
- private isNotActiveTabCase;
6
+ private subscription;
7
+ private domContainer;
8
+ private providerContainer?;
9
+ private chromecastInitializer;
10
+ private logger;
11
+ private tracer;
12
+ private abrLogger;
13
+ private config;
14
+ private tuning;
15
+ private throughputEstimator;
16
+ private internalsExposure;
17
+ private isPlaybackStarted;
18
+ private initedAt;
19
+ private hasLiveOffsetByPaused;
20
+ private hasLiveOffsetByPausedTimer;
21
+ private playerInitRequest;
22
+ private playerInited;
23
+ private explicitInitialQuality;
24
+ private wasSetStartedQuality;
25
+ private skipVideoElVolumeSync;
26
+ private desiredState;
27
+ info: {
28
+ playbackState$: ValueSubject<PlaybackState | undefined>;
29
+ position$: ValueSubject<number>;
30
+ duration$: ValueSubject<number>;
31
+ muted$: ValueSubject<boolean>;
32
+ volume$: ValueSubject<number>;
33
+ availableVideoStreams$: ValueSubject<IVideoStream[]>;
34
+ currentVideoStream$: ValueSubject<IVideoStream | undefined>;
35
+ availableQualities$: ValueSubject<VideoQuality[]>;
36
+ availableQualitiesFps$: ValueSubject<Partial<Record<VideoQuality, number>>>;
37
+ currentQuality$: ValueSubject<VideoQuality | undefined>;
38
+ isAutoQualityEnabled$: ValueSubject<boolean>;
39
+ autoQualityLimitingAvailable$: ValueSubject<boolean>;
40
+ autoQualityLimits$: ValueSubject<QualityLimits>;
41
+ predefinedQualityLimitType$: ValueSubject<PredefinedQualityLimits>;
42
+ availableAudioStreams$: ValueSubject<IAudioStream[]>;
43
+ currentAudioStream$: ValueSubject<IVideoStream | undefined>;
44
+ availableAudioTracks$: ValueSubject<import("./types").IBaseTrack[]>;
45
+ isAudioAvailable$: ValueSubject<boolean>;
46
+ currentPlaybackRate$: ValueSubject<number>;
47
+ currentBuffer$: ValueSubject<StartEnd<number>>;
48
+ currentNativeBuffer$: ValueSubject<StartEnd<number>>;
49
+ isBuffering$: ValueSubject<boolean>;
50
+ isStalled$: ValueSubject<boolean>;
51
+ isEnded$: ValueSubject<boolean>;
52
+ isLooped$: ValueSubject<boolean>;
53
+ isLive$: ValueSubject<boolean | undefined>;
54
+ isLiveEnded$: ValueSubject<boolean | null>;
55
+ canPlayLiveTailBuffer$: ValueSubject<boolean>;
56
+ canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
57
+ atLiveEdge$: ValueSubject<boolean | undefined>;
58
+ atLiveDurationEdge$: ValueSubject<boolean | undefined>;
59
+ liveTime$: ValueSubject<number | undefined>;
60
+ liveBufferTime$: ValueSubject<number | undefined>;
61
+ liveLatency$: ValueSubject<number | undefined>;
62
+ currentFormat$: ValueSubject<VideoFormat | undefined>;
63
+ availableTextTracks$: ValueSubject<ITextTrack[]>;
64
+ currentTextTrack$: ValueSubject<string | undefined>;
65
+ throughputEstimation$: ValueSubject<number | undefined>;
66
+ rttEstimation$: ValueSubject<number | undefined>;
67
+ videoBitrate$: ValueSubject<number | undefined>;
68
+ hostname$: ValueSubject<string | undefined>;
69
+ httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
70
+ httpConnectionReused$: ValueSubject<boolean | undefined>;
71
+ httpConnectionMetrics$: ValueSubject<HttpConnectionMetrics | undefined>;
72
+ httpDownloadMetrics$: ValueSubject<HttpDownloadMetrics | undefined>;
73
+ surface$: ValueSubject<Surface>;
74
+ chromecastState$: ValueSubject<ChromecastState>;
75
+ chromecastDeviceName$: ValueSubject<string | undefined>;
76
+ intrinsicVideoSize$: ValueSubject<{
77
+ width: number;
78
+ height: number;
79
+ } | undefined>;
80
+ availableSources$: ValueSubject<ISources | undefined>;
81
+ is3DVideo$: ValueSubject<boolean>;
82
+ currentVideoSegmentLength$: ValueSubject<number>;
83
+ currentAudioSegmentLength$: ValueSubject<number>;
84
+ };
85
+ events: {
86
+ inited$: Subject<void>;
87
+ ready$: Subject<void>;
88
+ started$: Subject<void>;
89
+ playing$: Subject<void>;
90
+ paused$: Subject<void>;
91
+ stopped$: Subject<void>;
92
+ willReady$: Subject<void>;
93
+ willStart$: Subject<void>;
94
+ willResume$: Subject<void>;
95
+ willPause$: Subject<void>;
96
+ willStop$: Subject<void>;
97
+ willDestruct$: Subject<void>;
98
+ watchCoverageRecord$: Subject<StartEnd<number>>;
99
+ watchCoverageLive$: Subject<StartEnd<number>>;
100
+ managedError$: Subject<IError>;
101
+ fatalError$: Subject<IError>;
102
+ fetcherRecoverableError$: Subject<IError>;
103
+ ended$: Subject<void>;
104
+ looped$: Subject<number>;
105
+ seeked$: Subject<void>;
106
+ willSeek$: Subject<ISeekRequest>;
107
+ autoplaySoundProhibited$: Subject<void>;
108
+ manifestRequested$: Subject<void>;
109
+ firstBytesManifest$: Subject<void>;
110
+ manifestReceived$: Subject<void>;
111
+ firstBytesRequested$: Subject<void>;
112
+ firstBytesReceived$: Subject<void>;
113
+ firstBytes$: Subject<number>;
114
+ loadedMetadata$: Subject<void>;
115
+ firstFrame$: Subject<number>;
116
+ canplay$: Subject<number>;
117
+ log$: Subject<ILogEntry>;
118
+ fetcherError$: Subject<IError>;
119
+ severeStallOccured$: Subject<boolean>;
120
+ };
121
+ experimental: {
122
+ element$: ValueSubject<HTMLVideoElement | undefined>;
123
+ enableDebugTelemetry$: ValueSubject<boolean>;
124
+ dumpTelemetry: (receiver: (value: Record<string, any>) => void) => void;
125
+ getCurrentTime$: ValueSubject<null>;
126
+ };
127
+ private devNullLog;
128
+ private collectDecodingInfoDestroyCb;
129
+ constructor(tuning?: IOptionalTuningConfig, tracer?: ITracer, playerOptions?: IPlayerOptions);
130
+ initVideo(config: IConfig): IPlayer;
131
+ destroy(): void;
132
+ private waitInit;
133
+ prepare(): IPlayer;
134
+ play(): IPlayer;
135
+ pause(): IPlayer;
136
+ stop(): IPlayer;
137
+ seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
138
+ /**
139
+ * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
140
+ * @param percent: number [0, 1];
141
+ */
142
+ seekPercent(percent: number): IPlayer;
143
+ setVolume(percent: number, desiredMuted?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
144
+ setMuted(muted: boolean, forced?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
145
+ setVideoStream(stream: IVideoStream): IPlayer;
146
+ setAudioStream(stream: IAudioStream): IPlayer;
147
+ setQuality(quality: VideoQuality): IPlayer;
148
+ setAutoQuality(enable: boolean): IPlayer;
149
+ setAutoQualityLimits(limits: QualityLimits): IPlayer;
150
+ setPredefinedQualityLimits(type: PredefinedQualityLimits): this;
151
+ setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
152
+ setExternalTextTracks(tracks: Omit<IExternalTextTrack, 'type'>[]): IPlayer;
153
+ selectTextTrack(id: ITextTrack['id'] | undefined): IPlayer;
154
+ setTextTrackCueSettings(settings: ICueSettings): IPlayer;
155
+ setLiveLowLatency(isLowLatency: boolean): IPlayer;
156
+ setLooped(isLooped: boolean): IPlayer;
157
+ toggleChromecast(): void;
158
+ /**
159
+ * Starts 3D-camera constant rotation
160
+ * Base rotation speed is provided through the tuning config
161
+ *
162
+ * @param mx - camera X rotation speed multiplier
163
+ * @param my - camera Y rotation speed multiplier
164
+ *
165
+ * 1 - positive direction
166
+ * 0.5 - half speed in positive direction
167
+ * 0 - no rotation
168
+ * -1 negative direction
169
+ * -2 double speed in negative direction
170
+ *
171
+ * Limitations:
172
+ * When camera reaches angles 180 or -180 in vertical direction it stops.
173
+ * z-axis is frozen for now
174
+ *
175
+ * Set all zeroes to stop the camera rotation
176
+ * startCameraManualRotation(0, 0);
177
+ */
178
+ startCameraManualRotation(mx: number, my: number): this;
179
+ /**
180
+ * Rotates 3d-camera to given angles relative to current position
181
+ */
182
+ stopCameraManualRotation(immediate?: boolean): this;
183
+ /**
184
+ * Rotates 3d-camera to given angles relative to current position
185
+ * using mouse deltas and scene fov
186
+ */
187
+ moveCameraFocusPX(dxpx: number, dypx: number): this;
188
+ /**
189
+ * "Holds" camera so that it can not perform movement without manual control
190
+ */
191
+ holdCamera(): this;
192
+ /**
193
+ * "Releases" the camera so that it can move using its internal logic
194
+ */
195
+ releaseCamera(): this;
196
+ getExactTime(): Seconds;
197
+ getAllLogs(): ILogEntry[];
198
+ private getScene3D;
199
+ private setIntrinsicVideoSize;
200
+ private initDesiredStateSubscriptions;
201
+ private initProviderContainerSubscription;
202
+ private initChromecastSubscription;
203
+ private initStartingVideoTrack;
204
+ private setStartingVideoTrack;
205
+ private initLogs;
206
+ private initDebugTelemetry;
207
+ private initTracerSubscription;
208
+ private initWakeLock;
209
+ private setVideoTrackIdByQuality;
210
+ private getActiveLiveDelay;
211
+ private isNotActiveTabCase;
219
212
  }