SoundCloud SC.Widget.Events.FINISH 不再触发 HTML5 小部件

Posted

技术标签:

【中文标题】SoundCloud SC.Widget.Events.FINISH 不再触发 HTML5 小部件【英文标题】:SoundCloud SC.Widget.Events.FINISH Not Firing Anymore HTML5 Widget 【发布时间】:2017-11-20 01:10:56 【问题描述】:

我最近刚刚注意到 SC.Widget.Events.FINISH 事件不再在播放列表的 html5 小部件 API 中触发。以下代码之前运行良好,但现在歌曲播放完毕后不再执行该功能:

http://jsbin.com/vujedofada/edit?html,css,js,console,output

$(function() 
    var iframe = document.querySelector('iframe');
    widget = SC.Widget(iframe);        
    widget.bind(SC.Widget.Events.READY, function() 
        console.log("Ready");
        widget.bind(SC.Widget.Events.PLAY, function() 
            //Get info for song playing
            widget.getCurrentSound(function(currentSound) 
                console.log(currentSound.id + " " + currentSound.title + " " + currentSound.artwork_url);
                sid = currentSound.id
                stitle = currentSound.title
                sartlo = currentSound.artwork_url
                display_artwork()
            );
        );         
        widget.bind(SC.Widget.Events.FINISH, function()         
            console.log("Finish");
            play_next_shuffled_song();
        );
        widget.getSounds(function(sounds) 
            create_shuffled_indexes(sounds.length);
            play_next_shuffled_song();
        );               
    );
);

READY 和 PLAY 事件似乎正在工作,而 FINISH 适用于具有单个曲目的小部件,而不是播放列表。

SoundCloud 的人能否确认这是否是一个已知错误以及何时会更正?

【问题讨论】:

正在处理它soundcloudcommunity.com/share-embed-230064/… 【参考方案1】:

您的代码是正确的。现在应该解决这个问题。

https://soundcloudcommunity.com/share-embed-230064/html5-widget-sc-widget-events-finish-event-doesn-t-fire-when-song-in-playlist-finishes-7391734/index1.html#post18023517

【讨论】:

太棒了,它又可以正常工作了。感谢汤姆和团队!

以上是关于SoundCloud SC.Widget.Events.FINISH 不再触发 HTML5 小部件的主要内容,如果未能解决你的问题,请参考以下文章

SoundCloud 小部件事件未触发

使用 Apple Remote 播放/暂停 Soundcloud 选项卡的脚本

Soundcloud 自定义播放器无法播放

Web 音频 api 的 Soundcloud CORS 错误

播放 Soundcloud embed 时暂停 Youtube embed

如何让 Safari 12 处理来自 soundcloud 的音频?