在源中播放带有井号的音频不起作用

时间:2019-02-09 02:23:42

标签: javascript html5 audio mp3 html5-audio

我正在尝试在音频源中播放带有井号的音频文件,但是当我尝试使用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());
		});
	});
	
});

1 个答案:

答案 0 :(得分:0)

对于任何其他想知道的人:正如Alohci指出的那样,我必须对字符进行URL编码。井号然后在URL中变成%23。 JavaScript实际上具有一个名为encodeURIComponent()的函数,可以为您编码字符。

您可以在此处查看列表或URL编码的字符: https://www.w3schools.com/tags/ref_urlencode.asp