#jquery #ember.js
#jquery #ember.js
Вопрос:
Я создаю аудиоплеер / плейлист в Ember с помощью проигрывателя Soundmanager2.
Я использую следующий код для действий воспроизведения / паузы, которые запускают воспроизведение и паузу песни.
Проблема, с которой я сталкиваюсь, заключается в том, что песня будет воспроизводиться, но пауза не работает. Я предполагаю, что это связано с тем, что переменная MySound в действии pause технически отличается от MySound в действии play.
Вот мой код:
actions: {
play: function(){
var track_id = this.id;
var mySound = soundManager.createSound({
id: track_id,
url: 'https://api.soundcloud.com/tracks/' track_id '/stream?client_id=d61f17a08f86bfb1dea28539908bc9bf',
autoplay: false,
whileplaying: function() {
$('#positionBar').css('width', ((this.position/this.duration) * 100) '%');
},
});
this.set("isPlaying", true);
soundManager.stopAll();
mySound.play();
},
pause: function(){
var track_id = this.id;
var mySound = soundManager.createSound({
id: track_id,
url: 'https://api.soundcloud.com/tracks/' track_id '/stream?client_id=d61f17a08f86bfb1dea28539908bc9bf',
autoplay: false,
whileplaying: function() {
$('#positionBar').css('width', ((this.position/this.duration) * 100) '%');
},
});
this.set("isPlaying", false);
mySound.pause();
},
}
Любая помощь будет полезна. Я новичок в Ember, но, возможно, мой метод выполнения этого можно сделать другим, более эффективным способом.
Ответ №1:
Просто следите за mySound
свойством и используйте его в методе pause.
actions: {
play: function(){
var track_id = this.id;
var mySound = soundManager.createSound({
id: track_id,
url: 'https://api.soundcloud.com/tracks/' track_id '/stream?client_id=d61f17a08f86bfb1dea28539908bc9bf',
autoplay: false,
whileplaying: function() {
$('#positionBar').css('width', ((this.position/this.duration) * 100) '%');
},
});
this.set("isPlaying", true);
this.set('mySound', mySound);
soundManager.stopAll();
mySound.play();
},
pause: function(){
var mySound = this.get('mySound');
this.set("isPlaying", false);
if(mySound amp;amp; mySound.pause){
mySound.pause();
}
},
}
Комментарии:
1. Красивые. Спасибо. Работает отлично.