【问题标题】:auto play a sound(mp3) at a specific time in html在 html 中的特定时间自动播放声音(mp3)
【发布时间】:2021-06-16 14:21:38
【问题描述】:

我是编码的初学者。只需具备一些 HTML 和 CSS 的基本知识即可。

我想创建一个包含本地时间(例如 UTC 23:00:12)的 HTML,并且我想让这个 HTML 自动播放 mp3。在特定时间(例如 23:00:15)归档。

当时我发现了一个小部件时钟。它已嵌入到我的 HTML 代码中。我想要做的是每个打开这个 HTML 的人都会遵循 time.is 提供的确切时间,以便 mp3.该文件可以在准确的时间自动播放(例如 23:00:15)。

请任何人建议我该怎么做?

欢呼

这是来自 time.is 的小部件的代码:

<a href="https://time.is/Central,_Hong_Kong" id="time_is_link" rel="nofollow" style="font-size:36px">Time in Central:</a>
<span id="Central__Hong_Kong_z419" style="font-size:36px"></span>
<script src="//widget.time.is/t.js"></script>
<script>
time_is_widget.init({Central__Hong_Kong_z419:{}});
</script>

【问题讨论】:

标签: html


【解决方案1】:

您可以在音频标签本身中指定如下, 最近添加了一个新的事件处理程序oncanplaythrough

<audio id="audio2" 
       preload="auto" 
       src="your_mp3_file_path.mp3#t=00:05:10" 
       oncanplaythrough="this.play();">
</audio>

【讨论】:

    【解决方案2】:

    已编辑

    1. 用您的音频路径更改 src 属性
    2. 播放音频需要play()方法
    3. 如果您希望音频在特定时间开始,请将 audio.currentTime 的值更改为您希望音频从它开始的秒数,如果您希望它从头到尾正常工作,只需将其删除

    HTML

    <div id="time"></div>
      <audio controls style="display: none;">
         <source src="audio.mp3" type="audio/mpeg" />
     </audio>
    

    JS

     setInterval(function() {
        var d = new Date(),
            hours = d.getHours(),
            min = d.getMinutes(),
            sec = d.getSeconds();
        if (hours === 20 && min === 38 && sec === 01) {
            var audio = document.getElementsByTagName('audio')[0]
            //add the time in seconds
            audio.currentTime = 60;
            audio.play()
            audio.style.display = 'block'
        }
    }, 1000)  
    

    【讨论】:

    • 嗨,感谢您的评论对不起,也许我没有说清楚。我将再次分点解释:1. 我需要一个包含本地计时器的 html(例如美国时间 20:28:10) 2. 我需要它可以自行刷新但不能保持静止。 3. 去html的人可以看到完全相同的时间,没有区别。 (如网站 time.is) 4. 音频将在后台自动播放,同时由到达准确时间的本地时钟触发(例如美国时间 20:28:15) 5. 我可以设置代码中的时间,以便我可以控制音频何时自动播放。干杯
    • 1.要获取本地时间,只需从方法名称中删除UTC,因为默认情况下Date() 对象获取本地时间。 2. 如果你需要它自己刷新它只需使用setInterval() 方法你可以在 w3schools 或 MDN 中找到解释。 3.我不知道您是否想为每个访问您的页面的人或您让我感到困惑的确切区域获取当地时间。 4.如果您想隐藏音频,您可以将其设置为不显示并通过js播放,关于在确切时间播放音频,您可以创建一个条件来处理setInterval()like if(hours == 20 &amp;&amp; min == 28) { //code here}
    • 感谢我已经尝试过这样的事情:function myFunction() { setInterval(function(){ alert("Hello"); }, hours == 01 && min == 07)) ;但它不起作用......我先用 alert 测试了它,但它不会在上午 01:07 时弹出。请您为我描述更多细节好​​吗?对不起,我仍然是这种语言的初学者。谢谢
    • 试试这个setInterval(function() { var d = new Date(), hours = d.getHours(), min = d.getMinutes(), sec = d.getSeconds(); if(hours === 20 &amp;&amp; min === 38 &amp;&amp; sec === 01) { alert( hours + "\n true") } }, 1000) 1000 = 1 秒,但它以毫秒为单位 - 但在添加条件时要小心尝试在您的条件中设置第二个,因为如果您忘记在条件中添加第二个,它将重复您的每秒编码,直到这一分钟或一小时过去
    • 太棒了!当我输入时间并运行时,我测试了它是否有效,它会弹出一个警报。如果我想触发 mp3 的自动播放怎么办?我应该把它放在代码中吗? ` time.addEventListener('click', function() { console.dir(audio); audio.currentTime = 0; audio.play() audio.style.display = 'block' `那不应该是'click'功能对吗?非常感谢
    猜你喜欢
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多