2015-10-14 20 views
13

Tôi có video Vimeo được nhúng trên trang chủ trang web của tôi, được đặt thành tự động phát khi trang web tải. Tôi cũng đang sử dụng api và froogaloop.js cho một số điều khiển tùy chỉnh.Tiếp tục video Vimeo từ tiến trình cuối cùng

Điều tôi cần làm là tiết kiệm thời gian video đã đến khi khách truy cập điều hướng đến một trang khác, sau đó tiếp tục phát từ thời điểm này nếu và khi họ quay lại trang chủ.

Tôi biết tôi có thể sử dụng playProgress để có thời gian trôi qua, nhưng tôi không biết cách lưu trữ và cách sử dụng khi khách truy cập quay lại trang chủ.

EDIT

bây giờ tôi có đoạn mã sau, và đang sử dụng js-cookie để lưu trữ các tập tin cookie tiến bộ. Làm cách nào để nhận được giá trị của playProgress và đặt nó làm cookie bằng cách sử dụng beforeunload trên window? Tôi không giỏi ở javascript nên sẽ rất tuyệt!

JAVASCRIPT (còn bao gồm thư viện này https://github.com/js-cookie/js-cookie)

$(function() { 
    var iframe = $('#player1')[0]; 
    var player1 = $f(iframe); 
    var status1 = $('.status1'); 

// When the player is ready, add listener for playProgress 
    player1.addEvent('ready', function() { 
     status1.text('ready'); 
     player1.addEvent('playProgress', onPlayProgress); 
    }); 

    function onPlayProgress(data, id) { 
     status1.text(data.seconds + ' seconds played'); 
    }; 

    // SETTING A COOKIE 
    Cookies.set('timeElapsed','something'); 
}); 

HTML

<script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></script> 
<div class="videoholder"> 
    <h3>Player 1</h3> 
    <iframe id="player1" src="https://player.vimeo.com/video/142216434?api=1&player_id=player1" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> 
    <div> 
     <p><span class="status1">&hellip;</span></p> 
    </div> 
</div> 
+0

sử dụng cookie hoặc cơ sở dữ liệu –

+2

sử dụng sessionstorage hoặc localstorage hoặc cookie –

Trả lời

3

Bạn chỉ có thể đọc các giá trị của cookie đã lưu sử dụng

function onPlayProgress(data, id) { 
    Cookies.set('timeElapsed', data.seconds); 
    status1.text(Cookies.get('timeElapsed') + ' seconds played'); 
} 

và sau đó đặt giá trị của video khi nó đang được nạp bằng cách gắn thêm &t=0m0s ở cuối url.

$('#player1').attr('src','https://player.vimeo.com/video/142216434?api=1&player_id=player1&t='+timeElapsed) 
+0

Cảm ơn bạn. Tôi cần lấy giá trị của 'playProgress' là cookie, và cho điều này được thiết lập khi người dùng rời khỏi trang bằng cách sử dụng' beforeunload' để nó phản ánh phần cuối của video mà người dùng đã xem –

+0

Về tiến trình phát, cập nhật cookie mỗi khi hàm chạy. tức là mỗi giây cookie sẽ được cập nhật. Miễn là tên cookie vẫn giữ nguyên, cookie sẽ đại diện cho giá trị bạn muốn! :) –

+0

Cảm ơn đã cho tôi đi đúng hướng, tôi đã đăng những gì tôi có bây giờ dưới đây mà có vẻ là làm việc :) –

1

tôi đã làm việc này với javascript sau:

$(function() { 
var iframe = $('#player1')[0]; 
var player1 = $f(iframe); 

// When the player is ready, add listener for playProgress 
player1.addEvent('ready', function() { 

    player1.api('seekTo',(Cookies.get('timeElapsed'))); 

    player1.api('pause'); 

    player1.addEvent('playProgress', onPlayProgress); 
}); 

function onPlayProgress(data, id) { 

    Cookies.set('timeElapsed', data.seconds); 

}; 

}); 

Vấn đề duy nhất của tôi bây giờ là khi bạn quay lại (tạm dừng) video, bạn cần phải nhấp hai lần để làm cho nó tiếp tục như nút Tạm dừng hiển thị. Có ai biết tại sao điều này sẽ là? Đây là phần cuối cùng của câu đố Vimeo của tôi!

Các vấn đề liên quan