使用带警报声的javascript创建倒数计时器

时间:2012-12-27 21:58:53

标签: javascript html audio

我正在尝试创建一个简单的倒数计时器,它将在结束时发出警报声(这将是一个食谱网站)。我找到了一个简单的倒计时器的脚本,但是我在实现警报时遇到了麻烦声音到底。我试图使用SoundManager2来发出警报声。我是编程的新手,所以任何提示都会有所帮助!

谢谢!

这是我的倒数计时器脚本:

function countdown( elementName, minutes, seconds )
{
    var element, endTime, hours, mins, msLeft, time;

    function twoDigits( n )
    {
        return (n <= 9 ? "0" + n : n);
    }

    function updateTimer()
    {
        msLeft = endTime - (+new Date);
        if ( msLeft < 1000 ) {
            mySound.play();

            //element.innerHTML = "countdown's over!";
        } else {
            time = new Date( msLeft );
            hours = time.getUTCHours();
            mins = time.getUTCMinutes();
            element.innerHTML = (hours ? hours + ':' + twoDigits( mins ) : mins) + ':' + twoDigits( time.getUTCSeconds() );
            setTimeout( updateTimer, time.getUTCMilliseconds() + 500 );
        }
    }

    element = document.getElementById( elementName );
    endTime = (+new Date) + 1000 * (60*minutes + seconds) + 500;
    updateTimer();
}

countdown( "countdown", 0, 15 );

1 个答案:

答案 0 :(得分:0)

您正在使用mySound.play(),但我看不到任何声音文件加载。 使用SoundManager,您必须先“创建”声音对象,然后才能使用播放方法。 sm2文档中的一个简单示例:

var mySoundObject = soundManager.createSound({
 id: 'mySound',
 url: '/audio/mysoundfile.mp3'
});
mySoundObject.play();

如果您希望在iPhone或iPad上运行此功能,则应在播放后调用mySoundObject.destruct()。否则你在第一次比赛后可能听不到任何声音。