Xbox One上的Youtube iframe API?

时间:2015-09-15 13:05:38

标签: javascript youtube-iframe-api xbox-one

我正在尝试在Xbox One上集成Youtube iframe API,以便能够从应用程序播放Youtube视频,但到目前为止还没有设法让它工作。它甚至可能吗?

与网络应用程序相比,Windows商店应用程序似乎施加了很多限制(出于可以理解的安全原因)。

移植Web应用程序时的第一个问题是本地上下文/ Web上下文。似乎有两种选择:

  1. 获取Youtube代码的版本(至少是加载库的部分)并将其集成到应用程序中(这样,我们在认证时控制了更多代码,但最终可能无法在再与其他网络代码同步)
  2. 在Web上下文中将所有Youtube的代码从Web上加载(通过将YT.player放在另一个iframe中),然后在本地上下文中执行代理以将消息发布到等效的Web上下文。
  3. 推荐的方法是什么?

    第二个问题是应用程序中的IE似乎在Flash中加载了YouTube的视频,因为它抱怨ActiveX不在那里。我收到以下错误:

    Exception was thrown at line 328, column 376 in
    https://s.ytimg.com/yts/jsbin/www-embed-player-new-vflRnMsMv/www-embed-player-new.js
    0x800a1391 - JavaScript runtime error: 'ActiveXObject' is undefined
    

    有没有办法强制应用加载HTML5中的视频而不是Flash?我尝试在playerVars中设置html5 = 1,如下面的代码(如http://jsfiddle.net/rocha/eMAU5/中所示),但它没有帮助:

    player = new YT.Player('player', {
            height: '390',
            width: '640',
            videoId: 'OEoXaMPEzfM',
            playerVars: {
                html5: 1,
            }
    

    或者我可能没有正确解释加载此ActiveX的原因?我知道ActiveX在Windows应用商店应用程序(和X1应用程序)中被停用。无论如何,我怎样才能做到这一点(如果可能的话)?

    谢谢

1 个答案:

答案 0 :(得分:1)

这是不受支持的行为。 ADK应用程序不仅不支持ActiveX,而且远程代码中的加载也不符合XR-010。我建议使用Launcher.LaunchUriAsync

启动带有YouTube视频网址的浏览器
// The URI to launch
var uriToLaunch = "https://www.youtube.com/user/xbox";

// Create a Uri object from a URI string 
var uri = new Windows.Foundation.Uri(uriToLaunch);

// Launch the URI
Windows.System.Launcher.launchUriAsync(uri).then(   
   function (success) {
      if (success) {
          // URI launched
      } else {
          // URI launch failed
      }
   });

最后,请将您的Xbox特定问题发布到相应的Xbox论坛。我很乐意在那里回答他们,并且更加彻底。不应在公共论坛上讨论NDA受保护的计划信息。