@amazon/vinyl 2.0.0 → 3.0.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/dist/index.cjs +603 -317
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +622 -329
- package/dist/index.js.map +4 -4
- package/dist/test/benchmark.es5.js +8 -5
- package/dist/test/benchmark.js +228 -0
- package/dist/test/benchmark.js.map +4 -4
- package/dist/test/integ.es5.js +182 -156
- package/dist/test/integ.js +1853 -796
- package/dist/test/integ.js.map +4 -4
- package/dist/types/current/index.d.ts +4 -0
- package/dist/types/current/index.d.ts.map +1 -1
- package/dist/types/current/index.js +4 -0
- package/dist/types/current/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/current/streaming/AudioOptions.d.ts.map +1 -0
- package/dist/types/current/streaming/AudioOptions.js +15 -0
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +2 -2
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
- package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +5 -5
- package/dist/types/current/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/current/text/HtmlTextTrackRenderer.d.ts.map +1 -0
- package/dist/types/current/text/HtmlTextTrackRenderer.js +231 -0
- package/dist/types/current/text/SidecarTextTrackController.d.ts +65 -53
- package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -1
- package/dist/types/current/text/SidecarTextTrackController.js +167 -154
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts +5 -0
- package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -1
- package/dist/types/current/text/SidecarTextTrackLoader.js +13 -7
- package/dist/types/current/text/TextTrack.d.ts +74 -20
- package/dist/types/current/text/TextTrack.d.ts.map +1 -1
- package/dist/types/current/text/TextTrack.js +20 -0
- package/dist/types/current/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/current/text/TextTrackRenderer.d.ts.map +1 -0
- package/dist/types/current/text/TextTrackRenderer.js +5 -0
- package/dist/types/current/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/current/text/mediaTextTrackProvider.d.ts.map +1 -0
- package/dist/types/current/text/mediaTextTrackProvider.js +42 -0
- package/dist/types/current/text/parseWebVtt.d.ts +16 -2
- package/dist/types/current/text/parseWebVtt.d.ts.map +1 -1
- package/dist/types/current/text/parseWebVtt.js +176 -48
- package/dist/types/current/text/pickPreferredTextTrack.d.ts +2 -1
- package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -1
- package/dist/types/current/text/pickPreferredTextTrack.js +6 -3
- package/dist/types/current/track/Track.d.ts +1 -1
- package/dist/types/current/track/dash/createDashFactories.d.ts +21 -10
- package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
- package/dist/types/current/track/dash/createDashFactories.js +9 -21
- package/dist/types/current/track/hls/createHlsFactories.d.ts +21 -10
- package/dist/types/current/track/hls/createHlsFactories.d.ts.map +1 -1
- package/dist/types/current/track/hls/createHlsFactories.js +9 -21
- package/dist/types/current/track/mse/MseTrack.d.ts +1 -2
- package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
- package/dist/types/current/track/mse/MseTrack.js +3 -7
- package/dist/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/types/current/vinyl/VinylOptions.d.ts +18 -40
- package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylOptions.js +12 -11
- package/dist/types/current/vinyl/VinylPlayer.d.ts +0 -6
- package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
- package/dist/types/current/vinyl/VinylPlayer.js +2 -23
- package/dist/types/current/vinyl/createVinylFactories.d.ts +32 -18
- package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
- package/dist/types/current/vinyl/createVinylFactories.js +6 -0
- package/dist/types/ts3.7/index.d.ts +4 -0
- package/dist/types/ts3.7/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +2 -2
- package/dist/types/ts3.7/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +65 -53
- package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +5 -0
- package/dist/types/ts3.7/text/TextTrack.d.ts +74 -20
- package/dist/types/ts3.7/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts3.7/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts3.7/text/parseWebVtt.d.ts +16 -2
- package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +2 -1
- package/dist/types/ts3.7/track/Track.d.ts +1 -1
- package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +21 -10
- package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +21 -10
- package/dist/types/ts3.7/track/mse/MseTrack.d.ts +1 -2
- package/dist/types/ts3.7/vinyl/VinylOptions.d.ts +18 -40
- package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +0 -6
- package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +32 -18
- package/dist/types/ts4.1/index.d.ts +4 -0
- package/dist/types/ts4.1/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +2 -2
- package/dist/types/ts4.1/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +65 -53
- package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +5 -0
- package/dist/types/ts4.1/text/TextTrack.d.ts +74 -20
- package/dist/types/ts4.1/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts4.1/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts4.1/text/parseWebVtt.d.ts +16 -2
- package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +2 -1
- package/dist/types/ts4.1/track/Track.d.ts +1 -1
- package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +21 -10
- package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +21 -10
- package/dist/types/ts4.1/track/mse/MseTrack.d.ts +1 -2
- package/dist/types/ts4.1/vinyl/VinylOptions.d.ts +18 -40
- package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +0 -6
- package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +32 -18
- package/dist/types/ts4.7/index.d.ts +4 -0
- package/dist/types/ts4.7/streaming/AudioOptions.d.ts +39 -0
- package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +2 -2
- package/dist/types/ts4.7/text/HtmlTextTrackRenderer.d.ts +60 -0
- package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +65 -53
- package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +5 -0
- package/dist/types/ts4.7/text/TextTrack.d.ts +74 -20
- package/dist/types/ts4.7/text/TextTrackRenderer.d.ts +24 -0
- package/dist/types/ts4.7/text/mediaTextTrackProvider.d.ts +34 -0
- package/dist/types/ts4.7/text/parseWebVtt.d.ts +16 -2
- package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +2 -1
- package/dist/types/ts4.7/track/Track.d.ts +1 -1
- package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +21 -10
- package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +21 -10
- package/dist/types/ts4.7/track/mse/MseTrack.d.ts +1 -2
- package/dist/types/ts4.7/vinyl/VinylOptions.d.ts +18 -40
- package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +0 -6
- package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +32 -18
- package/dist/unit/types/current/index.d.ts +2 -0
- package/dist/unit/types/current/index.d.ts.map +1 -1
- package/dist/unit/types/current/index.js +2 -0
- package/dist/unit/types/current/streaming/MseTrack.test.js +13 -7
- package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +8 -4
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts +2 -0
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.js +231 -0
- package/dist/unit/types/current/text/SidecarTextTrackController.test.js +432 -333
- package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +29 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts +2 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts.map +1 -0
- package/dist/unit/types/current/text/mediaTextTrackProvider.test.js +86 -0
- package/dist/unit/types/current/text/parseWebVtt.test.js +187 -6
- package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +12 -1
- package/dist/unit/types/current/track/dash/createDashFactories.test.js +1 -2
- package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +1 -2
- package/dist/unit/types/current/track/hls/createHlsFactories.test.js +1 -2
- package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +102 -177
- package/dist/unit/types/current/vinyl/createVinylFactories.test.js +2 -0
- package/dist/vinylTestUtil/index.js +14 -8
- package/dist/vinylTestUtil/index.js.map +2 -2
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +3 -2
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +5 -2
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +3 -3
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +3 -3
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +3 -2
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
- package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +3 -2
- package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +3 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +3 -3
- package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +1 -2
- package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +1 -2
- package/docs/USAGE.md +82 -31
- package/package.json +12 -12
|
@@ -19,6 +19,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
19
19
|
readonly capabilities: MockCapabilities;
|
|
20
20
|
readonly drmController: MockDrmController;
|
|
21
21
|
readonly media: HTMLMediaElement;
|
|
22
|
+
readonly textTrackProvider: import("@amazon/vinyl").MediaTextTrackProvider;
|
|
23
|
+
readonly textTrackRenderer: null;
|
|
22
24
|
readonly createDashFactories: (_loadOptions: import("@amazon/vinyl").DashTrackLoadOptions) => import("@amazon/vinyl-di").Factories<{
|
|
23
25
|
readonly textTrackController: import("../..").MockTextTrackController;
|
|
24
26
|
readonly contentTypesValue: import("@amazon/vinyl-observable").MutableValueImpl<Promise<Set<import("@amazon/vinyl").ContentType>>>;
|
|
@@ -32,9 +34,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
32
34
|
readonly playbackController: MockPlaybackController;
|
|
33
35
|
readonly drmController: MockDrmController;
|
|
34
36
|
readonly mediaQualityMetadataResolver: jasmine.Spy<import("@amazon/vinyl").DashMediaQualityMetadataResolver>;
|
|
35
|
-
readonly
|
|
37
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
36
38
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
37
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
38
39
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
39
40
|
}>;
|
|
40
41
|
readonly createHlsFactories: (_loadOptions: import("@amazon/vinyl").HlsTrackLoadOptions) => any;
|
|
@@ -3,8 +3,8 @@ import { MockEventHost } from '@amazon/vinyl-util/testUtil';
|
|
|
3
3
|
export declare class MockTextTrackController extends MockEventHost implements TextTrackController {
|
|
4
4
|
textTracks: readonly TextTrackInfo[];
|
|
5
5
|
activeTextTrack: TextTrackInfo | null;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
active: boolean;
|
|
7
|
+
deactivate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
8
|
+
activate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=MockTextTrackController.d.ts.map
|
|
@@ -18,9 +18,8 @@ export declare function createMockDashDependencies(): {
|
|
|
18
18
|
readonly playbackController: MockPlaybackController;
|
|
19
19
|
readonly drmController: MockDrmController;
|
|
20
20
|
readonly mediaQualityMetadataResolver: jasmine.Spy<DashMediaQualityMetadataResolver>;
|
|
21
|
-
readonly
|
|
21
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
22
22
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
23
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
24
23
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
25
24
|
};
|
|
26
25
|
export type MockDashDependencies = ReturnType<typeof createMockDashDependencies>;
|
|
@@ -16,9 +16,8 @@ export declare function createMockHlsDependencies(): {
|
|
|
16
16
|
readonly playbackController: MockPlaybackController;
|
|
17
17
|
readonly drmController: MockDrmController;
|
|
18
18
|
readonly mediaQualityMetadataResolver: jasmine.Spy<HlsMediaQualityMetadataResolver>;
|
|
19
|
-
readonly
|
|
19
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
20
20
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
21
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
22
21
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
23
22
|
};
|
|
24
23
|
export type MockHlsDependencies = ReturnType<typeof createMockHlsDependencies>;
|
|
@@ -19,6 +19,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
19
19
|
readonly capabilities: MockCapabilities;
|
|
20
20
|
readonly drmController: MockDrmController;
|
|
21
21
|
readonly media: HTMLMediaElement;
|
|
22
|
+
readonly textTrackProvider: import("@amazon/vinyl").MediaTextTrackProvider;
|
|
23
|
+
readonly textTrackRenderer: null;
|
|
22
24
|
readonly createDashFactories: (_loadOptions: import("@amazon/vinyl").DashTrackLoadOptions) => import("@amazon/vinyl-di").Factories<{
|
|
23
25
|
readonly textTrackController: import("../..").MockTextTrackController;
|
|
24
26
|
readonly contentTypesValue: import("@amazon/vinyl-observable").MutableValueImpl<Promise<Set<import("@amazon/vinyl").ContentType>>>;
|
|
@@ -32,9 +34,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
32
34
|
readonly playbackController: MockPlaybackController;
|
|
33
35
|
readonly drmController: MockDrmController;
|
|
34
36
|
readonly mediaQualityMetadataResolver: jasmine.Spy<import("@amazon/vinyl").DashMediaQualityMetadataResolver>;
|
|
35
|
-
readonly
|
|
37
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
36
38
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
37
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
38
39
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
39
40
|
}>;
|
|
40
41
|
readonly createHlsFactories: (_loadOptions: import("@amazon/vinyl").HlsTrackLoadOptions) => any;
|
|
@@ -3,8 +3,8 @@ import { MockEventHost } from '@amazon/vinyl-util/testUtil';
|
|
|
3
3
|
export declare class MockTextTrackController extends MockEventHost implements TextTrackController {
|
|
4
4
|
textTracks: readonly TextTrackInfo[];
|
|
5
5
|
activeTextTrack: TextTrackInfo | null;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
active: boolean;
|
|
7
|
+
deactivate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
8
|
+
activate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=MockTextTrackController.d.ts.map
|
|
@@ -18,9 +18,8 @@ export declare function createMockDashDependencies(): {
|
|
|
18
18
|
readonly playbackController: MockPlaybackController;
|
|
19
19
|
readonly drmController: MockDrmController;
|
|
20
20
|
readonly mediaQualityMetadataResolver: jasmine.Spy<DashMediaQualityMetadataResolver>;
|
|
21
|
-
readonly
|
|
21
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
22
22
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
23
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
24
23
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
25
24
|
};
|
|
26
25
|
export type MockDashDependencies = ReturnType<typeof createMockDashDependencies>;
|
|
@@ -16,9 +16,8 @@ export declare function createMockHlsDependencies(): {
|
|
|
16
16
|
readonly playbackController: MockPlaybackController;
|
|
17
17
|
readonly drmController: MockDrmController;
|
|
18
18
|
readonly mediaQualityMetadataResolver: jasmine.Spy<HlsMediaQualityMetadataResolver>;
|
|
19
|
-
readonly
|
|
19
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
20
20
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
21
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
22
21
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
23
22
|
};
|
|
24
23
|
export type MockHlsDependencies = ReturnType<typeof createMockHlsDependencies>;
|
|
@@ -19,6 +19,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
19
19
|
readonly capabilities: MockCapabilities;
|
|
20
20
|
readonly drmController: MockDrmController;
|
|
21
21
|
readonly media: HTMLMediaElement;
|
|
22
|
+
readonly textTrackProvider: import("@amazon/vinyl").MediaTextTrackProvider;
|
|
23
|
+
readonly textTrackRenderer: null;
|
|
22
24
|
readonly createDashFactories: (_loadOptions: import("@amazon/vinyl").DashTrackLoadOptions) => import("@amazon/vinyl-di").Factories<{
|
|
23
25
|
readonly textTrackController: import("../..").MockTextTrackController;
|
|
24
26
|
readonly contentTypesValue: import("@amazon/vinyl-observable").MutableValueImpl<Promise<Set<import("@amazon/vinyl").ContentType>>>;
|
|
@@ -32,9 +34,8 @@ export declare function createMockVinylDependencies(): {
|
|
|
32
34
|
readonly playbackController: MockPlaybackController;
|
|
33
35
|
readonly drmController: MockDrmController;
|
|
34
36
|
readonly mediaQualityMetadataResolver: jasmine.Spy<import("@amazon/vinyl").DashMediaQualityMetadataResolver>;
|
|
35
|
-
readonly
|
|
37
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
36
38
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
37
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
38
39
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
39
40
|
}>;
|
|
40
41
|
readonly createHlsFactories: (_loadOptions: import("@amazon/vinyl").HlsTrackLoadOptions) => any;
|
|
@@ -3,8 +3,8 @@ import { MockEventHost } from '@amazon/vinyl-util/testUtil';
|
|
|
3
3
|
export declare class MockTextTrackController extends MockEventHost implements TextTrackController {
|
|
4
4
|
textTracks: readonly TextTrackInfo[];
|
|
5
5
|
activeTextTrack: TextTrackInfo | null;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
active: boolean;
|
|
7
|
+
deactivate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
8
|
+
activate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=MockTextTrackController.d.ts.map
|
|
@@ -18,9 +18,8 @@ export declare function createMockDashDependencies(): {
|
|
|
18
18
|
readonly playbackController: MockPlaybackController;
|
|
19
19
|
readonly drmController: MockDrmController;
|
|
20
20
|
readonly mediaQualityMetadataResolver: jasmine.Spy<DashMediaQualityMetadataResolver>;
|
|
21
|
-
readonly
|
|
21
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
22
22
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
23
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
24
23
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
25
24
|
};
|
|
26
25
|
export type MockDashDependencies = ReturnType<typeof createMockDashDependencies>;
|
|
@@ -16,9 +16,8 @@ export declare function createMockHlsDependencies(): {
|
|
|
16
16
|
readonly playbackController: MockPlaybackController;
|
|
17
17
|
readonly drmController: MockDrmController;
|
|
18
18
|
readonly mediaQualityMetadataResolver: jasmine.Spy<HlsMediaQualityMetadataResolver>;
|
|
19
|
-
readonly
|
|
19
|
+
readonly audio: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").AudioOptions>;
|
|
20
20
|
readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
|
|
21
|
-
readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
|
|
22
21
|
readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
|
|
23
22
|
};
|
|
24
23
|
export type MockHlsDependencies = ReturnType<typeof createMockHlsDependencies>;
|
package/docs/USAGE.md
CHANGED
|
@@ -454,37 +454,63 @@ text track URL. Segmented text codecs (`stpp`, `wvtt`) are not surfaced in v1.
|
|
|
454
454
|
Discovery happens automatically when a track loads — applications need only
|
|
455
455
|
listen for the `textTracksChange` event or read `player.textTracks`.
|
|
456
456
|
|
|
457
|
-
###
|
|
457
|
+
### Selecting captions
|
|
458
458
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
459
|
+
Caption selection is **declarative**: it is driven entirely by the `text` option
|
|
460
|
+
(`VinylOptions.text`), so a choice persists across track changes (e.g. across an
|
|
461
|
+
ad break) and re-resolves against whatever the next source exposes. There is no
|
|
462
|
+
imperative `setActiveTextTrack` call.
|
|
463
|
+
|
|
464
|
+
```typescript
|
|
465
|
+
type CaptionMode = 'on' | 'off' | 'forced'
|
|
465
466
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
467
|
+
interface TextTrackSelection {
|
|
468
|
+
id?: string | null // exact track id (wins over the other criteria)
|
|
469
|
+
kind?: TextTrackKind | null // restrict to a kind, e.g. 'captions'
|
|
470
|
+
language?: string | readonly string[] | null // preferred language(s)
|
|
471
|
+
forced?: boolean | null // explicit forced-ness filter (overrides the mode)
|
|
472
|
+
}
|
|
470
473
|
|
|
471
|
-
|
|
474
|
+
interface TextTrackControllerOptions {
|
|
475
|
+
enabled?: CaptionMode | null // default 'forced'
|
|
476
|
+
selection?: TextTrackSelection | null
|
|
477
|
+
}
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
- `enabled` gates rendering: `'off'` shows nothing, `'forced'` shows only forced
|
|
481
|
+
(narrative) tracks, `'on'` shows the full subtitle track. The default is
|
|
482
|
+
`'forced'`.
|
|
483
|
+
- `selection.language` unset (or empty) falls back to the platform's
|
|
484
|
+
`navigator.languages`.
|
|
485
|
+
- `selection.forced`, when set, is an explicit filter that overrides the
|
|
486
|
+
forced/full split implied by `enabled`.
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
// Default (no config): forced captions in the platform's preferred languages.
|
|
490
|
+
|
|
491
|
+
// Full subtitles in a specific language:
|
|
492
|
+
player.configure({ text: { enabled: 'on', selection: { language: 'en' } } })
|
|
493
|
+
|
|
494
|
+
// Forced narrative captions only, for a language:
|
|
495
|
+
player.configure({ text: { enabled: 'forced', selection: { language: 'es' } } })
|
|
496
|
+
|
|
497
|
+
// A specific discovered track by id:
|
|
498
|
+
player.configure({ text: { enabled: 'on', selection: { id: someTrack.id } } })
|
|
499
|
+
|
|
500
|
+
// Turn captions off:
|
|
501
|
+
player.configure({ text: { enabled: 'off' } })
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
The player still exposes the discovered list, the active selection, and change
|
|
505
|
+
events (read-only):
|
|
472
506
|
|
|
473
507
|
```typescript
|
|
474
|
-
// Inspect available text tracks for the current media.
|
|
475
508
|
console.log(player.textTracks)
|
|
476
509
|
// → [{ id, kind: 'subtitles', language: 'en', label: 'English', default: true,
|
|
477
510
|
// forced: false, characteristics: [], uri: 'https://.../subs/en.vtt',
|
|
478
511
|
// mimeType: 'text/vtt' }, ...]
|
|
479
|
-
|
|
480
|
-
// Activate a track.
|
|
481
|
-
player.setActiveTextTrack(player.textTracks[0].id)
|
|
482
|
-
|
|
483
|
-
// Inspect or clear the active track.
|
|
484
512
|
console.log(player.activeTextTrack)
|
|
485
|
-
player.setActiveTextTrack(null)
|
|
486
513
|
|
|
487
|
-
// React to changes.
|
|
488
514
|
player.on('textTracksChange', (event) => {
|
|
489
515
|
console.log('Text tracks updated:', event.current)
|
|
490
516
|
})
|
|
@@ -496,19 +522,44 @@ player.on('textTrackError', (event) => {
|
|
|
496
522
|
})
|
|
497
523
|
```
|
|
498
524
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
`
|
|
525
|
+
### Forced subtitles
|
|
526
|
+
|
|
527
|
+
A track flagged `forced` carries essential text (e.g. translations of
|
|
528
|
+
foreign-language dialogue) that is meant to display even when the user has not
|
|
529
|
+
enabled full subtitles. A `forced` track shares its `language` with the full
|
|
530
|
+
track, so selection distinguishes them by the `forced` flag rather than language
|
|
531
|
+
alone. Media characteristics / accessibility roles are surfaced in
|
|
532
|
+
`characteristics` (HLS `CHARACTERISTICS`, DASH `Role`/`Accessibility`).
|
|
504
533
|
|
|
505
|
-
|
|
534
|
+
Because `enabled` defaults to `'forced'`, out of the box the player shows a
|
|
535
|
+
forced track for the platform's preferred languages when one is discovered, and
|
|
536
|
+
nothing otherwise.
|
|
537
|
+
|
|
538
|
+
### Rendering
|
|
539
|
+
|
|
540
|
+
When a track is selected, Vinyl fetches the WebVTT, parses it, and adds the cues
|
|
541
|
+
to a `TextTrack` on the underlying media element via
|
|
542
|
+
`HTMLMediaElement.addTextTrack`. By default that track is `'showing'` and the
|
|
543
|
+
**browser renders** the cues (styleable only through the limited `::cue`
|
|
544
|
+
pseudo-element).
|
|
545
|
+
|
|
546
|
+
For full control over caption styling and placement, inject a
|
|
547
|
+
`TextTrackRenderer` — Vinyl ships `HtmlTextTrackRenderer`, which paints cues as
|
|
548
|
+
an HTML overlay you position yourself:
|
|
549
|
+
|
|
550
|
+
```typescript
|
|
551
|
+
import { createVinylPlayer, HtmlTextTrackRenderer } from '@amazon/vinyl'
|
|
552
|
+
|
|
553
|
+
const captions = new HtmlTextTrackRenderer()
|
|
554
|
+
const player = createVinylPlayer({ media, textTrackRenderer: captions })
|
|
555
|
+
videoContainer.appendChild(captions.element) // position it over the video
|
|
556
|
+
```
|
|
506
557
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
`
|
|
510
|
-
|
|
511
|
-
|
|
558
|
+
With a renderer injected, the DOM `TextTrack` is kept `'hidden'` (used only for
|
|
559
|
+
cue timing) and the renderer paints the active cues, honoring each cue's WebVTT
|
|
560
|
+
settings (`position` / `line` / `size` / `align` / `vertical`), cue payload tags
|
|
561
|
+
(`<c.class>`, `<i>`, `<b>`, `<v>`, `<lang>`, …), and `STYLE`-block `::cue`
|
|
562
|
+
rules. Implement the `TextTrackRenderer` interface for a fully custom renderer.
|
|
512
563
|
|
|
513
564
|
## Ad Breaks (Server-Guided Ad Insertion)
|
|
514
565
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amazon/vinyl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "An HTML5 streaming media player",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -55,14 +55,12 @@
|
|
|
55
55
|
},
|
|
56
56
|
"exports": {
|
|
57
57
|
".": {
|
|
58
|
-
"development": "./src/index.ts",
|
|
59
58
|
"types@>=5.4": "./dist/types/current/index.d.ts",
|
|
60
59
|
"types@>=4.7": "./dist/types/ts4.7/index.d.ts",
|
|
61
60
|
"require": "./dist/index.cjs",
|
|
62
61
|
"import": "./dist/index.js"
|
|
63
62
|
},
|
|
64
63
|
"./vinylTestUtil": {
|
|
65
|
-
"development": "./test/vinylTestUtil/index.ts",
|
|
66
64
|
"types@>=5.4": "./dist/vinylTestUtil/types/current/index.d.ts",
|
|
67
65
|
"types@>=4.7": "./dist/vinylTestUtil/types/ts4.7/index.d.ts",
|
|
68
66
|
"import": "./dist/vinylTestUtil/index.js"
|
|
@@ -92,17 +90,19 @@
|
|
|
92
90
|
"oxlint:write": "oxlint --type-aware --fix"
|
|
93
91
|
},
|
|
94
92
|
"devDependencies": {
|
|
95
|
-
"@amazon/vinyl-build-utils": "^
|
|
93
|
+
"@amazon/vinyl-build-utils": "^3.0.0",
|
|
96
94
|
"commander": "^9.5.0"
|
|
97
95
|
},
|
|
98
96
|
"dependencies": {
|
|
99
|
-
"@amazon/vinyl-di": "^
|
|
100
|
-
"@amazon/vinyl-hls-parser": "^
|
|
101
|
-
"@amazon/vinyl-mpd-parser": "^
|
|
102
|
-
"@amazon/vinyl-observable": "^
|
|
103
|
-
"@amazon/vinyl-transmux": "^
|
|
104
|
-
"@amazon/vinyl-util": "^
|
|
105
|
-
"@amazon/vinyl-validation": "^
|
|
97
|
+
"@amazon/vinyl-di": "^3.0.0",
|
|
98
|
+
"@amazon/vinyl-hls-parser": "^3.0.0",
|
|
99
|
+
"@amazon/vinyl-mpd-parser": "^3.0.0",
|
|
100
|
+
"@amazon/vinyl-observable": "^3.0.0",
|
|
101
|
+
"@amazon/vinyl-transmux": "^3.0.0",
|
|
102
|
+
"@amazon/vinyl-util": "^3.0.0",
|
|
103
|
+
"@amazon/vinyl-validation": "^3.0.0"
|
|
106
104
|
},
|
|
107
|
-
"
|
|
105
|
+
"publishConfig": {
|
|
106
|
+
"access": "public"
|
|
107
|
+
}
|
|
108
108
|
}
|