1

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

与 Web 应用程序相比,Windows 商店应用程序似乎施加了很多限制(出于非常容易理解的安全原因)。

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

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

推荐的方法是什么?

第二个问题是应用程序中的 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 应用程序)中被停用。无论如何,我怎样才能使这项工作(如果可能的话)?

谢谢

4

1 回答 1

1

这是不支持的行为。ADK 应用程序不仅不支持 ActiveX,而且在远程代码中加载也违反了 XR-010。我建议使用Launcher.LaunchUriAsync 启动带有 YouTube 视频 URL 的浏览器:

// 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 保护的程序信息不应在公共论坛上讨论。

于 2015-12-16T20:39:14.933 回答