@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.
- package/es2015.cjs +83 -136
- package/es2015.esm.js +77 -130
- package/es2018.cjs +77 -130
- package/es2018.esm.js +75 -128
- package/es2024.cjs +83 -136
- package/es2024.esm.js +81 -134
- package/esnext.cjs +83 -136
- package/esnext.esm.js +81 -134
- package/evergreen.esm.js +82 -135
- package/package.json +2 -2
- package/types/enums/AndroidPreferredFormat.d.ts +6 -6
- package/types/enums/IOSPreferredFormat.d.ts +2 -2
- package/types/enums/WebmCodecStrategy.d.ts +5 -5
- package/types/index.d.ts +16 -13
- package/types/player/Player.d.ts +219 -210
- package/types/player/types.d.ts +595 -591
- package/types/player/utils/optimisticPosition.d.ts +7 -7
- package/types/player/utils/selectContainer.d.ts +1 -1
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
- package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
- package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
- package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
- package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
- package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
- package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
- package/types/providers/ChromecastProvider/index.d.ts +23 -23
- package/types/providers/ChromecastProvider/types.d.ts +7 -7
- package/types/providers/ChromecastProvider/utils.d.ts +1 -1
- package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -33
- package/types/providers/DashLiveProvider/index.d.ts +1 -1
- package/types/providers/DashLiveProvider/types.d.ts +17 -17
- package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
- package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +149 -150
- package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
- package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
- package/types/providers/DashProvider/baseDashProvider.d.ts +57 -56
- package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
- package/types/providers/DashProvider/dashProvider.d.ts +4 -4
- package/types/providers/DashProvider/index.d.ts +2 -2
- package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
- package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProvider/lib/buffer.d.ts +123 -122
- package/types/providers/DashProvider/lib/fetcher.d.ts +70 -69
- package/types/providers/DashProvider/lib/player.d.ts +109 -107
- package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProvider/lib/types.d.ts +20 -20
- package/types/providers/DashProvider/lib/utils.d.ts +4 -4
- package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +58 -57
- package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
- package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
- package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
- package/types/providers/DashProviderVirtual/index.d.ts +2 -2
- package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +15 -14
- package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +94 -92
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
- package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +68 -67
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
- package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
- package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
- package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
- package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
- package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
- package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
- package/types/providers/HlsLiveProvider/index.d.ts +29 -28
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +19 -19
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
- package/types/providers/MpegProvider/index.d.ts +17 -17
- package/types/providers/ProviderContainer/index.d.ts +47 -45
- package/types/providers/ProviderContainer/types.d.ts +16 -16
- package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
- package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +9 -8
- package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +58 -57
- package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
- package/types/providers/types.d.ts +103 -102
- package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +40 -39
- package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
- package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
- package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +5 -4
- package/types/providers/utils/LiveOffset/index.d.ts +12 -12
- package/types/providers/utils/LiveOffset/types.d.ts +8 -8
- package/types/providers/utils/StallsManager.d.ts +49 -49
- package/types/providers/utils/debug.d.ts +13 -12
- package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
- package/types/providers/utils/generateLiveUrl.d.ts +4 -4
- package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
- package/types/providers/utils/mergeIntervals.d.ts +1 -1
- package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
- package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
- package/types/providers/utils/parsers/index.d.ts +1 -1
- package/types/providers/utils/parsers/mpd.d.ts +1 -1
- package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +18 -17
- package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
- package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
- package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
- package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
- package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +27 -26
- package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
- package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
- package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
- package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
- package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
- package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
- package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
- package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +4 -5
- package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
- package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
- package/types/providers/utils/parsers/types.d.ts +137 -139
- package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
- package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
- package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
- package/types/providers/utils/syncDesiredState.d.ts +10 -10
- package/types/providers/utils/syncPlaybackState.d.ts +2 -2
- package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
- package/types/utils/3d/Camera3D.d.ts +11 -11
- package/types/utils/3d/CameraRotationManager.d.ts +59 -59
- package/types/utils/3d/Scene3D.d.ts +129 -129
- package/types/utils/3d/types.d.ts +14 -14
- package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
- package/types/utils/ClientChecker/index.d.ts +2 -2
- package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
- package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
- package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
- package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
- package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
- package/types/utils/ClientChecker/types/checker.d.ts +1 -1
- package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
- package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
- package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
- package/types/utils/StateMachine/StateMachine.d.ts +17 -17
- package/types/utils/StateMachine/types.d.ts +56 -56
- package/types/utils/StatefulIterator/index.d.ts +13 -13
- package/types/utils/ThroughputEstimator.d.ts +22 -22
- package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
- package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
- package/types/utils/autoSelectTrack.d.ts +28 -27
- package/types/utils/buffer/createTimeRanges.d.ts +2 -1
- package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
- package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
- package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
- package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
- package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
- package/types/utils/changePlaybackRate.d.ts +1 -1
- package/types/utils/decodingInfoLogger.d.ts +1 -1
- package/types/utils/mediaSource.d.ts +1 -5
- package/types/utils/observeElementVisibility.d.ts +1 -1
- package/types/utils/playbackTelemetry.d.ts +4 -4
- package/types/utils/playerOptions.d.ts +3 -3
- package/types/utils/qualityLimits.d.ts +15 -14
- package/types/utils/setStateWithSubscribe.d.ts +6 -3
- package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
- package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
- package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
- package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
- package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
- package/types/utils/smoothedValue/types.d.ts +16 -16
- package/types/utils/tuningConfig.d.ts +304 -287
- 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.
|
|
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.
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { VERSION } from
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
+
* @deprecated
|
|
15
|
+
*/
|
|
14
16
|
declare const SDK_VERSION: string;
|
|
15
|
-
export {
|
|
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 };
|
package/types/player/Player.d.ts
CHANGED
|
@@ -1,212 +1,221 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
}
|