ReferenceError:音频未定义

91K*_*min 0 audio jquery html5 meteor

我正在Meteor中为客户构建音频播放器。

尝试创建音频对象时出现错误。我正在使用以下代码。知道为什么会这样吗?任何帮助将不胜感激。

// Define Audio
song = new Audio('/audio/waitforme.mp3');

// Define Play
play = $('#playicon');

$(function() {
$('#playicon').on("click", function() {
e.preventDefault();
song.play();
})
});


ReferenceError: Audio is not defined
    at AlannaSite.js:2:14
    at AlannaSite.js:12:4
    at /Users/CorrinSite/.meteor/local/build/programs/server/boot.js:242:10
    at Array.forEach (native)
    at Function._.each._.forEach (/Users/AriKamin/.meteor/packages/meteor-        tool/.1.1.9.1sd3e7j++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
    at /Users/CorrinSite/.meteor/local/build/programs/server/boot.js:137:5
Run Code Online (Sandbox Code Playgroud)

iCo*_*lor 6

我认为这里有一个误解。您拥有正确的代码,但是它在不同的上下文中运行。

对于Meteor,NodeJS后端也在运行您的“客户端”代码。不幸的是,NodeJS不支持您正在使用的音频API,但浏览器却支持。

在客户端和服务器端都可以运行并运行的这段代码可能会有些混乱,以至于无法了解客户端+服务器之间的界限,特别是当Meteor试图模糊这些界限时!

我将查找Meteor的体系结构,以便您可以最佳地构建代码,以针对“客户端”与“后端”环境。一篇很棒的文章在这里:https : //www.discovermeteor.com/blog/what-goes-where/

基本上,Meteor提供了两个目录,您可以使用这些目录专门针对客户端或服务器。您可以将文件放在/client或中/server,它将为您处理。

对于某些快速使用的文件或在两种情况下都使用的文件,Meteor文档会说明一个布尔标志,称为,Meteor.isClient或者Meteor.isServer您可以将其标记为仅在客户端/服务器端运行:http:// docs。 meteor.com/#/basic/Meteor-isClient