我有一个音乐博客,其中包含一系列 youtube 和 soundcloud 嵌入。
我想一个接一个地自动播放页面上的所有嵌入内容。换句话说,在我播放的 youtube 嵌入结束后,我希望下一个嵌入开始播放,无论是来自 soundcloud 还是 youtube,反之亦然。
呈现的 HTML 如下所示:
<span class="soundcloud_embed" id="soundcloud_post_308">
<iframe id="ui-id-1" width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F103518792&show_artwork=true&secret_token=s-LnOTK"></iframe>
</span>
<span class="youtube_embed" id="youtube_post_309">
<iframe id="ui-id-2" width="528" height="190" src="//www.youtube.com/embed/Y3CYKXBEtf0" frameborder="0" allowfullscreen></iframe>
</span>
<span class="youtube_embed" id="youtube_post_310">
<iframe id="ui-id-3" width="528" height="190" src="//www.youtube.com/embed/yMx1FnkrhYc" frameborder="0" allowfullscreen></iframe>
</span>
建立我从这个来源获得的帮助:播放 Soundcloud embed 时暂停 Youtube embed
要跟踪页面上有哪些玩家、他们属于哪个 api 以及当前正在播放哪些玩家:
var playerCurrentlyPlaying = {"api":null,"frameID":null};
var players = {"yt":{},"sc":{}};
我需要定义一个在 playerCurrentlyPlaying 结束时调用的通用 playNext 函数。根据下一个嵌入的 api,playNext 函数必须执行正确的播放命令。为了找到下一个嵌入,该函数可以将 currentPlaying iframe 的 ID 增加 1。这样如果 id="ui-id-2" 刚刚结束,那么 id="ui-id-3" 应该播放.
有时,这些 youtube 视频会崩溃,并会说“视频不再存在”或“上传者已在您的国家/地区无法播放”之类的内容。在这些情况下,我如何检查崩溃并跳到下一个递增的 ID(例如 id="ui-id-4")?
此视频已不存在:
<span class="youtube_embed" id="youtube_post_311">
<iframe id="ui-id-4" width="528" height="190" src="//www.youtube.com/embed/Ym3DgqNTzyc" frameborder="0" allowfullscreen></iframe>
</span>