当前时间等于特定时间时如何播放声音

时间:2013-04-25 08:14:14

标签: javascript html

在我的网页中,我想在当前时间等于下午5:00时播放声音。

我做的是:

<script type='text/css'>
var d = new Date();
var m = d.getMinutes();
var h = d.getHours();
if (h == 17 && m == 00){
document.write = "<embed src =\'notify.mp3\' hidden=\'true\' autostart=\'true\' loop=\'true\'></embed>";
}
</script>

我找了一个播放声音的特定功能,我发现document.write不起作用,没有意义。

任何建议我应该做什么

3 个答案:

答案 0 :(得分:2)

在JS中试试这个:

 <script>
var d = new Date();
var m = d.getMinutes();
var h = d.getHours();
if (h == 17 && m == 00){
      var sound = document.getElementById(sound1);
      sound.Play();
}
</script>

别忘了在HTML中添加它

<embed src="notify.mp3" autostart="false" width="0" height="0" id="sound1"
enablejavascript="true">

答案 1 :(得分:1)

尝试这样的事情。

document.getElementById("dummy").innerHTML= "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";

使用元素

标记为外部(非HTML)内容定义容器。以下代码片段应播放嵌入在网页中的MP3文件:

实施例

<embed height="50" width="100" src="horse.mp3">

或尝试

尝试使用函数play()的修订版

function play() 
{
  var embed=document.createElement('object');
  embed.setAttribute('type','audio/wav');
  embed.setAttribute('data', 'c:\test.wav');
  embed.setAttribute('autostart', true);
  document.getElementsByTagName('body')[0].appendChild(embed);
}

Refence:http://www.w3schools.com/html/html_sounds.asp

http://webdesign.about.com/od/sound/a/play_sound_oncl.htm

Playing sound with JavaScript

答案 2 :(得分:0)

我假设您正在尝试创建类似警报的功能。这就是我要做的事情:

var delay = 60000; // in milliseconds, check every minute
var intervalId = setInterval("playWhenReady()", delay);

function playWhenReady()
{
    var d = new Date();
    var h = d.getHours();
    var m = d.getMinutes(); 

    if (h === 17 && m === 00)
    {
        playSound('notify.mp3');
        clearInterval(intervalId);              
    }
}

function playSound(soundFile)
{
    var audioElement = document.createElement('audio');
    audioElement.setAttribute('src', soundFile);
    audioElement.play();
}