AngularJS:在 iframe 中嵌入 Youtube 视频在 Android Chrome 上不起作用

AngularJS: Embedding Youtube videos in iframe does not work on Android Chrome

我正在使用 AngularJS 开发一个网络应用程序,我正在使用一个名为 youtubeResponsive 的嵌入响应式 Youtube 视频的指令,它允许在 iframe 中嵌入视频以视频 ID 作为源参数。

这一切都在桌面浏览器上完美运行,事实上我还设法嵌入了一个播放列表并循环播放。

我现在遇到的问题是Chrome Android,在 Nexus 5 设备上(运行 Lollipop 最新更新) 嵌入的视频没有显示,而是我可以看到正在进行下载的通知。每次刷新时,我都会看到下载过程重新开始,但没有显示视频。如果我单击下载通知以查看文件,则没有任何反应。

当然,我的目标是在移动设备上显示视频并自动播放和循环播放。

我可以看到使用 USB 调试在移动设备上检查页面的输出 (chrome://inspect/#devices)

<iframe id="ytplayer" type="text/html" width="100%" height="202.5" ng-src="http://www.youtube.com/v/ZhfUv0spHCY?version=3&amp;autoplay=1&amp;loop=1&amp;controls=0&amp;showinfo=0&amp;rel=0&amp;wmode=opaque" frameborder="0" allowfullscreen="" video-slug="ZhfUv0spHCY" class="ng-isolate-scope" src="http://www.youtube.com/v/ZhfUv0spHCY?version=3&amp;autoplay=1&amp;loop=1&amp;controls=0&amp;showinfo=0&amp;rel=0&amp;wmode=opaque"></iframe>

我在移动设备上没有看到任何错误,除了我在台式机上看到的相同警告,显然至少没有阻止视频播放。

 Resource interpreted as Document but transferred with MIME type application/x-shockwave-flash: 
"https://www.youtube.com/v/ZhfUv0spHCY?version=3&autoplay=1&loop=1&controls=0&showinfo=0&rel=0&wmode=opaque".

有人在 Android Chrome 或其他移动设备和 OS 上遇到过同样的问题吗?

我还没有开始在 AOSP 或 iOS 上进行测试,但已经在 Chrome 上测试了,这个问题非常令人担忧。如果有人设法修复它,请告诉我。

您特别要求旧的 Flash 播放器小部件,并且不允许它升级到 HTML5,这是现在任何类型的移动支持所必需的。您应该切换到 YouTube 播放器 API,它需要几行额外的代码才能实现,但几乎可以在任何地方运行,并为您返回大量有关视频播放等的事件数据。

https://developers.google.com/youtube/iframe_api_reference

您仍然可以通过此技术使用 IFRAME,但请考虑似乎支持当前 API:

的此指令

https://github.com/brandly/angular-youtube-embed