Я пытаюсь создать свой собственный звуковой медиаплеер с использованием опций, предоставляемых SoundManager2 и 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();
, и все обратные вызовы Аудиокампании игры увольняет соответственно. Но после «onfinish» callback, когда я снова нажму игру, он воспроизведет звук, но он не будет запускать какие-либо события.
Что я сделал не так?
Просто, чтобы быть ясным, это выглядит как @ menzo-wijmenga использует относительно обычный шаблон шаблона 'var self = this'. Контроллер может иметь такие методы, как 'updatePlayButton' и' updateTimeLeft' при доступе к атрибуту 'duration' или' position' атрибута аудио через привязку события (т.е. 'self' относится к контроллеру, который вызывает поток, тогда как' this' относится к аудио объекта). – elreimundo