Задать вопрос
@pavlikmd

Как правильно доработать муз. плеер на сайте?

Привет, вообщем есть на котором надо вывести несколько блоков с песнями take.ms/jP9Gj, нашел как написать самому плеер на js, написал, но проблема он работает только с первой записью, это понятно, но теперь как правильно сделать чтобы каждый блок плеера работал ?

Код js
$(document).ready(function() {
    // inner variables
    var song;
    var volume = $('.active .volume');

    function initAudio(elem) {
        var url = elem.attr('audiourl');
        var title = elem.text();
        var artist = elem.attr('artist');

        $('.active .title').text(title);
        $('.active .artist').text(artist);

        song = new Audio('/wp-content/themes/nara/music/' + url);

        $('.active .playlist li').removeClass('active');
        elem.addClass('active');
    }
    function playAudio() {
        song.play();
        $('.active .play').addClass('hidden');
        $('.active .pause').addClass('visible');
		$('.active .playlist').slideDown();
    }
    function stopAudio() {
        song.pause();
        $('.active .play').removeClass('hidden');
        $('.active .pause').removeClass('visible');
    }
    // pause click
    $('.active .pause').click(function (e) {
        e.preventDefault();
        stopAudio();
    });
	// stop click
    $('.active .stop').click(function (e) {
        e.preventDefault();
        stopAudio();
    });
	$('.active .volume').click(function (e) {
        e.preventDefault();
		if($(this).hasClass('mute')) {
			$(this).removeClass('mute');
			song.volume = 1;
		} else {
			$(this).addClass('mute');
			song.volume = 0;	
		}
    });
	// playlist elements - click
    $('.active .playlist li').click(function () {
        stopAudio();
        initAudio($(this));
		playAudio();
    });
	$('.controls .play').click(function(){
		$('.mItem .playlist').slideUp();
		song.pause();
		initAudio($(this).parents('.player').next().find('li:first-child'));
		playAudio();
		song.volume = 1;
	});
	$('.music .mItem').mouseenter(function(){
		$('.music .mItem').removeClass('active');
		$(this).addClass('active');
	});
	initAudio($('.active .player li:first-child'));
});

HTML
<div class="mItev active">
<div class="player_block">
                    <div class="player">
						<div class="controls">
							<div class="play"></div>
							<div class="pause"></div>
							<div class="stop"></div>
						</div>
						<div class="player_music_name">
							<div class="title left">Love and memory</div>
							<div class="artist left">NARA</div>
						</div>
						<div class="volume"></div>
					</div>
					<ul class="playlist">
						<li audiourl="01.mp3" artist="NARA">Love and memory</li>
						<li audiourl="02.mp3" artist="NARA">Love and memory 2</li>
						<li audiourl="03.mp3" artist="NARA">Love and memory 3</li>
					</ul>
                </div>
</div>


Тоесть как видно по коду я начал копать в сторону присваивания блоку класс active, но все равно что-то не выходит, кто не понял суть вопроса вот видео take.ms/eSatE.

Уже сам запутался куда надо копать.

p.s. Если кто-то знает как сделать проще или плагин для плеера, то кидайте в ответы к вопросу. Плеер должен быть с: кнопка плей, кнопка стоп, название трека, и ползунок громкости.
  • Вопрос задан
  • 4504 просмотра
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 1
dummyman
@dummyman
диссидент-схизматик
Попробуй soundmanager2 Я в комментарии писал подробнее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