@vkontakte/videoplayer-core 2.0.154-dev.48c0527e.0 → 2.0.154-dev.6d21d9b3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es2015.cjs +184 -0
- package/es2015.esm.js +184 -0
- package/es2018.cjs +131 -77
- package/es2018.esm.js +129 -75
- package/es2024.cjs +135 -81
- package/es2024.esm.js +133 -79
- package/esnext.cjs +135 -81
- package/esnext.esm.js +133 -79
- package/evergreen.esm.js +134 -80
- 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 +13 -16
- package/types/player/Player.d.ts +210 -217
- package/types/player/types.d.ts +589 -589
- 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 +106 -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 -32
- 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 +150 -149
- package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +30 -12
- package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +22 -19
- package/types/providers/DashProvider/baseDashProvider.d.ts +56 -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 +122 -123
- package/types/providers/DashProvider/lib/fetcher.d.ts +69 -70
- package/types/providers/DashProvider/lib/player.d.ts +107 -109
- 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 +57 -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 +14 -15
- 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 +92 -94
- 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 +67 -68
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +100 -103
- 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 +28 -28
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +19 -18
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
- package/types/providers/MpegProvider/index.d.ts +17 -16
- package/types/providers/ProviderContainer/index.d.ts +46 -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 +8 -9
- package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +57 -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 +39 -40
- 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 +2 -2
- 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 +12 -13
- 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 +17 -18
- 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 +26 -27
- 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 +5 -4
- 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 +133 -131
- 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 +12 -8
- 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 +27 -28
- package/types/utils/buffer/createTimeRanges.d.ts +1 -2
- 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 +5 -1
- 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 +14 -15
- package/types/utils/setStateWithSubscribe.d.ts +3 -6
- 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 +275 -276
- package/types/utils/videoFormat.d.ts +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { SeekState } from
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import type { SeekState } from '../../player/types';
|
|
2
|
+
import { IObservable, IValueObservable, Seconds } from '@vkontakte/videoplayer-shared';
|
|
3
|
+
import { 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,124 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { 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
|
+
/** должен быть инициализирован с user-input'ом */
|
|
42
|
+
connect(): Promise<void>;
|
|
43
|
+
private subscribe;
|
|
44
|
+
private send;
|
|
45
|
+
sendV2Message(message: object): void;
|
|
46
|
+
private safeSend;
|
|
47
|
+
private handleMessage;
|
|
48
|
+
private createCastUrl;
|
|
49
|
+
private getSequenceNumber;
|
|
50
|
+
private resetSequenceNumber;
|
|
51
|
+
private getClientId;
|
|
52
|
+
private resetSubscriptionEvents;
|
|
53
|
+
private handleConnection;
|
|
54
54
|
}
|
|
55
55
|
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
|
-
|
|
56
|
+
interface Window {
|
|
57
|
+
__vk_player_chromecast_id?: string;
|
|
58
|
+
}
|
|
59
|
+
interface Navigator {
|
|
60
|
+
presentation: {
|
|
61
|
+
defaultRequest: PresentationRequest | null;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
type PresentationUrls = string | string[];
|
|
65
|
+
type PresentationConnectionState = 'connecting' | 'connected' | 'closed' | 'terminated';
|
|
66
|
+
class PresentationRequest extends EventTarget {
|
|
67
|
+
constructor(presentationUrls: PresentationUrls | undefined);
|
|
68
|
+
start(): Promise<PresentationConnection>;
|
|
69
|
+
reconnect(presentationId: string): Promise<PresentationConnection>;
|
|
70
|
+
getAvailability(): Promise<PresentationAvailability>;
|
|
71
|
+
onconnectionavailable: ((this: PresentationRequest, ev: PresentationConnectionAvailableEvent) => void) | null;
|
|
72
|
+
}
|
|
73
|
+
class PresentationConnection extends EventTarget {
|
|
74
|
+
readonly id: string;
|
|
75
|
+
readonly state: PresentationConnectionState;
|
|
76
|
+
onclose: ((this: PresentationConnection, ev: PresentationConnectionCloseEvent) => void) | null;
|
|
77
|
+
onconnect: ((this: PresentationConnection) => void) | null;
|
|
78
|
+
onmessage: ((this: PresentationConnection, ev: PresentationConnectionMessageEvent) => void) | null;
|
|
79
|
+
onterminate: ((this: PresentationConnection) => void) | null;
|
|
80
|
+
send: (data: string) => void;
|
|
81
|
+
terminate: () => void;
|
|
82
|
+
close: () => void;
|
|
83
|
+
}
|
|
84
|
+
interface PresentationAvailability extends EventTarget {
|
|
85
|
+
value: boolean;
|
|
86
|
+
onchange: ((this: PresentationAvailability, ev: Event) => void) | null;
|
|
87
|
+
}
|
|
88
|
+
interface PresentationConnectionAvailableEvent extends Event {
|
|
89
|
+
readonly connection: PresentationConnection;
|
|
90
|
+
}
|
|
91
|
+
interface PresentationConnectionCloseEvent extends Event {
|
|
92
|
+
readonly reason: 'closed' | 'error';
|
|
93
|
+
}
|
|
94
|
+
interface PresentationConnectionMessageEvent extends Event {
|
|
95
|
+
readonly data: string;
|
|
96
|
+
}
|
|
97
97
|
}
|
|
98
98
|
interface PresentationConnectionMessage {
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
clientId: string;
|
|
100
|
+
timeoutMillis: number;
|
|
101
101
|
}
|
|
102
102
|
interface PresentationConnectionMessageReceiverAction extends PresentationConnectionMessage {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
type: 'receiver_action';
|
|
104
|
+
message: {
|
|
105
|
+
action: 'cast' | 'stop';
|
|
106
|
+
receiver: chrome.cast.Receiver;
|
|
107
|
+
};
|
|
108
108
|
}
|
|
109
109
|
interface PresentationConnectionMessageSession extends PresentationConnectionMessage {
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
type: 'new_session' | 'update_session';
|
|
111
|
+
message: chrome.cast.Session;
|
|
112
112
|
}
|
|
113
113
|
interface PresentationConnectionMessageV2Message extends PresentationConnectionMessage {
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
type: 'v2_message';
|
|
115
|
+
message: PresentationConnectionMessageV2MessageMessage;
|
|
116
116
|
}
|
|
117
117
|
interface PresentationConnectionMessageV2MessageMessage {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
type: 'MEDIA_STATUS';
|
|
119
|
+
requestId: number;
|
|
120
|
+
sessionId: string;
|
|
121
|
+
status: chrome.cast.media.Media[];
|
|
122
122
|
}
|
|
123
123
|
export type PresentationConnectionMessages = PresentationConnectionMessageReceiverAction | PresentationConnectionMessageSession | PresentationConnectionMessageV2Message;
|
|
124
124
|
export {};
|
package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { ChromecastState } from
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { ChromecastPresentationApiConnector } from
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { ChromecastState } from '../../player/types';
|
|
2
|
+
import { IError, IValueSubject, ISubject } from '@vkontakte/videoplayer-shared';
|
|
3
|
+
import { IChromecastConnection } from '../ChromecastProvider/ChromecastInitializer/types';
|
|
4
|
+
import { ChromecastPresentationApiConnector } from './ChromecastPresentationApiConnector';
|
|
5
|
+
import { IChromecastPresentationApiInitializer } from './types';
|
|
6
|
+
import { 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
|
|
2
|
-
import
|
|
1
|
+
import { IProvider } from '../types';
|
|
2
|
+
import { 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
|
|
1
|
+
import { 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
|
|
2
|
-
import type { IParams as IParamsChromecastProvider } from
|
|
3
|
-
import
|
|
1
|
+
import { IChromecastInitializer } from '../ChromecastProvider/ChromecastInitializer/types';
|
|
2
|
+
import type { IParams as IParamsChromecastProvider } from '../ChromecastProvider/types';
|
|
3
|
+
import { 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
|
-
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.DefaultActionPolicy
|
|
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
|
-
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.AutoJoinPolicy
|
|
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
|
-
* @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.IdleReason
|
|
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
|
|
1
|
+
import { 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
|
|
2
|
-
import { ChromecastState } from
|
|
3
|
-
import
|
|
1
|
+
import { ISubject, IValueSubject, IError } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
import { ChromecastState } from '../../../player/types';
|
|
3
|
+
import { 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
|
|
2
|
-
import
|
|
1
|
+
import { IObservable, IValueObservable, IError, ILogger } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
import { 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
|
}
|