SoundCloud widget .play() 方法在选项卡在后台时不起作用 (Chrome)

SoundCloud widget .play() method not working when tab is in the background (Chrome)

本文关键字:后台 不起作用 Chrome 选项 widget 方法 SoundCloud play      更新时间:2023-09-26

我正在创建一个客户端 SoundCloud 应用程序,我希望能够在上一个小部件命中 .完成事件(在其 api https://developers.soundcloud.com/docs/api/html5-widget#methods 中引用)。当页面处于焦点时,它会正常工作并播放下一首曲目;但是,当我播放一首歌曲并转到另一个选项卡时,下一首歌曲不会开始播放,直到我再次聚焦该选项卡。我现在正在使用Chrome,并且没有尝试任何其他网络浏览器。

有什么想法吗?

我在SC上测试了play()。Widget.Events.READY,而页面处于非活动状态。当触发事件 READY 时,我更改了页面标题,它起作用了。play() 也是如此,但它的效果被"暂停",直到该非活动选项卡再次变为活动状态。我用play(),setIntervals和正在进行的歌曲做了更广泛的测试。当歌曲正在进行时,它在非活动选项卡上正确触发,但在非活动选项卡时从未在 READY 事件上触发。抱歉,我无法帮助您提供解决方案,我还没有找到解决方案,希望这会指导您完成一个解决方案。

    var widgetIframe = document.getElementById("YourPlayer"),
widget = SC.Widget(widgetIframe);
widget.bind(SC.Widget.Events.READY, function() {
    document.title = "test";
    // widget.play();
});

编辑:我在使用YouTube API自动播放的soundcloud iframe之后排队了YouTube iframe。它执行了完全相同的行为,仅当选项卡处于活动状态时,它才会开始播放。我挖掘得越多,我就越相信它与 iframe 和/或浏览器的工作方式有关。