Socket
Socket
Sign inDemoInstall

bigscreen-player

Package Overview
Dependencies
Maintainers
3
Versions
189
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bigscreen-player - npm Package Compare versions

Comparing version 3.14.2 to 3.14.3

2

package.json
{
"name": "bigscreen-player",
"version": "3.14.2",
"version": "3.14.3",
"description": "Simplified media playback for bigscreen devices.",

@@ -5,0 +5,0 @@ "main": "script/bigscreenplayer.js",

@@ -227,5 +227,7 @@ # Bigscreen Player

### Releasing
## Releasing
`npm run pre-release:major|minor|patch` will bump the package.json and internal version.
1. `npm run pre-release:major|minor|patch` will bump the package.json and internal version.
2. Create a Github release.
3. Publishing to NPM is handled with our [Travis CI integration](https://github.com/bbc/bigscreen-player/blob/master/.travis.yml).

@@ -232,0 +234,0 @@ ## API Reference

@@ -269,3 +269,5 @@ require(

function startPlaybackAndPause (startTime, disableAutoResume) {
function startPlaybackAndPause (startTime, disableAutoResume, windowType) {
initialiseRestartableMediaPlayer(undefined, windowType);
restartableMediaPlayer.beginPlaybackFrom(startTime);

@@ -291,8 +293,2 @@

});
initialiseRestartableMediaPlayer();
for (var index = 0; index < mockCallback.length; index++) {
mockCallback[index]({state: MediaPlayerBase.STATE.PLAYING});
}
});

@@ -408,2 +404,4 @@

it('time spend buffering is deducted when considering time to auto-resume', function () {
startPlaybackAndPause();
restartableMediaPlayer.beginPlaybackFrom(20);

@@ -427,4 +425,12 @@

});
it('Should not start auto resume timeout if window type is not SLIDING', function () {
startPlaybackAndPause(20, false, WindowTypes.GROWING);
jasmine.clock().tick(12 * 1000);
expect(player.resume).not.toHaveBeenCalled();
});
});
});
});
require(
[
'bigscreenplayer/playbackstrategy/modifiers/mediaplayerbase',
'bigscreenplayer/playbackstrategy/modifiers/live/seekable'
'bigscreenplayer/playbackstrategy/modifiers/live/seekable',
'bigscreenplayer/models/windowtypes'
],
function (MediaPlayerBase, SeekableMediaPlayer) {
function (MediaPlayerBase, SeekableMediaPlayer, WindowTypes) {
var sourceContainer = document.createElement('div');

@@ -23,4 +24,4 @@ var player;

function initialiseSeekableMediaPlayer (config) {
seekableMediaPlayer = SeekableMediaPlayer(player, config);
function initialiseSeekableMediaPlayer (config, windowType) {
seekableMediaPlayer = SeekableMediaPlayer(player, config, windowType);
}

@@ -176,3 +177,3 @@

initialiseSeekableMediaPlayer();
initialiseSeekableMediaPlayer(undefined, WindowTypes.SLIDING);

@@ -290,2 +291,14 @@ player.getSeekableRange.and.returnValue({start: 0});

it('auto-resume is not cancelled by a status event', function () {
startPlaybackAndPause(20, false);
for (var index = 0; index < mockCallback.length; index++) {
mockCallback[index]({type: MediaPlayerBase.EVENT.STATUS});
}
jasmine.clock().tick(12 * 1000);
expect(player.resume).toHaveBeenCalledTimes(1);
});
it('will fake pause if attempting to pause at the start of playback ', function () {

@@ -332,2 +345,20 @@ player.getCurrentTime.and.returnValue(0);

});
it('Should auto resume when paused after a seek', function () {
player.getSeekableRange.and.returnValue({start: 0});
player.getCurrentTime.and.returnValue(100);
startPlaybackAndPause(100, false);
player.getCurrentTime.and.returnValue(50);
player.getState.and.returnValue(MediaPlayerBase.STATE.PAUSED);
seekableMediaPlayer.playFrom(50);
seekableMediaPlayer.pause();
jasmine.clock().tick(42 * 1000);
expect(player.resume).toHaveBeenCalledTimes(1);
});
});

@@ -334,0 +365,0 @@ });

