Commit 1956020f by Valera Rozuvan

Overhaul of event log of load, play, pause, seek, speed-change events.

parent 48edd4a2
...@@ -83,19 +83,6 @@ class @VideoAlpha ...@@ -83,19 +83,6 @@ class @VideoAlpha
embed: -> embed: ->
@player = new VideoPlayerAlpha video: this @player = new VideoPlayerAlpha video: this
@attachEventDispatchToFunctions
onPlay: 'play_video'
onPause: 'pause_video'
attachEventDispatchToFunctions: (funcList) ->
$.each funcList, (funcName, eventName) =>
@player[funcName] = @attachEventDispatch(@player[funcName], eventName) if @player.hasOwnProperty(funcName)
attachEventDispatch: (func, eventName) ->
=>
@log eventName
func.apply this, arguments
fetchMetadata: (url) -> fetchMetadata: (url) ->
@metadata = {} @metadata = {}
$.each @videos, (speed, url) => $.each @videos, (speed, url) =>
...@@ -104,21 +91,17 @@ class @VideoAlpha ...@@ -104,21 +91,17 @@ class @VideoAlpha
getDuration: -> getDuration: ->
@metadata[@youtubeId()].duration @metadata[@youtubeId()].duration
log: (eventName)-> log: (eventName, data)->
console.log 'log' # Default parameters that always get logged.
console.log 'this = ', this
console.log
id: @id
code: @youtubeId()
currentTime: @player.currentTime
speed: @speed
console.log ''
logInfo = logInfo =
id: @id id: @id
code: @youtubeId() code: @youtubeId()
currentTime: @player.currentTime
speed: @speed # If extra parameters were passed to the log.
if data
$.each data, (paramName, value) ->
logInfo[paramName] = value
if @videoType is "youtube" if @videoType is "youtube"
logInfo.code = @youtubeId() logInfo.code = @youtubeId()
else logInfo.code = "html5" if @videoType is "html5" else logInfo.code = "html5" if @videoType is "html5"
......
...@@ -120,7 +120,7 @@ class @VideoCaptionAlpha extends SubviewAlpha ...@@ -120,7 +120,7 @@ class @VideoCaptionAlpha extends SubviewAlpha
seekPlayer: (event) => seekPlayer: (event) =>
event.preventDefault() event.preventDefault()
time = Math.round(Time.convert($(event.target).data('start'), '1.0', @currentSpeed) / 1000) time = Math.round(Time.convert($(event.target).data('start'), '1.0', @currentSpeed) / 1000)
$(@).trigger('seek', time) $(@).trigger('caption_seek', time)
calculateOffset: (element) -> calculateOffset: (element) ->
@captionHeight() / 2 - element.height() / 2 @captionHeight() / 2 - element.height() / 2
......
...@@ -24,9 +24,9 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -24,9 +24,9 @@ class @VideoPlayerAlpha extends SubviewAlpha
if @video.videoType is 'youtube' if @video.videoType is 'youtube'
$(@qualityControl).bind('changeQuality', @handlePlaybackQualityChange) $(@qualityControl).bind('changeQuality', @handlePlaybackQualityChange)
if @video.show_captions is true if @video.show_captions is true
$(@caption).bind('seek', @onSeek) $(@caption).bind('caption_seek', @onSeek)
$(@speedControl).bind('speedChange', @onSpeedChange) $(@speedControl).bind('speedChange', @onSpeedChange)
$(@progressSlider).bind('seek', @onSeek) $(@progressSlider).bind('slide_seek', @onSeek)
if @volumeControl if @volumeControl
$(@volumeControl).bind('volumeChange', @onVolumeChange) $(@volumeControl).bind('volumeChange', @onVolumeChange)
$(document).keyup @bindExitFullScreen $(document).keyup @bindExitFullScreen
...@@ -96,6 +96,7 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -96,6 +96,7 @@ class @VideoPlayerAlpha extends SubviewAlpha
at: 'top center' at: 'top center'
onReady: (event) => onReady: (event) =>
@video.log 'load_video'
if @video.videoType is 'html5' if @video.videoType is 'html5'
@player.setPlaybackRate @video.speed @player.setPlaybackRate @video.speed
unless onTouchBasedDevice() unless onTouchBasedDevice()
...@@ -184,6 +185,8 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -184,6 +185,8 @@ class @VideoPlayerAlpha extends SubviewAlpha
@caption.pause() @caption.pause()
onPlay: => onPlay: =>
@video.log 'play_video',
currentTime: @currentTime
unless @player.interval unless @player.interval
@player.interval = setInterval(@update, 200) @player.interval = setInterval(@update, 200)
if @video.show_captions is true if @video.show_captions is true
...@@ -192,6 +195,8 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -192,6 +195,8 @@ class @VideoPlayerAlpha extends SubviewAlpha
@progressSlider.play() @progressSlider.play()
onPause: => onPause: =>
@video.log 'pause_video',
currentTime: @currentTime
clearInterval(@player.interval) clearInterval(@player.interval)
@player.interval = null @player.interval = null
if @video.show_captions is true if @video.show_captions is true
...@@ -204,7 +209,10 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -204,7 +209,10 @@ class @VideoPlayerAlpha extends SubviewAlpha
@caption.pause() @caption.pause()
onSeek: (event, time) => onSeek: (event, time) =>
console.log 'old time = ' + @currentTime + ', new time = ' + time @video.log 'seek_video',
old_time: @currentTime
new_time: time
type: event.type
@player.seekTo(time, true) @player.seekTo(time, true)
if @isPlaying() if @isPlaying()
clearInterval(@player.interval) clearInterval(@player.interval)
...@@ -217,6 +225,12 @@ class @VideoPlayerAlpha extends SubviewAlpha ...@@ -217,6 +225,12 @@ class @VideoPlayerAlpha extends SubviewAlpha
if @video.videoType is 'youtube' if @video.videoType is 'youtube'
@currentTime = Time.convert(@currentTime, parseFloat(@currentSpeed()), newSpeed) @currentTime = Time.convert(@currentTime, parseFloat(@currentSpeed()), newSpeed)
newSpeed = parseFloat(newSpeed).toFixed(2).replace /\.00$/, '.0' newSpeed = parseFloat(newSpeed).toFixed(2).replace /\.00$/, '.0'
@video.log 'speed_change_video',
currentTime: @currentTime
old_speed: @currentSpeed()
new_speed: newSpeed
@video.setSpeed newSpeed, updateCookie @video.setSpeed newSpeed, updateCookie
if @video.videoType is 'youtube' if @video.videoType is 'youtube'
if @video.show_captions is true if @video.show_captions is true
......
...@@ -7,10 +7,7 @@ class @VideoProgressSliderAlpha extends SubviewAlpha ...@@ -7,10 +7,7 @@ class @VideoProgressSliderAlpha extends SubviewAlpha
range: 'min' range: 'min'
change: @onChange change: @onChange
# We don't want to attach to 'slide' event because we already have 'change' event. slide: @onSlide
# If we have two events, then callback will be triggered twice, sending misinformation
# to the server.
# slide: @onSlide
stop: @onStop stop: @onStop
@buildHandle() @buildHandle()
...@@ -39,7 +36,7 @@ class @VideoProgressSliderAlpha extends SubviewAlpha ...@@ -39,7 +36,7 @@ class @VideoProgressSliderAlpha extends SubviewAlpha
onSlide: (event, ui) => onSlide: (event, ui) =>
@frozen = true @frozen = true
@updateTooltip(ui.value) @updateTooltip(ui.value)
$(@).trigger('seek', ui.value) $(@).trigger('slide_seek', ui.value)
onChange: (event, ui) => onChange: (event, ui) =>
@updateTooltip(ui.value) @updateTooltip(ui.value)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment