@npo/player 1.29.0 → 2.0.0-beta.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/README.md +32 -24
- package/dist/logErrorEvent-DbEp9rzx.js +25 -0
- package/dist/logErrorEvent-DbEp9rzx.js.map +1 -0
- package/dist/main-XvJyWo8j.js +53061 -0
- package/dist/main-XvJyWo8j.js.map +1 -0
- package/dist/main.d.ts +1163 -0
- package/dist/npoplayer-audio.es.js +19 -0
- package/dist/npoplayer-audio.es.js.map +1 -0
- package/dist/npoplayer-audio.umd.js +53088 -0
- package/dist/npoplayer-audio.umd.js.map +1 -0
- package/package.json +72 -86
- package/CHANGELOG.md +0 -3
- package/LICENSE +0 -15
- package/lib/js/markers/updateLiveMarkers.d.ts +0 -9
- package/lib/js/markers/updateLiveMarkers.js +0 -56
- package/lib/js/markers/updateLiveMarkers.test.d.ts +0 -1
- package/lib/js/markers/updateLiveMarkers.test.js +0 -63
- package/lib/js/playeractions/handlers/handleoffsets.d.ts +0 -4
- package/lib/js/playeractions/handlers/handleoffsets.js +0 -58
- package/lib/js/playeractions/handlers/handleoffsets.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.test.js +0 -93
- package/lib/js/playeractions/handlers/mediasessionactions.d.ts +0 -7
- package/lib/js/playeractions/handlers/mediasessionactions.js +0 -123
- package/lib/js/playeractions/handlers/processplayerconfig.d.ts +0 -3
- package/lib/js/playeractions/handlers/processplayerconfig.js +0 -56
- package/lib/js/playeractions/handlers/processplayerconfig.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/processplayerconfig.test.js +0 -116
- package/lib/js/playeractions/handlers/processsourceconfig.d.ts +0 -15
- package/lib/js/playeractions/handlers/processsourceconfig.js +0 -232
- package/lib/js/playeractions/handlers/processsourceconfig.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/processsourceconfig.test.js +0 -25
- package/lib/js/playeractions/handlers/removereplayclass.d.ts +0 -2
- package/lib/js/playeractions/handlers/removereplayclass.js +0 -12
- package/lib/js/playeractions/handlers/removereplayclass.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/removereplayclass.test.js +0 -33
- package/lib/js/playeractions/playeractions.d.ts +0 -3
- package/lib/js/playeractions/playeractions.js +0 -3
- package/lib/js/settings/localization.d.ts +0 -82
- package/lib/js/settings/localization.js +0 -7
- package/lib/js/settings/settings.user-agent.d.ts +0 -1
- package/lib/js/settings/settings.user-agent.js +0 -1
- package/lib/js/utilities/utilities.element.d.ts +0 -16
- package/lib/js/utilities/utilities.element.js +0 -18
- package/lib/js/utilities/utilities.element.test.d.ts +0 -1
- package/lib/js/utilities/utilities.element.test.js +0 -38
- package/lib/js/utilities/utilities.jwt.d.ts +0 -5
- package/lib/js/utilities/utilities.jwt.js +0 -44
- package/lib/js/utilities/utilities.jwt.test.d.ts +0 -1
- package/lib/js/utilities/utilities.jwt.test.js +0 -32
- package/lib/js/utilities/utilities.locale.d.ts +0 -2
- package/lib/js/utilities/utilities.locale.js +0 -4
- package/lib/js/utilities/utilities.locale.test.d.ts +0 -1
- package/lib/js/utilities/utilities.locale.test.js +0 -10
- package/lib/js/utilities/utilities.module.d.ts +0 -1
- package/lib/js/utilities/utilities.module.js +0 -4
- package/lib/js/utilities/utilities.module.test.d.ts +0 -1
- package/lib/js/utilities/utilities.module.test.js +0 -19
- package/lib/js/utilities/utilities.prid.d.ts +0 -6
- package/lib/js/utilities/utilities.prid.js +0 -8
- package/lib/js/utilities/utilities.prid.test.d.ts +0 -1
- package/lib/js/utilities/utilities.prid.test.js +0 -46
- package/lib/js/utilities/utilities.stream.d.ts +0 -7
- package/lib/js/utilities/utilities.stream.js +0 -19
- package/lib/js/utilities/utilities.stream.test.d.ts +0 -1
- package/lib/js/utilities/utilities.stream.test.js +0 -32
- package/lib/js/utilities/utilities.text.d.ts +0 -1
- package/lib/js/utilities/utilities.text.js +0 -3
- package/lib/js/utilities/utilities.text.test.d.ts +0 -1
- package/lib/js/utilities/utilities.text.test.js +0 -18
- package/lib/js/utilities/utilities.time.d.ts +0 -1
- package/lib/js/utilities/utilities.time.js +0 -3
- package/lib/js/utilities/utilities.time.test.d.ts +0 -1
- package/lib/js/utilities/utilities.time.test.js +0 -8
- package/lib/js/utilities/utilities.url.d.ts +0 -3
- package/lib/js/utilities/utilities.url.js +0 -29
- package/lib/js/utilities/utilities.url.test.d.ts +0 -1
- package/lib/js/utilities/utilities.url.test.js +0 -46
- package/lib/js/utilities/utilities.user-agent.d.ts +0 -3
- package/lib/js/utilities/utilities.user-agent.js +0 -13
- package/lib/js/utilities/utilities.user-agent.test.d.ts +0 -1
- package/lib/js/utilities/utilities.user-agent.test.js +0 -60
- package/lib/js/utilities/utilities.version.d.ts +0 -1
- package/lib/js/utilities/utilities.version.js +0 -26
- package/lib/js/utilities/utilities.version.test.d.ts +0 -1
- package/lib/js/utilities/utilities.version.test.js +0 -26
- package/lib/lang/nl.json +0 -77
- package/lib/lang/subtitleLabels/nl.json +0 -14
- package/lib/npoplayer.d.ts +0 -64
- package/lib/npoplayer.js +0 -428
- package/lib/npoplayer.test.d.ts +0 -1
- package/lib/npoplayer.test.js +0 -22
- package/lib/package.json +0 -105
- package/lib/services/a11y/setup.d.ts +0 -2
- package/lib/services/a11y/setup.js +0 -15
- package/lib/services/a11y/setup.test.d.ts +0 -1
- package/lib/services/a11y/setup.test.js +0 -88
- package/lib/services/advertHandlers/discardAdBreak.d.ts +0 -2
- package/lib/services/advertHandlers/discardAdBreak.js +0 -9
- package/lib/services/advertHandlers/discardAdBreak.test.d.ts +0 -1
- package/lib/services/advertHandlers/discardAdBreak.test.js +0 -40
- package/lib/services/advertHandlers/handlePreRolls.d.ts +0 -2
- package/lib/services/advertHandlers/handlePreRolls.js +0 -136
- package/lib/services/advertHandlers/handlePrerolls.test.d.ts +0 -1
- package/lib/services/advertHandlers/handlePrerolls.test.js +0 -112
- package/lib/services/avTypeHandlers/getAVType.d.ts +0 -2
- package/lib/services/avTypeHandlers/getAVType.js +0 -9
- package/lib/services/avTypeHandlers/getAVType.test.d.ts +0 -1
- package/lib/services/avTypeHandlers/getAVType.test.js +0 -18
- package/lib/services/backButton/backButton.d.ts +0 -2
- package/lib/services/backButton/backButton.js +0 -24
- package/lib/services/cdnProviders/cdnProviders.d.ts +0 -4
- package/lib/services/cdnProviders/cdnProviders.js +0 -24
- package/lib/services/cdnProviders/cndProviders.test.d.ts +0 -1
- package/lib/services/cdnProviders/cndProviders.test.js +0 -22
- package/lib/services/chapterHandlers/chapterHandler.d.ts +0 -35
- package/lib/services/chapterHandlers/chapterHandler.js +0 -230
- package/lib/services/drmHandlers/constants.d.ts +0 -15
- package/lib/services/drmHandlers/constants.js +0 -13
- package/lib/services/drmHandlers/decideprofile.d.ts +0 -2
- package/lib/services/drmHandlers/decideprofile.js +0 -57
- package/lib/services/drmHandlers/decideprofile.test.d.ts +0 -1
- package/lib/services/drmHandlers/decideprofile.test.js +0 -38
- package/lib/services/drmHandlers/drmhandlers.d.ts +0 -2
- package/lib/services/drmHandlers/drmhandlers.js +0 -2
- package/lib/services/drmHandlers/utils.d.ts +0 -5
- package/lib/services/drmHandlers/utils.js +0 -29
- package/lib/services/drmHandlers/utils.test.d.ts +0 -1
- package/lib/services/drmHandlers/utils.test.js +0 -81
- package/lib/services/drmHandlers/verifydrm.d.ts +0 -2
- package/lib/services/drmHandlers/verifydrm.js +0 -39
- package/lib/services/drmHandlers/verifydrm.test.d.ts +0 -1
- package/lib/services/drmHandlers/verifydrm.test.js +0 -112
- package/lib/services/errors/errorBackground.test.d.ts +0 -1
- package/lib/services/errors/errorBackground.test.js +0 -48
- package/lib/services/errors/errorHandler.d.ts +0 -5
- package/lib/services/errors/errorHandler.js +0 -59
- package/lib/services/errors/errorHandler.test.d.ts +0 -1
- package/lib/services/errors/errorHandler.test.js +0 -148
- package/lib/services/errors/errorRetryHandler.d.ts +0 -2
- package/lib/services/errors/errorRetryHandler.js +0 -14
- package/lib/services/errors/errorRetryHandler.test.d.ts +0 -1
- package/lib/services/errors/errorRetryHandler.test.js +0 -62
- package/lib/services/errors/errorText.d.ts +0 -2
- package/lib/services/errors/errorText.js +0 -62
- package/lib/services/errors/errorText.test.d.ts +0 -1
- package/lib/services/errors/errorText.test.js +0 -66
- package/lib/services/eventListenerHandlers/removeEventListeners.d.ts +0 -2
- package/lib/services/eventListenerHandlers/removeEventListeners.js +0 -24
- package/lib/services/eventListenerHandlers/removeEventListeners.test.d.ts +0 -1
- package/lib/services/eventListenerHandlers/removeEventListeners.test.js +0 -36
- package/lib/services/infoPanel/infoPanel.d.ts +0 -3
- package/lib/services/infoPanel/infoPanel.js +0 -35
- package/lib/services/infoPanel/infoPanel.test.d.ts +0 -1
- package/lib/services/infoPanel/infoPanel.test.js +0 -70
- package/lib/services/keyboardHandlers/resolvekeypress.d.ts +0 -2
- package/lib/services/keyboardHandlers/resolvekeypress.js +0 -63
- package/lib/services/keyboardHandlers/resolvekeypress.test.d.ts +0 -1
- package/lib/services/keyboardHandlers/resolvekeypress.test.js +0 -92
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.d.ts +0 -6
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.js +0 -36
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +0 -2
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.js +0 -65
- package/lib/services/localStorageHandlers/localStorageHandlers.d.ts +0 -4
- package/lib/services/localStorageHandlers/localStorageHandlers.js +0 -36
- package/lib/services/localStorageHandlers/localStorageHandlers.test.d.ts +0 -1
- package/lib/services/localStorageHandlers/localStorageHandlers.test.js +0 -104
- package/lib/services/nicamHandlers/nicamhandler.d.ts +0 -6
- package/lib/services/nicamHandlers/nicamhandler.js +0 -69
- package/lib/services/nicamHandlers/nicamhandler.test.d.ts +0 -1
- package/lib/services/nicamHandlers/nicamhandler.test.js +0 -127
- package/lib/services/npoPlayerAPI/contants.d.ts +0 -25
- package/lib/services/npoPlayerAPI/contants.js +0 -11
- package/lib/services/npoPlayerAPI/npoPlayerAPI.d.ts +0 -53
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +0 -193
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.d.ts +0 -1
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.js +0 -127
- package/lib/services/npoPlayerAPI/playerModules.d.ts +0 -1
- package/lib/services/npoPlayerAPI/playerModules.js +0 -48
- package/lib/services/preferences/handlePreferences.d.ts +0 -2
- package/lib/services/preferences/handlePreferences.js +0 -47
- package/lib/services/preferences/handlePreferences.test.d.ts +0 -1
- package/lib/services/preferences/handlePreferences.test.js +0 -138
- package/lib/services/segmentHandlers/addSegmentEventListeners.d.ts +0 -2
- package/lib/services/segmentHandlers/addSegmentEventListeners.js +0 -15
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.d.ts +0 -1
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.js +0 -44
- package/lib/services/segmentHandlers/convertFragmentToSegment.d.ts +0 -2
- package/lib/services/segmentHandlers/convertFragmentToSegment.js +0 -8
- package/lib/services/segmentHandlers/convertFragmentToSegment.test.d.ts +0 -1
- package/lib/services/segmentHandlers/convertFragmentToSegment.test.js +0 -17
- package/lib/services/segmentHandlers/handleSegmentSeek.d.ts +0 -5
- package/lib/services/segmentHandlers/handleSegmentSeek.js +0 -15
- package/lib/services/segmentHandlers/handleSegmentSeek.test.d.ts +0 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.test.js +0 -73
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.d.ts +0 -2
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.js +0 -21
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.d.ts +0 -1
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.js +0 -43
- package/lib/services/segmentHandlers/initSegment.d.ts +0 -7
- package/lib/services/segmentHandlers/initSegment.js +0 -10
- package/lib/services/segmentHandlers/initSegment.test.d.ts +0 -1
- package/lib/services/segmentHandlers/initSegment.test.js +0 -38
- package/lib/services/segmentHandlers/isSegmentInBounds.d.ts +0 -2
- package/lib/services/segmentHandlers/isSegmentInBounds.js +0 -5
- package/lib/services/segmentHandlers/isSegmentInBounds.test.d.ts +0 -1
- package/lib/services/segmentHandlers/isSegmentInBounds.test.js +0 -27
- package/lib/services/segmentHandlers/setSegmentMarkers.d.ts +0 -2
- package/lib/services/segmentHandlers/setSegmentMarkers.js +0 -25
- package/lib/services/segmentHandlers/setSegmentMarkers.test.d.ts +0 -1
- package/lib/services/segmentHandlers/setSegmentMarkers.test.js +0 -32
- package/lib/services/services.d.ts +0 -34
- package/lib/services/services.js +0 -129
- package/lib/services/streamFetchHandler/fetchStream.d.ts +0 -2
- package/lib/services/streamFetchHandler/fetchStream.js +0 -49
- package/lib/services/streamFetchHandler/fetchstream.test.d.ts +0 -1
- package/lib/services/streamFetchHandler/fetchstream.test.js +0 -92
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.d.ts +0 -6
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.js +0 -80
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.test.d.ts +0 -1
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.test.js +0 -199
- package/lib/services/trackingHandlers/eventBinding.d.ts +0 -2
- package/lib/services/trackingHandlers/eventBinding.js +0 -129
- package/lib/services/trackingHandlers/eventBinding.test.d.ts +0 -1
- package/lib/services/trackingHandlers/eventBinding.test.js +0 -145
- package/lib/services/trackingHandlers/eventLogging.d.ts +0 -2
- package/lib/services/trackingHandlers/eventLogging.js +0 -37
- package/lib/services/trackingHandlers/eventLogging.test.d.ts +0 -1
- package/lib/services/trackingHandlers/eventLogging.test.js +0 -63
- package/lib/services/trackingHandlers/index.d.ts +0 -3
- package/lib/services/trackingHandlers/index.js +0 -3
- package/lib/services/trackingHandlers/playerTrackerInit.d.ts +0 -2
- package/lib/services/trackingHandlers/playerTrackerInit.js +0 -20
- package/lib/services/trackingHandlers/playerTrackerInit.test.d.ts +0 -1
- package/lib/services/trackingHandlers/playerTrackerInit.test.js +0 -75
- package/lib/services/trackingHandlers/playerTrackerStart.d.ts +0 -2
- package/lib/services/trackingHandlers/playerTrackerStart.js +0 -28
- package/lib/services/trackingHandlers/playerTrackerStart.test.d.ts +0 -1
- package/lib/services/trackingHandlers/playerTrackerStart.test.js +0 -76
- package/lib/services/trackingHandlers/streamTrackerInit.d.ts +0 -3
- package/lib/services/trackingHandlers/streamTrackerInit.js +0 -27
- package/lib/services/trackingHandlers/streamTrackerInit.test.d.ts +0 -1
- package/lib/services/trackingHandlers/streamTrackerInit.test.js +0 -84
- package/lib/services/uiHandlers/uiVisiblityHandler.d.ts +0 -3
- package/lib/services/uiHandlers/uiVisiblityHandler.js +0 -32
- package/lib/services/uiHandlers/uiVisiblityHandler.test.d.ts +0 -1
- package/lib/services/uiHandlers/uiVisiblityHandler.test.js +0 -62
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +0 -2
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.js +0 -6
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +0 -1
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.js +0 -23
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.d.ts +0 -2
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.js +0 -26
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.test.d.ts +0 -1
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.test.js +0 -73
- package/lib/src/js/markers/updateLiveMarkers.d.ts +0 -9
- package/lib/src/js/markers/updateLiveMarkers.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +0 -4
- package/lib/src/js/playeractions/handlers/handleoffsets.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/mediasessionactions.d.ts +0 -7
- package/lib/src/js/playeractions/handlers/processplayerconfig.d.ts +0 -3
- package/lib/src/js/playeractions/handlers/processplayerconfig.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/processsourceconfig.d.ts +0 -15
- package/lib/src/js/playeractions/handlers/processsourceconfig.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/removereplayclass.d.ts +0 -2
- package/lib/src/js/playeractions/handlers/removereplayclass.test.d.ts +0 -1
- package/lib/src/js/playeractions/playeractions.d.ts +0 -3
- package/lib/src/js/settings/localization.d.ts +0 -82
- package/lib/src/js/settings/settings.user-agent.d.ts +0 -1
- package/lib/src/js/utilities/utilities.element.d.ts +0 -16
- package/lib/src/js/utilities/utilities.element.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.jwt.d.ts +0 -5
- package/lib/src/js/utilities/utilities.jwt.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.locale.d.ts +0 -2
- package/lib/src/js/utilities/utilities.locale.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.module.d.ts +0 -1
- package/lib/src/js/utilities/utilities.module.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.prid.d.ts +0 -6
- package/lib/src/js/utilities/utilities.prid.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.stream.d.ts +0 -7
- package/lib/src/js/utilities/utilities.stream.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.text.d.ts +0 -1
- package/lib/src/js/utilities/utilities.text.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.time.d.ts +0 -1
- package/lib/src/js/utilities/utilities.time.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.url.d.ts +0 -3
- package/lib/src/js/utilities/utilities.url.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.user-agent.d.ts +0 -3
- package/lib/src/js/utilities/utilities.user-agent.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.version.d.ts +0 -1
- package/lib/src/js/utilities/utilities.version.test.d.ts +0 -1
- package/lib/src/npoplayer.d.ts +0 -64
- package/lib/src/npoplayer.test.d.ts +0 -1
- package/lib/src/services/a11y/setup.d.ts +0 -2
- package/lib/src/services/a11y/setup.test.d.ts +0 -1
- package/lib/src/services/advertHandlers/discardAdBreak.d.ts +0 -2
- package/lib/src/services/advertHandlers/discardAdBreak.test.d.ts +0 -1
- package/lib/src/services/advertHandlers/handlePreRolls.d.ts +0 -2
- package/lib/src/services/advertHandlers/handlePrerolls.test.d.ts +0 -1
- package/lib/src/services/avTypeHandlers/getAVType.d.ts +0 -2
- package/lib/src/services/avTypeHandlers/getAVType.test.d.ts +0 -1
- package/lib/src/services/backButton/backButton.d.ts +0 -2
- package/lib/src/services/cdnProviders/cdnProviders.d.ts +0 -4
- package/lib/src/services/cdnProviders/cndProviders.test.d.ts +0 -1
- package/lib/src/services/chapterHandlers/chapterHandler.d.ts +0 -35
- package/lib/src/services/drmHandlers/constants.d.ts +0 -15
- package/lib/src/services/drmHandlers/decideprofile.d.ts +0 -2
- package/lib/src/services/drmHandlers/decideprofile.test.d.ts +0 -1
- package/lib/src/services/drmHandlers/drmhandlers.d.ts +0 -2
- package/lib/src/services/drmHandlers/utils.d.ts +0 -5
- package/lib/src/services/drmHandlers/utils.test.d.ts +0 -1
- package/lib/src/services/drmHandlers/verifydrm.d.ts +0 -2
- package/lib/src/services/drmHandlers/verifydrm.test.d.ts +0 -1
- package/lib/src/services/errors/errorBackground.test.d.ts +0 -1
- package/lib/src/services/errors/errorHandler.d.ts +0 -5
- package/lib/src/services/errors/errorHandler.test.d.ts +0 -1
- package/lib/src/services/errors/errorRetryHandler.d.ts +0 -2
- package/lib/src/services/errors/errorRetryHandler.test.d.ts +0 -1
- package/lib/src/services/errors/errorText.d.ts +0 -2
- package/lib/src/services/errors/errorText.test.d.ts +0 -1
- package/lib/src/services/eventListenerHandlers/removeEventListeners.d.ts +0 -2
- package/lib/src/services/eventListenerHandlers/removeEventListeners.test.d.ts +0 -1
- package/lib/src/services/infoPanel/infoPanel.d.ts +0 -3
- package/lib/src/services/infoPanel/infoPanel.test.d.ts +0 -1
- package/lib/src/services/keyboardHandlers/resolvekeypress.d.ts +0 -2
- package/lib/src/services/keyboardHandlers/resolvekeypress.test.d.ts +0 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.d.ts +0 -6
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +0 -2
- package/lib/src/services/localStorageHandlers/localStorageHandlers.d.ts +0 -4
- package/lib/src/services/localStorageHandlers/localStorageHandlers.test.d.ts +0 -1
- package/lib/src/services/nicamHandlers/nicamhandler.d.ts +0 -6
- package/lib/src/services/nicamHandlers/nicamhandler.test.d.ts +0 -1
- package/lib/src/services/npoPlayerAPI/contants.d.ts +0 -25
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.d.ts +0 -53
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.test.d.ts +0 -1
- package/lib/src/services/npoPlayerAPI/playerModules.d.ts +0 -1
- package/lib/src/services/preferences/handlePreferences.d.ts +0 -2
- package/lib/src/services/preferences/handlePreferences.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/addSegmentEventListeners.d.ts +0 -2
- package/lib/src/services/segmentHandlers/addSegmentEventListeners.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.d.ts +0 -2
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/handleSegmentSeek.d.ts +0 -5
- package/lib/src/services/segmentHandlers/handleSegmentSeek.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.d.ts +0 -2
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/initSegment.d.ts +0 -7
- package/lib/src/services/segmentHandlers/initSegment.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/isSegmentInBounds.d.ts +0 -2
- package/lib/src/services/segmentHandlers/isSegmentInBounds.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/setSegmentMarkers.d.ts +0 -2
- package/lib/src/services/segmentHandlers/setSegmentMarkers.test.d.ts +0 -1
- package/lib/src/services/services.d.ts +0 -34
- package/lib/src/services/streamFetchHandler/fetchStream.d.ts +0 -2
- package/lib/src/services/streamFetchHandler/fetchstream.test.d.ts +0 -1
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.d.ts +0 -6
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/eventBinding.d.ts +0 -2
- package/lib/src/services/trackingHandlers/eventBinding.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/eventLogging.d.ts +0 -2
- package/lib/src/services/trackingHandlers/eventLogging.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/index.d.ts +0 -3
- package/lib/src/services/trackingHandlers/playerTrackerInit.d.ts +0 -2
- package/lib/src/services/trackingHandlers/playerTrackerInit.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/playerTrackerStart.d.ts +0 -2
- package/lib/src/services/trackingHandlers/playerTrackerStart.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/streamTrackerInit.d.ts +0 -3
- package/lib/src/services/trackingHandlers/streamTrackerInit.test.d.ts +0 -1
- package/lib/src/services/uiHandlers/uiVisiblityHandler.d.ts +0 -3
- package/lib/src/services/uiHandlers/uiVisiblityHandler.test.d.ts +0 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +0 -2
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +0 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoSettings.d.ts +0 -2
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoSettings.test.d.ts +0 -1
- package/lib/src/types/classes.d.ts +0 -10
- package/lib/src/types/events.d.ts +0 -98
- package/lib/src/types/interfaces.d.ts +0 -246
- package/lib/src/ui/components/adbutton.d.ts +0 -4
- package/lib/src/ui/components/adlabel.d.ts +0 -4
- package/lib/src/ui/components/audio/controlbar.d.ts +0 -3
- package/lib/src/ui/components/backButton.d.ts +0 -2
- package/lib/src/ui/components/buttons.d.ts +0 -42
- package/lib/src/ui/components/controlbar.d.ts +0 -3
- package/lib/src/ui/components/ctabar.d.ts +0 -4
- package/lib/src/ui/components/infopanel/infopanel.d.ts +0 -3
- package/lib/src/ui/components/infopanel/togglebutton.d.ts +0 -3
- package/lib/src/ui/components/playnext.d.ts +0 -4
- package/lib/src/ui/components/seekbar.d.ts +0 -6
- package/lib/src/ui/components/settingspanel.d.ts +0 -3
- package/lib/src/ui/components/titlebar.d.ts +0 -3
- package/lib/src/ui/components/topbar.d.ts +0 -3
- package/lib/src/ui/components/verticalvideo/controlbar.d.ts +0 -3
- package/lib/src/ui/components/verticalvideo/settingspanel.d.ts +0 -2
- package/lib/src/ui/handlers/accessibilityhandler.d.ts +0 -2
- package/lib/src/ui/handlers/accessibilityhandler.test.d.ts +0 -1
- package/lib/src/ui/handlers/domhandlers.d.ts +0 -3
- package/lib/src/ui/handlers/domhandlers.test.d.ts +0 -1
- package/lib/src/ui/handlers/listboxhandlers.d.ts +0 -19
- package/lib/src/ui/handlers/playnextscreen.d.ts +0 -6
- package/lib/src/ui/handlers/playnextscreen.test.d.ts +0 -1
- package/lib/src/ui/handlers/timecontrolhandlers.d.ts +0 -3
- package/lib/src/ui/uicontainer.d.ts +0 -3
- package/lib/src/ui/uicontainer.test.d.ts +0 -1
- package/lib/tests/jest.setup-files-after-env.d.ts +0 -0
- package/lib/tests/jest.setup-files-after-env.js +0 -6
- package/lib/tests/jest.setup-tests.d.ts +0 -1
- package/lib/tests/jest.setup-tests.js +0 -2
- package/lib/tests/mocks/mockLogEmitter.d.ts +0 -2
- package/lib/tests/mocks/mockLogEmitter.js +0 -20
- package/lib/tests/mocks/mockNpoplayer.d.ts +0 -2
- package/lib/tests/mocks/mockNpoplayer.js +0 -105
- package/lib/tests/mocks/mockPlayerAPI.d.ts +0 -3
- package/lib/tests/mocks/mockPlayerAPI.js +0 -195
- package/lib/tests/mocks/mockPlayerUi.d.ts +0 -64
- package/lib/tests/mocks/mockPlayerUi.js +0 -251
- package/lib/tests/mocks/mockStreamObject.d.ts +0 -2
- package/lib/tests/mocks/mockStreamObject.js +0 -21
- package/lib/tests/mocks/playerContextMock.d.ts +0 -7
- package/lib/tests/mocks/playerContextMock.js +0 -153
- package/lib/types/classes.d.ts +0 -10
- package/lib/types/classes.js +0 -15
- package/lib/types/events.d.ts +0 -98
- package/lib/types/events.js +0 -184
- package/lib/types/interfaces.d.ts +0 -246
- package/lib/types/interfaces.js +0 -20
- package/lib/ui/components/adbutton.d.ts +0 -4
- package/lib/ui/components/adbutton.js +0 -12
- package/lib/ui/components/adlabel.d.ts +0 -4
- package/lib/ui/components/adlabel.js +0 -8
- package/lib/ui/components/audio/controlbar.d.ts +0 -3
- package/lib/ui/components/audio/controlbar.js +0 -23
- package/lib/ui/components/backButton.d.ts +0 -2
- package/lib/ui/components/backButton.js +0 -8
- package/lib/ui/components/buttons.d.ts +0 -42
- package/lib/ui/components/buttons.js +0 -144
- package/lib/ui/components/controlbar.d.ts +0 -3
- package/lib/ui/components/controlbar.js +0 -40
- package/lib/ui/components/ctabar.d.ts +0 -4
- package/lib/ui/components/ctabar.js +0 -28
- package/lib/ui/components/infopanel/infopanel.d.ts +0 -3
- package/lib/ui/components/infopanel/infopanel.js +0 -42
- package/lib/ui/components/infopanel/togglebutton.d.ts +0 -3
- package/lib/ui/components/infopanel/togglebutton.js +0 -18
- package/lib/ui/components/playnext.d.ts +0 -4
- package/lib/ui/components/playnext.js +0 -10
- package/lib/ui/components/seekbar.d.ts +0 -6
- package/lib/ui/components/seekbar.js +0 -26
- package/lib/ui/components/settingspanel.d.ts +0 -3
- package/lib/ui/components/settingspanel.js +0 -159
- package/lib/ui/components/titlebar.d.ts +0 -3
- package/lib/ui/components/titlebar.js +0 -14
- package/lib/ui/components/topbar.d.ts +0 -3
- package/lib/ui/components/topbar.js +0 -36
- package/lib/ui/components/verticalvideo/controlbar.d.ts +0 -3
- package/lib/ui/components/verticalvideo/controlbar.js +0 -40
- package/lib/ui/components/verticalvideo/settingspanel.d.ts +0 -2
- package/lib/ui/components/verticalvideo/settingspanel.js +0 -25
- package/lib/ui/handlers/accessibilityhandler.d.ts +0 -2
- package/lib/ui/handlers/accessibilityhandler.js +0 -22
- package/lib/ui/handlers/accessibilityhandler.test.d.ts +0 -1
- package/lib/ui/handlers/accessibilityhandler.test.js +0 -54
- package/lib/ui/handlers/domhandlers.d.ts +0 -3
- package/lib/ui/handlers/domhandlers.js +0 -7
- package/lib/ui/handlers/domhandlers.test.d.ts +0 -1
- package/lib/ui/handlers/domhandlers.test.js +0 -31
- package/lib/ui/handlers/listboxhandlers.d.ts +0 -19
- package/lib/ui/handlers/listboxhandlers.js +0 -43
- package/lib/ui/handlers/playnextscreen.d.ts +0 -6
- package/lib/ui/handlers/playnextscreen.js +0 -28
- package/lib/ui/handlers/playnextscreen.test.d.ts +0 -1
- package/lib/ui/handlers/playnextscreen.test.js +0 -57
- package/lib/ui/handlers/timecontrolhandlers.d.ts +0 -3
- package/lib/ui/handlers/timecontrolhandlers.js +0 -17
- package/lib/ui/uicontainer.d.ts +0 -3
- package/lib/ui/uicontainer.js +0 -80
- package/lib/ui/uicontainer.test.d.ts +0 -1
- package/lib/ui/uicontainer.test.js +0 -84
- package/src/style/components/_advert.scss +0 -119
- package/src/style/components/_audio.scss +0 -4
- package/src/style/components/_back-button.scss +0 -42
- package/src/style/components/_buffering.scss +0 -69
- package/src/style/components/_controlbars.scss +0 -26
- package/src/style/components/_error.scss +0 -71
- package/src/style/components/_hugeplaybacktogglebutton.scss +0 -97
- package/src/style/components/_icons.scss +0 -177
- package/src/style/components/_infopanel.scss +0 -105
- package/src/style/components/_metadata.scss +0 -52
- package/src/style/components/_nicam.scss +0 -117
- package/src/style/components/_playnext.scss +0 -72
- package/src/style/components/_poster.scss +0 -3
- package/src/style/components/_replay.scss +0 -25
- package/src/style/components/_seekbar.scss +0 -114
- package/src/style/components/_seekbarthumbnail.scss +0 -61
- package/src/style/components/_settingspanel.scss +0 -290
- package/src/style/components/_subtitles.scss +0 -78
- package/src/style/components/_textbuttons.scss +0 -82
- package/src/style/components/_volumeslider.scss +0 -94
- package/src/style/components/audio/_bottombar.scss +0 -54
- package/src/style/components/audio/_buffering.scss +0 -8
- package/src/style/components/audio/_errors.scss +0 -13
- package/src/style/components/audio/_metadata.scss +0 -60
- package/src/style/components/audio/_playbutton.scss +0 -54
- package/src/style/components/audio/_poster.scss +0 -19
- package/src/style/components/audio/_replay.scss +0 -28
- package/src/style/components/audio/_seekbar.scss +0 -28
- package/src/style/components/audio/_topbar.scss +0 -35
- package/src/style/components/audio/_vars.scss +0 -5
- package/src/style/components/audio/_volumeslider.scss +0 -41
- package/src/style/components/vertical-video/_bottombar.scss +0 -60
- package/src/style/components/vertical-video/_buttons.scss +0 -25
- package/src/style/components/vertical-video/_hugeplaybacktogglebutton.scss +0 -34
- package/src/style/components/vertical-video/_seekbar.scss +0 -19
- package/src/style/components/vertical-video/_settingsbutton.scss +0 -7
- package/src/style/components/vertical-video/_settingspanel.scss +0 -31
- package/src/style/components/vertical-video/_shortvideo.scss +0 -14
- package/src/style/components/vertical-video/_subtitles.scss +0 -3
- package/src/style/components/vertical-video/_topbar.scss +0 -58
- package/src/style/components/vertical-video/_volumeslider.scss +0 -9
- package/src/style/npoplayer.css +0 -908
- package/src/style/npoplayer.scss +0 -58
- package/src/style/variants/_player-audio-only.scss +0 -32
- package/src/style/variants/_player-audio.scss +0 -55
- package/src/style/variants/_player-base.scss +0 -101
- package/src/style/variants/_player-debug.scss +0 -14
- package/src/style/variants/_player-large.scss +0 -99
- package/src/style/variants/_player-medium.scss +0 -68
- package/src/style/variants/_player-small.scss +0 -203
- package/src/style/variants/_player-vertical.scss +0 -23
- package/src/style/vars/_audio.scss +0 -5
- package/src/style/vars/_colors.scss +0 -25
- package/src/style/vars/_fonts.scss +0 -26
- package/src/style/vars/_icons.scss +0 -29
- package/src/style/vars/_z-index.scss +0 -1
package/package.json
CHANGED
|
@@ -1,105 +1,91 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@npo/player",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "NPO
|
|
5
|
-
"author": "
|
|
3
|
+
"version": "2.0.0-beta.0",
|
|
4
|
+
"description": "A library for creating and managing an audio player designed for playing content serviced by NPO (Nederlandse Publieke Omroep) in it's digital products",
|
|
5
|
+
"author": "NPO",
|
|
6
6
|
"contributors": [
|
|
7
|
-
"Tim Haerkens",
|
|
8
7
|
"Sven van der Leest",
|
|
9
|
-
"Arjan Kruithof"
|
|
8
|
+
"Arjan Kruithof",
|
|
9
|
+
"Michel Groot"
|
|
10
10
|
],
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"build:web-styles": "sass src/style/npoplayer.scss:src/style/npoplayer.css --style=compressed && postcss src/style/npoplayer.css --use autoprefixer postcss-import -o src/style/npoplayer.css",
|
|
21
|
-
"build:cdn": "npm run build && bash build-cdn.sh",
|
|
22
|
-
"lint": "eslint src --fix",
|
|
23
|
-
"bundle": "npm run lint && bash build-lib.sh && npm run build:scss && npm run build:cdn",
|
|
24
|
-
"build:ts": "bash build-lib.sh",
|
|
25
|
-
"test": "jest",
|
|
26
|
-
"version:dev": "npm version prerelease --preid=dev --no-git-tag-version"
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "./dist/npoplayer-audio",
|
|
13
|
+
"types": "./dist/main.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": "./dist/npoplayer-audio.es.js",
|
|
17
|
+
"require": "./dist/npoplayer-audio.umd.js",
|
|
18
|
+
"types": "./dist/main.d.ts"
|
|
19
|
+
}
|
|
27
20
|
},
|
|
28
21
|
"files": [
|
|
29
|
-
"
|
|
30
|
-
"README.md",
|
|
31
|
-
"CHANGELOG.md",
|
|
32
|
-
"lib",
|
|
33
|
-
"src/style/components",
|
|
34
|
-
"src/style/variants",
|
|
35
|
-
"src/style/vars",
|
|
36
|
-
"src/style/npoplayer.scss",
|
|
37
|
-
"src/style/npoplayer.css"
|
|
22
|
+
"./dist/**/*"
|
|
38
23
|
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"test": "jest --runInBand",
|
|
26
|
+
"test:ci": "jest --collectCoverage",
|
|
27
|
+
"dev": "vite build --watch --mode watch",
|
|
28
|
+
"build": "tsc && vite build && npm run build:legacy",
|
|
29
|
+
"build:legacy": "tsc && vite build --config vite.legacy.config.js",
|
|
30
|
+
"postinstall": "node -e \"var p=require('path'),f=require('fs'),d=p.join('node_modules','shaka-player','dist');try{f.readdirSync(d).filter(x=>x.endsWith('.d.ts')).forEach(x=>f.unlinkSync(p.join(d,x)))}catch(e){}\"",
|
|
31
|
+
"lint": "eslint src --fix"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@npotag/tag": "^3.2.11",
|
|
35
|
+
"@types/chromecast-caf-sender": "^1.0.11",
|
|
36
|
+
"shaka-player": "^4.16.24"
|
|
37
|
+
},
|
|
38
|
+
"overrides": {
|
|
39
|
+
"form-data": ">=4.0.4"
|
|
40
|
+
},
|
|
39
41
|
"devDependencies": {
|
|
40
|
-
"@babel/
|
|
41
|
-
"@babel/
|
|
42
|
-
"@babel/
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
48
|
-
"
|
|
49
|
-
"babel
|
|
50
|
-
"babel-
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
42
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
43
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
44
|
+
"@babel/plugin-proposal-private-methods": "^7.18.6",
|
|
45
|
+
"@babel/plugin-transform-block-scoping": "^7.28.6",
|
|
46
|
+
"@babel/plugin-transform-classes": "^7.28.6",
|
|
47
|
+
"@babel/plugin-transform-modules-commonjs": "^7.28.6",
|
|
48
|
+
"@babel/plugin-transform-runtime": "^7.29.0",
|
|
49
|
+
"@babel/preset-env": "^7.29.2",
|
|
50
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
51
|
+
"@babel/runtime": "^7.29.2",
|
|
52
|
+
"@babel/runtime-corejs3": "^7.29.2",
|
|
53
|
+
"@npo/player-types": "^2.0.0-beta.0",
|
|
54
|
+
"@rollup/plugin-babel": "^6.1.0",
|
|
55
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
56
|
+
"@types/jest": "^29.5.14",
|
|
57
|
+
"@types/node": "^22.19.15",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^8.57.2",
|
|
59
|
+
"@typescript-eslint/parser": "^8.57.2",
|
|
60
|
+
"@vitejs/plugin-legacy": "^5.4.3",
|
|
61
|
+
"baseline-browser-mapping": "^2.10.12",
|
|
62
|
+
"core-js": "^3.49.0",
|
|
63
|
+
"eslint": "^8.57.1",
|
|
64
|
+
"eslint-config-prettier": "^9.1.2",
|
|
55
65
|
"eslint-plugin-import": "^2.27.5",
|
|
56
66
|
"eslint-plugin-jest-dom": "^5.4.0",
|
|
57
67
|
"eslint-plugin-n": "^15.7.0",
|
|
58
|
-
"eslint-plugin-prettier": "^5.
|
|
59
|
-
"eslint-plugin-promise": "^6.
|
|
68
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
69
|
+
"eslint-plugin-promise": "^6.6.0",
|
|
60
70
|
"eslint-plugin-sonarjs": "^0.23.0",
|
|
61
|
-
"eslint-plugin-testing-library": "^
|
|
71
|
+
"eslint-plugin-testing-library": "^5.11.1",
|
|
62
72
|
"eslint-plugin-unicorn": "^52.0.0",
|
|
63
|
-
"
|
|
64
|
-
"jest": "^
|
|
65
|
-
"jest-environment-jsdom": "^29.
|
|
73
|
+
"events": "^3.3.0",
|
|
74
|
+
"jest": "^29.7.0",
|
|
75
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
66
76
|
"jest-fetch-mock": "^3.0.3",
|
|
67
|
-
"jest-junit": "^16.0.0",
|
|
68
77
|
"jest-sonar-reporter": "^2.0.0",
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"node
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"prettier": "^3.2.5",
|
|
78
|
-
"sass": "^1.58.0",
|
|
79
|
-
"sass-loader": "^12.6.0",
|
|
80
|
-
"style-loader": "^3.3.1",
|
|
81
|
-
"ts-jest": "^28.0.8",
|
|
82
|
-
"ts-loader": "^9.4.2",
|
|
83
|
-
"ts-node": "^10.9.1",
|
|
84
|
-
"typescript": "^4.9.5",
|
|
85
|
-
"webpack": "^5.75.0",
|
|
86
|
-
"webpack-cli": "^4.10.0",
|
|
87
|
-
"webpack-dev-server": "^4.11.1"
|
|
88
|
-
},
|
|
89
|
-
"dependencies": {
|
|
90
|
-
"@npotag/tag": "3.2.4",
|
|
91
|
-
"bitmovin-player": "^8.228.0",
|
|
92
|
-
"bitmovin-player-ui": "^3.102.0"
|
|
78
|
+
"prettier": "3.8.1",
|
|
79
|
+
"text-encoding-polyfill": "^0.6.7",
|
|
80
|
+
"ts-jest": "^29.4.6",
|
|
81
|
+
"ts-node": "^10.9.2",
|
|
82
|
+
"typescript": "^5.9.3",
|
|
83
|
+
"vite": "^5.4.21",
|
|
84
|
+
"vite-plugin-dts": "^4.0.3",
|
|
85
|
+
"whatwg-fetch": "^3.6.20"
|
|
93
86
|
},
|
|
94
|
-
"browserslist": [
|
|
95
|
-
"defaults",
|
|
96
|
-
"not ie < 11",
|
|
97
|
-
"last 2 versions",
|
|
98
|
-
"> 1%"
|
|
99
|
-
],
|
|
100
87
|
"keywords": [
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
]
|
|
88
|
+
"npo"
|
|
89
|
+
],
|
|
90
|
+
"license": "MIT"
|
|
105
91
|
}
|
package/CHANGELOG.md
DELETED
package/LICENSE
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
The ISC License
|
|
2
|
-
|
|
3
|
-
Copyright (c) NPO
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
copyright notice and this permission notice appear in all copies.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
15
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PlayerAPI } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
import { UIManager } from 'bitmovin-player-ui';
|
|
3
|
-
import { TimeLineMarker } from 'types/interfaces';
|
|
4
|
-
export declare function updateLiveMarkers({ timeLineMarkers, player, uiManager, autoFillTimeLineMarkerDuration }: {
|
|
5
|
-
timeLineMarkers: TimeLineMarker[];
|
|
6
|
-
player: PlayerAPI;
|
|
7
|
-
uiManager: UIManager;
|
|
8
|
-
autoFillTimeLineMarkerDuration: boolean;
|
|
9
|
-
}): void;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
export function updateLiveMarkers({ timeLineMarkers, player, uiManager, autoFillTimeLineMarkerDuration }) {
|
|
2
|
-
if (!player || !uiManager) {
|
|
3
|
-
console.error('Player or UIManager is null');
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
removeAllMarkers(uiManager);
|
|
7
|
-
const currentTimeEpoch = Math.floor(Date.now() / 1000);
|
|
8
|
-
timeLineMarkers.sort((a, b) => a.time - b.time);
|
|
9
|
-
const relativeTimeMarkers = timeLineMarkers.map((marker, index) => transformMarker({
|
|
10
|
-
marker,
|
|
11
|
-
index,
|
|
12
|
-
timeLineMarkers,
|
|
13
|
-
currentTimeEpoch,
|
|
14
|
-
player,
|
|
15
|
-
autoFillTimeLineMarkerDuration
|
|
16
|
-
}));
|
|
17
|
-
for (const marker of relativeTimeMarkers) {
|
|
18
|
-
uiManager?.addTimelineMarker(marker);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function transformMarker({ marker, index, timeLineMarkers, currentTimeEpoch, player, autoFillTimeLineMarkerDuration }) {
|
|
22
|
-
const DVR_WINDOW_LENGTH = Math.abs(player.getMaxTimeShift());
|
|
23
|
-
let duration = marker.duration ?? 0;
|
|
24
|
-
let startTimeRelativeToCurrent = marker.time - currentTimeEpoch;
|
|
25
|
-
if (autoFillTimeLineMarkerDuration) {
|
|
26
|
-
duration =
|
|
27
|
-
index === timeLineMarkers.length - 1
|
|
28
|
-
? Math.min(currentTimeEpoch, marker.time + DVR_WINDOW_LENGTH) - marker.time
|
|
29
|
-
: timeLineMarkers[index + 1].time - marker.time;
|
|
30
|
-
if (startTimeRelativeToCurrent < -DVR_WINDOW_LENGTH) {
|
|
31
|
-
duration =
|
|
32
|
-
index === timeLineMarkers.length - 1
|
|
33
|
-
? currentTimeEpoch - (currentTimeEpoch - DVR_WINDOW_LENGTH)
|
|
34
|
-
: timeLineMarkers[index + 1].time - (currentTimeEpoch - DVR_WINDOW_LENGTH);
|
|
35
|
-
startTimeRelativeToCurrent = -DVR_WINDOW_LENGTH;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
time: marker.time,
|
|
40
|
-
duration: duration,
|
|
41
|
-
title: marker.title,
|
|
42
|
-
cssClasses: ['npo-livestream-marker']
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function removeAllMarkers(uiManager) {
|
|
46
|
-
let existingTimelineMarkers = uiManager.getTimelineMarkers();
|
|
47
|
-
while (existingTimelineMarkers.length > 0) {
|
|
48
|
-
const marker = existingTimelineMarkers[0];
|
|
49
|
-
const removed = uiManager?.removeTimelineMarker(marker);
|
|
50
|
-
if (removed) {
|
|
51
|
-
existingTimelineMarkers = uiManager.getTimelineMarkers();
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { updateLiveMarkers } from './updateLiveMarkers';
|
|
2
|
-
import { UIManager } from 'bitmovin-player-ui';
|
|
3
|
-
jest.mock('bitmovin-player-ui', () => {
|
|
4
|
-
return {
|
|
5
|
-
UIManager: jest.fn().mockImplementation(() => ({
|
|
6
|
-
getTimelineMarkers: jest.fn().mockReturnValue([]),
|
|
7
|
-
addTimelineMarker: jest.fn(),
|
|
8
|
-
removeTimelineMarker: jest.fn()
|
|
9
|
-
}))
|
|
10
|
-
};
|
|
11
|
-
});
|
|
12
|
-
jest.mock('bitmovin-player/modules/bitmovinplayer-core', () => ({
|
|
13
|
-
PlayerAPI: jest.fn()
|
|
14
|
-
}));
|
|
15
|
-
describe('updateLiveMarkers', () => {
|
|
16
|
-
const player = {
|
|
17
|
-
getCurrentTime: jest.fn().mockReturnValue(10),
|
|
18
|
-
getMaxTimeShift: jest.fn().mockReturnValue(-3600)
|
|
19
|
-
};
|
|
20
|
-
let uiManager;
|
|
21
|
-
let ui;
|
|
22
|
-
beforeEach(() => {
|
|
23
|
-
uiManager = new UIManager(player, ui);
|
|
24
|
-
});
|
|
25
|
-
test('should correctly update UI manager with sorted and transformed markers', () => {
|
|
26
|
-
const timeLineMarkers = [
|
|
27
|
-
{ time: 3000, title: 'Marker 2' },
|
|
28
|
-
{ time: 1000, title: 'Marker 1' }
|
|
29
|
-
];
|
|
30
|
-
updateLiveMarkers({
|
|
31
|
-
timeLineMarkers,
|
|
32
|
-
player,
|
|
33
|
-
uiManager,
|
|
34
|
-
autoFillTimeLineMarkerDuration: true
|
|
35
|
-
});
|
|
36
|
-
expect(uiManager.getTimelineMarkers).toHaveBeenCalled();
|
|
37
|
-
expect(uiManager.removeTimelineMarker).toHaveBeenCalledTimes(0);
|
|
38
|
-
expect(uiManager.addTimelineMarker).toHaveBeenCalledTimes(2);
|
|
39
|
-
expect(uiManager.addTimelineMarker).toHaveBeenCalledWith(expect.objectContaining({
|
|
40
|
-
time: 1000,
|
|
41
|
-
title: 'Marker 1',
|
|
42
|
-
cssClasses: ['npo-livestream-marker']
|
|
43
|
-
}));
|
|
44
|
-
expect(uiManager.addTimelineMarker).toHaveBeenCalledWith(expect.objectContaining({
|
|
45
|
-
time: 3000,
|
|
46
|
-
title: 'Marker 2',
|
|
47
|
-
cssClasses: ['npo-livestream-marker']
|
|
48
|
-
}));
|
|
49
|
-
});
|
|
50
|
-
test('should remove existing markers before adding new ones', () => {
|
|
51
|
-
;
|
|
52
|
-
uiManager.getTimelineMarkers.mockReturnValue([{ time: 2000, title: 'Existing Marker' }]);
|
|
53
|
-
const timeLineMarkers = [{ time: 1000, title: 'New Marker' }];
|
|
54
|
-
updateLiveMarkers({
|
|
55
|
-
timeLineMarkers,
|
|
56
|
-
player,
|
|
57
|
-
uiManager,
|
|
58
|
-
autoFillTimeLineMarkerDuration: true
|
|
59
|
-
});
|
|
60
|
-
expect(uiManager.removeTimelineMarker).toHaveBeenCalledTimes(1);
|
|
61
|
-
expect(uiManager.addTimelineMarker).toHaveBeenCalledTimes(1);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { PlayerContext, type StreamOptions } from '../../../types/interfaces';
|
|
2
|
-
export declare function handleStartOffset(playerContext: PlayerContext, offset?: number): void;
|
|
3
|
-
export declare function shiftToProgramStart(playerContext: PlayerContext, timestamp?: number): void;
|
|
4
|
-
export declare function handleLiveOffsetLogic(playerContext: PlayerContext, options: StreamOptions): void;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { NpoPlayerEvent } from '../../../types/events';
|
|
2
|
-
export function handleStartOffset(playerContext, offset) {
|
|
3
|
-
const { player } = playerContext;
|
|
4
|
-
if (offset == undefined || playerContext.player.isLive()) {
|
|
5
|
-
if (playerContext.player.isLive()) {
|
|
6
|
-
console.warn('handleStartOffset was called but the player is playing live content.');
|
|
7
|
-
}
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const seek = () => {
|
|
11
|
-
player.seek(offset);
|
|
12
|
-
};
|
|
13
|
-
const handleStartOffsetCallbackOnReady = () => seek();
|
|
14
|
-
const handleStartOffsetCallbackOnSourceLoaded = () => seek();
|
|
15
|
-
const handleStartOffsetCallbackOnAdBreakFinished = () => seek();
|
|
16
|
-
const handleStartOffsetCallbackOnAdError = () => seek();
|
|
17
|
-
playerContext.player.on(NpoPlayerEvent.Ready, handleStartOffsetCallbackOnReady);
|
|
18
|
-
playerContext.player.on(NpoPlayerEvent.SourceLoaded, handleStartOffsetCallbackOnSourceLoaded);
|
|
19
|
-
playerContext.player.on(NpoPlayerEvent.AdBreakFinished, handleStartOffsetCallbackOnAdBreakFinished);
|
|
20
|
-
playerContext.player.on(NpoPlayerEvent.AdError, handleStartOffsetCallbackOnAdError);
|
|
21
|
-
playerContext.npoPlayer.eventListeners = {
|
|
22
|
-
...playerContext.npoPlayer.eventListeners,
|
|
23
|
-
handleStartOffsetCallbackOnReady,
|
|
24
|
-
handleStartOffsetCallbackOnSourceLoaded,
|
|
25
|
-
handleStartOffsetCallbackOnAdBreakFinished,
|
|
26
|
-
handleStartOffsetCallbackOnAdError
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export function shiftToProgramStart(playerContext, timestamp) {
|
|
30
|
-
const { player } = playerContext;
|
|
31
|
-
if (timestamp == undefined || !player.isLive()) {
|
|
32
|
-
if (!player.isLive()) {
|
|
33
|
-
console.warn('shiftToProgramStart was called but the player is playing VOD content.');
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
player.timeShift(timestamp);
|
|
38
|
-
}
|
|
39
|
-
export function handleLiveOffsetLogic(playerContext, options) {
|
|
40
|
-
const { player, npoPlayer } = playerContext;
|
|
41
|
-
if (npoPlayer.uiComponents.watchFromStartButton == undefined)
|
|
42
|
-
return;
|
|
43
|
-
if (options?.liveProgramTime == undefined) {
|
|
44
|
-
npoPlayer.uiComponents.watchFromStartButton.hide();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
npoPlayer.streamOptions.liveProgramTime = options.liveProgramTime;
|
|
48
|
-
if (player.isLive() && options.liveProgramTime > 0) {
|
|
49
|
-
npoPlayer.uiComponents.watchFromStartButton.show();
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
npoPlayer.uiComponents.watchFromStartButton.hide();
|
|
53
|
-
}
|
|
54
|
-
if (options.liveOffset !== null && options.liveOffset !== false && options.liveProgramTime > 0) {
|
|
55
|
-
npoPlayer.uiComponents.watchFromStartButton.hide();
|
|
56
|
-
shiftToProgramStart(playerContext, options.liveProgramTime);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { PlayerEvent } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
import { createPlayerContextMock, createMockNpoPlayerAPI } from '../../../../tests/mocks/playerContextMock';
|
|
3
|
-
import { handleStartOffset, shiftToProgramStart } from './handleoffsets';
|
|
4
|
-
describe('Test offset handling', () => {
|
|
5
|
-
const offset = 10;
|
|
6
|
-
afterEach(() => {
|
|
7
|
-
jest.resetAllMocks();
|
|
8
|
-
});
|
|
9
|
-
it('should not seek when player is live', () => {
|
|
10
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
11
|
-
isLive: jest.fn().mockReturnValue(true),
|
|
12
|
-
seek: jest.fn(),
|
|
13
|
-
on: jest.fn(),
|
|
14
|
-
off: jest.fn()
|
|
15
|
-
});
|
|
16
|
-
const playerContextMock = createPlayerContextMock({
|
|
17
|
-
player: mockNpoPlayerAPI
|
|
18
|
-
});
|
|
19
|
-
handleStartOffset(playerContextMock, offset);
|
|
20
|
-
expect(mockNpoPlayerAPI.seek).not.toHaveBeenCalled();
|
|
21
|
-
});
|
|
22
|
-
it('should not seek when offset is undefined', () => {
|
|
23
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
24
|
-
isLive: jest.fn().mockReturnValue(false),
|
|
25
|
-
seek: jest.fn(),
|
|
26
|
-
on: jest.fn(),
|
|
27
|
-
off: jest.fn()
|
|
28
|
-
});
|
|
29
|
-
const playerContextMock = createPlayerContextMock({
|
|
30
|
-
player: mockNpoPlayerAPI
|
|
31
|
-
});
|
|
32
|
-
handleStartOffset(playerContextMock);
|
|
33
|
-
expect(mockNpoPlayerAPI.seek).not.toHaveBeenCalled();
|
|
34
|
-
});
|
|
35
|
-
it('should seek when player is not live and offset is defined', () => {
|
|
36
|
-
const seekMock = jest.fn();
|
|
37
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
38
|
-
isLive: jest.fn().mockReturnValue(false),
|
|
39
|
-
seek: seekMock,
|
|
40
|
-
off: jest.fn(),
|
|
41
|
-
on: jest.fn((event, callback) => {
|
|
42
|
-
if (event === PlayerEvent.Ready) {
|
|
43
|
-
callback();
|
|
44
|
-
}
|
|
45
|
-
})
|
|
46
|
-
});
|
|
47
|
-
const playerContextMock = createPlayerContextMock({
|
|
48
|
-
player: mockNpoPlayerAPI
|
|
49
|
-
});
|
|
50
|
-
handleStartOffset(playerContextMock, offset);
|
|
51
|
-
expect(seekMock).toHaveBeenCalledWith(offset);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('Test programStart shift', () => {
|
|
55
|
-
const timestamp = 30;
|
|
56
|
-
afterEach(() => {
|
|
57
|
-
jest.resetAllMocks();
|
|
58
|
-
});
|
|
59
|
-
it('should not call timeShift when timestamp is undefined', () => {
|
|
60
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
61
|
-
isLive: jest.fn().mockReturnValue(true),
|
|
62
|
-
timeShift: jest.fn()
|
|
63
|
-
});
|
|
64
|
-
const playerContextMock = createPlayerContextMock({
|
|
65
|
-
player: mockNpoPlayerAPI
|
|
66
|
-
});
|
|
67
|
-
shiftToProgramStart(playerContextMock);
|
|
68
|
-
expect(mockNpoPlayerAPI.timeShift).not.toHaveBeenCalled();
|
|
69
|
-
});
|
|
70
|
-
it('should not call timeShift when player is not live', () => {
|
|
71
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
72
|
-
isLive: jest.fn().mockReturnValue(false),
|
|
73
|
-
timeShift: jest.fn()
|
|
74
|
-
});
|
|
75
|
-
const playerContextMock = createPlayerContextMock({
|
|
76
|
-
player: mockNpoPlayerAPI
|
|
77
|
-
});
|
|
78
|
-
shiftToProgramStart(playerContextMock, timestamp);
|
|
79
|
-
expect(mockNpoPlayerAPI.timeShift).not.toHaveBeenCalled();
|
|
80
|
-
});
|
|
81
|
-
it('should call timeShift when player is live and timestamp is set', () => {
|
|
82
|
-
const timeShiftMock = jest.fn();
|
|
83
|
-
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
84
|
-
isLive: jest.fn().mockReturnValue(true),
|
|
85
|
-
timeShift: timeShiftMock
|
|
86
|
-
});
|
|
87
|
-
const playerContextMock = createPlayerContextMock({
|
|
88
|
-
player: mockNpoPlayerAPI
|
|
89
|
-
});
|
|
90
|
-
shiftToProgramStart(playerContextMock, timestamp);
|
|
91
|
-
expect(timeShiftMock).toHaveBeenCalledWith(timestamp);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { PlayerAPI, SourceConfig } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
import { StreamObject } from 'types/interfaces';
|
|
3
|
-
export declare function setupMediaSessionActionHandlers({ player, sourceConfig, streamObject }: {
|
|
4
|
-
player: PlayerAPI;
|
|
5
|
-
sourceConfig: SourceConfig;
|
|
6
|
-
streamObject: StreamObject;
|
|
7
|
-
}): void;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { PlayerEvent } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
export function setupMediaSessionActionHandlers({ player, sourceConfig, streamObject }) {
|
|
3
|
-
function handlePlaying() {
|
|
4
|
-
player.off(PlayerEvent.Playing, handlePlaying);
|
|
5
|
-
if (!('mediaSession' in navigator)) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
setMediaSessionMetadata();
|
|
9
|
-
setupMediaSessionActionHandlers();
|
|
10
|
-
updatePositionState();
|
|
11
|
-
}
|
|
12
|
-
function handlePaused() {
|
|
13
|
-
player.off(PlayerEvent.Paused, handlePaused);
|
|
14
|
-
if (!('mediaSession' in navigator)) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
navigator.mediaSession.playbackState = 'paused';
|
|
18
|
-
}
|
|
19
|
-
function handlePlay() {
|
|
20
|
-
player.off(PlayerEvent.Play, handlePlay);
|
|
21
|
-
if (!('mediaSession' in navigator)) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
navigator.mediaSession.playbackState = 'playing';
|
|
25
|
-
}
|
|
26
|
-
function handleSourceUnloaded() {
|
|
27
|
-
player.off(PlayerEvent.SourceUnloaded, handleSourceUnloaded);
|
|
28
|
-
if (!('mediaSession' in navigator)) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
navigator.mediaSession.setPositionState(undefined);
|
|
32
|
-
}
|
|
33
|
-
function handleDestroy() {
|
|
34
|
-
player.off(PlayerEvent.Destroy, handleDestroy);
|
|
35
|
-
if (!('mediaSession' in navigator)) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
navigator.mediaSession.setPositionState(undefined);
|
|
39
|
-
}
|
|
40
|
-
function handlePlaybackSpeedChanged() {
|
|
41
|
-
player.off(PlayerEvent.PlaybackSpeedChanged, handlePlaybackSpeedChanged);
|
|
42
|
-
updatePositionState();
|
|
43
|
-
}
|
|
44
|
-
player.on(PlayerEvent.Playing, handlePlaying);
|
|
45
|
-
player.on(PlayerEvent.Paused, handlePaused);
|
|
46
|
-
player.on(PlayerEvent.Play, handlePlay);
|
|
47
|
-
player.on(PlayerEvent.SourceUnloaded, handleSourceUnloaded);
|
|
48
|
-
player.on(PlayerEvent.Destroy, handleDestroy);
|
|
49
|
-
player.on(PlayerEvent.PlaybackSpeedChanged, handlePlaybackSpeedChanged);
|
|
50
|
-
function setMediaSessionMetadata() {
|
|
51
|
-
const metadata = {
|
|
52
|
-
title: sourceConfig.title,
|
|
53
|
-
artist: streamObject.metadata.broadcaster || ''
|
|
54
|
-
};
|
|
55
|
-
if (sourceConfig.poster || streamObject.metadata.poster) {
|
|
56
|
-
metadata.artwork = [
|
|
57
|
-
{
|
|
58
|
-
src: sourceConfig.poster ?? streamObject.metadata.poster ?? ''
|
|
59
|
-
}
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
navigator.mediaSession.metadata = new MediaMetadata(metadata);
|
|
63
|
-
}
|
|
64
|
-
function setupMediaSessionActionHandlers() {
|
|
65
|
-
const defaultSkipTime = 10;
|
|
66
|
-
const actionHandlers = [
|
|
67
|
-
{
|
|
68
|
-
action: 'seekbackward',
|
|
69
|
-
handler: (details) => {
|
|
70
|
-
const skipTime = details.seekOffset ?? defaultSkipTime;
|
|
71
|
-
player.seek(Math.max(player.getCurrentTime() - skipTime, 0));
|
|
72
|
-
updatePositionState();
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
action: 'seekforward',
|
|
77
|
-
handler: (details) => {
|
|
78
|
-
const skipTime = details.seekOffset ?? defaultSkipTime;
|
|
79
|
-
player.seek(Math.min(player.getCurrentTime() + skipTime, player.getDuration()));
|
|
80
|
-
updatePositionState();
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
action: 'seekto',
|
|
85
|
-
handler: (details) => {
|
|
86
|
-
if (details.seekTime) {
|
|
87
|
-
player.seek(details.seekTime);
|
|
88
|
-
}
|
|
89
|
-
updatePositionState();
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
action: 'play',
|
|
94
|
-
handler: () => void player.play()
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
action: 'pause',
|
|
98
|
-
handler: () => player.pause()
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
action: 'stop',
|
|
102
|
-
handler: () => void player.unload()
|
|
103
|
-
}
|
|
104
|
-
];
|
|
105
|
-
for (const { action, handler } of actionHandlers) {
|
|
106
|
-
try {
|
|
107
|
-
navigator.mediaSession.setActionHandler(action, handler);
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
console.warn(`The media session action '${action}' is not supported yet.`, error);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
function updatePositionState() {
|
|
115
|
-
if ('setPositionState' in navigator.mediaSession) {
|
|
116
|
-
navigator.mediaSession.setPositionState({
|
|
117
|
-
duration: player.getDuration(),
|
|
118
|
-
playbackRate: player.getPlaybackSpeed(),
|
|
119
|
-
position: player.getCurrentTime()
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|