javascript - 从 javascript 在浏览器 (Chrome) 中播放声音

标签 javascript audio

我正在写一个 html 页面。我希望它在运行时发出一些 javascript 指定的声音。

在 html 中,按照我在这里阅读的答案中的建议,我有一行

<embed src="wavs/beep.wav" autostart="true" width="0" height="0" id="beep" 
  enablejavascript="true">

这会在加载时播放声音,因此我确信我已经提供了有效 .wav 文件的有效路径。 (一旦一切正常,我会将自动启动设置为 false。)

我有一个函数

function playSound ( soundname )   
  {
    var thissound = document.getElementById( soundname );
    thissound.Play();
    alert( "Played " + soundname );
  }

我称之为使用

  playSound( "beep" );

但是当发出该调用时,虽然出现警报,但没有声音。在我看来,好像我正在按照推荐的方式做所有事情,但我一定是出了什么问题。接下来我应该检查什么?

最佳答案

使用原生 HTML5 音频 API

在 Chrome 的控制台中,尝试创建音频元素的新实例,传入要缓冲的声音路径。例如,如果我们想要打字机的声音,我们可以这样做:

const typeWriter = new Audio("https://www.freesound.org/data/previews/256/256458_4772965-lq.mp3");

注意:为了缓冲这种确切的声音并避免 CSRF 问题,您必须在 www.freesound.org 的控制台中工作

typeWriter 现在代表一个 html 音频标签。

尝试通过设置 typeWriter.loop = true 来制作声音循环

最后,使用 typeWriter.play() & typeWriter.pause() 播放/暂停声音

关于javascript - 从 javascript 在浏览器 (Chrome) 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739888/

相关文章:

audio - 在 Twilio 中接收 whatsapp 语音消息

audio - 高中心频率的IIR滤波器系数

javascript - Bootstrap datetimepicker 在 Bootstrap Collapse 内部时不触发

javascript - 是否可以使用 JQuery 或其他方法在两个浏览器窗口之间拖放一些内容?

javascript - 覆盖现有的react.js类

android - react-native-audio-toolkit录制错误

audio - 使用 FFmpeg 或类似软件将视频中的音频标准化为 EBU R128 标准

c++ - 如何在C++ Windows 7下启动/停止WAV声音

javascript - 在 HTML5 益智游戏中移动 Canvas 位置

javascript - 服务 worker : Fetch event listener only works after page reload