81 lines
2 KiB
CoffeeScript
81 lines
2 KiB
CoffeeScript
|
window.VimeoPlayer = class VimeoPlayer extends Player
|
||
|
constructor: (data) ->
|
||
|
if not (this instanceof VimeoPlayer)
|
||
|
return new VimeoPlayer(data)
|
||
|
|
||
|
@load(data)
|
||
|
|
||
|
load: (data) ->
|
||
|
@setMediaProperties(data)
|
||
|
|
||
|
waitUntilDefined(window, '$f', =>
|
||
|
video = $('<iframe/>')
|
||
|
removeOld(video)
|
||
|
video.attr(
|
||
|
src: "https://player.vimeo.com/video/#{data.id}?api=1&player_id=ytapiplayer"
|
||
|
webkitallowfullscreen: true
|
||
|
mozallowfullscreen: true
|
||
|
allowfullscreen: true
|
||
|
)
|
||
|
|
||
|
if USEROPTS.wmode_transparent
|
||
|
video.attr('wmode', 'transparent')
|
||
|
|
||
|
$f(video[0]).addEvent('ready', =>
|
||
|
@vimeo = $f(video[0])
|
||
|
@play()
|
||
|
|
||
|
@vimeo.addEvent('finish', =>
|
||
|
if CLIENT.leader
|
||
|
socket.emit('playNext')
|
||
|
)
|
||
|
|
||
|
@vimeo.addEvent('pause', =>
|
||
|
@paused = true
|
||
|
if CLIENT.leader
|
||
|
sendVideoUpdate()
|
||
|
)
|
||
|
|
||
|
@vimeo.addEvent('play', =>
|
||
|
@paused = false
|
||
|
if CLIENT.leader
|
||
|
sendVideoUpdate()
|
||
|
)
|
||
|
|
||
|
@setVolume(VOLUME)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
play: ->
|
||
|
@paused = false
|
||
|
if @vimeo
|
||
|
@vimeo.api('play')
|
||
|
|
||
|
pause: ->
|
||
|
@paused = true
|
||
|
if @vimeo
|
||
|
@vimeo.api('pause')
|
||
|
|
||
|
seekTo: (time) ->
|
||
|
if @vimeo
|
||
|
@vimeo.api('seekTo', time)
|
||
|
|
||
|
setVolume: (volume) ->
|
||
|
if @vimeo
|
||
|
@vimeo.api('setVolume', volume)
|
||
|
|
||
|
getTime: (cb) ->
|
||
|
if @vimeo
|
||
|
@vimeo.api('getCurrentTime', (time) ->
|
||
|
# I will never understand why Vimeo returns current time as a string
|
||
|
cb(parseFloat(time))
|
||
|
)
|
||
|
else
|
||
|
cb(0)
|
||
|
|
||
|
getVolume: (cb) ->
|
||
|
if @vimeo
|
||
|
@vimeo.api('getVolume', cb)
|
||
|
else
|
||
|
cb(VOLUME)
|