ckplayer.com
首页 | 下载 | 帮助手册 | 应用示例 | 论坛
自动跳转到上次播放位置的示例
相关代码及说明
原理:主要运用监听技术和Cookie来记录上次播放的位置,当播放器加载时,如果监听到当前状态为播放的话,那就会自动跳转到上次Cookie的记录,然后去除播放监听,同时增加对时间的监听状态,用js写入Cookie记录播放时间。需要注意的是,本示例只是一个简单演示。如果您是多个页面多个视频进行记录,写入cookie时请注意同时写入视频(页面)的id用以区分每个视频(页)所要跳转的时间。
        <div id="a1"></div>
        <script src="../flash/ckplayer/ckplayer.js"></script>
        <script type="text/javascript">
        function loadedHandler() {
            if (CKobject.getObjectById('ckplayer_a1').getType()) {
                addPlayListener();
            }
            else {
                addPlayListener();
            }
        }
        function timeHandler(t) {
            if (t > -1) {
                SetCookie("Time", t);
            }
        }
        function addPlayListener() {//增加播放监听
            if (CKobject.getObjectById('ckplayer_a1').getType()) {//说明使用html5播放器
                CKobject.getObjectById('ckplayer_a1').addListener('play', playHandler);
            }
            else {
                CKobject.getObjectById('ckplayer_a1').addListener('play', 'playHandler');
            }
        }
        function playHandler() {
            //alert('因为注册了监听播放,所以弹出此内容,删除监听将不再弹出');
            removePlayListener();
            CKobject.getObjectById('ckplayer_a1').videoSeek(getCookie("Time"));
            addTimeListener();
        }
        function removePlayListener() {//删除播放监听事件
            if (CKobject.getObjectById('ckplayer_a1').getType()) {//说明使用html5播放器
                CKobject.getObjectById('ckplayer_a1').removeListener('play', playHandler);
            }
            else {
                CKobject.getObjectById('ckplayer_a1').removeListener('play', 'playHandler');
            }
        }
        function addTimeListener() {//增加时间监听
            if (CKobject.getObjectById('ckplayer_a1').getType()) {//说明使用html5播放器
                CKobject.getObjectById('ckplayer_a1').addListener('time', timeHandler);
            }
            else {
                CKobject.getObjectById('ckplayer_a1').addListener('time', 'timeHandler');
            }
        }
        //写cookies函数
        function SetCookie(name, value)//两个参数,一个是cookie的名子,一个是值
        {
            var Days = 30; //此 cookie 将被保存 30 天
            var exp = new Date(); //new Date("December 31, 9998");
            exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
            document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
        }
        function getCookie(name)//取cookies函数
        {
            var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
            if (arr != null) return unescape(arr[2]); return null;
        }
  var flashvars = {
    f: 'http://img.ksbbs.com/asset/Mon_1703/05cacb4e02f9d9e.mp4',
    c: 0,
    p: 2,
    b: 0,
    i: '/static/images/letitgo.jpg',
    loaded: 'loadedHandler',
    my_url: encodeURIComponent(window.location.href)
  };
  var video = ['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
  CKobject.embed('../flash/ckplayer/ckplayer.swf', 'a1', 'ckplayer_a1', '100%', '100%', false, flashvars, video);
</script>