0

我想要做的是让它在页面加载时播放 highpitchsound.wav(或 .mp3)x 秒,用户在页面加载时在警报框中定义。

在警报框中有一个文本框和一个“确认”按钮。默认文本是 5 代表 5 秒,或 5000 代表 5000 毫秒。

我以前使用过 jquery 的间隔,在这里和那里多次在 html5 中弄乱了音频,不知道如何将两者结合起来,也不知道如何制作自定义警报框 onload。

<html>
<head>
<title>Audio Play Interval</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {

});
</script>
</head>
<body>
    <audio autoplay="true">
        <source src="sounds/highpitchsound.mp3" type="audio/mpeg" />
        <source src="sounds/highpitchsound.wav" type="audio/wav" />
        <source src="sounds/highpitchsound.ogg" type="audio/ogg" />
        Your browser does not support the audio element.
    </audio>
</body>
</html>
4

1 回答 1

5

理解

您可以通过将音频元素专门引用为对象来实现此目的。因为 jquery 还没有扩展,所以HTMLAudioElement您必须专门引用 jquery 对象中音频元素的第一条记录。

然后,您可以简单地引用任何函数,例如.play(),.pause().load()从那时起。

您可以像这样简单地执行此操作:

setInterval(function() { $('audio')[0].play(); },1000);

打破这个

  • 我们使用每毫秒setInterval(a(),b)运行一次函数a()b

  • 引用 dom 中的音频 html 对象,$('audio')然后选择其中的HTMLAudioElement对象与之交互($('audio')[0]

  • 那么我们可以简单地使用其中的任何功能(即.play()

解决方案

现在,为了实现你想要的,你可以这样做,

Javascript:

startplaying(parseInt(prompt('in milliseconds, set an interval!')));

function startplaying(time) {
    var run = setInterval(function() { $('audio')[0].play(); }, time);
}

这首先提示用户输入时间,然后通过用户设置的时间执行功能,并进行触摸验证。

于 2012-08-15T01:40:17.883 回答