ReferenceError:未定义soundFormats

时间:2019-07-16 20:03:46

标签: javascript html p5.js

我正在尝试学习有关p5的知识,并一直在阅读教程(https://p5js.org/reference/#/p5.SoundFile)。

function preload() {
  soundFormats('mp3', 'ogg');
  mySound = loadSound('assets/cam.mp3');
}

function setup() {
  mySound.setVolume(0.1);
  mySound.play();
}

我逐字遵循了文档,但我换了自己的测试歌曲。在repl.it https://repl.it/@JacksonEnnis/Coloquial上运行此命令时,出现错误,指出"ReferenceError: soundFormats is not defined"。但是,我知道此函数已定义,因为它来自文档。我已经搜索了这个问题,但是似乎并没有遇到一个普遍的问题。

如果有人知道为什么会发生这种情况,请向我解释,以便我学习。

HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>
    <script src="script.js"></script>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

只是总结评论。 这是可行的解决方案:

<!doctype HTML>
<html>
<head>
  <html><head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.16/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.16/addons/p5.sound.js"></script>

</head>
<body>
  <script> 
    function preload() {
      soundFormats('ogg', 'mp3');
      mySound = loadSound('https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3');
    }

    function setup() {
      mySound.setVolume(1);
      // mySound.play();
      mySound.loop();
    }
  </script>
</body>
</html>

如您所见:p5.sound.js文件也必须包括在内。它必须是有效路径,并且必须在p5.js之后加载。

soundFormats是p5.sound.js中定义的函数。如果此javascript文件未正确加载,则会出现错误消息“未定义soundFormats”。