@vkontakte/videoplayer-core 2.0.145-dev.d9a3a83a.0 → 2.0.145

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.145-dev.d9a3a83a.0",
3
+ "version": "2.0.145",
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.73-dev.d9a3a83a.0"
57
+ "@vkontakte/videoplayer-shared": "1.0.73"
58
58
  }
59
59
  }
@@ -1,6 +1,13 @@
1
- import { ISubject, IValueSubject, IError } from '@vkontakte/videoplayer-shared';
1
+ import { ISubject, IValueSubject, ILogger, IError } from '@vkontakte/videoplayer-shared';
2
2
  import { ChromecastState } from '../../../player/types';
3
- import { IChromecastConnection, IChromecastInitializer, IParams } from './types';
3
+ import { IChromecastConnection, IChromecastInitializer } from './types';
4
+ interface IParams {
5
+ receiverApplicationId?: string;
6
+ isDisabled?: boolean;
7
+ dependencies: {
8
+ logger: ILogger;
9
+ };
10
+ }
4
11
  export declare class ChromecastInitializer implements IChromecastInitializer {
5
12
  readonly connection$: IValueSubject<IChromecastConnection | undefined>;
6
13
  readonly castState$: IValueSubject<ChromecastState>;
@@ -22,3 +29,4 @@ export declare class ChromecastInitializer implements IChromecastInitializer {
22
29
  private initListeners;
23
30
  private initializeCastApi;
24
31
  }
32
+ export {};
@@ -1,4 +1,4 @@
1
- import { IObservable, IValueObservable, IError, ILogger } from '@vkontakte/videoplayer-shared';
1
+ import { IObservable, IValueObservable, IError } from '@vkontakte/videoplayer-shared';
2
2
  import { ChromecastState } from '../../../player/types';
3
3
  export interface IChromecastInitializer {
4
4
  connect(): void;
@@ -19,10 +19,3 @@ export interface IChromecastConnection {
19
19
  session: cast.framework.CastSession;
20
20
  castDevice: chrome.cast.Receiver;
21
21
  }
22
- export interface IParams {
23
- receiverApplicationId?: string;
24
- isDisabled?: boolean;
25
- dependencies: {
26
- logger: ILogger;
27
- };
28
- }
@@ -1,5 +1,11 @@
1
- import { IProvider } from '../types';
2
- import { IParams } from './types';
1
+ import { IMetadata, ISources, VideoFormat } from '../../player/types';
2
+ import { IChromecastConnection } from '../../providers/ChromecastProvider/ChromecastInitializer/types';
3
+ import { IProvider, IProviderParams } from '../types';
4
+ interface IParams extends IProviderParams<ISources> {
5
+ meta: IMetadata;
6
+ format: VideoFormat;
7
+ connection: IChromecastConnection;
8
+ }
3
9
  export default class ChromecastProvider implements IProvider {
4
10
  private subscription;
5
11
  private loadMediaTimeoutSubscription;
@@ -18,8 +24,10 @@ export default class ChromecastProvider implements IProvider {
18
24
  private handleRemoteVolumeChange;
19
25
  private seek;
20
26
  private stop;
27
+ private createMediaInfo;
21
28
  private createLoadRequest;
22
29
  private loadMedia;
23
30
  private logRemoteEvent;
24
31
  private syncPlayback;
25
32
  }
33
+ export {};
@@ -171,7 +171,6 @@ export type ITuningConfig = {
171
171
  formatsToAvoid: VideoFormat[];
172
172
  disableChromecast: boolean;
173
173
  chromecastReceiverId: string | undefined;
174
- chromecastNewProvider: boolean;
175
174
  /** @deprecated */
176
175
  useWebmBigRequest: boolean;
177
176
  webmCodec: WebmCodecStrategy;
@@ -1,116 +0,0 @@
1
- import { IError, ILogger, ISubject, IValueSubject } from '@vkontakte/videoplayer-shared';
2
- interface IParams {
3
- appId: string;
4
- logger: ILogger;
5
- }
6
- export declare class ChromecastConnector {
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 subscription;
14
- private subscriptionEvents;
15
- private sequenceNumber;
16
- readonly presentationAvailable$: IValueSubject<boolean>;
17
- readonly presentationConnection$: IValueSubject<PresentationConnection | null>;
18
- readonly message$: IValueSubject<PresentationConnectionMessages | null>;
19
- readonly errorEvent$: ISubject<IError>;
20
- constructor(params: IParams);
21
- destroy(): void;
22
- disconnect(): void;
23
- /**
24
- * нужно вызывать перед `disconnect`, потому что если хромкаст был инициализирован на чужом соединении
25
- * (те успешно сработал `presentationRequest.reconnect('auto-join')`), то `presentationConnection.close()`
26
- * не отключит медийку на девайсе, если до этого оно не стояло на `PAUSE` или `STOP` (сделал через `STOP`,
27
- * в итоге, для обратной совместимости с обвязкой для гуглового сдк)
28
- */
29
- stopMedia(): void;
30
- /**
31
- * @param reconnect включает попытку восстановить соединение через `.reconnect('auto-join')`
32
- */
33
- private reinitPresentation;
34
- /** должен быть инициализирован с user-input'ом */
35
- connect(): Promise<void>;
36
- private subscribe;
37
- private send;
38
- sendV2Message(message: object): void;
39
- private safeSend;
40
- private handleMessage;
41
- private createCastUrl;
42
- private getSequenceNumber;
43
- private resetSequenceNumber;
44
- private getClientId;
45
- private resetSubscriptionEvents;
46
- }
47
- declare global {
48
- interface Window {
49
- __vk_player_chromecast_id?: string;
50
- }
51
- interface Navigator {
52
- presentation: {
53
- defaultRequest: PresentationRequest | null;
54
- };
55
- }
56
- type PresentationUrls = string | string[];
57
- type PresentationConnectionState = 'connecting' | 'connected' | 'closed' | 'terminated';
58
- class PresentationRequest {
59
- constructor(presentationUrls: PresentationUrls | undefined);
60
- start(): Promise<PresentationConnection>;
61
- reconnect(presentationId: string): Promise<PresentationConnection>;
62
- getAvailability(): Promise<PresentationAvailability>;
63
- onconnectionavailable: ((this: PresentationRequest, ev: PresentationConnectionAvailableEvent) => void) | null;
64
- }
65
- class PresentationConnection extends EventTarget {
66
- readonly id: string;
67
- readonly state: PresentationConnectionState;
68
- onclose: ((this: PresentationConnection, ev: PresentationConnectionCloseEvent) => void) | null;
69
- onconnect: ((this: PresentationConnection) => void) | null;
70
- onmessage: ((this: PresentationConnection, ev: PresentationConnectionMessageEvent) => void) | null;
71
- onterminate: ((this: PresentationConnection) => void) | null;
72
- send: (data: string) => void;
73
- terminate: () => void;
74
- close: () => void;
75
- }
76
- interface PresentationAvailability extends EventTarget {
77
- value: boolean;
78
- onchange: ((this: PresentationAvailability, ev: Event) => void) | null;
79
- }
80
- interface PresentationConnectionAvailableEvent extends Event {
81
- readonly connection: PresentationConnection;
82
- }
83
- interface PresentationConnectionCloseEvent extends Event {
84
- readonly reason: 'closed' | 'error';
85
- }
86
- interface PresentationConnectionMessageEvent extends Event {
87
- readonly data: string;
88
- }
89
- }
90
- interface PresentationConnectionMessage {
91
- clientId: string;
92
- timeoutMillis: number;
93
- }
94
- interface PresentationConnectionMessageReceiverAction extends PresentationConnectionMessage {
95
- type: 'receiver_action';
96
- message: {
97
- action: 'cast' | 'stop';
98
- receiver: chrome.cast.Receiver;
99
- };
100
- }
101
- interface PresentationConnectionMessageSession extends PresentationConnectionMessage {
102
- type: 'new_session' | 'update_session';
103
- message: chrome.cast.Session;
104
- }
105
- interface PresentationConnectionMessageV2Message extends PresentationConnectionMessage {
106
- type: 'v2_message';
107
- message: PresentationConnectionMessageV2MessageMessage;
108
- }
109
- interface PresentationConnectionMessageV2MessageMessage {
110
- type: 'MEDIA_STATUS';
111
- requestId: number;
112
- sessionId: string;
113
- status: chrome.cast.media.Media[];
114
- }
115
- export type PresentationConnectionMessages = PresentationConnectionMessageReceiverAction | PresentationConnectionMessageSession | PresentationConnectionMessageV2Message;
116
- export {};
@@ -1,25 +0,0 @@
1
- import { ChromecastState } from '../../player/types';
2
- import { IError, IValueSubject, ISubject } from '@vkontakte/videoplayer-shared';
3
- import { IChromecastConnection } from '../ChromecastProvider/ChromecastInitializer/types';
4
- import { ChromecastConnector } from './ChromecastConnector';
5
- import { IChromecastNewInitializer } from './types';
6
- import { IParams } from '../ChromecastProvider/ChromecastInitializer/types';
7
- export declare class ChromecastNewInitializer implements IChromecastNewInitializer {
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: ChromecastConnector | 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
- }
@@ -1,32 +0,0 @@
1
- import { IProvider } from '../types';
2
- import { IParams } from './types';
3
- export declare class ChromecastNewProvider implements IProvider {
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 media;
12
- constructor(params: IParams);
13
- private subscribe;
14
- private handleMessage;
15
- /**
16
- * ключевая проблема хромкаста - синхронизировать состояния плеера, потому что
17
- * устройством может управлять не только текущая вкладка браузера, но и любая
18
- * другая как вкладка, так и устройство. поэтому мы считаем, что если доехали
19
- * до этапа инициализации провадера, то форсим именно нашу медийку с нашим уникальным
20
- * айдишником.
21
- */
22
- private loadMedia;
23
- private stop;
24
- private play;
25
- private pause;
26
- private seek;
27
- private setVolume;
28
- private syncPlaybackState;
29
- private syncPlayback;
30
- private syncMediaState;
31
- destroy(): void;
32
- }
@@ -1,11 +0,0 @@
1
- import { IParams } from './types';
2
- export declare class ProgressTicker {
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
- }
@@ -1,3 +0,0 @@
1
- export { ChromecastNewProvider } from './ChromecastNewProvider';
2
- export { ChromecastConnector } from './ChromecastConnector';
3
- export { ChromecastNewInitializer } from './ChromecastNewInitializer';
@@ -1,21 +0,0 @@
1
- import { IChromecastInitializer } from '../ChromecastProvider/ChromecastInitializer/types';
2
- import type { IParams as IParamsChromecastProvider } from '../ChromecastProvider/types';
3
- import { ChromecastConnector } from './ChromecastConnector';
4
- export declare enum ProviderState {
5
- STOPPED = "stopped",
6
- READY = "ready",
7
- PLAYING = "playing",
8
- PAUSED = "paused"
9
- }
10
- export declare enum PlayerState {
11
- IDLE = "IDLE",
12
- PLAYING = "PLAYING",
13
- PAUSED = "PAUSED",
14
- BUFFERING = "BUFFERING"
15
- }
16
- export interface IChromecastNewInitializer extends IChromecastInitializer {
17
- chromecastConnector?: ChromecastConnector;
18
- }
19
- export interface IParams extends Omit<IParamsChromecastProvider, 'connection'> {
20
- chromecastConnector: ChromecastConnector;
21
- }
@@ -1,4 +0,0 @@
1
- import { IChromecastConnection } from '../ChromecastProvider/ChromecastInitializer/types';
2
- export declare const createFakeChromecastConnection: () => IChromecastConnection;
3
- /** скопировал из сдк гугла */
4
- export declare const createId: () => string;
@@ -1,8 +0,0 @@
1
- import { IMetadata, ISources, VideoFormat } from '../../player/types';
2
- import { IProviderParams } from '../types';
3
- import { IChromecastConnection } from './ChromecastInitializer/types';
4
- export interface IParams extends IProviderParams<ISources> {
5
- meta: IMetadata;
6
- format: VideoFormat;
7
- connection: IChromecastConnection;
8
- }
@@ -1,2 +0,0 @@
1
- import { IParams } from './types';
2
- export declare const createMediaInfo: (params: Pick<IParams, "meta" | "format" | "output" | "source">) => chrome.cast.media.MediaInfo;