2013-09-01 1 views
2

Я хочу встроить Видеосервис YouTube по URL, например = https://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-results=1
Это блок кода, который я использовалYouTube API - Enbedding По URL

<div id="player"></div> 

    <script> 
     var tag = document.createElement('script'); 

     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '200', 
      width: '200', 
      videoId: '//video ID Usually goes here', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 
     function onPlayerReady(event) { 
     event.target.playVideo(); 
     } 

     var done = false; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 6000); 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    </script> 

Я скопировал этот код с сайта на Youtube API, так как у меня пока нет большого опыта. Как заменить строку «videoId» ссылкой выше?

ответ

1

Чтобы загрузить видео YouTube заменить

// идентификатор видео Обычно здесь идет

с идентификатором видео, которое вы хотите загрузить.

Пример YouTube видео: http://www.youtube.com/watch?v=xmP7kQdAPhM

Сейчас в VideoID Я хотел бы использовать

VideoID: 'xmP7kQdAPhM'

Или, если вы использовали некоторые PHP вы могли бы попробовать что-то вроде следующего ,

<?php 
$feedURL = 'http://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-results=1'; 
$sxml = simplexml_load_file($feedURL); 
$i=0; 
foreach ($sxml->entry as $entry) { 
$media = $entry->children('media', true); 
$watch = (string)$media->group->player->attributes()->url; 

$pat = '/\=([^\"]*?)\&/'; 
$value=$watch ; 
preg_match($pat, $value, $matches); 

echo "<iframe title='YouTube video player' class='youtube-player' type='text/html' 
width='640' height='390' src='http://www.youtube.com/embed/$matches[1]' 
frameborder='0' allowFullScreen></iframe>"; 
?> 

<div class="videoitem"> 
<div class="videotitle"> 
<h3><a href="<?php echo $watch; ?>" class="watchvideo"><?php echo $media->group->title; ?></a></h3> 
<p><?php echo $media->group->description; ?></p>   
</div> 
</div>  
<?php $i++; if($i==3) { echo '<div class="clear small_v_margin"></div>'; $i=0; } } ?> 

Example

+0

Да, я это знаю. Я имел в виду, как я могу вставить это: https://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-results=1 – tehX

+1

Эта ссылка позволяет мне подписаться на эту страницу канала, но нет видео, Я не% 100 уверен, если он работает так, извините, – Malcolm

+0

Хмм. Спасибо за ваше время. Я буду исследовать больше, чтобы найти другое решение. – tehX

0

Во-первых, о ссылке. Обратите внимание, что этот URL-адрес означает использование версии 2 и эта версия устарела. См. «API YouTube в соответствии с политикой устаревания»: https://developers.google.com/youtube/youtube-api-list Обратите внимание, что по умолчанию используется версия 1, и вы можете добавить: v = 2 для версии 2. Если вы предпочитаете ответ в JSON вместо XML, add: alt = json. Для лучшего чтения добавьте: prettyprint = true. Например: https://gdata.youtube.com/feeds/api/users/estXcrew/uploads?maxresults=1&v=2&alt=json&prettyprint=true Кроме того, поскольку JSON используется в версии api версии 3, вы можете предпочесть использовать JSON. Для использования api версии 3 необходимо сначала получить api-ключ, зарегистрировавшись. Чтобы получить ответ, вам необходимо отправить URL-адрес серверу с помощью XMLHttpRequest() или ActiveXObject(). Ищите библиотеки кода (JS или другого типа), которые могут вам помочь, например, для синтаксического анализа и компоновки строк XML или JSON; или отправлять запросы на URL. См. Раздел jSON синтаксический анализ: Parse JSON in JavaScript?

О вашем коде: используйте параметры. Например, после получения видеоий:

<!DOCTYPE html> 
<html> 
<head> 
<!-- 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
// Adding a library to send requests to a server ? 
</script> 
--> 

<script> 
     var myVideoId = "ZY7aRxb-Z1c"; // Set the videoId here. 

     // insert an iframe 
     var tag = document.createElement('script'); 
     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

     var player; // reference to the player object 
     var param = {  // video-player parameters 
      height: '200', 
      width: '200', 
      videoId: 'xxxxxxxxxxx', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }; 
     param.videoId = myVideoId // Replace the videoId parameter 

     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', param); // create the player object 
     } 

     function onPlayerReady(event) { 
     event.target.playVideo(); // start to play 
     } 

     var done = false; // flag 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      //setTimeout(stopVideo, 6000); // This will stop playing after 6 seconds 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    </script> 
</head> 

<body> 
<div id="player">please wait...</div> 
</body> 
</html> 
Смежные вопросы