Подтвердить что ты не робот

Аудиозапись Автозапуск Не работает на мобильных устройствах

Я использую этот код, и когда я вижу controls, я вижу, что автовоспроизведение не работает.

<audio autoplay="true" src="music/lathe_di_chadar.mp3" type="audio/mp3" loop></audio>

и не работает на мобильных устройствах и очень хорошо работает на веб-сайте. Может ли кто-нибудь сказать мне проблему в этом?

Спасибо и хорошо оценены

4b9b3361

Ответ 2

Вы можете воспроизводить звук, используя AudioContext API и беря исходный код из любого ArrayBuffer (т.е. из XMLHttpRequest или File)

    window.addEventListener('load', function () {
        var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
        var source = audioCtx.createBufferSource();
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'audio-autoplay.wav');
        xhr.responseType = 'arraybuffer';
        xhr.addEventListener('load', function (r) {
            audioCtx.decodeAudioData(
                    xhr.response, 
                    function (buffer) {
                        source.buffer = buffer;
                        source.connect(audioCtx.destination);
                        source.loop = false;
                    });
            source.start(0);
        });
        xhr.send();
    });

Пример в реальном времени

Работает на Chrome и Firefox как на мобильном, так и на рабочем столе

Изменить:

Стоит упомянуть, IMO, что этот "трюк" можно фактически рассматривать как ошибку браузера и может перестать работать в любое время, если браузер решит, что это нарушает работу пользователя/становится широко используемым досадой (например, объявлениями).

Также стоит упомянуть, что, по крайней мере, на моем мобильном устройстве и FF 54 звук будет воспроизводиться, даже если ваш телефон отключен...