2014-09-23 2 views
0

Я использую Youtube JavaScript API и swfobject для встраивания видео, и onYouTubePlayerReady никогда не будет вызван. Что происходит? Вот мой код:onYouTubePlayerReady не получает вызов

<div id="ytapiplayer"> 
    You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 
<script> 
    // Inject YouTube API script 
    var tag = document.createElement('script'); 
    tag.src = '//www.youtube.com/player_api'; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    var VIDEO_ID='<?php echo $video_id; ?>'; 
    var params = { 
     'allowFullScreen': 'true', 
     'allowScriptAccess': 'always', 
     'allownetworking': 'internal' 
    }; 
    var atts = { 
     'class': 'bilingual-video', 
     'id': 'ytapiplayer' 
    }; 
    swfobject.embedSWF(
     'http://www.youtube.com/v/' + 
      VIDEO_ID + 
      '?enablejsapi=1&playerapiid=ytapiplayer&version=3' + 
      '&showinfo=0&modestbranding=1&controls=0', 
      'ytapiplayer', '500', '400', '8', null, null, params, atts); 
</script> 

<script> 
var ytplayer; 
function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById('ytapiplayer'); 
}; 
</script> 

ответ

1

У вас есть allownetworking установлено в 'internal'; по определению это не позволяет SWF обмениваться данными с помощью API Flash ExternalInterface. Тем не менее, API-интерфейс YouTube JavaScript основан на ExternalInterface, так что вы фактически заблокировали доступ SWF к API.

Если вы удалите этот параметр, он должен снова начать функцию onYouTubePlayerReady.

+0

Интересно, что у меня этот параметр установлен на внутренний, потому что я не хочу, чтобы люди могли нажимать ссылку на YouTube и перейти на URL-адрес YouTube. Есть ли другой способ предотвратить это? – nnyby

+0

Я буду использовать API iframe и попытаться предотвратить щелчок оттуда. – nnyby

Смежные вопросы