Возможно ли вызвать звук из JS файла в HTML шаблоне Django без Ajax?
Я сейчас занимаюсь переносом сайта на фреймворк Django. Почти все JS скрипты работают, кроме тех, что связаны со звуком.
У меня есть кнопка воспроизведения/паузы для песни и некоторые звуки, вызываемые при наведении мыши на определенные кнопки. Только для этих файлов я получил из консоли:
Конечно, эти файлы находятся в папке
/static/hangman_game/
.
Другие статические файлы (js, css) работают. Возможно ли как-то активировать эти функции, связанные с воспроизведением звука/музыки без Ajax?
Функция в html шаблоне Django - onclick="togglePlay()
.
Переменные и функции, используемые в JS Файл:
var yes = new Audio("yes.wav");
var no = new Audio("no.wav");
var myAudio = new Audio('John Jacob Niles - The Maid Freed From The Gallows (1940).mp3');
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
myAudio.play();
}
};
myAudio.onplaying = function() {
isPlaying = true;
};
myAudio.onpause = function() {
isPlaying = false;
};
function checkIt(num)
{
var matched = false;
for (i=0; i<lengthPass; i++)
{
if(pass.charAt(i) == letters[num])
{
//// alert(i); //Test
pass1 = pass1.setCharacter(i, letters[num]);
matched = true;
}
}
if(matched == true)
{
yes.play();
var element = "let" + num;
document.getElementById(element).style.background = "#003300";
document.getElementById(element).style.background = "#00C000";
document.getElementById(element).style.background = "3px solid #00C000";
document.getElementById(element).style.background = "default";
updatePass();
}
else
{
no.play();
}
Проблема с ненайденными файлами (то, с чем пришлось столкнуться при проверке и в консоли сервера) очень похожа на мой другой вопрос. Когда я переношу сайт на Django, все пути к файлам, помещенные в файл JS, должны иметь адрес сервера в качестве корня. Поэтому, когда у меня, например, в js файл:
var yes = new Audio("yes.wav");
var no = new Audio("no.wav");
... все, что нужно, это просто добавить http://127.0.0.1:8000/
вот так:
var yes = new Audio("http://127.0.0.1:8000/static/hangman_game/yes.wav");
var no = new Audio("http://127.0.0.1:8000/static/hangman_game/no.wav");