Как воспроизвести звук в цикле Jquery (метроном)? - PullRequest
0 голосов
/ 13 января 2012

Я хотел бы сделать метроном, используя jquery, с щелкающим звуком и цветом для визуализации темпа. В этот момент визуальная часть работает нормально, но у меня проблема со звуком.

Не может заставить его работать, он должен подавать звуковой сигнал столько раз в минуту, сколько и выбранный темп.

Вот код:

$(function(){
var intervalReference = 0;

var metronomeTick = function() {
    $("#metronome").stop();
    $("#metronome").animate({opacity: 1},
        30,                            
        function() { $(this).animate({opacity:0});
        $("#beep").append('autostart', 'true');
    }
    );
};

$(function() {
    var slider = $("#bpm").slider({
        min: 40,
        max: 240,
        value: 120,
        slide: function( event, ui ) {
            clearInterval(intervalReference);
            intervalReference = setInterval(metronomeTick, 1000*60/ui.value);
            $("#bpmshow").text("bpm: " + ui.value);
        }
    });
});
});

HTML:

<div id="bpm"></div>
<span id="bpmshow"></span>
<div id="metronome"></div>
<embed id="beep" src="timer.wav" hidden="true" loop="true" autostart="false">

Любая помощь будет принята с благодарностью, большое спасибо!

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Хорошо, я был на неправильном пути.

Я хотел слышать звук каждый раз, когда отображался мой визуальный div. Проблема заключалась в том, что я использовал для этого функцию animate(), и она не могла вызвать событие play().

Я переписал код, используя window.setTimeout() для управления временем и play() для загрузки и воспроизведения звукового сигнала благодаря тегу HTML5 <audio>.

Извините, не могу объяснить больше, сценарий еще не закончен.

0 голосов
/ 13 января 2012

$("#beep").append('autostart', 'true'); добавляет текст к элементу.Вы, вероятно, хотите установить сам атрибут автозапуска:

$("#beep").attr('autostart', 'true');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...