67 lines
1.5 KiB
CoffeeScript
67 lines
1.5 KiB
CoffeeScript
window.NicoPlayer = class NicoPlayer extends Player
|
|
constructor: (data) ->
|
|
if not (this instanceof NicoPlayer)
|
|
return new NicoPlayer(data)
|
|
|
|
@load(data)
|
|
|
|
load: (data) ->
|
|
@setMediaProperties(data)
|
|
|
|
waitUntilDefined(window, 'NicovideoEmbed', =>
|
|
@nico = new NicovideoEmbed({ playerId: 'ytapiplayer', videoId: data.id })
|
|
removeOld($(@nico.iframe))
|
|
|
|
@nico.on('ended', =>
|
|
if CLIENT.leader
|
|
socket.emit('playNext')
|
|
)
|
|
|
|
@nico.on('pause', =>
|
|
@paused = true
|
|
if CLIENT.leader
|
|
sendVideoUpdate()
|
|
)
|
|
|
|
@nico.on('play', =>
|
|
@paused = false
|
|
if CLIENT.leader
|
|
sendVideoUpdate()
|
|
)
|
|
|
|
@nico.on('ready', =>
|
|
@play()
|
|
@setVolume(VOLUME)
|
|
)
|
|
)
|
|
|
|
play: ->
|
|
@paused = false
|
|
if @nico
|
|
@nico.play()
|
|
|
|
pause: ->
|
|
@paused = true
|
|
if @nico
|
|
@nico.pause()
|
|
|
|
seekTo: (time) ->
|
|
if @nico
|
|
@nico.seek(time * 1000)
|
|
|
|
setVolume: (volume) ->
|
|
if @nico
|
|
@nico.volumeChange(volume)
|
|
|
|
getTime: (cb) ->
|
|
if @nico
|
|
cb(parseFloat(@nico.state.currentTime / 1000))
|
|
else
|
|
cb(0)
|
|
|
|
getVolume: (cb) ->
|
|
if @nico
|
|
cb(parseFloat(@nico.state.volume))
|
|
else
|
|
cb(VOLUME)
|