Hem SoundManager2 hem de Soundcloud tarafından sağlanan seçenekleri kullanarak kendi soundcloud medya oynatıcımı oluşturmaya çalışıyorum.Javascript: Soundmanager2 ve Soundcloud olay geri bildirimi
soundManager.getSoundById(self.audio).togglePause();
ses oyunun ve tüm geri aramalar buna göre harekete geçirildi: Ben ses oynatacak
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();
});
:
İşte benim şimdiki kodudur. Ama "onfinish" geri çekilmesinden sonra, tekrar play tuşuna bastığımda ses tekrarlanacak, ancak olayların hiçbirini ateşlemeyecek.
Neyi yanlış yaptım?
Sadece açık olmak gerekirse, @ menzo-wijmenga nispeten yaygın olan "var self = this" tasarım desenini kullanıyor gibi görünüyor. Denetleyici, ses seçeneğinin “duration” veya “position” özniteliğine olay bağlama yoluyla erişirken “updatePlayButton” ve “updateTimeLeft” gibi yöntemlere sahip olabilir (yani 'self', akışı çağıran denetleyiciyi ifade eder; ses nesnesi). – elreimundo