标签: youtube-iframe-api

YouTube HTML5 API - 在轮询播放器当前时间时,是否可以获得更好的时间分辨率?

我一直在寻找一个解决方案,但我还没有找到它.我们的应用需要使用player.getCurrentTime()驱动某些屏幕动画来轮询YouTube视频对象.使用Flash API这很棒,因为我们可以40ms间隔(25 FPS)轮询播放器并获得非常准确的当前播放器时间值.我们现在已经开始使用iFrame API,遗憾的是它不允许任何接近该准确度的任何内容.我做了一些研究,似乎因为它是一个iFrame,a postMessage用于将玩家状态暴露给player.getCurrentTime()呼叫.不幸的是,这个帖子消息事件很少被触发 - 有时低至每秒4次.更糟糕的是,消息触发的实际速率似乎取决于浏览器的渲染引擎.

有人知道是否有可能强制渲染引擎更频繁地触发这些消息,以便可以实现更长的时间分辨率来轮询播放器?我试过requestAnimationFrame,它没有解决问题.有没有人成功地让iFrame播放器更频繁地报告更准确的时间?

video iframe html5 youtube-api youtube-iframe-api

6
推荐指数
2
解决办法
1681
查看次数

Bootstrap响应嵌入不按预期工作

在Bootstrap 3.1的网格系统中嵌入视频,视频不会扩展网格列的全宽.如何保持100%宽到父列保持纵横比?此外,即使我使用4:3视频,它在浏览器中看起来非常宽,高度很短.这是我的代码:

<div class="row">
   <div class="col-md-8">
   .
   <!-- other items-->
   .
   </div>

   <div class="col-md-4">
            <div class="embed-responsive embed-responsive-4by3">
                            <iframe class="embed-responsive-item" src="//www.youtube.com/embed/gYhi3pAiQY4"></iframe>
            </div>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html responsive-design twitter-bootstrap-3 youtube-iframe-api

6
推荐指数
1
解决办法
4719
查看次数

通过原点"file://"访问具有原点"https://www.youtube.com"的框架

我有一个youtube的网址:

<iframe class="embed-responsive-item" ng-src="https://www.youtube.com/embed/s7gJ74ARN84" allowfullscreen=""></iframe>
Run Code Online (Sandbox Code Playgroud)

如果我在我的本地html文件中使用它,它可以很好地运行.但是,当我在phonegap ios app html页面中粘贴相同内容并在ios模拟器中运行时,它会显示以下错误,就像我点击视频一样:

Blocked a frame with origin "https://www.youtube.com" from accessing a frame with origin "file://".  

The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "file". Protocols must match.
Run Code Online (Sandbox Code Playgroud)

解:

它不是在模拟器中工作,而是在移动设备上工作,这是我的最终目标.

youtube iframe youtube-api cordova youtube-iframe-api

6
推荐指数
1
解决办法
1万
查看次数

Youtube iframe Api和Angularjs路线

我遇到了与angularjs一起使用的Youtube Iframe Api的问题.

我认为问题是调用"onYouTubeIframeAPIReady"功能.

我使用带路线的angularjs,当路线改变时功能不会触发,但是当我按下F5时,玩家就可以加载了.

有没有办法让angularjs与路由和youtube API工作?

我没有设法在代码中添加更多文件,但"pageX.htm"看起来像这样:

<button ng-click="video()">Create</button>
<div youtube-player id="test-playerX" ></div>
Run Code Online (Sandbox Code Playgroud)

还有"index.htm"的代码

