diff --git a/bin/build-player.js b/bin/build-player.js index cf2fc78d..194ef71c 100755 --- a/bin/build-player.js +++ b/bin/build-player.js @@ -6,25 +6,28 @@ var path = require('path'); var order = [ 'base.coffee', + + 'dailymotion.coffee', + 'peertube.coffee', + 'soundcloud.coffee', + 'twitch.coffee', 'vimeo.coffee', 'youtube.coffee', - 'dailymotion.coffee', - 'videojs.coffee', + 'playerjs.coffee', - 'streamable.coffee', - 'gdrive-player.coffee', - 'raw-file.coffee', - 'soundcloud.coffee', + 'iframechild.coffee', + 'odysee.coffee', + 'streamable.coffee', 'embed.coffee', - 'twitch.coffee', - 'livestream.com.coffee', - 'custom-embed.coffee', - 'rtmp.coffee', - 'hls.coffee', - 'twitchclip.coffee', - 'peertube.coffee', - 'iframechild.coffee', - 'odysee.coffee', + 'custom-embed.coffee', + 'livestream.com.coffee', + 'twitchclip.coffee', + 'videojs.coffee', + 'gdrive-player.coffee', + 'hls.coffee', + 'raw-file.coffee', + 'rtmp.coffee', + 'update.coffee' ]; diff --git a/player/iframechild.coffee b/player/iframechild.coffee index 1d46b9aa..140c9c59 100644 --- a/player/iframechild.coffee +++ b/player/iframechild.coffee @@ -1,9 +1,9 @@ -window.IframeChild = class IframeChild extends Player +window.IframeChild = class IframeChild extends PlayerJSPlayer constructor: (data) -> if not (this instanceof IframeChild) return new IframeChild(data) - @load(data) + super(data) load: (data) -> @setMediaProperties(data) @@ -17,40 +17,11 @@ window.IframeChild = class IframeChild extends Player ) removeOld(iframe) - @setupframe(iframe[0], data) - - @player = new playerjs.Player(iframe[0]) - @player.on('ready', => - @player.on('error', (error) => - console.error('PlayerJS error', error.stack) - ) - @player.on('ended', -> - # Streamable seems to not implement this since it loops - # gotta use the timeupdate hack below - if CLIENT.leader - socket.emit('playNext') - ) - @player.on('play', -> - @paused = false - if CLIENT.leader - sendVideoUpdate() - ) - @player.on('pause', -> - @paused = true - if CLIENT.leader - sendVideoUpdate() - ) - - @player.setVolume(VOLUME * 100) - - if not @paused - @player.play() - - @ready = true - ) + @setupFrame(iframe[0], data) + @setupPlayer(iframe[0]) ) - setupframe: (iframe, data) -> + setupFrame: (iframe, data) -> iframe.addEventListener('load', => iframe.contentWindow.VOLUME = VOLUME; iframe.contentWindow.loadMediaPlayer(Object.assign({}, data, { type: 'cm' } )) @@ -59,35 +30,3 @@ window.IframeChild = class IframeChild extends Player adapter.ready() typeof data?.meta?.thumbnail == 'string' and iframe.contentWindow.PLAYER.player.poster(data.meta.thumbnail) ) - - play: -> - @paused = false - if @player and @ready - @player.play() - - pause: -> - @paused = true - if @player and @ready - @player.pause() - - seekTo: (time) -> - if @player and @ready - @player.setCurrentTime(time) - - setVolume: (volume) -> - if @player and @ready - @player.setVolume(volume * 100) - - getTime: (cb) -> - if @player and @ready - @player.getCurrentTime(cb) - else - cb(0) - - getVolume: (cb) -> - if @player and @ready - @player.getVolume((volume) -> - cb(volume / 100) - ) - else - cb(VOLUME) diff --git a/player/odysee.coffee b/player/odysee.coffee index 3babd3b8..71031a89 100644 --- a/player/odysee.coffee +++ b/player/odysee.coffee @@ -1,13 +1,13 @@ -window.OdyseePlayer = class OdyseePlayer extends Player +window.OdyseePlayer = class OdyseePlayer extends PlayerJSPlayer constructor: (data) -> if not (this instanceof OdyseePlayer) return new OdyseePlayer(data) - @load(data) + super(data) load: (data) -> - @setMediaProperties(data) @ready = false + @setMediaProperties(data) waitUntilDefined(window, 'playerjs', => iframe = $('