iOS Safari html5 audio не воспроизводится - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь получить аудио 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

...