@@ -744,3 +744,2 @@ require(

it('should start autoresume timeout when paused', function () {
mseStrategy.setCurrentTime(101);
mseStrategy.pause();

@@ -756,3 +755,2 @@

mseStrategy.setCurrentTime(101);
mseStrategy.pause(opts);

@@ -770,21 +768,20 @@

it('should autoresume when paused and seeking to the start of the sliding window seekable range', function () {
mockDynamicWindowUtils.shouldAutoResume.and.returnValue(true);
it('should start auto resume timeout when paused and seeking', function () {
mockDashInstance.isPaused.and.returnValue(true);
mseStrategy.pause();
mseStrategy.setCurrentTime(0);
mseStrategy.setCurrentTime();
expect(mockDynamicWindowUtils.shouldAutoResume).toHaveBeenCalledWith(jasmine.any(Number), jasmine.any(Number));
expect(mockDashInstance.play).toHaveBeenCalledTimes(1);
eventCallbacks('seeked');
expect(mockDynamicWindowUtils.autoResumeAtStartOfRange).toHaveBeenCalledTimes(2);
});
it('should not try to autoresume when playing and seeking to the start of the sliding window seekable range', function () {
mockDynamicWindowUtils.shouldAutoResume.and.returnValue(true);
it('should not try to autoresume when playing and seeking', function () {
mockDashInstance.isPaused.and.returnValue(false);
mseStrategy.setCurrentTime(0);
mseStrategy.setCurrentTime();
eventCallbacks('seeked');
expect(mockDynamicWindowUtils.shouldAutoResume).toHaveBeenCalledWith(jasmine.any(Number), jasmine.any(Number));
expect(mockDashInstance.play).toHaveBeenCalledTimes(0);
expect(mockDynamicWindowUtils.autoResumeAtStartOfRange).not.toHaveBeenCalled();
});

@@ -791,0 +788,0 @@ });

@@ -53,10 +53,6 @@ define(

function resume () {
mediaPlayer.resume();
}
function pause (opts) {
mediaPlayer.pause();
opts = opts || {};
if (opts.disableAutoResume !== true) {
if (opts.disableAutoResume !== true && windowType === WindowTypes.SLIDING) {
DynamicWindowUtils.autoResumeAtStartOfRange(

@@ -71,2 +67,5 @@ getCurrentTime(),

}
function resume () {
mediaPlayer.resume();
}

@@ -73,0 +72,0 @@ function getCurrentTime () {

@@ -5,8 +5,8 @@ define(

'bigscreenplayer/playbackstrategy/modifiers/mediaplayerbase',
'bigscreenplayer/dynamicwindowutils'
'bigscreenplayer/dynamicwindowutils',
'bigscreenplayer/models/windowtypes'
],
function (MediaPlayerBase, DynamicWindowUtils) {
function (MediaPlayerBase, DynamicWindowUtils, WindowTypes) {
'use strict';
function SeekableLivePlayer (mediaPlayer, deviceConfig) {
function SeekableLivePlayer (mediaPlayer, deviceConfig, windowType) {
var AUTO_RESUME_WINDOW_START_CUSHION_SECONDS = 8;

@@ -69,9 +69,11 @@

mediaPlayer.pause();
DynamicWindowUtils.autoResumeAtStartOfRange(
mediaPlayer.getCurrentTime(),
mediaPlayer.getSeekableRange(),
addEventCallback,
removeEventCallback,
MediaPlayerBase.unpausedEventCheck,
resume);
if (windowType === WindowTypes.SLIDING) {
DynamicWindowUtils.autoResumeAtStartOfRange(
mediaPlayer.getCurrentTime(),
mediaPlayer.getSeekableRange(),
addEventCallback,
removeEventCallback,
MediaPlayerBase.unpausedEventCheck,
resume);
}
}

@@ -122,3 +124,2 @@ },

}
});

@@ -125,0 +126,0 @@ }

@@ -42,3 +42,3 @@ define(

function unpausedEventCheck (event) {
if (event && event.state) {
if (event && event.state && event.type !== 'status') {
return event.state !== STATE.PAUSED;

@@ -45,0 +45,0 @@ } else {

@@ -83,3 +83,11 @@ define('bigscreenplayer/playbackstrategy/msestrategy',

DebugTool.info('Seeked Event');
publishMediaState(isPaused() ? MediaState.PAUSED : MediaState.PLAYING);
if (isPaused()) {
if (windowType === WindowTypes.SLIDING) {
startAutoResumeTimeout();
}
publishMediaState(MediaState.PAUSED);
} else {
publishMediaState(MediaState.PLAYING);
}
}

@@ -441,11 +449,28 @@

function resumeIfRequired (seekTime) {
if (windowType !== WindowTypes.SLIDING) { return; }
var seekableRange = getSeekableRange();
var shouldAutoResume = DynamicWindowUtils.shouldAutoResume(seekTime, seekableRange.start);
if (isPaused() && shouldAutoResume) {
mediaPlayer.play();
function addEventCallback (thisArg, newCallback) {
var eventCallback = function (event) {
newCallback.call(thisArg, event);
};
eventCallbacks.push(eventCallback);
}
function removeEventCallback (callback) {
var index = eventCallbacks.indexOf(callback);
if (index !== -1) {
eventCallbacks.splice(index, 1);
}
}
function startAutoResumeTimeout () {
DynamicWindowUtils.autoResumeAtStartOfRange(
getCurrentTime(),
getSeekableRange(),
addEventCallback,
removeEventCallback,
function (event) {
return event !== MediaState.PAUSED;
},
mediaPlayer.play);
}
return {

@@ -456,14 +481,4 @@ transitions: {

},
addEventCallback: function (thisArg, newCallback) {
var eventCallback = function (event) {
newCallback.call(thisArg, event);
};
eventCallbacks.push(eventCallback);
},
removeEventCallback: function (callback) {
var index = eventCallbacks.indexOf(callback);
if (index !== -1) {
eventCallbacks.splice(index, 1);
}
},
addEventCallback: addEventCallback,
removeEventCallback: removeEventCallback,
addErrorCallback: function (thisArg, newErrorCallback) {

@@ -538,11 +553,3 @@ errorCallback = function (event) {

if (opts.disableAutoResume !== true && windowType === WindowTypes.SLIDING) {
DynamicWindowUtils.autoResumeAtStartOfRange(
getCurrentTime(),
getSeekableRange(),
this.addEventCallback,
this.removeEventCallback,
function (event) {
return event !== MediaState.PAUSED;
},
mediaPlayer.play);
startAutoResumeTimeout();
}

@@ -562,3 +569,2 @@ },

mediaPlayer.seek(seekTime);
resumeIfRequired(seekTime);
}

@@ -565,0 +571,0 @@ }

define('bigscreenplayer/version',
function () {
return '3.14.2';
return '3.14.3';
}
);
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc