请求协助:为艺术装置网站的Alert弹窗绑定音频并按序播放
兄弟我太懂这种烦躁了!花了好几个小时啃自己完全摸不着头脑的JavaScript,换谁都得炸毛。别慌,我给你整了一套傻瓜式的代码,你复制粘贴改改文字和音频文件名就行,完全不用懂JS!
解决方案:按顺序弹出Alert+同步播放对应音频
第一步:先理清楚你的文件
- 把所有WAV音频文件和你的HTML页面放在同一个文件夹里(或者你也可以建个
audio子文件夹专门放音频,后面改路径就行) - 给音频起好对应名字,比如
audio1.wav、audio2.wav,方便和弹窗内容对应
第二步:复制下面的代码到你的HTML文件里
你只需要修改代码里的alertsAndAudio数组内容——把每个对象里的text换成你的弹窗文字,audioSrc改成对应的音频文件名就行,其他代码完全不用碰!
<!DOCTYPE html> <html> <head> <title>人机互动艺术装置</title> </head> <body> <!-- 可选:如果浏览器阻止自动播放,加个启动按钮让用户点击 --> <button onclick="startInteraction()">点击开始互动</button> <script> // ********* 这里是你唯一需要修改的部分!********* const alertsAndAudio = [ { text: "你好,我能感知到你的存在", audioSrc: "audio1.wav" }, { text: "你现在的动作,我都在观察", audioSrc: "audio2.wav" }, { text: "我们可以一起完成一场小互动", audioSrc: "audio3.wav" }, { text: "你愿意试试回应我吗?", audioSrc: "audio4.wav" }, { text: "很高兴和你度过这段时间", audioSrc: "audio5.wav" }, // 要加更多的话,照着上面的格式继续加就行 // { text: "下一个弹窗的内容", audioSrc: "audio6.wav" } ]; // 下面的代码不用改! let currentStep = 0; function playNext() { // 所有弹窗都走完了的收尾 if (currentStep >= alertsAndAudio.length) { alert("互动结束啦!"); return; } const currentItem = alertsAndAudio[currentStep]; // 创建音频对象 const audio = new Audio(currentItem.audioSrc); // 先播放音频,音频开始后弹出Alert,用户点确定再走下一步 audio.play().then(() => { alert(currentItem.text); currentStep++; playNext(); }).catch(err => { // 万一音频加载失败,直接弹Alert继续,不卡住 console.log("音频加载失败,跳过播放:", err); alert(currentItem.text); currentStep++; playNext(); }); } // 页面加载自动启动(如果浏览器阻止自动播放,就用上面的按钮启动) function startInteraction() { currentStep = 0; playNext(); } // 可选:页面加载完自动启动,被阻止就用按钮 // window.onload = function() { // startInteraction(); // }; </script> </body> </html>
第三步:调整细节
- 如果你的音频放在
audio子文件夹里,audioSrc要写成"audio/audio1.wav"这种格式 - 如果浏览器阻止自动播放(现在很多浏览器都有这机制),就把代码里注释掉的
window.onload那段保持注释,让用户点击页面上的按钮启动互动就行
第四步:测试
把HTML文件和音频文件放在一起,用浏览器打开,点击按钮(或者等自动启动),就能看到音频先播放,然后弹出对应Alert,用户点击确定后自动进入下一组,直到所有互动完成。
内容的提问来源于stack exchange,提问作者B.Ashcroft
相关产品推荐
相关产品推荐