<!DOCTYPE html>
<html ng-app="sc">
  <body>

    Homepage - <a href="#page1">Page1</a> - <a href="#page2">Page2</a>

    <div ng-view></div>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
    <script src="https://code.angularjs.org/1.4.3/angular-route.min.js"></script>
    
    <script>
      var sc = angular.module('sc', ['ngRoute']);

      sc.config(['$routeProvider', function($routeProvider) {
        $routeProvider
          .when('/page1', {
            templateUrl: 'page1.htm'
          })
          .when('/page2', {
            templateUrl: 'page2.htm'
          })
      }]);

            // Run
      sc.run(['$rootScope', function($rootScope) {

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

                // This is a protocol-relative URL as described here:
                //     http://paulirish.com/2010/the-protocol-relative-url/
                // If you're testing a local …
Run Code Online (Sandbox Code Playgroud)

angularjs youtube-iframe-api

6
推荐指数
1
解决办法
4529
查看次数

从 iframe API 延迟加载 youtube 视频

我想使用 iframe API 延迟加载 youtube 视频。IE。一开始只加载海报图片,当用户点击它时,只加载实际图片及其内容。

javascript youtube jquery youtube-iframe-api

6
推荐指数
4
解决办法
2万
查看次数

youtube嵌入网址上的"...?ecver = x ..."参数

我注意到在嵌入Youtube视频时,以下2个网址实现了相同的结果:

https://www.youtube.com/embed/ML1AyQC2HKM?ecver=2&modestbranding=1&rel=0
https://www.youtube.com/embed/kwdRYaBUco4?modestbranding=1&rel=0

使用参数集嵌入youtube视频

ecveryoutube嵌入URL 的参数设置是什么?

检查文档并搜索互联网后,我似乎找不到任何解释此参数的内容.

该名称会建议设置Ecmascript版本?但这只是在黑暗中刺伤,我似乎无法找到任何证实这一点.

youtube youtube-iframe-api

6
推荐指数
1
解决办法
2973
查看次数

YouTube iframe API 中“ESC”键的事件发射器

情况
我目前正在我的页面上嵌入 YouTube iframe 并将其加载到弹出模式之上。当我按“ESC”时,我可以关闭弹出模式,但如果用户将选项卡焦点放在 YouTube 播放器中的某些内容上,则浏览器将不再能够检测用户是否按“ESC”来尝试关闭弹出模式。这绝对是一个 A11y 问题。

要解决的问题
有没有办法检测用户是否在焦点被困在播放器内时按下“ESC”键?有用于playerStateChange、质量变化等的事件发射器,但我没有看到任何按键事件。

已经考虑但被拒绝的解决方案:

  1. 阻止用户将注意力集中在 YouTube iframe 上并在播放器外部创建自定义按钮/控件来处理控件 - 这种解决方案太麻烦了,需要对按钮和控件进行样式设置
  2. 在播放器状态发生变化时将焦点弹回到窗口 - 意外地移动焦点是一个很严重的问题,但 YouTube API 中内置的当前事件发射器也无法涵盖所有​​用户焦点陷阱的情况。

非常感谢任何帮助/指导!

javascript iframe accessibility youtube-iframe-api

6
推荐指数
0
解决办法
558
查看次数

cc_load_policy=1 不适用于仅具有自动生成字幕的视频

当我使用 google 的 YTPlayer 显示带有 的视频时cc_load_policy=1,如果相关视频只有英文(自动生成)字幕,我仍然看不到字幕 - 难道英文(自动生成)字幕不应该出现吗?在这种情况下显示?

我尝试过设置cc_lang_pref=en以及hl=en参数但无济于事。

cc_load_policy=1参数确实适用于有英文字幕的视频,因此我认为该问题与代码本身没有任何关系。

我是否应该使用特殊的英语语言代码(自动生成) ?

new YT.Player("ytplayer_placeholder", {
    width: "100%",
    videoId: "4Uzbpj1UCEY",
    playerVars: {cc_load_policy: 1},
    events: {
        'onReady': player_ready,
        'onStateChange': schedule_buffering,
        'onError': error_handler
    }
});
Run Code Online (Sandbox Code Playgroud)

上面的示例代码包括存在此类问题的youtube videoid。它应该显示带有英文(自动生成)字幕的视频,但什么也没有出现。我可以手动单击 CC 按钮来显示字幕,但我需要自动发生。

youtube-iframe-api

6
推荐指数
1
解决办法
2825
查看次数

如何修复 iframe 内嵌入的 YouTube 视频的无限加载?

我正在使用 videojs-youtube 插件在我的网络应用程序中播放嵌入的 youtube 视频。最近我注意到当 web 应用程序被包裹在 iframe 中时,视频会卡在无限加载中。由于此过程,控制台不会显示任何相关错误。

在尝试调试此问题时,我意识到 PlayerStatus(如 IFrame Player API 中所述)正在以错误的方式更改:当视频未包含在 iframe 中时,PlayerStatus 从“未启动”变为“正在缓冲”并变为“玩'。另一方面,当视频被包装在 iframe 中时, PlayerStatus 再次从“未启动”变为“正在缓冲”到“未启动”

但是有一个奇怪的例外 - 当安装并激活 AdBlock 或 LastPass 等 chrome 扩展程序时,视频可以正常播放,即使它在 iframe 内。

知道为什么会这样吗?谢谢 :)

javascript iframe youtube-api video.js youtube-iframe-api

5
推荐指数
1
解决办法
1629
查看次数

无法在“DOMWindow”上执行“postMessage”:提供的目标源(“&lt;URL&gt;”)与收件人窗口的源(“&lt;URL&gt;”)不匹配

我收到此错误: Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('<URL>') does not match the recipient window's origin ('<URL>').

我的页面按我希望的方式运行(我没有注意到任何不受欢迎的行为),但我从不喜欢忽略控制台中的错误,尤其是在我什至不了解根本原因的情况下。

我的问题不是重复的,因为我已经研究了所有这些问题,但没有一个答案有效:

我已经在用了https

我已经尝试设置playerVars{origin: window.location.origin}.

我已经尝试过设置host

我已经尝试过更改 iframe 的可见性。

等等。

var playerVars = {origin: window.location.origin};///sf/answers/3536277321/
window.onYouTubeIframeAPIReady = function () {
    for (var i = 0; i < youtube.length; i++) …
Run Code Online (Sandbox Code Playgroud)

youtube youtube-api youtube-javascript-api youtube-iframe-api

5
推荐指数
1
解决办法
1374
查看次数