Make sure video is working in sequence module

This commit is contained in:
Prem Sichanugrist
2012-05-09 18:22:33 -04:00
parent b0149541a3
commit 823843cd2f
4 changed files with 22 additions and 9 deletions

View File

@@ -4,12 +4,17 @@ class window.Courseware
new Calculator
new FeedbackForm
Logger.bind()
@renderModules()
@bind()
@render()
@start: ->
new Courseware
renderModules: ->
bind: ->
if $('#seq_content').length
$('#seq_content').change @render
render: ->
$('.course-content .video').each ->
id = $(this).attr('id').replace(/video_/, '')
new Video id, $(this).data('streams')

View File

@@ -6,6 +6,7 @@ class window.Sequence
bind: ->
$('#sequence-list a').click @goto
$('#seq_content').change @toggleArrows
buildNavigation: ->
$.each @elements, (index, item) ->
@@ -14,7 +15,7 @@ class window.Sequence
list_item = $('<li>').append(link.append(title))
$('#sequence-list').append list_item
toggleArrows: ->
toggleArrows: =>
$('.sequence-nav-buttons a').unbind('click')
if @position == 1
@@ -38,7 +39,7 @@ class window.Sequence
MathJax.Hub.Queue(["Typeset",MathJax.Hub])
@position = new_position
@toggleArrows()
$('#seq_content').change()
goto: (event) =>
event.preventDefault()

View File

@@ -1,13 +1,16 @@
class Video
constructor: (@id, videos) ->
window.player = null
@element = $("#video_#{@id}")
@parseVideos videos
@fetchMetadata()
@parseSpeed()
$("#video_#{@id}").data('video', this)
window.onYouTubePlayerAPIReady = =>
$('.course-content .video').each ->
$(this).data('video').embed()
if YT.Player
@embed()
else
window.onYouTubePlayerAPIReady = =>
$('.course-content .video').each ->
$(this).data('video').embed()
youtubeId: (speed)->
@videos[speed || @speed]
@@ -18,6 +21,8 @@ class Video
video = video.split(/:/)
speed = parseFloat(video[0]).toFixed(2).replace /\.00$/, '.0'
@videos[speed] = video[1]
@fetchMetadata()
@parseSpeed()
parseSpeed: ->
@setSpeed($.cookie('video_speed'))

View File

@@ -63,12 +63,14 @@ class VideoPlayer
$(@).trigger('ended')
onPlay: =>
Logger.log 'play_video', id: @currentTime, code: @player.getVideoEmbedCode()
window.player.pauseVideo() if window.player && window.player != @player
window.player = @player
unless @player.interval
@player.interval = setInterval(@update, 200)
onPause: =>
Logger.log 'pause_video', id: @currentTime, code: @player.getVideoEmbedCode()
window.player = null if window.player == @player
clearInterval(@player.interval)
@player.interval = null