@vkontakte/videoplayer-core 2.0.155 → 2.0.156-dev.04ce2cd1.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 +83 -136
  2. package/es2015.esm.js +77 -130
  3. package/es2018.cjs +77 -130
  4. package/es2018.esm.js +75 -128
  5. package/es2024.cjs +83 -136
  6. package/es2024.esm.js +81 -134
  7. package/esnext.cjs +83 -136
  8. package/esnext.esm.js +81 -134
  9. package/evergreen.esm.js +82 -135
  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 +16 -13
  15. package/types/player/Player.d.ts +219 -210
  16. package/types/player/types.d.ts +595 -591
  17. package/types/player/utils/optimisticPosition.d.ts +7 -7
  18. package/types/player/utils/selectContainer.d.ts +1 -1
  19. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
  20. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
  21. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
  22. package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
  23. package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
  24. package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
  25. package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
  26. package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
  27. package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
  28. package/types/providers/ChromecastProvider/index.d.ts +23 -23
  29. package/types/providers/ChromecastProvider/types.d.ts +7 -7
  30. package/types/providers/ChromecastProvider/utils.d.ts +1 -1
  31. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -33
  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 +149 -150
  36. package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
  37. package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
  38. package/types/providers/DashProvider/baseDashProvider.d.ts +57 -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 +123 -122
  45. package/types/providers/DashProvider/lib/fetcher.d.ts +70 -69
  46. package/types/providers/DashProvider/lib/player.d.ts +109 -107
  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 +58 -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 +15 -14
  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 +94 -92
  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 +68 -67
  66. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
  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 +29 -28
  74. package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
  75. package/types/providers/HlsProvider/index.d.ts +19 -19
  76. package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
  77. package/types/providers/MpegProvider/index.d.ts +17 -17
  78. package/types/providers/ProviderContainer/index.d.ts +47 -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 +9 -8
  82. package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
  83. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +58 -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 +40 -39
  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 +5 -4
  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 +13 -12
  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 +18 -17
  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 +27 -26
  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 +4 -5
  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 +137 -139
  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 +10 -10
  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 +28 -27
  164. package/types/utils/buffer/createTimeRanges.d.ts +2 -1
  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 +1 -5
  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 +15 -14
  177. package/types/utils/setStateWithSubscribe.d.ts +6 -3
  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 +304 -287
  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.155",
