Flowplayer - автоматический плейлист с задержками между видео - PullRequest
2 голосов
/ 23 августа 2011

Кто-нибудь знает, как добавить задержку в конце каждого клипа плейлиста? Я пытался что-то вроде этого:

flowplayer("a.flowplayer", {src: "/flowplayer2/dist/swf/flowplayer-3.2.7.swf",wmode: 'transparent'}, {
    clip: {
        onFinish: function(clip) {
           this.pause();
           var obj = this;
           setTimeout(function(){
              obj.play()
           },5*1000);

        },
    },
    plugins: {
        controls: {
            autoHide: "always"
        },
        ova: {
            url: '/flowplayer2/dist/swf/d/ova.swf',
            "autoPlay" : true,
            "autoBuffering": true,
            "shows": {
                "streams": [
                    { "file":"one.flv"},
                    { "file":"two.flv"},
                    { "file":"three.flv"}
                ]
            },
            "ads": {
                "pauseOnClickThrough": true,
                "displayCompanions": true,
                "restoreCompanions": false,
                "companions": [{
                    "id":"lcBannerDiv",
                    "width":"300",
                    "height":"250",
                    "resourceType": "iframe"
                }],
                "notice": { show: false },
                "schedule": [{
                    "position": "pre-roll",
                    "server": {
                        "type": "direct",
                        "tag": VAST_URL
                    }
                }]
            }
        }
    }
});

но это не работает, оно просто останавливается после воспроизведения первого видео.

Спасибо, Дмитрий

1 Ответ

2 голосов
/ 11 февраля 2012

Я никогда не использовал плагин OVA для Flowplayer, но технически ваша функция onFinish просто приостанавливает проигрыватель, и после этого он воспроизводится снова.Затем он подходит к концу клипа и останавливается, я думаю.

Если у вашего плеера есть плейлист из плагина OVA (вы можете проверить это на консоли JavaScript с помощью вызова $f().getPlaylist(), он возвращает массив клипов), затем рассмотрите возможность изменения функции onFinish следующим образом:

flowplayer("a.flowplayer", {src: "/flowplayer2/dist/swf/flowplayer-3.2.7.swf",wmode: 'transparent'}, {
    clip: {
        onFinish: function(clip) {
            // First check where you are in your playlist
            var currentClipIndex = this.getClip().index;
            // Get length of playlist
            var playlistLength = this.getPlaylist().length;
            // save handle to player instance
            var fp = this;
            // check if there is a clip after the current (last clip has index "playlistLength -1")
            if (currentClipIndex < playlistLength -1) {
                setTimeout(function() {
                    // tell fp to play clip with next index
                    fp.play(currentClipIndex + 1);
                // in five seconds
                }, 5*1000)
            }
        },
    },
    {...}
});
...