MediaElement.js:如何计算完整视觉视频的时间百分比(ej.90%)

时间:2013-09-01 15:37:59

标签: mediaelement.js

我需要计算视频的次数,但达到90%时。

那么,我怎样才能获得这个百分比或读取总时间和观看时间。

提前致谢,祝你有愉快的一天。

1 个答案:

答案 0 :(得分:1)

以下是一些工作代码,在此示例中,我将观看视频的次数保存到localstorage。

(function($) {
    $(document).ready(function() {
        $('video').mediaelementplayer({
            success: function (mediaElement, domObject, player) {
                var duration;
                var player_counted = false;
                var i = 0;

                //lets see that it works!
                console.log(localStorage[domObject.src+'_times_watched']);

                //after metadata is loaded we can access the duration
                mediaElement.addEventListener('loadedmetadata', function(e) {
                    duration = mediaElement.duration;
                });

                //check if video is seen (above 90%) and increase times watched counter
                mediaElement.addEventListener('timeupdate', function(e) {
                    if((mediaElement.currentTime / duration) >= 0.9) {
                        if(!player_counted) {
                            if (localStorage.getItem(domObject.src+'_times_watched') !== null) {
                                i = parseFloat(localStorage[domObject.src+'_times_watched']);
                            }
                            localStorage[domObject.src+'_times_watched'] = ++i;
                            player_counted = true;
                        }
                    }
                }, false);
            }
        });
    });
})(jQuery);

如果您不想使用localstorage,请将其替换 - 并保存到cookie / db或您需要的任何内容。

如果您决定使用localstorage - 您可能还想检查localstorage支持,我使用Modernizr if (Modernizr.localstorage) {查看modernizr源代码,或者如果您不使用modernizr则搜索SO。

如果您有权访问观看视频的每个用户的某些唯一标识符(即:登录ID /电子邮件),请确保在domObject.src+'_times_watched'之前添加该标识符,以确保在同一浏览器中为多个用户正确计数