Форум / HTML5 / Не включается проигрывание при инициализации плеера в lightbox like скриптах
Здравствуйте

Если использовать любой (вероятно, т.к. проверялось на nyromodal и colorbox) скрипт лайтбокса и по ссылке, открывающейся в нем есть плеер uppod в html5 режиме, то
- плеер инициализируется
- воспроизведение не начинается.
Вероятно не срабатывает событие готовности плеера.

Воспроизводится проблема в браузерах хром, опера (хромовская) и иже с ними. В файрфоксе все прекрасно работает. При этом, если с теми же параметрами запустить флеш версию, все будет работать.
В консоли браузера чистота и порядок. Включение дебага в конфигурации ничего не дало.

Воспроизвести проблему легко. Имеем тег <a> с ссылкой, по которой отдастся чистый html с инициализацией плеера. На этот тег вешаем колорбокс, $( ’.ajax-colorbox’ ).colorbox({transition: ’none’});
Кликаем по ссылке и видим в колорбоксе плеер без воспроизведения При я этом при клике ПКМ видим версию плеера (проверялось на последней).
Однако, если сделать как то так:

$( '.ajax-colorbox' ).on('click', function(){
$.ajax({
type: 'GET',
url: $(this).attr('href'),
success: function(data,status,xhr){
$.colorbox({
html:'',
onLoad: function (){
$('#cboxLoadedContent').html(data);
}
});
}
});
return false;
});

То плеер загрузится. Но этот вариант идеологически неверный и показан для того, чтобы возможно стало яснее.

p.s. плееры конкурентов такой проблемы не имеют
fuzeСсылка на пост (Смотрели 1846)14.02.16 23:18     Ответить
Ваше имя*
 E-mail* (не публикуется)
 
 
Если пишете о проблеме, то приложите, пожалуйста, ссылку на свой плеер отсюда — Плеер: Файл > Код > Ссылка
Вставка кода — [code][/code] дублировать ответы на e-mail
1
support 15.02.16 - 08:05
Уточните, пожалуйста, что значит "чистый html с инициализацией плеера". Еще лучше сделать наглядную демонстрацию.
2
fuze 15.02.16 - 16:56
Уточняю. Вот код, который грузится по ссылке:


<div id="player_wrap" class="player_demo">

<div class="ads_body " id="ads_10">
<script type="text/javascript" src="/static/players/ivideo.js"></script><script type="text/javascript" src="/static/players/uppod/uppod_api.js"></script>
<div id="player_container_0">
<div class="flash-upgrade">Для воспроизведения видео требуется проигрыватель Adobe Flash<br><a href="http://get.adobe.com/flashplayer/">Загрузить с сайта Adobe</a></div>
</div>

<script type="text/javascript">
var is_html5 = 1;
function isVideoSupported() {
var elem = document.createElement('video'),
bool = false;
try {
if ( bool = !!elem.canPlayType ) {
bool = new Boolean(bool);
bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
}
} catch(e) { }
return bool;
};
function endVideo(){
$(document).trigger('advideoend');
}
function startPlayer(custom_source){
var flashvars = {"file":"\/upload\/000\/u1\/000\/korotkaja-no-effektivnaja-reklama.mp4","comment":"","st":"\/static\/players\/uppod\/skins\/ad_skin.txt","poster":"","auto":"play","uid":"player_container_0","m":"video","https":0};
var params = {"menu":"false","bgcolor":"#000000","wmode":"opaque","allowfullscreen":"true","allowScriptAccess":"always"};
custom_source = custom_source||"";
if(custom_source){
for (var key in custom_source){
cs = custom_source[key];
flashvars.file = cs.file;
break;
}
}
supported_video = isVideoSupported();
if(supported_video.h264 == 'probably' && is_html5){
if(typeof Uppod == 'undefined') {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/players/uppod/uppod-html5.js';
$('head').append(script);
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/players/uppod/html5_skins/ad_skin.js';
$('head').append(script);
}
flashvars.st = 'uppodvideo';
//$('#player_container_0').height('100%').width('100%');
cont = $('#player_wrap');
w = $(cont).parents().width();
h = $(cont).parents().height();
$('#player_container_0').height(h).width(w);
var player = new Uppod(flashvars);
document.getElementById('player_container_0').addEventListener('end', endVideo, false);
document.getElementById('player_container_0').addEventListener('play',function(){
iPlayerWrap.playpauseOnShare = true;
},false);

} else {
if(typeof swfobject == 'undefined') {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/players/swfobject.js';
$('head').append(script);
}
swfobject.embedSWF("/static/players/uppod/player.swf", "player_container_0", "100%", "100%", "10.0.0", "/static/players/expressInstall.swf", flashvars, params, {});

}
}
</script>

<script type="text/javascript"> if (typeof window['startPlayer'] == 'function'){ $(function(){ startPlayer(); }); } </script>
</div>
</div>
3
support 15.02.16 - 22:35
Это скорее JS, чем HTML. Как выглядит "плеер без воспроизведения"? Сделайте, пожалуйста, демонстрацию без flash и лишнего кода
4
fuze 17.02.16 - 21:09
https://instantvideo.ru/delete_later/index.html
Откройте ссылку в файрфоксе и в хроме/опере(хромовской)

При нажатии на ссылку "открыть плеер в colorbox" в файрфоксе все будет работать. В других браузерах не будет.
5
support 17.02.16 - 21:14
Попробуйте отключить стили и указать полный путь к файлу видео в параметрах
6
fuze 17.02.16 - 21:32
убрал параметр st, указал полный путь. ничего не изменилось.
7
fuze 25.02.16 - 11:26
На 0.5.42 версии проблема также воспроизводится.
Вы просто ответьте, ждать в принципе решение или нет.
8
support 25.02.16 - 12:46
Попробуйте подключить jquery на загружаемой странице с плеером.
9
fuze 26.02.16 - 18:35
Это лишнее, но я подключил. Ничего не изменилось.
10
support 26.02.16 - 23:09
Посмотрите, в чем может быть отличие
ссылка
11
fuze 27.02.16 - 23:05
Кардинально, ни в чем. Более того, я копировал ваш код (уж для чистоты эксперимента) и заменял у себя (пути к скриптам только свои) — и не работает)

Может у вас какие-то хидеры обязательны? Хотя я сравнивал, все одинаково.
12
support 28.02.16 - 08:47
Это ваш плеер и ваш код, добавили только jquery на загружаемую страницу
13
fuze 29.02.16 - 03:21
Я понимаю. Удалось "починить" таким образом в другом месте. Но сути это по большому счету не меняет. Зачем подгружать таким образом еще раз jquery, если на данной странице он и так подключен и находится в области видимости. Подгружаемый контент вставляется в текущую страницу по сути.
Сообщить об ошибке на сайте
 Uppod © 2008–2020
Сообщить об ошибке на сайте
Если ошибка относится к плееру, а не сайту, либо Вы хотите получить ответ на вопрос —
лучше написать на форуме