2016-02-04 75 views
-1

試圖暫停的最後幀的視頻出現不工作,如果視頻是非常最後一幀。HTML5視頻API:不能暫停在最後一幀如果啓用環流式

var app = angular.module('myApp', []); 
 

 
app.controller('MainCtrl', function ($scope) { 
 

 
}) 
 

 
app.directive('someVideo', function ($window, $timeout) { 
 
    return { 
 
    \t controller: function($scope) { 
 
     
 
     }, 
 
     link: function (scope, elm) { 
 
      scope.videoPlayer = elm[0]; 
 
      scope.keyDownEvent = keyDownEvent; 
 
      scope.currentTime = 0; 
 
      scope.videoPlayer.loop = true; 
 
      
 
      angular.element($window).bind('keydown',scope.keyDownEvent); 
 
      
 
      function keyDownEvent(e){ 
 
      console.log(e.keyCode); 
 
       \t switch(e.keyCode) { 
 
        case 32: //space 
 
        \t scope.videoPlayer.loop = !scope.videoPlayer.loop; 
 
        \t console.log('spcae: ',scope.videoPlayer.loop); 
 
         break; 
 
\t    \t case 38: //up 
 
\t \t \t \t    scope.videoPlayer.currentTime = 0; 
 
         console.log('up: ', scope.videoPlayer.currentTime); 
 
\t \t \t \t \t \t \t \t \t \t \t break; 
 
       \t \t case 40: //down 
 
         scope.videoPlayer.pause(); 
 
\t \t \t \t \t \t \t \t \t \t \t scope.videoPlayer.currentTime = scope.videoPlayer.duration; 
 
         console.log('down: ', scope.videoPlayer.currentTime); 
 
\t \t \t \t \t \t \t \t \t \t \t break; 
 
       \t } 
 
      } 
 
     } 
 
    } 
 
})
body { 
 
    overflow: hidden; 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
 

 
<div ng-app="myApp"> 
 
    <div ng-controller="MainCtrl"> 
 
     <video some-video src="http://nagi.ca/u/google.mp4" autoplay></video> 
 
    </div> 
 
</div>

http://jsfiddle.net/4bygou77/4/

的步驟,以REPO:
1)啓動小提琴和點擊視頻將焦點設置
2)使用鍵:空間=切換循環,向下=最後一個幀,高達=第一幀

結果:
帶環啓用:視頻暫停,跳到最後一幀,然後跳轉到第一幀
帶環禁用:視頻暫停,跳到最後一幀(我要的結果

+0

嗯...禁用循環? – charlietfl

+0

目標是建立具有開/關回路切換外部控制,如果我走這條路,將不得不繼續跟蹤環路是以前的,如果用戶隨後跳轉到視頻的開頭,然後重新啓用它。如果有更簡潔的解決方案,試圖避免這樣的解決方法。 – DearthFunk

+0

那麼在問題 – charlietfl

回答

1

變化這

scope.videoPlayer.currentTime = scope.videoPlayer.duration; 

這個

scope.videoPlayer.currentTime = scope.videoPlayer.duration - 1; 

的jsfiddle:http://jsfiddle.net/hopkins_matt/4bygou77/5/

+0

嘗試了這一點(而不是-1,我做-framesPerSecond),並如預期完全奏效。不是100%準確,因爲不是最後一幀,但絕對是一個可行的解決方案。感謝您的幫助! 我最終只是有轉環關閉,這是我最初試圖避免(不是大概率雖然:))。基本上API似乎不希望在啓用循環時轉到上一幀。 – DearthFunk