Звук воспроизводится при нажатии изображения с помощью js / jquery, но не работает в некоторых веб-браузерах? - PullRequest
0 голосов
/ 12 апреля 2019

Я использовал некоторый код из этой темы, чтобы создать веб-сайт, на котором случайно выбранный звук воспроизводится при щелчке изображения: Воспроизведение случайных звуков без повторения .Для меня было важно, чтобы звуки не повторялись до тех пор, пока не будет циклически пройдена вся серия, поэтому я выбрал следующее решение: http://jsfiddle.net/cbuckley/FdLge/

Это работает как чудо в Google Chrome,но по какой-то причине он не воспроизводит звук в других веб-браузерах, таких как Safari.Я знал, что это не будет работать на мобильном телефоне, но я не ожидал этого.Любые идеи, что я могу сделать, чтобы решить эту проблему?

Это мой сайт, для справки: http://comfortinajar.com/

HTML-код выглядит следующим образом:

<div id="element"></div>
<img src="Images/Screen.jpg" id=test>

иСценарий:

<script>

var sounds = [];

// Return the full list of URLs in random order
function getSounds() {
    return [
             'Audio/Comfort1.mp3',
              'Audio/Comfort2.mp3',
              'Audio/Comfort3.mp3',
              'Audio/Comfort4.mp3',
              'Audio/Comfort5.mp3',
              'Audio/Comfort6.mp3',
              'Audio/Comfort7.mp3',
              'Audio/Comfort8.mp3',
              'Audio/Comfort9.mp3',
              'Audio/Comfort10.mp3',
              'Audio/Comfort11.mp3',
              'Audio/Comfort12.mp3',
              'Audio/Comfort13.mp3',
              'Audio/Comfort14.mp3',
              'Audio/Comfort15.mp3',
              "Audio/Comfort16.mp3",
              "Audio/Comfort17.mp3",
              "Audio/Comfort18.mp3"].sort(function () {
        // http://stackoverflow.com/a/18650169/283078
        return (.5 - Math.random());
    });
}

// Play the next sound
function playSound() {
    if (!sounds.length) {
        // Get the list of sounds (random order)
        sounds = getSounds();
    }

    // Pops a URL every time, ensuring all are played exactly once
    $("#element").html(
        '<embed src="' + sounds.pop() +
        '" hidden="true" autostart="true" />'
    );

    // Once all the URLs have been popped, the array is repopulated
}

$('#test').click(playSound);
</script>

Код также в настоящее время вызывает переход на страницу, где тег div (в самом низу страницы) находится в первый раз, когда он загружается, и белый блок остается там послеи первый загруженный звук по какой-то причине затухает (снижается слышимость), но меня меньше волнуют эти проблемы.Все, что меня действительно волнует, - это заставить звук работать во всех браузерахДайте мне знать, если вы можете помочь!

...