From bb18c854f79c135b72f3327ca6a3e7280139b193 Mon Sep 17 00:00:00 2001 From: Prem Sichanugrist Date: Thu, 31 May 2012 17:14:34 -0400 Subject: [PATCH] Trigger a pause event when user click Youtube logo This will make sure that the play button is in the paused state. Fixes https://www.pivotaltracker.com/story/show/26236143 --- static/coffee/spec/modules/video/video_player_spec.coffee | 8 ++++++++ static/coffee/src/modules/video/video_player.coffee | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/static/coffee/spec/modules/video/video_player_spec.coffee b/static/coffee/spec/modules/video/video_player_spec.coffee index 309afcd002..26f5e3b5ed 100644 --- a/static/coffee/spec/modules/video/video_player_spec.coffee +++ b/static/coffee/spec/modules/video/video_player_spec.coffee @@ -126,6 +126,14 @@ describe 'VideoPlayer', -> it 'trigger pause event', -> expect('pause').toHaveBeenTriggeredOn @player + describe 'when the video is unstarted', -> + beforeEach -> + spyOnEvent @player, 'pause' + @player.onStateChange data: YT.PlayerState.UNSTARTED + + it 'trigger pause event', -> + expect('pause').toHaveBeenTriggeredOn @player + describe 'when the video is ended', -> beforeEach -> spyOnEvent @player, 'ended' diff --git a/static/coffee/src/modules/video/video_player.coffee b/static/coffee/src/modules/video/video_player.coffee index 57d7f913b8..28f87b2d53 100644 --- a/static/coffee/src/modules/video/video_player.coffee +++ b/static/coffee/src/modules/video/video_player.coffee @@ -1,5 +1,8 @@ class @VideoPlayer constructor: (@video) -> + # Define a missing constant of Youtube API + YT.PlayerState.UNSTARTED = -1 + @currentTime = 0 @element = $("#video_#{@video.id}") @render() @@ -57,7 +60,7 @@ class @VideoPlayer switch event.data when YT.PlayerState.PLAYING $(@).trigger('play') - when YT.PlayerState.PAUSED + when YT.PlayerState.PAUSED, YT.PlayerState.UNSTARTED $(@).trigger('pause') when YT.PlayerState.ENDED $(@).trigger('ended')