Мы перебираем видео с помощью кода, чтобы перейти к новому видео. Однако может показаться, что плеер запутался и отображает данные, связанные с несколькими видео. Например, в полноэкранном режиме может отображаться последний экран-заставка, когда воспроизводится другое видео.
Я попытался выгрузить последнее видео перед загрузкой нового. Но это все еще запутывается. Я полагаю, что, по-видимому, одновременно воспроизводится несколько видео, хотя существует только один экземпляр проигрывателя.
//unload the last video
thisPopupVideoPlayer.Player.unload().then(function(){
//load in the new video
thisPopupVideoPlayer.Player.loadVideo(VPAVideoReview.vimeo_url).then(function(){
//play the video
thisPopupVideoPlayer.Player.Play();
});
});
Возможная проблема заключается в том, что проигрыватель хранится в экземпляре объекта, т. Е. {Player: [vimeoplayer]}. Если игрок поврежден или не играет, мы меняем игрока на новый экземпляр, уничтожая последний vimeoplayer, а затем повторно удаляя его. Код ниже:
PopupVideoPlayer.prototype.InitPlayer = function(funct, url){
var thisPopupVideoPlayer = this;
if(thisPopupVideoPlayer.Player !== null){
thisPopupVideoPlayer.Player.destroy().then(function() {
thisPopupVideoPlayer.BuildPlayer(funct, url);
});
} else {
thisPopupVideoPlayer.BuildPlayer(funct, url);
}
}
PopupVideoPlayer.prototype.BuildPlayer = function(funct, url){
var thisPopupVideoPlayer = this;
if(typeof url === 'undefined'){
url = thisPopupVideoPlayer.VPAVideoReview.vimeo_url;
}
//try to reload the player from scratch
jQuery('#popup-video-player-video-area').html('<iframe width="300" height="200" id="vpa-popup-video-player-vimeo-player" src="'+url+'" frameborder="0" allowfullscreen="" allow="autoplay; encrypted-media; fullscreen" ></iframe>');
thisPopupVideoPlayer.VideoIframe = jQuery('#vpa-popup-video-player-vimeo-player').get(0);
thisPopupVideoPlayer.Player = new Vimeo.Player(thisPopupVideoPlayer.VideoIframe);
thisPopupVideoPlayer.AddEvents();
if(typeof funct === 'function'){
funct.call();
}
}
Мне интересно, вызывают ли ошибки какие-либо из наших функций впрыска или выгрузки. Мы также используем много интервалов и тайм-аутов по всему коду. Возможно, один из них вызывает асинхронное создание плеера.
Существует множество возможных проблем, связанных с характером игрока (то есть его архитектурой then (), моим использованием интервалов и т. Д.) Мне интересно, что запускает и останавливает игру в разных местах.
Полагаю, я не прошу вас решить эту проблему, а дам несколько советов о том, как лучше всего использовать Vimeo Javascript Player, чтобы я мог избавиться от плохих практик в коде.