我正在尝试在音频源中播放带有井号的音频文件,但是当我尝试使用new Audio()
对象播放它们时,JavaScript却给了我这个错误。
NotSupportedError:src属性或分配的媒体提供程序对象指示的媒体资源不合适。
这里是创建Audio对象并播放它的函数。我将参数note
输出到控制台,以确保指定了正确的路径,而不仅仅是找到文件注释错误(双关语意味)。我尝试将#
中的note
替换为\#
,但这没做任何事情(本来不可以,但是值得寻求帮助。) / p>
如果需要查看,其他使用的文件位于GitHub上。
/*
* Author: Adam Oates
* Created: 2/7/2019
* Filename: main.js
*
*/
function playNote(note) {
let audio = new Audio();
audio.src = "res/tones/" + note + ".mp3";
console.log("res/tones/" + note + ".mp3");
audio.play();
}
$(document).ready(function() {
let pdo = new PianoDream();
// plan to have different piano layouts in the future
$("main").load("res/layouts/defaultLayout.html", function() {
$("div.key").on("click", function() {
console.log($(this).text());
playNote($(this).text());
});
});
});
答案 0 :(得分:0)
对于任何其他想知道的人:正如Alohci指出的那样,我必须对字符进行URL编码。井号然后在URL中变成%23
。 JavaScript实际上具有一个名为encodeURIComponent()
的函数,可以为您编码字符。
您可以在此处查看列表或URL编码的字符: https://www.w3schools.com/tags/ref_urlencode.asp