From b2bffb010ef35352aa94891683b30775845fce41 Mon Sep 17 00:00:00 2001 From: Valera Rozuvan Date: Fri, 1 Feb 2013 18:02:41 +0200 Subject: [PATCH] Work on adding native spped change for YouTube HTML5. Not complete. --- .../src/videoalpha/display/video_player.coffee | 16 ++++++++++++++++ .../display/video_speed_control.coffee | 13 +++++++++++++ 2 files changed, 29 insertions(+) diff --git a/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_player.coffee b/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_player.coffee index 67855bb29b..9f590b2420 100644 --- a/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_player.coffee +++ b/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_player.coffee @@ -89,8 +89,24 @@ class @VideoPlayerAlpha extends SubviewAlpha $('.video-load-complete:first').data('video').player.play() onStateChange: (event) => + _this = this switch event.data when @PlayerState.UNSTARTED + if @video.videoType is "youtube" + availableSpeeds = @player.getAvailablePlaybackRates() + console.log @video.videos + if availableSpeeds.length > 1 + baseSpeedSubs = @video.videos["1.0"] + $.each @video.videos, (index, value) -> + delete _this.video.videos[index] + + $.each availableSpeeds, (index, value) -> + _this.video.videos[value.toFixed(2).replace(/\.00$/, ".0")] = baseSpeedSubs + + @speedControl.reRender() + + console.log "UNSTARTED. available speeds = " + console.log availableSpeeds @onUnstarted() when @PlayerState.PLAYING @onPlay() diff --git a/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_speed_control.coffee b/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_speed_control.coffee index 7b75baddb8..6c309f21db 100644 --- a/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_speed_control.coffee +++ b/common/lib/xmodule/xmodule/js/src/videoalpha/display/video_speed_control.coffee @@ -30,6 +30,19 @@ class @VideoSpeedControlAlpha extends SubviewAlpha @$('.video_speeds').prepend($('
  • ').attr('data-speed', speed).html(link)) @setSpeed(@currentSpeed) + reRender: (newSpeeds) -> + @$('.video_speeds').empty() + + @speeds newSpeeds + + console.log "Changing speeds" + console.log @speeds + + $.each @speeds, (index, speed) => + link = $('').attr(href: "#").html("#{speed}x") + @$('.video_speeds').prepend($('
  • ').attr('data-speed', speed).html(link)) + @$('.video_speeds a').click @changeVideoSpeed + changeVideoSpeed: (event) => event.preventDefault() unless $(event.target).parent().hasClass('active')