#javascript #jquery #media-player #soundcloud
#javascript #jquery #медиаплеер #soundcloud
Вопрос:
Я создаю музыкальный проигрыватель с помощью SoundCloud. В нем есть кнопка «Воспроизведение / пауза» и список воспроизведения. По умолчанию кнопка «Воспроизведение / пауза» воспроизводит первую песню из списка воспроизведения. но если воспроизводится песня в списке воспроизведения, это будет текущая песня, и кнопка «Воспроизведение / пауза» работает на основе этого. Моя проблема в том, что когда я выбираю песню, она начинает воспроизводиться, но предыдущая песня не останавливается. если я не нажму кнопку «Воспроизведение / пауза», прежде чем нажимать на другую песню.
Вот код:
var currentTrack = $("ul li").first().attr('id');
Находит идентификатор val выбранного элемента, поэтому этот идентификатор будет кодом песни для воспроизведения.
$(document).ready(function(){
$("ul").on('click','li',function(){
currentTrack = this.id;
console.log(currentTrack);
streamTrack(currentTrack);
});
});
Если текущая песня уже воспроизводится, нажмите кнопку, чтобы приостановить ее, если не воспроизвести (переключить). В противном случае воспроизводится элемент по умолчанию
var is_playing = false,
sound;
function player(){
if( sound ) {
if(is_playing) {
sound.pause();
is_playing = false;
} else {
sound.play();
is_playing = true;
console.log(already_played);
}
} else {
currentTrack = $("ul li").first().attr('id');
console.log(currentTrack);
streamTrack(currentTrack);
}
}
Способ воспроизведения песни.
var is_playing = true;
function streamTrack(myTrack){
SC.stream("/tracks/" myTrack, function(obj){
//obj.stopAll();
obj.play();
sound = obj;
is_playing = true;
});
}
Вот онлайн-демонстрация: http://jsfiddle.net/danials/wZZ4D/10 /
Есть идеи, как остановить воспроизведение всех песен и воспроизвести ту, на которую нажата кнопка?
Ответ №1:
вам не нужно создавать для нее целую функцию, просто сделайте sound
глобальный и приостановите звук или остановите его звук не равен нулю.
сделайте так:
var sound;
$(document).ready(function(){
$("ul").on('click','li',function(){
currentTrack = this.id;
console.log(currentTrack);
if(sound) // check if sound not null pause it
sound.pause();
streamTrack(currentTrack);
});
});
Комментарии:
1. Вау, спасибо, приятель. Я перепробовал много строк кода, чтобы исправить это, но не смог. Спасибо.