5
我試圖使用SoundManager2和Soundcloud提供的選項來構建我自己的soundcloud媒體播放器。Javascript:Soundmanager2和Soundcloud事件回調
這裏是我當前的代碼:
SC.stream('/tracks/' + this.media.mediaId, function(audio){
audio.load({
onload : function(){
var duration = this.duration;
},
onfinish : function(){
self.updatePlayButton();
console.log('Finished');
},
onresume : function(){
self.updatePlayButton();
console.log("resumed");
},
onstop : function(){
self.updatePlayButton();
console.log("Stopped");
},
onpause : function() {
self.updatePlayButton();
console.log('Paused');
},
whileplaying : function()
{
console.log(this.position);
self.updateScrubber(this.position/(this.duration/100));
self.$timeLeft.text(self.formatTime(this.position/1000));
console.log(totalPercent,'My position');
}
});
self.audio = audio.sID;
self.registerEvents();
});
我玩使用音頻:
soundManager.getSoundById(self.audio).togglePause();
音頻播放的,而且所有的回調相應的解僱。但在「完成」回調之後,當我再次播放時,它會重播音頻,但不會觸發任何事件。
我做錯了什麼?
爲了清楚起見,它看起來像@ menzo-wijmenga正在使用相對常見的'var self = this'設計模式。當通過事件綁定訪問音頻選項的「duration」或「position」屬性時,控制器可能有類似'updatePlayButton'和'updateTimeLeft'的方法(即'self'指控制器正在調用流,而'this'指音頻對象)。 – elreimundo