2017-12-25 206 views
8

Bir Chrome uzantısı geliştiriyorum ve youtube-iframe-api kullanıyorum.Youtube-iframe-api'ye yönlendirme ayarlamak için herhangi bir yol var mı?

Aşağıdaki kodlarla yapılmış olan oynatıcı, vevo gibi sınırlı (?) Videolar haricinde videolar izleyebilir. Onların sorunu çözebilir bazı cevaplar bulmuş çünkü

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
    height: '300px', 
    width: '800px', 
    videoId: 'RhU9MZ98jxo', 
    playerVars: { 
    'origin': 'https://www.youtube.com', 
    'wmode': 'opaque' 
    }, 
    events: { 
    'onReady': onPlayerReady, 
    'onStateChange': onPlayerStateChange 
    } 
}); 
}; 

ben playerVars yılında kökeni ve wmode ekledi. Ama işe yaramadılar.

Ben

+0

Geçtiğimiz hafta sonu için bu sorun için de bir çözüm üzerinde çalışmaya çalışıyorum ve boş bırakmamak için, her başlık isteği bloğun gerçekleşmesine neden olan orijinal konuma geri dönüyor. – simon

+1

Bunun mümkün olduğunu düşünmüyorum. Sorunun, iframe'i gömdüğünüzde tarayıcının kendisi tarafından ayarlandığı, aksi takdirde güvenlik ihlali olacağı düşüncesindeyim. Eğer birisi bununla uğraşmak istiyorsa, yanlış düzeltilmekten mutluluk duyuyorum. Bir ödül belirledim. – simon

+0

Büyük olasılıkla iframe – charlietfl

cevap

5

youtube API belgelerinde verilen örnek kullanarak W3Schools'da 'Try it yourself' bir vevo video oynatmak için yönetilen embed youtube player (iframe) ile vevo videoları oynatmak mümkün olduğunu merak ediyorum:

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

<script> 
     // 2. This code loads the IFrame Player API code asynchronously. 
     var tag = document.createElement('script'); 

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

     // 3. This function creates an <iframe> (and YouTube player) 
     // after the API code downloads. 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: 'tWQPbHXyoFQ', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 

     // 4. The API will call this function when the video player is ready. 
     function onPlayerReady(event) { 
     event.target.playVideo(); 
     } 

     // 5. The API calls this function when the player's state changes. 
     // The function indicates that when playing a video (state=1), 
     // the player should play for six seconds and then stop. 
     var done = false; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 6000); 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    </script> 

Video oynatmaya çalıştığınızda ne olur? Hangi hataları veya mesajları alıyorsunuz?

Youtube yükleyici olarak, bir videoyu youtube'ın yanı sıra diğer web sitelerine gömülmesini reddetme seçeneğiniz vardır, bu durumlarda bu konuda gerçekten bir şey yapamazsınız.

+0

Hata burada. Bu video VEVO'dan içerik içerir. Belirli sitelerde veya uygulamalarda oynatma ile sınırlıdır. YouTube'da İzle –

+0

w3schools'ta bunu yaptığınızda, başlığın yönlendiricisi 'w3schools' olarak işaretlenir. Bunu yerel olarak yaptığınızda, büyük olasılıkla beyaz ya da youtube tarafından kara listeye alınacak olan localhost ile eşlenmiş. – simon

+0

Evet ... Bu, VEVO'daki içeriğin mümkün olduğunca kısıtlanmasını sağlayan salaklar olacak. Chrome'un yönlendiren üstbilgisini taklit etmesinin bir yolunu bulamazsanız, yeni bir sekmede tüm YouTube sayfasını açmanız gerekir. – BoffinbraiN