1

我在我的页面上嵌入了一个 soundcloud 播放器,我想听几个事件,尤其是 SC.Widget.Events.LOAD_PROGRESS,但是这个并没有被触发。PLAY_PROGRESS 工作正常。那么为什么 LOAD_PROGRESS 没有被解雇呢?

initSC: function () {
            var self = this;
            return  {
                play: function (id) {
                    var that = this;
                    if(this.player === null){
                    var iframeElement = document.querySelector('iframe');
                    this.player = SC.Widget(iframeElement);
                    }
                    if(self.sid === id && this.player !=null){
                        this.player.play();

                    }else{
                        var uri = "http://api.soundcloud.com/tracks/" + id;

                        this.player.load(uri, { callback: function () {
                            self.sid= id;
                            self.provider = "sc";
                            that.player.play();
                            that.player.getDuration(function (durationSC) {
                                self.duration = parseInt(durationSC) /1000;

                                self.setDuration(App.UTIL.millisecondsToMMss(durationSC));
                            });


                            that.player.bind(SC.Widget.Events.PLAY, function () {
                                self.playerState = PLAYER_STATES.PLAYING;
                                console.log("sc starts playing");
                            });

                            that.player.bind(SC.Widget.Events.PLAY_PROGRESS, function (e) {
                                //currentPosition: 0
                                //loadedProgress: 0
                                //relativePosition: 0
                                self.setElapsedTime(App.UTIL.millisecondsToMMss(e.currentPosition));
                                self.setProgress(e.currentPosition/1000);
                            });


                        }});
                        that.player.bind(SC.Widget.Events.LOAD_PROGRESS, function (e) {
                            log(e);
                        });


                    }




                },
                player: null
            }

问候,菲尔

4

1 回答 1

0

这是由错误引起的,现在已修复并生效,感谢您的详细报告。请注意,我们支持 HTML5 音频的范围请求,这意味着我们认为轨道从一开始就已完全加载。

对于不支持原生 mp3 播放的浏览器,比如 Firefox,我们将回退到后台的 Flash 实现,它会触发LOAD_PROGRESS事件直到完全加载。

于 2013-10-24T14:40:54.900 回答