2013-05-13 19 views
6

Tôi đã nhận thấy một sự không thống nhất nhỏ mà tôi hy vọng sẽ xác minh là một trong số đó là Video.js.current.jd video.js() không chính xác cho đến khi sự kiện timeupdate kích hoạt

Có vẻ như nếu bạn gọi chức năng Video.js 'currentTime() trong khi cung cấp thời gian mới, bất kỳ lệnh gọi nào khác tới currentTime() (để nhận thời gian hiện tại) sẽ không trả lại thời gian chính xác (nó sẽ trả về lần trước), cho đến sự kiện timeupdate kích hoạt. Sau sự kiện timeupdate, currentTime() sẽ trả lại thời gian chính xác.

Ví dụ, giả sử các video chưa bắt đầu chơi, nhưng Video.js đã nạp, cùng với tất cả video meta vv:

videoPlayer.addEvent('timeupdate', function() { 
    console.log('Event callback: ' + player.currentTime); 
}); 
console.log('Original time: ' + player.currentTime); 
player.currentTime(100);   
console.log('New time: ' + player.currentTime); 

Kết quả tôi đã mong sẽ trông như thế:

Original time: 0 
New time: 100 
Event callback: 100 

Tuy nhiên những gì tôi đã nhận được là:

Original time: 0 
New time: 0 
Event callback: 100 

Bất kỳ cái nhìn sâu sắc sẽ là tuyệt vời!

Chỉnh sửa: Tôi có thể tạo lại điều này trong Chrome và Safari trên OSX, chứ không phải Firefox trên OSX (tất cả đều sử dụng HTML5). Tôi cũng có thể tái tạo điều này trên IE8 bằng cách sử dụng trình phát Flash và IE9 bằng trình phát HTML5.

Trả lời

2

Tôi đã nhìn thấy hành vi tương tự trên một số trình phát html5/flash khác.

Tôi luôn luôn được giả định rằng ngay cả sau khi tìm kiếm qua currentTime(100);, đầu phát sẽ không được cập nhật cho đến sự kiện timeupdate tiếp theo.

+0

Điều này có vẻ là trường hợp thông qua thử nghiệm của tôi. Chúc mừng! –