Воспроизведение аудио со знаком фунта в источнике не работает - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь воспроизвести аудиофайлы со знаком фунта в источнике, но JavaScript выдает мне эту ошибку, когда я пытаюсь воспроизвести их с объектом new Audio().

NotSupportedError:Медиа-ресурс, указанный атрибутом src или назначенным объектом медиа-провайдера, не подходит.

Вот функция, которая создает аудио объект и воспроизводит его.Я вывел на консоль параметр note, чтобы убедиться, что указан правильный путь, и это была не просто ошибка, связанная с запиской в ​​файле (каламбур).Я попытался заменить # в параметре note на \#, но это ничего не дало (не думал, что это будет, но стоило попробовать, прежде чем обратиться за помощью).

другие используемые файлы находятся на 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 голосов
/ 09 февраля 2019

Для всех, кто интересуется: как указал Алохчи, мне пришлось URL кодировать символы.Знак фунта в URL становится %23.В JavaScript на самом деле есть функция с именем encodeURIComponent(), которая кодирует символы для вас.

Вы можете просмотреть список или URL-кодированные символы здесь: https://www.w3schools.com/tags/ref_urlencode.asp

...