Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
困惑于如何在蛇游戏中实现Javascript音频?_Javascript_Html_Audio - Fatal编程技术网

困惑于如何在蛇游戏中实现Javascript音频?

困惑于如何在蛇游戏中实现Javascript音频?,javascript,html,audio,Javascript,Html,Audio,我有一个蛇游戏,我正在通过Javascript制作,但我有点不确定如何添加音频。我有Sam的24小时自学Javascript,浏览了stackoverflow问题和youtube教程,但我的困惑源于我的index.html中没有音频标记。事实上,我不确定我是否需要一个。以下是我的single index.html文件的内容: <canvas id="canvas" width='450' height='450'></canvas> <script src="htt

我有一个蛇游戏,我正在通过Javascript制作,但我有点不确定如何添加音频。我有Sam的24小时自学Javascript,浏览了stackoverflow问题和youtube教程,但我的困惑源于我的index.html中没有音频标记。事实上,我不确定我是否需要一个。以下是我的single index.html文件的内容:

<canvas id="canvas" width='450' height='450'></canvas>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="javascripts/snake.js"></script>
这里是我试图调用mp3文件的地方。当蛇吃掉一块砖块时:

 if(nx == food.x && ny == food.y)
  {
    var tail = {x: nx, y: ny};
    create_food();
    score++;
    eating_sound.play();
  }
这对我来说是不对的,显然不是因为它不起作用。但是我需要用autoplay在我的.html中创建标记吗?这是正确的方法吗?我认为我不需要创建音频标签,因为我的index.html中没有任何html元素。在我看来,它应该与Javascript文件一起加载。对吧?

修改------------

谢谢你的回答和评论,但我还是有点困惑,这是如何工作的音频。这是摘自Derek在下面提供的Mozilla开发者网络文档

mySound = new Audio([URLString]);
我下载的音频文件不是URL字符串。我是否需要在某个地方托管它,就像你在tinypic.com上托管一张图片然后链接到它一样

我修改了代码,将我的进食声音设置为一个变量,如下所示:

var eating_sound = new Audio(["Eating-SoundBible.com-1470347575.mp3"]);
就像医生说的,当然不是URL。后来我试着这样称呼它:

if(nx == food.x && ny == food.y)
{
  var tail = {x: nx, y: ny};
  create_food();
  score++;
  new Audio(eating_sound).play();
}

现在是不是应该在我的html中创建一个音频标记?我仔细考虑了一下,似乎UrlString看起来像是一个方法,也在文档中显示。我试过UrlString(吃SoundBible.com等),但也没用。我越来越近了吗?我现在的大问题是,我需要在index.html文件中有一些东西,还是音频构造函数为我做这些?我只想让它起作用。

吃东西的声音
是一个字符串。在JavaScript中,不能有直接引用文件的变量。要播放声音,必须使用


顺便说一下,您的声明“在我看来,它应该与Javascript文件一起加载”是不正确的。每个文件都必须加载到DOM中才能进行操作。例如,如果需要在JavaScript中加载和操作图像,则必须通过
image
构造函数创建
标记来加载图像。没有其他方法可以这样做。)

新音频(吃声音)。play()
你为什么要调用
。用字符串播放
。谢谢你的回复megawac,但不要掷骰子。它仍然不起作用。有什么地方我可以参考你的新音频语法吗?另外,您是否同意我的index.html中不需要音频标记,或者我需要类似的东西?如果我去掉引号,它会因为.mp3Awesome中的整数而中断,我会看看这个。谢谢你的链接,德里克。
if(nx == food.x && ny == food.y)
{
  var tail = {x: nx, y: ny};
  create_food();
  score++;
  new Audio(eating_sound).play();
}
new Audio(eating_sound).play();