@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
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { SeekState } from
|
|
2
|
-
import { IObservable, IValueObservable, Seconds } from
|
|
3
|
-
import { IStateMachine } from
|
|
1
|
+
import type { SeekState } from "../types";
|
|
2
|
+
import type { IObservable, IValueObservable, Seconds } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import type { IStateMachine } from "../../utils/StateMachine/types";
|
|
4
4
|
interface IParams {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
seekState: IStateMachine<SeekState>;
|
|
6
|
+
position$: IValueObservable<Seconds>;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
* Реализует оптимистичное изменение позиции при перемотке
|
|
10
|
+
*/
|
|
11
11
|
declare const _default: ({ seekState, position$ }: IParams) => IObservable<Seconds>;
|
|
12
12
|
export default _default;
|
package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts
CHANGED
|
@@ -1,124 +1,125 @@
|
|
|
1
|
-
import { IError, ILogger, ISubject, IValueSubject } from
|
|
1
|
+
import type { IError, ILogger, ISubject, IValueSubject } from "@vkontakte/videoplayer-shared";
|
|
2
2
|
interface IParams {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
appId: string;
|
|
4
|
+
logger: ILogger;
|
|
5
5
|
}
|
|
6
6
|
export declare class ChromecastPresentationApiConnector {
|
|
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
|
-
|
|
7
|
+
protected readonly params: IParams;
|
|
8
|
+
private readonly clientId;
|
|
9
|
+
private readonly capabilities;
|
|
10
|
+
private readonly presentationRequest$;
|
|
11
|
+
private readonly log;
|
|
12
|
+
private readonly sessionId$;
|
|
13
|
+
private readonly broadcastChannel;
|
|
14
|
+
private readonly subscription;
|
|
15
|
+
private subscriptionEvents;
|
|
16
|
+
private isDestroyed;
|
|
17
|
+
private sequenceNumber;
|
|
18
|
+
readonly presentationAvailable$: IValueSubject<boolean>;
|
|
19
|
+
readonly presentationConnection$: IValueSubject<PresentationConnection | null>;
|
|
20
|
+
readonly message$: IValueSubject<PresentationConnectionMessages | null>;
|
|
21
|
+
readonly friendlyName$: IValueSubject<string | null>;
|
|
22
|
+
readonly errorEvent$: ISubject<IError>;
|
|
23
|
+
constructor(params: IParams);
|
|
24
|
+
destroy(): void;
|
|
25
|
+
/**
|
|
26
|
+
* в случае перехвата соединения другим плеером важно не останавливать медийку,
|
|
27
|
+
* иначе прервется кастинг у того плеера, который его запустил
|
|
28
|
+
*/
|
|
29
|
+
disconnect(withStopMedia?: boolean): void;
|
|
30
|
+
/**
|
|
31
|
+
* нужно вызывать перед `disconnect`, потому что если хромкаст был инициализирован на чужом соединении
|
|
32
|
+
* (те успешно сработал `presentationRequest.reconnect('auto-join')`), то `presentationConnection.close()`
|
|
33
|
+
* не отключит медийку на девайсе, если до этого оно не стояло на `PAUSE` или `STOP` (сделал через `STOP`,
|
|
34
|
+
* в итоге, для обратной совместимости с обвязкой для гуглового сдк)
|
|
35
|
+
*/
|
|
36
|
+
stopMedia(): void;
|
|
37
|
+
/**
|
|
38
|
+
* @param reconnect включает попытку восстановить соединение через `.reconnect('auto-join')`
|
|
39
|
+
*/
|
|
40
|
+
private reinitPresentation;
|
|
41
|
+
private safeReinitPresentation;
|
|
42
|
+
/** должен быть инициализирован с user-input'ом */
|
|
43
|
+
connect(): Promise<void>;
|
|
44
|
+
private subscribe;
|
|
45
|
+
private send;
|
|
46
|
+
sendV2Message(message: object): void;
|
|
47
|
+
private safeSend;
|
|
48
|
+
private handleMessage;
|
|
49
|
+
private createCastUrl;
|
|
50
|
+
private getSequenceNumber;
|
|
51
|
+
private resetSequenceNumber;
|
|
52
|
+
private getClientId;
|
|
53
|
+
private resetSubscriptionEvents;
|
|
54
|
+
private handleConnection;
|
|
54
55
|
}
|
|
55
56
|
declare global {
|
|
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
|
-
|
|
57
|
+
interface Window {
|
|
58
|
+
__vk_player_chromecast_id?: string;
|
|
59
|
+
}
|
|
60
|
+
interface Navigator {
|
|
61
|
+
presentation: {
|
|
62
|
+
defaultRequest: PresentationRequest | null;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
type PresentationUrls = string | string[];
|
|
66
|
+
type PresentationConnectionState = "connecting" | "connected" | "closed" | "terminated";
|
|
67
|
+
class PresentationRequest extends EventTarget {
|
|
68
|
+
constructor(presentationUrls: PresentationUrls | undefined);
|
|
69
|
+
start(): Promise<PresentationConnection>;
|
|
70
|
+
reconnect(presentationId: string): Promise<PresentationConnection>;
|
|
71
|
+
getAvailability(): Promise<PresentationAvailability>;
|
|
72
|
+
onconnectionavailable: ((this: PresentationRequest, ev: PresentationConnectionAvailableEvent) => void) | null;
|
|
73
|
+
}
|
|
74
|
+
class PresentationConnection extends EventTarget {
|
|
75
|
+
readonly id: string;
|
|
76
|
+
readonly state: PresentationConnectionState;
|
|
77
|
+
onclose: ((this: PresentationConnection, ev: PresentationConnectionCloseEvent) => void) | null;
|
|
78
|
+
onconnect: ((this: PresentationConnection) => void) | null;
|
|
79
|
+
onmessage: ((this: PresentationConnection, ev: PresentationConnectionMessageEvent) => void) | null;
|
|
80
|
+
onterminate: ((this: PresentationConnection) => void) | null;
|
|
81
|
+
send: (data: string) => void;
|
|
82
|
+
terminate: () => void;
|
|
83
|
+
close: () => void;
|
|
84
|
+
}
|
|
85
|
+
interface PresentationAvailability extends EventTarget {
|
|
86
|
+
value: boolean;
|
|
87
|
+
onchange: ((this: PresentationAvailability, ev: Event) => void) | null;
|
|
88
|
+
}
|
|
89
|
+
interface PresentationConnectionAvailableEvent extends Event {
|
|
90
|
+
readonly connection: PresentationConnection;
|
|
91
|
+
}
|
|
92
|
+
interface PresentationConnectionCloseEvent extends Event {
|
|
93
|
+
readonly reason: "closed" | "error";
|
|
94
|
+
}
|
|
95
|
+
interface PresentationConnectionMessageEvent extends Event {
|
|
96
|
+
readonly data: string;
|
|
97
|
+
}
|
|
97
98
|
}
|
|
98
99
|
interface PresentationConnectionMessage {
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
clientId: string;
|
|
101
|
+
timeoutMillis: number;
|
|
101
102
|
}
|
|
102
103
|
interface PresentationConnectionMessageReceiverAction extends PresentationConnectionMessage {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
type: "receiver_action";
|
|
105
|
+
message: {
|
|
106
|
+
action: "cast" | "stop";
|
|
107
|
+
receiver: chrome.cast.Receiver;
|
|
108
|
+
};
|
|
108
109
|
}
|
|
109
110
|
interface PresentationConnectionMessageSession extends PresentationConnectionMessage {
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
type: "new_session" | "update_session";
|
|
112
|
+
message: chrome.cast.Session;
|
|
112
113
|
}
|
|
113
114
|
interface PresentationConnectionMessageV2Message extends PresentationConnectionMessage {
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
type: "v2_message";
|
|
116
|
+
message: PresentationConnectionMessageV2MessageMessage;
|
|
116
117
|
}
|
|
117
118
|
interface PresentationConnectionMessageV2MessageMessage {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
type: "MEDIA_STATUS";
|
|
120
|
+
requestId: number;
|
|
121
|
+
sessionId: string;
|
|
122
|
+
status: chrome.cast.media.Media[];
|
|
122
123
|
}
|
|
123
124
|
export type PresentationConnectionMessages = PresentationConnectionMessageReceiverAction | PresentationConnectionMessageSession | PresentationConnectionMessageV2Message;
|
|
124
125
|
export {};
|
package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { ChromecastState } from
|
|
2
|
-
import { IError, IValueSubject, ISubject } from
|
|
3
|
-
import { IChromecastConnection } from
|
|
4
|
-
import { ChromecastPresentationApiConnector } from
|
|
5
|
-
import { IChromecastPresentationApiInitializer } from
|
|
6
|
-
import { IParams } from
|
|
1
|
+
import { ChromecastState } from "../../player/types";
|
|
2
|
+
import type { IError, IValueSubject, ISubject } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import type { IChromecastConnection } from "../ChromecastProvider/ChromecastInitializer/types";
|
|
4
|
+
import { ChromecastPresentationApiConnector } from "./ChromecastPresentationApiConnector";
|
|
5
|
+
import type { IChromecastPresentationApiInitializer } from "./types";
|
|
6
|
+
import type { IParams } from "../ChromecastProvider/ChromecastInitializer/types";
|
|
7
7
|
export declare class ChromecastPresentationApiInitializer implements IChromecastPresentationApiInitializer {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
private readonly subscription;
|
|
9
|
+
private readonly log;
|
|
10
|
+
contentId?: string | undefined;
|
|
11
|
+
readonly connection$: IValueSubject<IChromecastConnection | undefined>;
|
|
12
|
+
readonly castState$: IValueSubject<ChromecastState>;
|
|
13
|
+
readonly errorEvent$: ISubject<IError>;
|
|
14
|
+
readonly chromecastConnector: ChromecastPresentationApiConnector | undefined;
|
|
15
|
+
static isSupported(): boolean;
|
|
16
|
+
constructor(params: IParams);
|
|
17
|
+
private subscribe;
|
|
18
|
+
connect(): void;
|
|
19
|
+
disconnect(): void;
|
|
20
|
+
stopMedia(): Promise<void>;
|
|
21
|
+
toggleConnection(): void;
|
|
22
|
+
setVolume(_volume: number): void;
|
|
23
|
+
setMuted(_muted: boolean): void;
|
|
24
|
+
destroy(): void;
|
|
25
25
|
}
|
package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { IProvider } from
|
|
2
|
-
import { IParams } from
|
|
1
|
+
import type { IProvider } from "../types";
|
|
2
|
+
import type { IParams } from "./types";
|
|
3
3
|
export declare class ChromecastPresentationApiProvider implements IProvider {
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
4
|
+
private readonly subscription;
|
|
5
|
+
private readonly log;
|
|
6
|
+
private readonly params;
|
|
7
|
+
private readonly sessionId$;
|
|
8
|
+
private readonly mediaSessionId$;
|
|
9
|
+
private readonly contentId$;
|
|
10
|
+
private readonly progressTicker;
|
|
11
|
+
private readonly isMobile;
|
|
12
|
+
private readonly mobileVolumeState;
|
|
13
|
+
private media;
|
|
14
|
+
private lastRequestedVolume;
|
|
15
|
+
constructor(params: IParams);
|
|
16
|
+
private subscribe;
|
|
17
|
+
private handleMessage;
|
|
18
|
+
/**
|
|
19
|
+
* ключевая проблема хромкаста - синхронизировать состояния плеера, потому что
|
|
20
|
+
* устройством может управлять не только текущая вкладка браузера, но и любая
|
|
21
|
+
* другая как вкладка, так и устройство. поэтому мы считаем, что если доехали
|
|
22
|
+
* до этапа инициализации провадера, то форсим именно нашу медийку с нашим уникальным
|
|
23
|
+
* айдишником.
|
|
24
|
+
*/
|
|
25
|
+
private loadMedia;
|
|
26
|
+
private stop;
|
|
27
|
+
private play;
|
|
28
|
+
private pause;
|
|
29
|
+
private seek;
|
|
30
|
+
private setVolume;
|
|
31
|
+
private syncPlaybackState;
|
|
32
|
+
private syncPlayback;
|
|
33
|
+
private syncMediaState;
|
|
34
|
+
private syncVolumeState;
|
|
35
|
+
destroy(): void;
|
|
36
36
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { IParams } from
|
|
1
|
+
import type { IParams } from "./types";
|
|
2
2
|
export declare class ProgressTicker {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
private readonly params;
|
|
4
|
+
private interval;
|
|
5
|
+
private startVideoPosition;
|
|
6
|
+
private startTs;
|
|
7
|
+
constructor(params: Pick<IParams, "output">);
|
|
8
|
+
start(from?: number): void;
|
|
9
|
+
pause(): void;
|
|
10
|
+
destroy(): void;
|
|
11
11
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ChromecastPresentationApiProvider } from
|
|
2
|
-
export { ChromecastPresentationApiConnector } from
|
|
3
|
-
export { ChromecastPresentationApiInitializer } from
|
|
1
|
+
export { ChromecastPresentationApiProvider } from "./ChromecastPresentationApiProvider";
|
|
2
|
+
export { ChromecastPresentationApiConnector } from "./ChromecastPresentationApiConnector";
|
|
3
|
+
export { ChromecastPresentationApiInitializer } from "./ChromecastPresentationApiInitializer";
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { IChromecastInitializer } from
|
|
2
|
-
import type { IParams as IParamsChromecastProvider } from
|
|
3
|
-
import { ChromecastPresentationApiConnector } from
|
|
1
|
+
import type { IChromecastInitializer } from "../ChromecastProvider/ChromecastInitializer/types";
|
|
2
|
+
import type { IParams as IParamsChromecastProvider } from "../ChromecastProvider/types";
|
|
3
|
+
import type { ChromecastPresentationApiConnector } from "./ChromecastPresentationApiConnector";
|
|
4
4
|
export declare enum ProviderState {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
STOPPED = "stopped",
|
|
6
|
+
READY = "ready",
|
|
7
|
+
PLAYING = "playing",
|
|
8
|
+
PAUSED = "paused"
|
|
9
9
|
}
|
|
10
10
|
export declare enum PlayerState {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
IDLE = "IDLE",
|
|
12
|
+
PLAYING = "PLAYING",
|
|
13
|
+
PAUSED = "PAUSED",
|
|
14
|
+
BUFFERING = "BUFFERING"
|
|
15
15
|
}
|
|
16
16
|
export interface IChromecastPresentationApiInitializer extends IChromecastInitializer {
|
|
17
|
-
|
|
17
|
+
chromecastConnector?: ChromecastPresentationApiConnector;
|
|
18
18
|
}
|
|
19
|
-
export interface IParams extends Omit<IParamsChromecastProvider,
|
|
20
|
-
|
|
19
|
+
export interface IParams extends Omit<IParamsChromecastProvider, "connection" | "skipVideoElVolumeSync$"> {
|
|
20
|
+
chromecastConnector: ChromecastPresentationApiConnector;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.DefaultActionPolicy
|
|
24
|
+
*/
|
|
25
25
|
export declare enum DefaultActionPolicy {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
CREATE_SESSION = "create_session",
|
|
27
|
+
CAST_THIS_TAB = "cast_this_tab"
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.AutoJoinPolicy
|
|
31
|
+
*/
|
|
32
32
|
export declare enum AutoJoinPolicy {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
CUSTOM_CONTROLLER_SCOPED = "custom_controller_scoped",
|
|
34
|
+
TAB_AND_ORIGIN_SCOPED = "tab_and_origin_scoped",
|
|
35
|
+
ORIGIN_SCOPED = "origin_scoped",
|
|
36
|
+
PAGE_SCOPED = "page_scoped"
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.IdleReason
|
|
40
|
+
*/
|
|
41
41
|
export declare enum IdleReason {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
CANCELLED = "CANCELLED",
|
|
43
|
+
INTERRUPTED = "INTERRUPTED",
|
|
44
|
+
FINISHED = "FINISHED",
|
|
45
|
+
ERROR = "ERROR"
|
|
46
46
|
}
|
|
47
47
|
export declare enum BroadcastChannelEventName {
|
|
48
|
-
|
|
48
|
+
Connection = "connection"
|
|
49
49
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IChromecastConnection } from
|
|
1
|
+
import type { IChromecastConnection } from "../ChromecastProvider/ChromecastInitializer/types";
|
|
2
2
|
export declare const createFakeChromecastConnection: (friendlyName: string) => IChromecastConnection;
|
|
3
3
|
/** скопировал из сдк гугла */
|
|
4
4
|
export declare const createId: () => string;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { ISubject, IValueSubject, IError } from
|
|
2
|
-
import { ChromecastState } from
|
|
3
|
-
import { IChromecastConnection, IChromecastInitializer, IParams } from
|
|
1
|
+
import type { ISubject, IValueSubject, IError } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import { ChromecastState } from "../../../player/types";
|
|
3
|
+
import type { IChromecastConnection, IChromecastInitializer, IParams } from "./types";
|
|
4
4
|
export declare class ChromecastInitializer implements IChromecastInitializer {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
readonly connection$: IValueSubject<IChromecastConnection | undefined>;
|
|
6
|
+
readonly castState$: IValueSubject<ChromecastState>;
|
|
7
|
+
readonly errorEvent$: ISubject<IError>;
|
|
8
|
+
contentId?: string;
|
|
9
|
+
private readonly realCastState$;
|
|
10
|
+
private readonly subscription;
|
|
11
|
+
private readonly log;
|
|
12
|
+
private readonly params;
|
|
13
|
+
private isDestroyed;
|
|
14
|
+
constructor(params: IParams);
|
|
15
|
+
connect(): void;
|
|
16
|
+
disconnect(): void;
|
|
17
|
+
stopMedia(): Promise<void>;
|
|
18
|
+
toggleConnection(): void;
|
|
19
|
+
setVolume(volume: number): void;
|
|
20
|
+
setMuted(muted: boolean): void;
|
|
21
|
+
destroy(): void;
|
|
22
|
+
private initListeners;
|
|
23
|
+
private initializeCastApi;
|
|
24
24
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { IObservable, IValueObservable, IError, ILogger } from
|
|
2
|
-
import { ChromecastState } from
|
|
1
|
+
import type { IObservable, IValueObservable, IError, ILogger } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { ChromecastState } from "../../../player/types";
|
|
3
3
|
export interface IChromecastInitializer {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
connect(): void;
|
|
5
|
+
disconnect(): void;
|
|
6
|
+
stopMedia(): Promise<void>;
|
|
7
|
+
toggleConnection(): void;
|
|
8
|
+
setVolume(volume: number): void;
|
|
9
|
+
setMuted(muted: boolean): void;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
contentId?: string;
|
|
12
|
+
connection$: IValueObservable<IChromecastConnection | undefined>;
|
|
13
|
+
castState$: IValueObservable<ChromecastState>;
|
|
14
|
+
errorEvent$: IObservable<IError>;
|
|
15
15
|
}
|
|
16
16
|
export interface IChromecastConnection {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
remotePlayer: cast.framework.RemotePlayer;
|
|
18
|
+
remotePlayerController: cast.framework.RemotePlayerController;
|
|
19
|
+
session: cast.framework.CastSession;
|
|
20
|
+
castDevice: chrome.cast.Receiver;
|
|
21
21
|
}
|
|
22
22
|
export interface IParams {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
receiverApplicationId?: string;
|
|
24
|
+
isDisabled?: boolean;
|
|
25
|
+
dependencies: {
|
|
26
|
+
logger: ILogger;
|
|
27
|
+
};
|
|
28
28
|
}
|