3
+ "version": "2.0.156-dev.04ce2cd1.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.84"
57
+ "@vkontakte/videoplayer-shared": "1.0.85-dev.04ce2cd1.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",// SEP/ONDEMAND -> MPEG -> ... (вебм дэшы не должны играть совсем)
6
- DASH_ANY_WEBM = "dash_any_webm",// WEBM/WEBM_AV1 -> MPEG -> ... (мпег дэшы не должны играть совсем)
7
- DASH_SEP = "dash_sep"
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"
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,15 +1,18 @@
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';
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";
11
13
  /**
12
- * @deprecated
13
- */
14
+ * @deprecated
15
+ */
14
16
  declare const SDK_VERSION: string;
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, };
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 };
@@ -1,212 +1,221 @@
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, IVideoTrack, PlaybackRate, PlaybackState, PredefinedQualityLimits, StartEnd, Surface, VideoFormat } from './types';
4
- import { IPlayerOptions } from '../utils/playerOptions';
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 IVideoTrack, 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
+ availableVideoTracks$: ValueSubject<IVideoTrack[]>;
17
+ availableQualities$: ValueSubject<VideoQuality[]>;
18
+ availableQualitiesFps$: ValueSubject<FpsByQuality>;
19
+ currentQuality$: ValueSubject<VideoQuality | undefined>;
20
+ isAutoQualityEnabled$: ValueSubject<boolean>;
21
+ autoQualityLimitingAvailable$: ValueSubject<boolean>;
22
+ autoQualityLimits$: ValueSubject<QualityLimits>;
23
+ predefinedQualityLimitType$: ValueSubject<PredefinedQualityLimits>;
24
+ availableAudioStreams$: ValueSubject<IAudioStream[]>;
25
+ currentAudioStream$: ValueSubject<IVideoStream | undefined>;
26
+ availableAudioTracks$: ValueSubject<IAudioTrack[]>;
27
+ isAudioAvailable$: ValueSubject<boolean>;
28
+ currentPlaybackRate$: ValueSubject<PlaybackRate>;
29
+ currentBuffer$: ValueSubject<StartEnd<Seconds>>;
30
+ currentNativeBuffer$: ValueSubject<StartEnd<Seconds>>;
31
+ isBuffering$: ValueSubject<boolean>;
32
+ isStalled$: ValueSubject<boolean>;
33
+ isEnded$: ValueSubject<boolean>;
34
+ isLooped$: ValueSubject<boolean>;
35
+ isLive$: ValueSubject<boolean | undefined>;
36
+ isLiveEnded$: ValueSubject<boolean | null>;
37
+ canPlayLiveTailBuffer$: ValueSubject<boolean>;
38
+ canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
39
+ atLiveEdge$: ValueSubject<boolean | undefined>;
40
+ atLiveDurationEdge$: ValueSubject<boolean | undefined>;
41
+ liveTime$: ValueSubject<Milliseconds | undefined>;
42
+ liveBufferTime$: ValueSubject<Milliseconds | undefined>;
43
+ liveLatency$: ValueSubject<Milliseconds | undefined>;
44
+ currentFormat$: ValueSubject<VideoFormat | undefined>;
45
+ availableTextTracks$: ValueSubject<ITextTrack[]>;
46
+ currentTextTrack$: ValueSubject<ITextTrack["id"] | undefined>;
47
+ throughputEstimation$: ValueSubject<Kbps | undefined>;
48
+ rttEstimation$: ValueSubject<Milliseconds | undefined>;
49
+ videoBitrate$: ValueSubject<Kbps | undefined>;
50
+ hostname$: ValueSubject<string | undefined>;
51
+ httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
52
+ httpConnectionReused$: ValueSubject<boolean | undefined>;
53
+ httpConnectionMetrics$: ValueSubject<HttpConnectionMetrics | undefined>;
54
+ httpDownloadMetrics$: ValueSubject<HttpDownloadMetrics | undefined>;
55
+ surface$: ValueSubject<Surface>;
56
+ chromecastState$: ValueSubject<ChromecastState>;
57
+ chromecastDeviceName$: ValueSubject<string | undefined>;
58
+ intrinsicVideoSize$: ValueSubject<{
59
+ width: number;
60
+ height: number;
61
+ } | undefined>;
62
+ availableSources$: ValueSubject<ISources | undefined>;
63
+ is3DVideo$: ValueSubject<boolean>;
64
+ currentVideoSegmentLength$: ValueSubject<number>;
65
+ currentAudioSegmentLength$: ValueSubject<number>;
66
+ }
67
+ /** Конкретный тип для Player.events с Subject вместо IObservable */
68
+ interface PlayerEventsImpl {
69
+ inited$: Subject<void>;
70
+ ready$: Subject<void>;
71
+ started$: Subject<void>;
72
+ playing$: Subject<void>;
73
+ paused$: Subject<void>;
74
+ stopped$: Subject<void>;
75
+ willReady$: Subject<void>;
76
+ willStart$: Subject<void>;
77
+ willResume$: Subject<void>;
78
+ willPause$: Subject<void>;
79
+ willStop$: Subject<void>;
80
+ willDestruct$: Subject<void>;
81
+ watchCoverageRecord$: Subject<StartEnd<Seconds>>;
82
+ watchCoverageLive$: Subject<StartEnd<Milliseconds>>;
83
+ managedError$: Subject<IError>;
84
+ fatalError$: Subject<IError>;
85
+ fetcherRecoverableError$: Subject<IError>;
86
+ ended$: Subject<void>;
87
+ looped$: Subject<Seconds>;
88
+ seeked$: Subject<void>;
89
+ willSeek$: Subject<ISeekRequest>;
90
+ autoplaySoundProhibited$: Subject<void>;
91
+ manifestRequested$: Subject<void>;
92
+ firstBytesManifest$: Subject<void>;
93
+ manifestReceived$: Subject<void>;
94
+ firstBytesRequested$: Subject<void>;
95
+ firstBytesReceived$: Subject<void>;
96
+ firstBytes$: Subject<Milliseconds>;
97
+ loadedMetadata$: Subject<void>;
98
+ firstFrame$: Subject<Milliseconds>;
99
+ canplay$: Subject<Milliseconds>;
100
+ log$: Subject<ILogEntry>;
101
+ fetcherError$: Subject<IError>;
102
+ severeStallOccured$: Subject<boolean>;
103
+ }
104
+ /** Конкретный тип для Player.experimental */
105
+ interface PlayerExperimentalImpl {
106
+ element$: ValueSubject<HTMLVideoElement | undefined>;
107
+ enableDebugTelemetry$: ValueSubject<boolean>;
108
+ dumpTelemetry: typeof dump;
109
+ getCurrentTime$: ValueSubject<(() => number) | null>;
110
+ skipVideoElVolumeSync$: ValueSubject<boolean>;
111
+ }
5
112
  export default class Player implements IPlayer {
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 desiredState;
26
- info: {
27
- playbackState$: ValueSubject<PlaybackState | undefined>;
28
- position$: ValueSubject<number>;
29
- duration$: ValueSubject<number>;
30
- muted$: ValueSubject<boolean>;
31
- volume$: ValueSubject<number>;
32
- availableVideoStreams$: ValueSubject<IVideoStream[]>;
33
- currentVideoStream$: ValueSubject<IVideoStream | undefined>;
34
- availableVideoTracks$: ValueSubject<IVideoTrack[]>;
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): IPlayer;
144
- setMuted(muted: boolean, forced?: 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;
113
+ private subscription;
114
+ private domContainer;
115
+ private providerContainer?;
116
+ private chromecastInitializer;
117
+ private logger;
118
+ private tracer;
119
+ private abrLogger;
120
+ private config;
121
+ private tuning;
122
+ private throughputEstimator;
123
+ private internalsExposure;
124
+ private isPlaybackStarted;
125
+ private initedAt;
126
+ private hasLiveOffsetByPaused;
127
+ private hasLiveOffsetByPausedTimer;
128
+ private playerInitRequest;
129
+ private playerInited;
130
+ private explicitInitialQuality;
131
+ private wasSetStartedQuality;
132
+ private desiredState;
133
+ info: PlayerInfoImpl;
134
+ events: PlayerEventsImpl;
135
+ experimental: PlayerExperimentalImpl;
136
+ private devNullLog;
137
+ private collectDecodingInfoDestroyCb;
138
+ constructor(tuning?: IOptionalTuningConfig, tracer?: ITracer, playerOptions?: IPlayerOptions);
139
+ initVideo(config: IConfig): IPlayer;
140
+ destroy(): void;
141
+ private waitInit;
142
+ prepare(): IPlayer;
143
+ play(): IPlayer;
144
+ pause(): IPlayer;
145
+ stop(): IPlayer;
146
+ seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
147
+ /**
148
+ * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
149
+ * @param percent: number [0, 1];
150
+ */
151
+ seekPercent(percent: number): IPlayer;
152
+ setVolume(percent: number, desiredMuted?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
153
+ setMuted(muted: boolean, forced?: boolean, skipVideoElVolumeSync?: boolean): IPlayer;
154
+ setVideoStream(stream: IVideoStream): IPlayer;
155
+ setAudioStream(stream: IAudioStream): IPlayer;
156
+ setQuality(quality: VideoQuality): IPlayer;
157
+ setAutoQuality(enable: boolean): IPlayer;
158
+ setAutoQualityLimits(limits: QualityLimits): IPlayer;
159
+ setPredefinedQualityLimits(type: PredefinedQualityLimits): this;
160
+ setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
161
+ setExternalTextTracks(tracks: Omit<IExternalTextTrack, "type">[]): IPlayer;
162
+ selectTextTrack(id: ITextTrack["id"] | undefined): IPlayer;
163
+ setTextTrackCueSettings(settings: ICueSettings): IPlayer;
164
+ setLiveLowLatency(isLowLatency: boolean): IPlayer;
165
+ setLooped(isLooped: boolean): IPlayer;
166
+ toggleChromecast(): void;
167
+ /**
168
+ * Starts 3D-camera constant rotation
169
+ * Base rotation speed is provided through the tuning config
170
+ *
171
+ * @param mx - camera X rotation speed multiplier
172
+ * @param my - camera Y rotation speed multiplier
173
+ *
174
+ * 1 - positive direction
175
+ * 0.5 - half speed in positive direction
176
+ * 0 - no rotation
177
+ * -1 negative direction
178
+ * -2 double speed in negative direction
179
+ *
180
+ * Limitations:
181
+ * When camera reaches angles 180 or -180 in vertical direction it stops.
182
+ * z-axis is frozen for now
183
+ *
184
+ * Set all zeroes to stop the camera rotation
185
+ * startCameraManualRotation(0, 0);
186
+ */
187
+ startCameraManualRotation(mx: number, my: number): this;
188
+ /**
189
+ * Rotates 3d-camera to given angles relative to current position
190
+ */
191
+ stopCameraManualRotation(immediate?: boolean): this;
192
+ /**
193
+ * Rotates 3d-camera to given angles relative to current position
194
+ * using mouse deltas and scene fov
195
+ */
196
+ moveCameraFocusPX(dxpx: number, dypx: number): this;
197
+ /**
198
+ * "Holds" camera so that it can not perform movement without manual control
199
+ */
200
+ holdCamera(): this;
201
+ /**
202
+ * "Releases" the camera so that it can move using its internal logic
203
+ */
204
+ releaseCamera(): this;
205
+ getExactTime(): Seconds;
206
+ getAllLogs(): ILogEntry[];
207
+ private getScene3D;
208
+ private setIntrinsicVideoSize;
209
+ private initDesiredStateSubscriptions;
210
+ private initProviderContainerSubscription;
211
+ private initChromecastSubscription;
212
+ private initStartingVideoTrack;
213
+ private setStartingVideoTrack;
214
+ private initLogs;
215
+ private initDebugTelemetry;
216
+ private initTracerSubscription;
217
+ private initWakeLock;
218
+ private setVideoTrackIdByQuality;
219
+ private getActiveLiveDelay;
220
+ private isNotActiveTabCase;
212
221
  }