@npo/player 1.23.2 → 1.24.1
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/README.md +1 -1
- package/lib/js/playeractions/handlers/error.js +2 -2
- package/lib/js/playeractions/handlers/error.test.js +2 -2
- package/lib/js/playeractions/handlers/handleoffsets.d.ts +4 -6
- package/lib/js/playeractions/handlers/handleoffsets.js +16 -17
- package/lib/js/playeractions/handlers/handleoffsets.test.js +73 -29
- package/lib/js/playeractions/handlers/mediasessionactions.js +24 -12
- package/lib/js/playeractions/handlers/processsourceconfig.js +16 -3
- package/lib/js/tracking/handlers/eventbinding.d.ts +1 -1
- package/lib/js/tracking/handlers/eventbinding.js +17 -23
- package/lib/js/tracking/handlers/eventlogging.d.ts +1 -1
- package/lib/js/tracking/handlers/eventlogging.js +18 -18
- package/lib/js/tracking/handlers/eventlogging.test.js +24 -24
- package/lib/js/tracking/handlers/playertrackerstart.js +4 -2
- package/lib/lang/nl.json +3 -1
- package/lib/npoplayer.d.ts +1 -2
- package/lib/npoplayer.js +30 -44
- package/lib/package.json +5 -5
- package/lib/services/a11y/setup.js +2 -2
- package/lib/services/a11y/setup.test.js +7 -8
- package/lib/services/advertHandlers/discardAdBreak.d.ts +2 -0
- package/lib/services/advertHandlers/discardAdBreak.js +11 -0
- package/lib/services/advertHandlers/discardAdBreak.test.js +60 -0
- package/lib/services/advertHandlers/handlePreRolls.d.ts +2 -0
- package/lib/services/advertHandlers/handlePreRolls.js +132 -0
- package/lib/services/advertHandlers/handlePrerolls.test.js +52 -0
- package/lib/services/cdnProviders/cdnProviders.d.ts +4 -0
- package/lib/services/cdnProviders/cdnProviders.js +22 -0
- package/lib/services/cdnProviders/cndProviders.test.d.ts +1 -0
- package/lib/services/cdnProviders/cndProviders.test.js +22 -0
- package/lib/services/eventListenerHandlers/removeEventListeners.d.ts +1 -1
- package/lib/services/eventListenerHandlers/removeEventListeners.js +4 -4
- package/lib/services/eventListenerHandlers/removeEventListeners.test.js +28 -13
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.d.ts +1 -1
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.js +3 -3
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +2 -0
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.js +65 -0
- package/lib/services/localStorageHandlers/localStorageHandlers.d.ts +1 -1
- package/lib/services/localStorageHandlers/localStorageHandlers.test.js +0 -1
- package/lib/services/npoPlayerAPI/contants.d.ts +5 -0
- package/lib/services/npoPlayerAPI/contants.js +5 -0
- package/lib/services/npoPlayerAPI/npoPlayerAPI.d.ts +17 -4
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +68 -3
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.js +66 -1
- package/lib/services/segmentHandlers/addSegmentEventListeners.js +3 -3
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.js +10 -9
- package/lib/services/segmentHandlers/convertFragmentToSegment.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.test.js +4 -4
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.js +33 -24
- package/lib/services/segmentHandlers/initSegment.d.ts +1 -1
- package/lib/services/segmentHandlers/initSegment.test.js +3 -1
- package/lib/services/segmentHandlers/setSegmentMarkers.d.ts +1 -1
- package/lib/services/services.d.ts +3 -1
- package/lib/services/services.js +8 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +2 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.js +8 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +1 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.js +36 -0
- package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +4 -6
- package/lib/src/js/tracking/handlers/eventbinding.d.ts +1 -1
- package/lib/src/js/tracking/handlers/eventlogging.d.ts +1 -1
- package/lib/src/npoplayer.d.ts +1 -2
- package/lib/src/services/advertHandlers/discardAdBreak.d.ts +2 -0
- package/lib/src/services/advertHandlers/discardAdBreak.test.d.ts +1 -0
- package/lib/src/services/advertHandlers/handlePreRolls.d.ts +2 -0
- package/lib/src/services/advertHandlers/handlePrerolls.test.d.ts +1 -0
- package/lib/src/services/cdnProviders/cdnProviders.d.ts +4 -0
- package/lib/src/services/cdnProviders/cndProviders.test.d.ts +1 -0
- package/lib/src/services/eventListenerHandlers/removeEventListeners.d.ts +1 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.d.ts +1 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +2 -0
- package/lib/src/services/localStorageHandlers/localStorageHandlers.d.ts +1 -1
- package/lib/src/services/npoPlayerAPI/contants.d.ts +5 -0
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.d.ts +17 -4
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.d.ts +1 -1
- package/lib/src/services/segmentHandlers/handleSegmentSeek.d.ts +1 -1
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.d.ts +1 -1
- package/lib/src/services/segmentHandlers/initSegment.d.ts +1 -1
- package/lib/src/services/segmentHandlers/setSegmentMarkers.d.ts +1 -1
- package/lib/src/services/services.d.ts +3 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +2 -0
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +1 -0
- package/lib/src/types/events.d.ts +8 -1
- package/lib/src/types/interfaces.d.ts +8 -12
- package/lib/src/ui/components/audio/controlbar.d.ts +1 -1
- package/lib/src/ui/components/controlbar.d.ts +1 -1
- package/lib/src/ui/components/seekbar.d.ts +1 -1
- package/lib/src/ui/components/settingspanel.d.ts +1 -1
- package/lib/src/ui/components/verticalvideo/controlbar.d.ts +3 -0
- package/lib/src/ui/handlers/streamhandler.d.ts +2 -4
- package/lib/src/ui/uicontainer.d.ts +2 -2
- package/lib/tests/mocks/mockNpoplayer.js +0 -1
- package/lib/tests/mocks/playerContextMock.d.ts +67 -0
- package/lib/tests/mocks/playerContextMock.js +118 -0
- package/lib/types/events.d.ts +8 -1
- package/lib/types/events.js +184 -1
- package/lib/types/interfaces.d.ts +8 -12
- package/lib/types/interfaces.js +1 -0
- package/lib/ui/components/audio/controlbar.d.ts +1 -1
- package/lib/ui/components/audio/controlbar.js +6 -6
- package/lib/ui/components/controlbar.d.ts +1 -1
- package/lib/ui/components/controlbar.js +13 -11
- package/lib/ui/components/nativemobile/controlbar.js +0 -1
- package/lib/ui/components/seekbar.js +1 -1
- package/lib/ui/components/settingspanel.d.ts +1 -1
- package/lib/ui/components/settingspanel.js +68 -84
- package/lib/ui/components/topbar.js +6 -3
- package/lib/ui/components/verticalvideo/controlbar.d.ts +3 -0
- package/lib/ui/components/verticalvideo/controlbar.js +34 -0
- package/lib/ui/handlers/streamhandler.d.ts +2 -4
- package/lib/ui/handlers/streamhandler.js +16 -7
- package/lib/ui/nativemobileuifactory.js +2 -0
- package/lib/ui/uicontainer.d.ts +2 -2
- package/lib/ui/uicontainer.js +35 -29
- package/package.json +5 -5
- package/src/style/components/_settingspanel.scss +35 -3
- package/src/style/components/_subtitles.scss +29 -25
- package/src/style/components/_textbuttons.scss +2 -2
- package/src/style/components/_volumeslider.scss +1 -0
- package/src/style/components/vertical-video/_bottombar.scss +19 -0
- package/src/style/components/vertical-video/_buttons.scss +23 -0
- package/src/style/components/vertical-video/_hugeplaybacktogglebutton.scss +14 -0
- package/src/style/components/vertical-video/_seekbar.scss +19 -0
- package/src/style/components/vertical-video/_settingsbutton.scss +7 -0
- package/src/style/components/vertical-video/_settingspanel.scss +14 -0
- package/src/style/components/vertical-video/_shortvideo.scss +14 -0
- package/src/style/components/vertical-video/_subtitles.scss +3 -0
- package/src/style/components/vertical-video/_topbar.scss +17 -0
- package/src/style/components/vertical-video/_volumeslider.scss +9 -0
- package/src/style/npoplayer.css +74 -34
- package/src/style/npoplayer.scss +2 -1
- package/src/style/variants/_player-small.scss +18 -10
- package/src/style/variants/_player-vertical.scss +23 -0
- package/lib/js/ads/ster.d.ts +0 -4
- package/lib/js/ads/ster.js +0 -126
- package/lib/js/ads/ster.test.js +0 -63
- package/lib/js/cdnproviders.d.ts +0 -1
- package/lib/js/cdnproviders.js +0 -16
- package/lib/src/js/ads/ster.d.ts +0 -4
- package/lib/src/js/cdnproviders.d.ts +0 -1
- package/lib/tests/mocks/mockPlayerContext.d.ts +0 -2
- package/lib/tests/mocks/mockPlayerContext.js +0 -40
- /package/lib/{js/ads/ster.test.d.ts → services/advertHandlers/discardAdBreak.test.d.ts} +0 -0
- /package/lib/{src/js/ads/ster.test.d.ts → services/advertHandlers/handlePrerolls.test.d.ts} +0 -0
package/lib/types/events.js
CHANGED
|
@@ -1 +1,184 @@
|
|
|
1
|
-
|
|
1
|
+
import { PlayerEvent } from 'bitmovin-player';
|
|
2
|
+
export var NpoPlayerEvent;
|
|
3
|
+
(function (NpoPlayerEvent) {
|
|
4
|
+
NpoPlayerEvent["Ready"] = "ready";
|
|
5
|
+
NpoPlayerEvent["Play"] = "play";
|
|
6
|
+
NpoPlayerEvent["Playing"] = "playing";
|
|
7
|
+
NpoPlayerEvent["Paused"] = "paused";
|
|
8
|
+
NpoPlayerEvent["Seek"] = "seek";
|
|
9
|
+
NpoPlayerEvent["Seeked"] = "seeked";
|
|
10
|
+
NpoPlayerEvent["TimeShift"] = "timeshift";
|
|
11
|
+
NpoPlayerEvent["TimeShifted"] = "timeshifted";
|
|
12
|
+
NpoPlayerEvent["VolumeChanged"] = "volumechanged";
|
|
13
|
+
NpoPlayerEvent["Muted"] = "muted";
|
|
14
|
+
NpoPlayerEvent["Unmuted"] = "unmuted";
|
|
15
|
+
NpoPlayerEvent["PlayerResized"] = "playerresized";
|
|
16
|
+
NpoPlayerEvent["PlaybackFinished"] = "playbackfinished";
|
|
17
|
+
NpoPlayerEvent["Error"] = "error";
|
|
18
|
+
NpoPlayerEvent["Warning"] = "warning";
|
|
19
|
+
NpoPlayerEvent["StallStarted"] = "stallstarted";
|
|
20
|
+
NpoPlayerEvent["StallEnded"] = "stallended";
|
|
21
|
+
NpoPlayerEvent["AudioChanged"] = "audiochanged";
|
|
22
|
+
NpoPlayerEvent["AudioAdded"] = "audioadded";
|
|
23
|
+
NpoPlayerEvent["AudioRemoved"] = "audioremoved";
|
|
24
|
+
NpoPlayerEvent["VideoQualityChanged"] = "videoqualitychanged";
|
|
25
|
+
NpoPlayerEvent["AudioQualityChanged"] = "audioqualitychanged";
|
|
26
|
+
NpoPlayerEvent["VideoDownloadQualityChange"] = "videodownloadqualitychange";
|
|
27
|
+
NpoPlayerEvent["AudioDownloadQualityChange"] = "audiodownloadqualitychange";
|
|
28
|
+
NpoPlayerEvent["VideoDownloadQualityChanged"] = "videodownloadqualitychanged";
|
|
29
|
+
NpoPlayerEvent["AudioDownloadQualityChanged"] = "audiodownloadqualitychanged";
|
|
30
|
+
NpoPlayerEvent["VideoPlaybackQualityChanged"] = "videoplaybackqualitychanged";
|
|
31
|
+
NpoPlayerEvent["AudioPlaybackQualityChanged"] = "audioplaybackqualitychanged";
|
|
32
|
+
NpoPlayerEvent["TimeChanged"] = "timechanged";
|
|
33
|
+
NpoPlayerEvent["CueParsed"] = "cueparsed";
|
|
34
|
+
NpoPlayerEvent["CueEnter"] = "cueenter";
|
|
35
|
+
NpoPlayerEvent["CueUpdate"] = "cueupdate";
|
|
36
|
+
NpoPlayerEvent["CueExit"] = "cueexit";
|
|
37
|
+
NpoPlayerEvent["SegmentPlayback"] = "segmentplayback";
|
|
38
|
+
NpoPlayerEvent["Metadata"] = "metadata";
|
|
39
|
+
NpoPlayerEvent["MetadataParsed"] = "metadataparsed";
|
|
40
|
+
NpoPlayerEvent["MetadataChanged"] = "metadatachanged";
|
|
41
|
+
NpoPlayerEvent["VideoAdaptation"] = "videoadaptation";
|
|
42
|
+
NpoPlayerEvent["AudioAdaptation"] = "audioadaptation";
|
|
43
|
+
NpoPlayerEvent["DownloadFinished"] = "downloadfinished";
|
|
44
|
+
NpoPlayerEvent["SegmentRequestFinished"] = "segmentrequestfinished";
|
|
45
|
+
NpoPlayerEvent["AdManifestLoaded"] = "admanifestloaded";
|
|
46
|
+
NpoPlayerEvent["AdStarted"] = "adstarted";
|
|
47
|
+
NpoPlayerEvent["OverlayAdStarted"] = "overlayadstarted";
|
|
48
|
+
NpoPlayerEvent["AdQuartile"] = "adquartile";
|
|
49
|
+
NpoPlayerEvent["AdSkipped"] = "adskipped";
|
|
50
|
+
NpoPlayerEvent["AdClicked"] = "adclicked";
|
|
51
|
+
NpoPlayerEvent["AdInteraction"] = "adinteraction";
|
|
52
|
+
NpoPlayerEvent["AdLinearityChanged"] = "adlinearitychanged";
|
|
53
|
+
NpoPlayerEvent["AdBreakStarted"] = "adbreakstarted";
|
|
54
|
+
NpoPlayerEvent["AdBreakFinished"] = "adbreakfinished";
|
|
55
|
+
NpoPlayerEvent["AdFinished"] = "adfinished";
|
|
56
|
+
NpoPlayerEvent["AdError"] = "aderror";
|
|
57
|
+
NpoPlayerEvent["VRViewingDirectionChange"] = "vrviewingdirectionchange";
|
|
58
|
+
NpoPlayerEvent["VRViewingDirectionChanged"] = "vrviewingdirectionchanged";
|
|
59
|
+
NpoPlayerEvent["VRStereoChanged"] = "vrstereochanged";
|
|
60
|
+
NpoPlayerEvent["CastAvailable"] = "castavailable";
|
|
61
|
+
NpoPlayerEvent["CastStopped"] = "caststopped";
|
|
62
|
+
NpoPlayerEvent["CastStart"] = "caststart";
|
|
63
|
+
NpoPlayerEvent["CastStarted"] = "caststarted";
|
|
64
|
+
NpoPlayerEvent["CastWaitingForDevice"] = "castwaitingfordevice";
|
|
65
|
+
NpoPlayerEvent["SourceLoaded"] = "sourceloaded";
|
|
66
|
+
NpoPlayerEvent["SourceUnloaded"] = "sourceunloaded";
|
|
67
|
+
NpoPlayerEvent["PeriodSwitch"] = "periodswitch";
|
|
68
|
+
NpoPlayerEvent["PeriodSwitched"] = "periodswitched";
|
|
69
|
+
NpoPlayerEvent["DVRWindowExceeded"] = "dvrwindowexceeded";
|
|
70
|
+
NpoPlayerEvent["SubtitleAdded"] = "subtitleadded";
|
|
71
|
+
NpoPlayerEvent["SubtitleRemoved"] = "subtitleremoved";
|
|
72
|
+
NpoPlayerEvent["ShowAirplayTargetPicker"] = "showairplaytargetpicker";
|
|
73
|
+
NpoPlayerEvent["AirplayAvailable"] = "airplayavailable";
|
|
74
|
+
NpoPlayerEvent["AirplayChanged"] = "airplaychanged";
|
|
75
|
+
NpoPlayerEvent["Destroy"] = "destroy";
|
|
76
|
+
NpoPlayerEvent["PlaybackSpeedChanged"] = "playbackspeedchanged";
|
|
77
|
+
NpoPlayerEvent["DurationChanged"] = "durationchanged";
|
|
78
|
+
NpoPlayerEvent["ViewModeChanged"] = "viewmodechanged";
|
|
79
|
+
NpoPlayerEvent["ModuleReady"] = "moduleready";
|
|
80
|
+
NpoPlayerEvent["SubtitleEnable"] = "subtitleenable";
|
|
81
|
+
NpoPlayerEvent["SubtitleEnabled"] = "subtitleenabled";
|
|
82
|
+
NpoPlayerEvent["SubtitleDisable"] = "subtitledisable";
|
|
83
|
+
NpoPlayerEvent["SubtitleDisabled"] = "subtitledisabled";
|
|
84
|
+
NpoPlayerEvent["VideoQualityAdded"] = "videoqualityadded";
|
|
85
|
+
NpoPlayerEvent["VideoQualityRemoved"] = "videoqualityremoved";
|
|
86
|
+
NpoPlayerEvent["AudioQualityAdded"] = "audioqualityadded";
|
|
87
|
+
NpoPlayerEvent["AudioQualityRemoved"] = "audioqualityremoved";
|
|
88
|
+
NpoPlayerEvent["TargetLatencyChanged"] = "targetlatencychanged";
|
|
89
|
+
NpoPlayerEvent["LatencyModeChanged"] = "latencymodechanged";
|
|
90
|
+
NpoPlayerEvent["LicenseValidated"] = "licensevalidated";
|
|
91
|
+
NpoPlayerEvent["DrmLicenseAdded"] = "drmlicenseadded";
|
|
92
|
+
NpoPlayerEvent["AspectRatioChanged"] = "aspectratiochanged";
|
|
93
|
+
})(NpoPlayerEvent || (NpoPlayerEvent = {}));
|
|
94
|
+
export const playerEventMap = {
|
|
95
|
+
[NpoPlayerEvent.Ready]: PlayerEvent.Ready,
|
|
96
|
+
[NpoPlayerEvent.Play]: PlayerEvent.Play,
|
|
97
|
+
[NpoPlayerEvent.Playing]: PlayerEvent.Playing,
|
|
98
|
+
[NpoPlayerEvent.Paused]: PlayerEvent.Paused,
|
|
99
|
+
[NpoPlayerEvent.Seek]: PlayerEvent.Seek,
|
|
100
|
+
[NpoPlayerEvent.Seeked]: PlayerEvent.Seeked,
|
|
101
|
+
[NpoPlayerEvent.TimeShift]: PlayerEvent.TimeShift,
|
|
102
|
+
[NpoPlayerEvent.TimeShifted]: PlayerEvent.TimeShifted,
|
|
103
|
+
[NpoPlayerEvent.VolumeChanged]: PlayerEvent.VolumeChanged,
|
|
104
|
+
[NpoPlayerEvent.Muted]: PlayerEvent.Muted,
|
|
105
|
+
[NpoPlayerEvent.Unmuted]: PlayerEvent.Unmuted,
|
|
106
|
+
[NpoPlayerEvent.PlayerResized]: PlayerEvent.PlayerResized,
|
|
107
|
+
[NpoPlayerEvent.PlaybackFinished]: PlayerEvent.PlaybackFinished,
|
|
108
|
+
[NpoPlayerEvent.Error]: PlayerEvent.Error,
|
|
109
|
+
[NpoPlayerEvent.Warning]: PlayerEvent.Warning,
|
|
110
|
+
[NpoPlayerEvent.StallStarted]: PlayerEvent.StallStarted,
|
|
111
|
+
[NpoPlayerEvent.StallEnded]: PlayerEvent.StallEnded,
|
|
112
|
+
[NpoPlayerEvent.AudioChanged]: PlayerEvent.AudioChanged,
|
|
113
|
+
[NpoPlayerEvent.AudioAdded]: PlayerEvent.AudioAdded,
|
|
114
|
+
[NpoPlayerEvent.AudioRemoved]: PlayerEvent.AudioRemoved,
|
|
115
|
+
[NpoPlayerEvent.VideoQualityChanged]: PlayerEvent.VideoQualityChanged,
|
|
116
|
+
[NpoPlayerEvent.AudioQualityChanged]: PlayerEvent.AudioQualityChanged,
|
|
117
|
+
[NpoPlayerEvent.VideoDownloadQualityChange]: PlayerEvent.VideoDownloadQualityChange,
|
|
118
|
+
[NpoPlayerEvent.AudioDownloadQualityChange]: PlayerEvent.AudioDownloadQualityChange,
|
|
119
|
+
[NpoPlayerEvent.VideoDownloadQualityChanged]: PlayerEvent.VideoDownloadQualityChanged,
|
|
120
|
+
[NpoPlayerEvent.AudioDownloadQualityChanged]: PlayerEvent.AudioDownloadQualityChanged,
|
|
121
|
+
[NpoPlayerEvent.VideoPlaybackQualityChanged]: PlayerEvent.VideoPlaybackQualityChanged,
|
|
122
|
+
[NpoPlayerEvent.AudioPlaybackQualityChanged]: PlayerEvent.AudioPlaybackQualityChanged,
|
|
123
|
+
[NpoPlayerEvent.TimeChanged]: PlayerEvent.TimeChanged,
|
|
124
|
+
[NpoPlayerEvent.CueParsed]: PlayerEvent.CueParsed,
|
|
125
|
+
[NpoPlayerEvent.CueEnter]: PlayerEvent.CueEnter,
|
|
126
|
+
[NpoPlayerEvent.CueUpdate]: PlayerEvent.CueUpdate,
|
|
127
|
+
[NpoPlayerEvent.CueExit]: PlayerEvent.CueExit,
|
|
128
|
+
[NpoPlayerEvent.SegmentPlayback]: PlayerEvent.SegmentPlayback,
|
|
129
|
+
[NpoPlayerEvent.Metadata]: PlayerEvent.Metadata,
|
|
130
|
+
[NpoPlayerEvent.MetadataParsed]: PlayerEvent.MetadataParsed,
|
|
131
|
+
[NpoPlayerEvent.MetadataChanged]: PlayerEvent.MetadataChanged,
|
|
132
|
+
[NpoPlayerEvent.VideoAdaptation]: PlayerEvent.VideoAdaptation,
|
|
133
|
+
[NpoPlayerEvent.AudioAdaptation]: PlayerEvent.AudioAdaptation,
|
|
134
|
+
[NpoPlayerEvent.DownloadFinished]: PlayerEvent.DownloadFinished,
|
|
135
|
+
[NpoPlayerEvent.SegmentRequestFinished]: PlayerEvent.SegmentRequestFinished,
|
|
136
|
+
[NpoPlayerEvent.AdManifestLoaded]: PlayerEvent.AdManifestLoaded,
|
|
137
|
+
[NpoPlayerEvent.AdStarted]: PlayerEvent.AdStarted,
|
|
138
|
+
[NpoPlayerEvent.OverlayAdStarted]: PlayerEvent.OverlayAdStarted,
|
|
139
|
+
[NpoPlayerEvent.AdQuartile]: PlayerEvent.AdQuartile,
|
|
140
|
+
[NpoPlayerEvent.AdSkipped]: PlayerEvent.AdSkipped,
|
|
141
|
+
[NpoPlayerEvent.AdClicked]: PlayerEvent.AdClicked,
|
|
142
|
+
[NpoPlayerEvent.AdInteraction]: PlayerEvent.AdInteraction,
|
|
143
|
+
[NpoPlayerEvent.AdLinearityChanged]: PlayerEvent.AdLinearityChanged,
|
|
144
|
+
[NpoPlayerEvent.AdBreakStarted]: PlayerEvent.AdBreakStarted,
|
|
145
|
+
[NpoPlayerEvent.AdBreakFinished]: PlayerEvent.AdBreakFinished,
|
|
146
|
+
[NpoPlayerEvent.AdFinished]: PlayerEvent.AdFinished,
|
|
147
|
+
[NpoPlayerEvent.AdError]: PlayerEvent.AdError,
|
|
148
|
+
[NpoPlayerEvent.VRViewingDirectionChange]: PlayerEvent.VRViewingDirectionChange,
|
|
149
|
+
[NpoPlayerEvent.VRViewingDirectionChanged]: PlayerEvent.VRViewingDirectionChanged,
|
|
150
|
+
[NpoPlayerEvent.VRStereoChanged]: PlayerEvent.VRStereoChanged,
|
|
151
|
+
[NpoPlayerEvent.CastAvailable]: PlayerEvent.CastAvailable,
|
|
152
|
+
[NpoPlayerEvent.CastStopped]: PlayerEvent.CastStopped,
|
|
153
|
+
[NpoPlayerEvent.CastStart]: PlayerEvent.CastStart,
|
|
154
|
+
[NpoPlayerEvent.CastStarted]: PlayerEvent.CastStarted,
|
|
155
|
+
[NpoPlayerEvent.CastWaitingForDevice]: PlayerEvent.CastWaitingForDevice,
|
|
156
|
+
[NpoPlayerEvent.SourceLoaded]: PlayerEvent.SourceLoaded,
|
|
157
|
+
[NpoPlayerEvent.SourceUnloaded]: PlayerEvent.SourceUnloaded,
|
|
158
|
+
[NpoPlayerEvent.PeriodSwitch]: PlayerEvent.PeriodSwitch,
|
|
159
|
+
[NpoPlayerEvent.PeriodSwitched]: PlayerEvent.PeriodSwitched,
|
|
160
|
+
[NpoPlayerEvent.DVRWindowExceeded]: PlayerEvent.DVRWindowExceeded,
|
|
161
|
+
[NpoPlayerEvent.SubtitleAdded]: PlayerEvent.SubtitleAdded,
|
|
162
|
+
[NpoPlayerEvent.SubtitleRemoved]: PlayerEvent.SubtitleRemoved,
|
|
163
|
+
[NpoPlayerEvent.ShowAirplayTargetPicker]: PlayerEvent.ShowAirplayTargetPicker,
|
|
164
|
+
[NpoPlayerEvent.AirplayAvailable]: PlayerEvent.AirplayAvailable,
|
|
165
|
+
[NpoPlayerEvent.AirplayChanged]: PlayerEvent.AirplayChanged,
|
|
166
|
+
[NpoPlayerEvent.Destroy]: PlayerEvent.Destroy,
|
|
167
|
+
[NpoPlayerEvent.PlaybackSpeedChanged]: PlayerEvent.PlaybackSpeedChanged,
|
|
168
|
+
[NpoPlayerEvent.DurationChanged]: PlayerEvent.DurationChanged,
|
|
169
|
+
[NpoPlayerEvent.ViewModeChanged]: PlayerEvent.ViewModeChanged,
|
|
170
|
+
[NpoPlayerEvent.ModuleReady]: PlayerEvent.ModuleReady,
|
|
171
|
+
[NpoPlayerEvent.SubtitleEnable]: PlayerEvent.SubtitleEnable,
|
|
172
|
+
[NpoPlayerEvent.SubtitleEnabled]: PlayerEvent.SubtitleEnabled,
|
|
173
|
+
[NpoPlayerEvent.SubtitleDisable]: PlayerEvent.SubtitleDisable,
|
|
174
|
+
[NpoPlayerEvent.SubtitleDisabled]: PlayerEvent.SubtitleDisabled,
|
|
175
|
+
[NpoPlayerEvent.VideoQualityAdded]: PlayerEvent.VideoQualityAdded,
|
|
176
|
+
[NpoPlayerEvent.VideoQualityRemoved]: PlayerEvent.VideoQualityRemoved,
|
|
177
|
+
[NpoPlayerEvent.AudioQualityAdded]: PlayerEvent.AudioQualityAdded,
|
|
178
|
+
[NpoPlayerEvent.AudioQualityRemoved]: PlayerEvent.AudioQualityRemoved,
|
|
179
|
+
[NpoPlayerEvent.TargetLatencyChanged]: PlayerEvent.TargetLatencyChanged,
|
|
180
|
+
[NpoPlayerEvent.LatencyModeChanged]: PlayerEvent.LatencyModeChanged,
|
|
181
|
+
[NpoPlayerEvent.LicenseValidated]: PlayerEvent.LicenseValidated,
|
|
182
|
+
[NpoPlayerEvent.DrmLicenseAdded]: PlayerEvent.DrmLicenseAdded,
|
|
183
|
+
[NpoPlayerEvent.AspectRatioChanged]: PlayerEvent.AspectRatioChanged
|
|
184
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { PlayerEventCallback, type SourceConfig } from 'bitmovin-player';
|
|
2
1
|
import { type ErrorMessageOverlay, type Label, ControlBar, SettingsPanelItem, Button, SeekBar, CastToggleButton, SettingsPanel } from 'bitmovin-player-ui';
|
|
3
2
|
import { type NPOTag, type PageTracker } from '@npotag/tag';
|
|
4
3
|
import { ButtonConfig } from 'bitmovin-player-ui/dist/js/framework/components/button';
|
|
5
4
|
import NpoPlayer from '../npoplayer';
|
|
6
5
|
import { NpoPlayerAPI } from '../services/npoPlayerAPI/npoPlayerAPI';
|
|
6
|
+
import { NpoPlayerEventCallback } from './events';
|
|
7
|
+
import { SourceConfig } from 'bitmovin-player';
|
|
7
8
|
export { Technology } from 'bitmovin-player';
|
|
8
9
|
export interface Profile {
|
|
9
10
|
profileName: string;
|
|
@@ -15,9 +16,9 @@ export interface Segment {
|
|
|
15
16
|
duration: number;
|
|
16
17
|
}
|
|
17
18
|
export interface EventListeners {
|
|
18
|
-
liveStreamHandleTimeChangedCallback?:
|
|
19
|
-
segmentHandleTimeChangedCallback?:
|
|
20
|
-
segmentSeekFunctionCallback?:
|
|
19
|
+
liveStreamHandleTimeChangedCallback?: NpoPlayerEventCallback;
|
|
20
|
+
segmentHandleTimeChangedCallback?: NpoPlayerEventCallback;
|
|
21
|
+
segmentSeekFunctionCallback?: NpoPlayerEventCallback;
|
|
21
22
|
}
|
|
22
23
|
export interface StreamObject {
|
|
23
24
|
stream: StreamObject_Stream;
|
|
@@ -76,19 +77,12 @@ interface StreamObject_Assets {
|
|
|
76
77
|
}
|
|
77
78
|
export interface StreamObject_Metadata {
|
|
78
79
|
broadcaster?: string;
|
|
79
|
-
broadcasters?: string[];
|
|
80
|
-
country?: string[];
|
|
81
|
-
credits?: string[];
|
|
82
80
|
description: string;
|
|
83
81
|
duration?: string;
|
|
84
|
-
genre?: string[];
|
|
85
|
-
isDubbed?: boolean;
|
|
86
|
-
language?: string[];
|
|
87
82
|
nicam?: string[] | null;
|
|
88
83
|
poster?: string;
|
|
89
84
|
posterIsDefault?: boolean;
|
|
90
85
|
prid?: string;
|
|
91
|
-
sourceIP?: string;
|
|
92
86
|
ageRating?: string;
|
|
93
87
|
title: string;
|
|
94
88
|
hasPreroll?: string;
|
|
@@ -117,6 +111,7 @@ export interface StreamOptions {
|
|
|
117
111
|
useWidevineServerCertificate?: boolean;
|
|
118
112
|
customFallbackPoster?: string;
|
|
119
113
|
autoFillTimeLineMarkerDuration?: boolean;
|
|
114
|
+
autoplay?: boolean;
|
|
120
115
|
}
|
|
121
116
|
export interface UIComponents {
|
|
122
117
|
errorMessageOverlay?: ErrorMessageOverlay;
|
|
@@ -127,7 +122,7 @@ export interface UIComponents {
|
|
|
127
122
|
subtitlesButton?: SettingsPanelItem | undefined;
|
|
128
123
|
qualityButton?: SettingsPanelItem | undefined;
|
|
129
124
|
watchFromStartButton?: Button<ButtonConfig> | undefined;
|
|
130
|
-
|
|
125
|
+
controlBar?: ControlBar | undefined;
|
|
131
126
|
adbutton?: Button<ButtonConfig> | undefined;
|
|
132
127
|
adlabel?: Label<{
|
|
133
128
|
text: string;
|
|
@@ -178,6 +173,7 @@ export declare enum CustomMessages {
|
|
|
178
173
|
export declare enum NpoPlayerUIVariants {
|
|
179
174
|
DEFAULT = "default",
|
|
180
175
|
AUDIO = "audio",
|
|
176
|
+
VERTICAL = "vertical",
|
|
181
177
|
AD = "ad"
|
|
182
178
|
}
|
|
183
179
|
export declare enum ViewMode {
|
package/lib/types/interfaces.js
CHANGED
|
@@ -29,6 +29,7 @@ export var NpoPlayerUIVariants;
|
|
|
29
29
|
(function (NpoPlayerUIVariants) {
|
|
30
30
|
NpoPlayerUIVariants["DEFAULT"] = "default";
|
|
31
31
|
NpoPlayerUIVariants["AUDIO"] = "audio";
|
|
32
|
+
NpoPlayerUIVariants["VERTICAL"] = "vertical";
|
|
32
33
|
NpoPlayerUIVariants["AD"] = "ad";
|
|
33
34
|
})(NpoPlayerUIVariants || (NpoPlayerUIVariants = {}));
|
|
34
35
|
export var ViewMode;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ControlBar, Container, SeekBar, SeekBarLabel, VolumeControlButton } from 'bitmovin-player-ui';
|
|
2
2
|
import { createSeekBar } from '../seekbar';
|
|
3
|
-
export function createAudioControlBar(
|
|
3
|
+
export function createAudioControlBar(npoPlayer) {
|
|
4
4
|
const seekBar = new SeekBar({ label: new SeekBarLabel() });
|
|
5
|
-
|
|
6
|
-
const
|
|
5
|
+
npoPlayer.uiComponents.seekBar = seekBar;
|
|
6
|
+
const controlBar = new ControlBar({
|
|
7
7
|
components: [
|
|
8
|
-
createSeekBar(
|
|
8
|
+
createSeekBar(npoPlayer),
|
|
9
9
|
new Container({
|
|
10
10
|
components: [
|
|
11
11
|
new VolumeControlButton({
|
|
@@ -17,6 +17,6 @@ export function createAudioControlBar(npoplayer) {
|
|
|
17
17
|
],
|
|
18
18
|
cssClasses: ['ui-controlbar-bottom']
|
|
19
19
|
});
|
|
20
|
-
|
|
21
|
-
return
|
|
20
|
+
npoPlayer.uiComponents.controlBar = controlBar;
|
|
21
|
+
return controlBar;
|
|
22
22
|
}
|
|
@@ -3,24 +3,26 @@ import { PlayerEvent } from 'bitmovin-player';
|
|
|
3
3
|
import { createForwardButton, createRewindButton } from './buttons';
|
|
4
4
|
import { createSeekBar } from './seekbar';
|
|
5
5
|
import { createSettingsPanel } from './settingspanel';
|
|
6
|
-
export function createControlBar(
|
|
7
|
-
const player =
|
|
6
|
+
export function createControlBar(npoPlayer) {
|
|
7
|
+
const player = npoPlayer.player;
|
|
8
8
|
const rewindButton = createRewindButton(player);
|
|
9
9
|
const forwardButton = createForwardButton(player);
|
|
10
10
|
const seekBar = new SeekBar({ label: new SeekBarLabel() });
|
|
11
|
-
|
|
11
|
+
npoPlayer.uiComponents.seekBar = seekBar;
|
|
12
12
|
const chromeCastButton = new CastToggleButton({
|
|
13
13
|
hidden: true
|
|
14
14
|
});
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
const handleCastAvailable = () => {
|
|
16
|
+
player?.off(PlayerEvent.CastAvailable, handleCastAvailable);
|
|
17
|
+
if (player?.isCastAvailable()) {
|
|
17
18
|
chromeCastButton.show();
|
|
18
19
|
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const
|
|
20
|
+
};
|
|
21
|
+
player?.on(PlayerEvent.CastAvailable, handleCastAvailable);
|
|
22
|
+
const settingsPanel = createSettingsPanel(npoPlayer);
|
|
23
|
+
const controlBar = new ControlBar({
|
|
22
24
|
components: [
|
|
23
|
-
createSeekBar(
|
|
25
|
+
createSeekBar(npoPlayer),
|
|
24
26
|
new Container({
|
|
25
27
|
components: [
|
|
26
28
|
new PlaybackToggleButton(),
|
|
@@ -41,6 +43,6 @@ export function createControlBar(npoplayer) {
|
|
|
41
43
|
],
|
|
42
44
|
cssClasses: ['ui-controlbar-bottom']
|
|
43
45
|
});
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
+
npoPlayer.uiComponents.controlBar = controlBar;
|
|
47
|
+
return controlBar;
|
|
46
48
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { SettingsPanel } from 'bitmovin-player-ui';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
3
|
import { PlayerAPI } from 'bitmovin-player';
|
|
4
|
-
export declare function createSettingsPanel(
|
|
4
|
+
export declare function createSettingsPanel(npoPlayer: NpoPlayer | PlayerAPI): SettingsPanel;
|
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
import { SubtitleListBox, ListBox, SettingsPanel, SettingsPanelPage, SettingsPanelPageOpenButton, SettingsPanelPageBackButton, Button, Label, SettingsPanelItem, AudioQualitySelectBox, AudioTrackSelectBox } from 'bitmovin-player-ui';
|
|
1
|
+
import { SubtitleListBox, ListBox, SettingsPanel, SettingsPanelPage, SettingsPanelPageOpenButton, SettingsPanelPageBackButton, SettingsToggleButton, Button, Label, SettingsPanelItem, AudioQualitySelectBox, AudioTrackSelectBox } from 'bitmovin-player-ui';
|
|
2
2
|
import { localizeKey } from '../../js/utilities/utilities.locale';
|
|
3
3
|
import { handleSubtitleListBoxItemSelected, handleSpeedListBoxItemSelected, handleQualityListBoxItemSelected } from '../handlers/listboxhandlers';
|
|
4
4
|
import { PlayerEvent } from 'bitmovin-player';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const createListBox = (items) => new ListBox({ items });
|
|
6
|
+
const createPanelPage = (components, cssClasses) => new SettingsPanelPage({ components, cssClasses });
|
|
7
|
+
const createSettingsPanelPageBackButton = (targetPage, container, text, cssClasses) => new SettingsPanelPageBackButton({
|
|
8
|
+
targetPage,
|
|
9
|
+
container,
|
|
10
|
+
text,
|
|
11
|
+
cssClasses
|
|
12
|
+
});
|
|
13
|
+
const createSettingsOpenButton = (targetPage, container, text, cssClasses) => new SettingsPanelPageOpenButton({
|
|
14
|
+
targetPage,
|
|
15
|
+
container,
|
|
16
|
+
text,
|
|
17
|
+
cssClasses
|
|
18
|
+
});
|
|
19
|
+
export function createSettingsPanel(npoPlayer) {
|
|
20
|
+
const player = 'player' in npoPlayer ? npoPlayer.player : npoPlayer;
|
|
7
21
|
const subtitleListBox = new SubtitleListBox();
|
|
8
|
-
const speedListBox =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
]
|
|
16
|
-
});
|
|
22
|
+
const speedListBox = createListBox([
|
|
23
|
+
{ key: '0.25', label: '0.25x' },
|
|
24
|
+
{ key: '0.5', label: '0.5x' },
|
|
25
|
+
{ key: '1', label: '1x' },
|
|
26
|
+
{ key: '1.5', label: '1.5x' },
|
|
27
|
+
{ key: '2', label: '2x' }
|
|
28
|
+
]);
|
|
17
29
|
const qualityListBox = new ListBox();
|
|
18
|
-
const settingsLabel = localizeKey('settings');
|
|
19
|
-
const videoqualityLabel = localizeKey('settings.video.quality');
|
|
20
|
-
const speedLabel = localizeKey('speed');
|
|
21
|
-
const subtitlesLabel = localizeKey('settings.subtitles');
|
|
22
30
|
const audioqualityLabel = localizeKey('settings.audio.quality');
|
|
23
31
|
const audiotrackLabel = localizeKey('settings.audio.track');
|
|
24
32
|
const autoLabel = localizeKey('auto');
|
|
33
|
+
const offLabel = localizeKey('off');
|
|
34
|
+
const settingsLabel = localizeKey('settings');
|
|
35
|
+
const speedLabel = localizeKey('speed');
|
|
36
|
+
const subtitlesLabel = localizeKey('settings.subtitles');
|
|
37
|
+
const videoqualityLabel = localizeKey('settings.video.quality');
|
|
25
38
|
const settingTriggerClass = 'settings-trigger';
|
|
26
39
|
const settingsBackButtonClass = 'settings-back-button';
|
|
27
40
|
const listboxPanelClass = 'listbox-panel';
|
|
28
41
|
const listboxPagerButtonClass = 'listbox-pager-button';
|
|
29
|
-
const subtitlePanelPage = new
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
const speedPanelPage = new SettingsPanelPage({
|
|
34
|
-
components: [new Button({ cssClass: settingTriggerClass }), new SettingsPanelItem('', speedListBox)],
|
|
35
|
-
cssClasses: [listboxPanelClass]
|
|
36
|
-
});
|
|
37
|
-
const qualityPanelPage = new SettingsPanelPage({
|
|
38
|
-
components: [new Button({ cssClass: settingTriggerClass }), new SettingsPanelItem('', qualityListBox)],
|
|
39
|
-
cssClasses: [listboxPanelClass]
|
|
40
|
-
});
|
|
42
|
+
const subtitlePanelPage = createPanelPage([new Button({ cssClass: settingTriggerClass }), new SettingsPanelItem('', subtitleListBox)], [listboxPanelClass]);
|
|
43
|
+
const speedPanelPage = createPanelPage([new Button({ cssClass: settingTriggerClass }), new SettingsPanelItem('', speedListBox)], [listboxPanelClass]);
|
|
44
|
+
const qualityPanelPage = createPanelPage([new Button({ cssClass: settingTriggerClass }), new SettingsPanelItem('', qualityListBox)], [listboxPanelClass]);
|
|
41
45
|
const settingsTriggerButton = new Button({ cssClass: settingTriggerClass });
|
|
42
|
-
const mainSettingsPage =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
],
|
|
49
|
-
cssClasses: ['main-panel']
|
|
50
|
-
});
|
|
46
|
+
const mainSettingsPage = createPanelPage([
|
|
47
|
+
settingsTriggerButton,
|
|
48
|
+
new Label({ text: settingsLabel, cssClass: 'setting-header' }),
|
|
49
|
+
new SettingsPanelItem(audioqualityLabel, new AudioQualitySelectBox()),
|
|
50
|
+
new SettingsPanelItem(audiotrackLabel, new AudioTrackSelectBox())
|
|
51
|
+
], ['main-panel']);
|
|
51
52
|
const onSourceLoaded = () => {
|
|
52
53
|
player?.off(PlayerEvent.SourceLoaded, onSourceLoaded);
|
|
53
54
|
checkQualities();
|
|
@@ -59,51 +60,35 @@ export function createSettingsPanel(npoplayer) {
|
|
|
59
60
|
pageTransitionAnimation: false,
|
|
60
61
|
hideDelay: -1
|
|
61
62
|
});
|
|
62
|
-
const subtitleSettingsOpenButton =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
text: '1x',
|
|
72
|
-
cssClasses: [listboxPagerButtonClass]
|
|
73
|
-
});
|
|
74
|
-
const qualitySettingsOpenButton = new SettingsPanelPageOpenButton({
|
|
75
|
-
targetPage: qualityPanelPage,
|
|
76
|
-
container: settingsPanel,
|
|
77
|
-
text: 'automatisch',
|
|
78
|
-
cssClasses: [listboxPagerButtonClass]
|
|
79
|
-
});
|
|
63
|
+
const subtitleSettingsOpenButton = createSettingsOpenButton(subtitlePanelPage, settingsPanel, offLabel, [
|
|
64
|
+
listboxPagerButtonClass
|
|
65
|
+
]);
|
|
66
|
+
const speedSettingsOpenButton = createSettingsOpenButton(speedPanelPage, settingsPanel, '1x', [
|
|
67
|
+
listboxPagerButtonClass
|
|
68
|
+
]);
|
|
69
|
+
const qualitySettingsOpenButton = createSettingsOpenButton(qualityPanelPage, settingsPanel, autoLabel, [
|
|
70
|
+
listboxPagerButtonClass
|
|
71
|
+
]);
|
|
80
72
|
const subtitlesPanelItem = new SettingsPanelItem(subtitlesLabel, subtitleSettingsOpenButton, { hidden: false });
|
|
81
73
|
const speedPanelItem = new SettingsPanelItem(speedLabel, speedSettingsOpenButton);
|
|
82
74
|
const qualityPanelItem = new SettingsPanelItem(videoqualityLabel, qualitySettingsOpenButton, { hidden: false });
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
container: settingsPanel,
|
|
101
|
-
text: 'Kwaliteit',
|
|
102
|
-
cssClasses: [settingsBackButtonClass]
|
|
103
|
-
}));
|
|
104
|
-
if ('uiComponents' in npoplayer) {
|
|
105
|
-
npoplayer.uiComponents.subtitlesButton = subtitlesPanelItem;
|
|
106
|
-
npoplayer.uiComponents.qualityButton = qualityPanelItem;
|
|
75
|
+
for (const item of [
|
|
76
|
+
subtitlesPanelItem,
|
|
77
|
+
speedPanelItem,
|
|
78
|
+
qualityPanelItem,
|
|
79
|
+
new SettingsToggleButton({ settingsPanel })
|
|
80
|
+
])
|
|
81
|
+
mainSettingsPage.addComponent(item);
|
|
82
|
+
for (const [index, panelPage] of [subtitlePanelPage, speedPanelPage, qualityPanelPage].entries()) {
|
|
83
|
+
const labels = [subtitlesLabel, speedLabel, videoqualityLabel];
|
|
84
|
+
panelPage.addComponent(createSettingsPanelPageBackButton(mainSettingsPage, settingsPanel, labels[index], [
|
|
85
|
+
settingsBackButtonClass
|
|
86
|
+
]));
|
|
87
|
+
panelPage.addComponent(new SettingsToggleButton({ settingsPanel }));
|
|
88
|
+
}
|
|
89
|
+
if ('uiComponents' in npoPlayer) {
|
|
90
|
+
npoPlayer.uiComponents.subtitlesButton = subtitlesPanelItem;
|
|
91
|
+
npoPlayer.uiComponents.qualityButton = qualityPanelItem;
|
|
107
92
|
}
|
|
108
93
|
subtitleListBox.onItemSelected.subscribe(handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage));
|
|
109
94
|
if (player) {
|
|
@@ -112,15 +97,15 @@ export function createSettingsPanel(npoplayer) {
|
|
|
112
97
|
qualityListBox.selectItem('auto');
|
|
113
98
|
qualityListBox.onItemSelected.subscribe(handleQualityListBoxItemSelected(player, qualitySettingsOpenButton, settingsPanel, mainSettingsPage));
|
|
114
99
|
}
|
|
115
|
-
if (
|
|
116
|
-
const uiComponents =
|
|
100
|
+
if (npoPlayer.uiComponents) {
|
|
101
|
+
const uiComponents = npoPlayer.uiComponents;
|
|
117
102
|
uiComponents.settingsPanels = uiComponents.settingsPanels
|
|
118
103
|
? [...uiComponents.settingsPanels, settingsPanel]
|
|
119
104
|
: [settingsPanel];
|
|
120
105
|
}
|
|
121
106
|
const checkSubtitles = () => {
|
|
122
107
|
const subtitles = player?.subtitles?.list();
|
|
123
|
-
if (subtitles
|
|
108
|
+
if (subtitles && subtitles.length > 0) {
|
|
124
109
|
subtitlesPanelItem.show();
|
|
125
110
|
}
|
|
126
111
|
else {
|
|
@@ -131,9 +116,8 @@ export function createSettingsPanel(npoplayer) {
|
|
|
131
116
|
const availableVideoQualities = player?.getAvailableVideoQualities();
|
|
132
117
|
qualityListBox.clearItems();
|
|
133
118
|
if (availableVideoQualities?.length) {
|
|
134
|
-
for (const quality of availableVideoQualities)
|
|
119
|
+
for (const quality of availableVideoQualities)
|
|
135
120
|
qualityListBox.addItem(quality.id, quality.label ?? 'test');
|
|
136
|
-
}
|
|
137
121
|
qualityListBox.addItem('auto', autoLabel);
|
|
138
122
|
qualityListBox.selectItem('auto');
|
|
139
123
|
qualityPanelItem.show();
|
|
@@ -6,10 +6,13 @@ export function createTopBar(npoplayer) {
|
|
|
6
6
|
const chromeCastButton = new CastToggleButton({
|
|
7
7
|
hidden: true
|
|
8
8
|
});
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const handleCastAvailable = () => {
|
|
10
|
+
player?.off(PlayerEvent.CastAvailable, handleCastAvailable);
|
|
11
|
+
if (player?.isCastAvailable()) {
|
|
11
12
|
chromeCastButton.show();
|
|
12
|
-
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
player?.on(PlayerEvent.CastAvailable, handleCastAvailable);
|
|
13
16
|
const settingsPanel = createSettingsPanel(npoplayer);
|
|
14
17
|
return new TitleBar({
|
|
15
18
|
components: [
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ControlBar, Container, SeekBar, SeekBarLabel, PlaybackToggleButton, SettingsToggleButton, FullscreenToggleButton, VolumeControlButton } from 'bitmovin-player-ui';
|
|
2
|
+
import { createForwardButton, createRewindButton } from '../buttons';
|
|
3
|
+
import { createSeekBar } from '../seekbar';
|
|
4
|
+
import { createSettingsPanel } from '../settingspanel';
|
|
5
|
+
export function createVerticalVideoControlBar(npoPlayer) {
|
|
6
|
+
const player = npoPlayer.player;
|
|
7
|
+
const rewindButton = createRewindButton(player);
|
|
8
|
+
const forwardButton = createForwardButton(player);
|
|
9
|
+
const seekBar = new SeekBar({ label: new SeekBarLabel() });
|
|
10
|
+
npoPlayer.uiComponents.seekBar = seekBar;
|
|
11
|
+
const settingsPanel = createSettingsPanel(npoPlayer);
|
|
12
|
+
const settingsContainer = new Container({
|
|
13
|
+
components: [new SettingsToggleButton({ settingsPanel }), settingsPanel],
|
|
14
|
+
cssClasses: ['vertical-video-controlbar-settings']
|
|
15
|
+
});
|
|
16
|
+
const controlBarButtonsContainer = new Container({
|
|
17
|
+
components: [
|
|
18
|
+
new VolumeControlButton({
|
|
19
|
+
vertical: true
|
|
20
|
+
}),
|
|
21
|
+
rewindButton,
|
|
22
|
+
new PlaybackToggleButton(),
|
|
23
|
+
forwardButton,
|
|
24
|
+
new FullscreenToggleButton()
|
|
25
|
+
],
|
|
26
|
+
cssClasses: ['vertical-video-controlbar-buttons']
|
|
27
|
+
});
|
|
28
|
+
const controlBar = new ControlBar({
|
|
29
|
+
components: [settingsContainer, createSeekBar(npoPlayer), controlBarButtonsContainer],
|
|
30
|
+
cssClasses: ['ui-controlbar-bottom']
|
|
31
|
+
});
|
|
32
|
+
npoPlayer.uiComponents.controlBar = controlBar;
|
|
33
|
+
return controlBar;
|
|
34
|
+
}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import { PlayerContext
|
|
2
|
-
|
|
3
|
-
import { UIManager } from 'bitmovin-player-ui';
|
|
4
|
-
export declare function processStream(streamObject: StreamObject | undefined, container: HTMLElement, streamOptions: StreamOptions | undefined, player: PlayerAPI, uiManager: UIManager | undefined, sourceConfig: SourceConfig, playerContext: PlayerContext): void;
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
|
+
export declare function processStream(playerContext: PlayerContext): void;
|