@vkontakte/videoplayer-core 2.0.163 → 2.0.164-dev.0bbcbb01d.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 +41 -41
- package/es2015.esm.js +43 -43
- package/esnext.cjs +35 -35
- package/esnext.esm.js +35 -35
- package/evergreen.esm.js +35 -35
- package/package.json +2 -2
- package/types/player/Player.d.ts +5 -2
- package/types/player/types.d.ts +7 -1
- package/types/providers/ChromecastProvider/types.d.ts +1 -1
- package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +1 -1
- package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +1 -1
- package/types/providers/DashProvider/baseDashProvider.d.ts +2 -2
- package/types/providers/DashProvider/lib/player.d.ts +2 -2
- package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +2 -2
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +4 -4
- package/types/providers/HlsLiveProvider/index.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +1 -1
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +8 -6
- package/types/providers/MpegProvider/index.d.ts +1 -1
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +1 -1
- package/types/providers/types.d.ts +8 -3
- package/types/providers/utils/Abr/types.d.ts +2 -2
- package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -1
- package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +1 -1
- package/types/providers/utils/HTMLVideoElement/observable.d.ts +2 -1
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +4 -3
- package/types/providers/utils/canPlay.d.ts +1 -1
- package/types/providers/utils/createAllocationResolution.d.ts +12 -0
- package/types/providers/utils/syncDesiredState.d.ts +3 -3
- package/types/utils/buffer/getPlayedTime.d.ts +3 -0
- package/types/utils/changePlaybackRate.d.ts +1 -1
- package/types/utils/tuningConfig.d.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.164-dev.0bbcbb01d.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -42,6 +42,6 @@
|
|
|
42
42
|
"**/*.d.ts"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@vkontakte/videoplayer-shared": "1.0.
|
|
45
|
+
"@vkontakte/videoplayer-shared": "1.0.93-dev.0bbcbb01d.0"
|
|
46
46
|
}
|
|
47
47
|
}
|
package/types/player/Player.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IOptionalTuningConfig } from "../utils/tuningConfig";
|
|
2
|
-
import type { ILogEntry,
|
|
3
|
-
import { type IAudioStream, type IConfig, type ICueSettings, type IExternalTextTrack, type IPlayer, type ITextTrack, type IVideoStream, type PlaybackRate,
|
|
2
|
+
import type { ILogEntry, ITracer, QualityLimits, Seconds, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import { type IAudioStream, type IConfig, type ICueSettings, type IExternalTextTrack, type IPlayer, type ITextTrack, type IVideoStream, type PlaybackRate, type PlayerEventsImpl, type PlayerExperimentalImpl, type PlayerInfoImpl, PredefinedQualityLimits } from "./types";
|
|
4
4
|
import type { IPlayerOptions } from "../utils/playerOptions";
|
|
5
5
|
export default class Player implements IPlayer {
|
|
6
6
|
private readonly subscription;
|
|
@@ -40,6 +40,9 @@ export default class Player implements IPlayer {
|
|
|
40
40
|
* Позвонялет переиспользовать для другого видео
|
|
41
41
|
*/
|
|
42
42
|
private reset;
|
|
43
|
+
initAudio(config: Omit<IConfig, "container"> & {
|
|
44
|
+
audioElement?: HTMLAudioElement;
|
|
45
|
+
}): IPlayer;
|
|
43
46
|
initVideo(config: IConfig): IPlayer;
|
|
44
47
|
destroy(): void;
|
|
45
48
|
private waitInit;
|
package/types/player/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IError, ILogEntry, IObservable, IRectangle, IValueObservable, IValueSubject, Kbps, Milliseconds, QualityLimits, Seconds, Subject, ValueSubject, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
2
2
|
import type { Pixel } from "../utils/3d/types";
|
|
3
3
|
import type { dump } from "../utils/playbackTelemetry";
|
|
4
4
|
export interface StartEnd<Unit extends number> {
|
|
@@ -251,6 +251,12 @@ export interface PlayerInfoValues {
|
|
|
251
251
|
* default value: `Infinity`
|
|
252
252
|
*/
|
|
253
253
|
duration$: Seconds;
|
|
254
|
+
/**
|
|
255
|
+
* Сумма времени воспроизведенных отрывков
|
|
256
|
+
*
|
|
257
|
+
* default value: `0`
|
|
258
|
+
*/
|
|
259
|
+
playedTime$: Seconds;
|
|
254
260
|
muted$: boolean;
|
|
255
261
|
volume$: number;
|
|
256
262
|
availableVideoStreams$: IVideoStream[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IMetadata, ISources, VideoFormat } from "../../player/types";
|
|
2
2
|
import type { IProviderParams } from "../types";
|
|
3
3
|
import type { IChromecastConnection } from "./ChromecastInitializer/types";
|
|
4
|
-
export interface IParams extends Omit<IProviderParams<ISources>, "skipVideoElVolumeSync$"> {
|
|
4
|
+
export interface IParams extends Omit<IProviderParams<ISources>, "skipVideoElVolumeSync$" | "allocation"> {
|
|
5
5
|
meta: IMetadata;
|
|
6
6
|
format: VideoFormat;
|
|
7
7
|
connection: IChromecastConnection;
|
|
@@ -11,7 +11,7 @@ type Params = IProviderParams<IDashURLSource> & {
|
|
|
11
11
|
export default class DashLiveProvider implements IProvider {
|
|
12
12
|
private subscription;
|
|
13
13
|
private volumeSubscription;
|
|
14
|
-
private
|
|
14
|
+
private readonly allocation;
|
|
15
15
|
private videoState;
|
|
16
16
|
private dash;
|
|
17
17
|
private representations$;
|
|
@@ -5,7 +5,7 @@ import { IRepresentation, State } from "../types";
|
|
|
5
5
|
import { Subject } from "@vkontakte/videoplayer-shared";
|
|
6
6
|
import { PlaybackState } from "../../../player/types";
|
|
7
7
|
interface IParams {
|
|
8
|
-
videoElement:
|
|
8
|
+
videoElement: HTMLMediaElement;
|
|
9
9
|
videoState: IStateMachine<State>;
|
|
10
10
|
playbackState: IStateMachine<PlaybackState>;
|
|
11
11
|
liveOffset: ILiveOffset;
|
|
@@ -2,7 +2,7 @@ import type { IAudioTrack, IDashURLSource, IHLSSource, IInternalTextTrack, IVide
|
|
|
2
2
|
import type { IProviderSubscriptionInfo } from "./lib/types";
|
|
3
3
|
import { ProviderState } from "./lib/types";
|
|
4
4
|
import type { CommonInit, Representation, Stream } from "../utils/parsers/types";
|
|
5
|
-
import type { IProvider, IProviderParams } from "../types";
|
|
5
|
+
import type { IProvider, IProviderAllocationResolution, IProviderParams } from "../types";
|
|
6
6
|
import type { IObservableVideo } from "../utils/HTMLVideoElement/observable";
|
|
7
7
|
import { TrackHistory } from "../../utils/autoSelectTrack";
|
|
8
8
|
import type { IStateMachine } from "../../utils/StateMachine/types";
|
|
@@ -26,7 +26,7 @@ export default abstract class BaseDashProvider implements IProvider {
|
|
|
26
26
|
protected subscription: ISubscription;
|
|
27
27
|
protected volumeSubscription: ISubscription;
|
|
28
28
|
protected videoState: IStateMachine<ProviderState>;
|
|
29
|
-
protected
|
|
29
|
+
protected readonly allocation: IProviderAllocationResolution;
|
|
30
30
|
protected observableVideo: IObservableVideo | null;
|
|
31
31
|
protected player: Player;
|
|
32
32
|
protected params: IParams;
|
|
@@ -89,14 +89,14 @@ export declare class Player {
|
|
|
89
89
|
private dashMaxTvVideoQuality;
|
|
90
90
|
private destroyController;
|
|
91
91
|
constructor(params: Params);
|
|
92
|
-
initManifest: ReturnType<typeof abortable<[
|
|
92
|
+
initManifest: ReturnType<typeof abortable<[HTMLMediaElement, string, number]>>;
|
|
93
93
|
updateManifest: ReturnType<typeof abortable<[], Manifest | null>>;
|
|
94
94
|
setSmartRepresentationSwitch(state: boolean): void;
|
|
95
95
|
seekLive(nextOffset: Milliseconds): Promise<void>;
|
|
96
96
|
private updateManifestUrlWithTimeOffset;
|
|
97
97
|
private updateLiveBuffersFromManifest;
|
|
98
98
|
private stopStallWatchdogSubscription;
|
|
99
|
-
initRepresentations: ReturnType<typeof abortable<[Representation["id"], Representation["id"] | undefined, IHLSSource | undefined]>>;
|
|
99
|
+
initRepresentations: ReturnType<typeof abortable<[Representation["id"] | undefined, Representation["id"] | undefined, IHLSSource | undefined]>>;
|
|
100
100
|
initBuffer(): void;
|
|
101
101
|
switchRepresentation(kind: StreamKind, id: Representation["id"], dropBuffer?: boolean): Promise<void>;
|
|
102
102
|
seek(requestedPosition: Milliseconds, forcePrecise: boolean): Promise<void>;
|
|
@@ -2,7 +2,7 @@ import type { IAudioTrack, IBaseTrack, IDashURLSource, IHLSSource, IInternalText
|
|
|
2
2
|
import type { IProviderSubscriptionInfo } from "./lib/types";
|
|
3
3
|
import { ProviderState } from "./lib/types";
|
|
4
4
|
import type { CommonInit, Representation, Stream } from "../utils/parsers/types";
|
|
5
|
-
import type { IProvider, IProviderParams } from "../types";
|
|
5
|
+
import type { IProvider, IProviderAllocationResolution, IProviderParams } from "../types";
|
|
6
6
|
import type { IObservableVideo } from "../utils/HTMLVideoElement/observable";
|
|
7
7
|
import { TrackHistory } from "../../utils/autoSelectTrack";
|
|
8
8
|
import type { IStateMachine } from "../../utils/StateMachine/types";
|
|
@@ -26,7 +26,7 @@ export default abstract class BaseDashProvider implements IProvider {
|
|
|
26
26
|
protected subscription: ISubscription;
|
|
27
27
|
protected volumeSubscription: ISubscription;
|
|
28
28
|
protected videoState: IStateMachine<ProviderState>;
|
|
29
|
-
protected
|
|
29
|
+
protected readonly allocation: IProviderAllocationResolution;
|
|
30
30
|
protected observableVideo: IObservableVideo | null;
|
|
31
31
|
protected player: BasePlayer;
|
|
32
32
|
protected params: IParams;
|
|
@@ -14,7 +14,7 @@ import type { Params } from "./types";
|
|
|
14
14
|
import { State } from "./types";
|
|
15
15
|
import { NativeBufferManager } from "../buffer/nativeBufferManager";
|
|
16
16
|
export declare abstract class BasePlayer {
|
|
17
|
-
protected element:
|
|
17
|
+
protected element: HTMLMediaElement | null;
|
|
18
18
|
protected manifestUrlString: string;
|
|
19
19
|
protected source: MediaSource | null;
|
|
20
20
|
protected manifest: Manifest | null;
|
|
@@ -79,8 +79,8 @@ export declare abstract class BasePlayer {
|
|
|
79
79
|
protected abstract prepareManifestUrlString(manifestBaseUrlString: string, offset: number): string;
|
|
80
80
|
protected abstract setSourceInitDuration(): void;
|
|
81
81
|
protected abstract restoreAfterDeepStall(): Promise<void>;
|
|
82
|
-
initRepresentations: ReturnType<typeof abortable<[Representation["id"], Representation["id"] | undefined, IHLSSource | undefined]>>;
|
|
83
|
-
initManifest(element:
|
|
82
|
+
initRepresentations: ReturnType<typeof abortable<[Representation["id"] | undefined, Representation["id"] | undefined, IHLSSource | undefined]>>;
|
|
83
|
+
initManifest(element: HTMLMediaElement, manifestBaseUrlString: string, offset: number): Promise<void>;
|
|
84
84
|
initBuffer(): void;
|
|
85
85
|
switchRepresentation(kind: StreamKind, id: Representation["id"], mode: SwithRepresentationMode): Promise<void>;
|
|
86
86
|
seek(requestedPosition: Milliseconds, forcePrecise?: boolean): Promise<void>;
|
|
@@ -108,7 +108,7 @@ export declare abstract class BasePlayer {
|
|
|
108
108
|
protected parseManifest(manifestString: string): Nullable<Manifest>;
|
|
109
109
|
protected getResultManifest(manifest: Manifest): Manifest;
|
|
110
110
|
protected stopStallWatchdogSubscription(): void;
|
|
111
|
-
protected createBuffers(dependencies: Dependencies, initialVideo
|
|
111
|
+
protected createBuffers(dependencies: Dependencies, initialVideo?: Representation["id"], initialAudio?: Representation["id"], sourceHls?: IHLSSource): void;
|
|
112
112
|
protected waitStreamToOpen(): Promise<void>;
|
|
113
113
|
protected initRepresentationSubscriptions(): void;
|
|
114
114
|
protected initBufferLengthSubscription(): void;
|
|
@@ -12,7 +12,7 @@ export default class HlsLiveProvider implements IProvider {
|
|
|
12
12
|
private subscription;
|
|
13
13
|
private volumeSubscription;
|
|
14
14
|
private videoState;
|
|
15
|
-
private
|
|
15
|
+
private readonly allocation;
|
|
16
16
|
private params;
|
|
17
17
|
private textTracksManager;
|
|
18
18
|
private liveTextManager;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Kbps, IRectangle, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
2
|
-
import type { IInternalTextTrack } from "../../player/types";
|
|
2
|
+
import type { IInternalTextTrack, IAudioStream } from "../../player/types";
|
|
3
|
+
import type { ITuningConfig } from "../../utils/tuningConfig";
|
|
4
|
+
export interface IInternalAudioStream extends IAudioStream {
|
|
5
|
+
type: "internal";
|
|
6
|
+
url: string;
|
|
7
|
+
}
|
|
3
8
|
export type ManifestUrl = {
|
|
4
9
|
id: string;
|
|
5
10
|
quality: VideoQuality;
|
|
@@ -11,11 +16,8 @@ export type ManifestUrl = {
|
|
|
11
16
|
export type HLSManifestData = {
|
|
12
17
|
qualityManifests: ManifestUrl[];
|
|
13
18
|
textTracks: IInternalTextTrack[];
|
|
19
|
+
audioStreams: IInternalAudioStream[];
|
|
14
20
|
};
|
|
15
|
-
type ExtractHLSManifestDataConfig =
|
|
16
|
-
manifestRetryMaxCount: number;
|
|
17
|
-
manifestRetryInterval: number;
|
|
18
|
-
manifestRetryMaxInterval: number;
|
|
19
|
-
};
|
|
21
|
+
type ExtractHLSManifestDataConfig = Pick<ITuningConfig, "manifestRetryInterval" | "manifestRetryMaxCount" | "manifestRetryMaxInterval" | "audioOnly">;
|
|
20
22
|
declare const extractHLSManifestData: (masterManifestUrl: string, baseUrl: string | undefined, config: ExtractHLSManifestDataConfig, init?: RequestInit) => Promise<HLSManifestData>;
|
|
21
23
|
export default extractHLSManifestData;
|
|
@@ -10,7 +10,7 @@ export default class WebRTCLiveProvider implements IProvider {
|
|
|
10
10
|
private readonly volumeSubscription;
|
|
11
11
|
private readonly params;
|
|
12
12
|
private log;
|
|
13
|
-
private
|
|
13
|
+
private readonly allocation;
|
|
14
14
|
private videoState;
|
|
15
15
|
private liveStreamClient;
|
|
16
16
|
private maxSeekBackTime$;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ITuningConfig } from "../utils/tuningConfig";
|
|
2
|
-
import type {
|
|
2
|
+
import type { IComponentLogger, IError, ILogger, IRange, IRectangle, ISubject, ITracer, IValueSubject, IWarning, Milliseconds, QualityLimits, Seconds } from "@vkontakte/videoplayer-shared";
|
|
3
3
|
import type { IChromecastInitializer } from "./ChromecastProvider/ChromecastInitializer/types";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { IExternalTextTrack, IInternalTextTrack, ITextTrack, IVideoTrack, IVolumeState, PlaybackRate, PlaybackState } from "../player/types";
|
|
5
|
+
import type { AudioCodec, HttpConnectionMetrics, HttpConnectionType, HttpDownloadMetrics, IAudioStream, IAudioTrack, ICueSettings, ISources, IVideoStream, SeekState, VideoCodec } from "../player/types";
|
|
6
6
|
import type { IStateMachine } from "../utils/StateMachine/types";
|
|
7
7
|
import type ThroughputEstimator from "../utils/ThroughputEstimator";
|
|
8
8
|
import type { Scene3D } from "../utils/3d/Scene3D";
|
|
@@ -66,6 +66,7 @@ export type IDesiredState = { [K in keyof DesiredStateValues] : IStateMachine<De
|
|
|
66
66
|
export interface IProviderOutput {
|
|
67
67
|
position$: IValueSubject<Seconds>;
|
|
68
68
|
duration$: IValueSubject<Seconds>;
|
|
69
|
+
playedTime$: IValueSubject<Seconds>;
|
|
69
70
|
volume$: IValueSubject<IVolumeState>;
|
|
70
71
|
currentVideoSegmentLength$: IValueSubject<number>;
|
|
71
72
|
currentAudioSegmentLength$: IValueSubject<number>;
|
|
@@ -129,3 +130,7 @@ export interface IProviderOutput {
|
|
|
129
130
|
playbackState$: IValueSubject<PlaybackState | string>;
|
|
130
131
|
getCurrentTime$: IValueSubject<(() => number) | null>;
|
|
131
132
|
}
|
|
133
|
+
export interface IProviderAllocationResolution {
|
|
134
|
+
readonly target: HTMLMediaElement;
|
|
135
|
+
readonly video: HTMLVideoElement | null;
|
|
136
|
+
}
|
|
@@ -58,7 +58,7 @@ export interface IInitAbrManagerContext {
|
|
|
58
58
|
throughput$: IValueSubject<Kbps>;
|
|
59
59
|
rtt$: IValueSubject<Milliseconds>;
|
|
60
60
|
throughputVariance$?: IValueSubject<number>;
|
|
61
|
-
element:
|
|
61
|
+
element: HTMLMediaElement;
|
|
62
62
|
failedVideoTrack: Nullable<IVideoTrack>;
|
|
63
63
|
abrLogger: IComponentLogger;
|
|
64
64
|
panelSize?: IRectangle;
|
|
@@ -66,7 +66,7 @@ export interface IInitAbrManagerContext {
|
|
|
66
66
|
export interface IVideoElementAbrManagerContext {
|
|
67
67
|
observableVideo: IObservableVideo;
|
|
68
68
|
elementVisible$: IValueSubject<boolean>;
|
|
69
|
-
elementSizeManager
|
|
69
|
+
elementSizeManager?: ElementSizeManager;
|
|
70
70
|
}
|
|
71
71
|
export interface IVideoTracksContext {
|
|
72
72
|
videoTracksAsc: IVideoTrack[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const destroy: (video:
|
|
1
|
+
export declare const destroy: (video: HTMLMediaElement, clearVideoElementInnerHTML: boolean) => void;
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* @param {Function} soundNotAllowedCallback - колбэк, который вызовется если нам не разрешили играть со звуком
|
|
5
5
|
* @return {Promise}<boolean> - получилось начать воспроизведение
|
|
6
6
|
*/
|
|
7
|
-
declare const _default: (video:
|
|
7
|
+
declare const _default: (video: HTMLMediaElement, soundNotAllowedCallback?: () => void) => Promise<boolean>;
|
|
8
8
|
export default _default;
|
|
@@ -12,6 +12,7 @@ export interface IObservableVideo {
|
|
|
12
12
|
progress$: IObservable<undefined>;
|
|
13
13
|
timeUpdate$: IObservable<Seconds>;
|
|
14
14
|
durationChange$: IObservable<Seconds>;
|
|
15
|
+
playedTime$: IObservable<Seconds>;
|
|
15
16
|
loadStart$: IObservable<void>;
|
|
16
17
|
loadedMetadata$: IObservable<undefined>;
|
|
17
18
|
loadedData$: IObservable<undefined>;
|
|
@@ -25,4 +26,4 @@ export interface IObservableVideo {
|
|
|
25
26
|
leavePip$: IObservable<PictureInPictureEvent>;
|
|
26
27
|
destroy: () => void;
|
|
27
28
|
}
|
|
28
|
-
export declare const observe: (video:
|
|
29
|
+
export declare const observe: (video: HTMLMediaElement) => IObservableVideo;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ITuningConfig } from "../../../utils/tuningConfig";
|
|
2
|
-
type AllocateConstraints = Pick<ITuningConfig, "audioVideoSyncRate" | "disableYandexPiP" | "clearVideoElementInnerHTML" | "reuseOwnVideoElement">;
|
|
2
|
+
export type AllocateConstraints = Pick<ITuningConfig, "audioVideoSyncRate" | "disableYandexPiP" | "clearVideoElementInnerHTML" | "reuseOwnVideoElement">;
|
|
3
3
|
type DisposeConstraints = Pick<ITuningConfig, "keepVideoElement" | "clearVideoElementInnerHTML" | "reuseOwnVideoElement">;
|
|
4
|
-
export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, clearVideoElementInnerHTML, reuseOwnVideoElement }:
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, clearVideoElementInnerHTML, reuseOwnVideoElement }: ITuningConfig) => HTMLVideoElement;
|
|
5
|
+
export declare const initializeAudio: (element: HTMLAudioElement) => HTMLAudioElement;
|
|
6
|
+
export declare const dispose: (element: HTMLMediaElement, constraints: DisposeConstraints) => void;
|
|
6
7
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ITuningConfig } from "../../utils/tuningConfig";
|
|
2
2
|
import type { Stream } from "./parsers/types";
|
|
3
|
-
export declare const filterStreams: (streams: Stream[], videoElement:
|
|
3
|
+
export declare const filterStreams: (streams: Stream[], videoElement: HTMLMediaElement, canPlayTypeRestriction: ITuningConfig["dash"]["checkRepresentationCanPlayType"]) => Stream[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ITuningConfig } from "../../utils/tuningConfig";
|
|
2
|
+
import type { IProviderAllocationResolution } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Разрешает аллокацию медиа-элемента для провайдера.
|
|
5
|
+
*
|
|
6
|
+
* Возвращает два поля:
|
|
7
|
+
* - `target: HTMLMediaElement` — элемент для управления воспроизведением (play, pause, load, currentTime и т.д.).
|
|
8
|
+
* Всегда присутствует, тип определяется входным контейнером: HTMLVideoElement для видео, HTMLAudioElement для аудио.
|
|
9
|
+
* - `video: HTMLVideoElement | null` — видеоэлемент для UI-специфичных операций (textTracks, getBoundingClientRect).
|
|
10
|
+
* Равен `target` если это HTMLVideoElement, иначе `null` для аудио-режима.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveAllocation(container: HTMLElement, tuningConfig: ITuningConfig): IProviderAllocationResolution;
|
|
@@ -6,9 +6,9 @@ declare const syncDesiredState: <Value>(desiredState: IStateMachine<Value | unde
|
|
|
6
6
|
changed$?: IObservable<Value | undefined>;
|
|
7
7
|
onError?: IListener<Error | unknown>;
|
|
8
8
|
}) => ISubscription;
|
|
9
|
-
export declare const syncVideoLooped: (video:
|
|
10
|
-
export declare const syncVideoVolumeState: (video:
|
|
9
|
+
export declare const syncVideoLooped: (video: HTMLMediaElement, desiredState: IStateMachine<boolean>, onError?: IListener<Error | unknown>) => ISubscription;
|
|
10
|
+
export declare const syncVideoVolumeState: (video: HTMLMediaElement, desiredState: IStateMachine<IVolumeState>, changed$: IObservable<IVolumeState>, onError?: IListener<Error | unknown>, params?: {
|
|
11
11
|
skipVideoElVolumeSync$: IValueSubject<boolean>;
|
|
12
12
|
}) => ISubscription;
|
|
13
|
-
export declare const syncVideoPlaybackRate: (video:
|
|
13
|
+
export declare const syncVideoPlaybackRate: (video: HTMLMediaElement, desiredState: IStateMachine<PlaybackRate>, changed$: IObservable<PlaybackRate>, onError?: IListener<Error | unknown>) => ISubscription;
|
|
14
14
|
export default syncDesiredState;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Nullable } from "@vkontakte/videoplayer-shared";
|
|
2
|
-
export declare const changePlaybackRate: (element: Nullable<
|
|
2
|
+
export declare const changePlaybackRate: (element: Nullable<HTMLMediaElement>, targetPlaybackRate: number) => void;
|
|
@@ -430,6 +430,8 @@ export type ITuningConfig = {
|
|
|
430
430
|
* Устанавливаем длительность видео на основе последнего сегмента.
|
|
431
431
|
*/
|
|
432
432
|
useDurationFromSegments: boolean;
|
|
433
|
+
/** включен режим проигрывания только аудио (без видео) */
|
|
434
|
+
audioOnly: boolean;
|
|
433
435
|
};
|
|
434
436
|
export type IOptionalTuningConfig = RecursivePartial<ITuningConfig>;
|
|
435
437
|
export declare const fillDefault: (partial: IOptionalTuningConfig) => ITuningConfig;
|