Я пытаюсь получить аудио URL с функцией $ .get jQuery от api. Но если я позвоню $ .get и внутри $ .get.done, я не смогу сделать звук для воспроизведения.
Вот мой HTML:
<audio id="blast"></audio> <button class="blasterTrigger">Shoot!</button>
Здесь работает JS (если я напрямую передаю URL загрузки аудио внутри функции щелчка):
$(".blasterTrigger").click(function () { var blast = $("#blast"); blast.attr("src", "https://www.mp3factory.net/index.php?route=musics/download/download/44316747367616"); blast[0].play(); });
Но этот JS не работает (передача URL загрузки аудио из API с функцией $ .get)
$(".blasterTrigger").click(function () { var music_id = $(this).data('id'); var url = "https://www.mp3factory.net/index.php?route=musics/play/play/44316747367616"; var jqxhr = $.get( url, null, function() {}, 'json'); var play_url = null; jqxhr.done(function(data) { if(data.status == 'OK') { var play_url = data.play_url; var blast = $("#blast"); blast.attr("src", play_url); blast[0].play(); } if(data.status == 'fail') { alert('An unknown error occured'); } }); jqxhr.fail(function() { alert('An error occured while processing your request. Please try again later...'); }); });
Это URL API: https://www.mp3factory.net/index.php?route=musics/play/play/44316747367616
Это прямой аудио URL: https://www.mp3factory.net/index.php?route=musics/download/download/44316747367616