【问题标题】:Youtube API using unrelated worker?Youtube API 使用不相关的工作人员?
【发布时间】:2015-04-03 17:56:54
【问题描述】:

这很奇怪。我正在使用 youtube JavaScript API 在我的网站上嵌入播放列表。除了我最近检查我的工人发生了什么之外,一切都会好的。似乎 API 决定将其消息发送给其中之一。

这是我的工人正在接收的数据。

bubbles: falsecancelBubble: falsecancelable: falsecurrentTarget: Windowdata: "{"event":"infoDelivery","info":{"currentTime":109.455757,"videoBytesLoaded":1,"videoLoadedFraction":1},"id":1}"defaultPrevented: falseeventPhase: 0lastEventId: ""origin: "https://www.youtube.com"path: Array[1]ports: Array[0]returnValue: truesource: WindowsrcElement: Windowtarget: WindowtimeStamp: 1428083437641type: "message"__proto__: MessageEvent

正如我在另一个问题 Youtube API 中看到的那样

www-embed-player.js:167 GET chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js net::ERR_FAILED

我没想到 Google 会创建这样错误的 API。有没有办法禁用这些东西?

【问题讨论】:

    标签: javascript api google-chrome youtube worker


    【解决方案1】:

    快速实验提供了解决方案。将所有 youtube 代码移至单独的 html 并嵌入到我的父页面中。

    <iframe id="youtubePlayer" src="mediaPlayer.html">
    

    您仍然可以像这样从您的主页访问 youtube api

     var mediaPlater = document.getElementById('youtubeFrame').contentWindow.player;
       // i.e. skip to next video 
       mediaPlayer.nextVideo();
    

    这完全解决了意想不到的工人活动。这个控制台错误仍然存​​在,但在阅读它是一个不会修复它并没有打扰我之后。

    www-embed-player.js:167 GET chrome-extension://
    

    我的 mediaPlayer.html 的内容

    <div id="ytplayer" class="musicPlayer"></div>
    <script>
    var player = null;
    // Load the IFrame Player API code asynchronously.
    var tag = document.createElement('script');
    tag.src = 'https://www.youtube.com/player_api';
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    
    // Replace the 'ytplayer' element with an <iframe> and
    // YouTube player after the API code downloads.
    function onYouTubePlayerAPIReady() {
        player = new YT.Player('ytplayer', {
            height: '180',
            width: '280',
            playerVars: {
                autoplay: 1,
                controls: 0,
                listType: 'playlist',
                list: 'RD4-OlYiH1DXI'
            },
            events: {
                'onReady': onPlayerReady,
                'onError': function () {
                    setTimeout(function () {
                        player.nextVideo();
                    }, 200);
                }
            }
        });
    }
    
    
    function onPlayerReady() {
        // fixes firefox ignoring first onerror if the first video is faulty
        player.nextVideo();
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 2021-08-15
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      相关资源
      最近更新 更多