javascript добавить фоновый звук в игру - PullRequest
0 голосов
/ 26 апреля 2020

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

Я был на нескольких веб-сайтах и ​​в учебных пособиях, так как знаю, что это общий вопрос, но я не могу заставить его работать.

До сих пор я пытался добавить

const audioObj = new Audio("/assets/menuTheme.mp3");

audioObj.play();

в мою игру. js файл в функции обновления, но это не сработало.

Я добавил к моему html файлу несколькими способами, например:

<audio id= 'menuAudio'>
<source src='/assets/menuTheme.mp3'>
</audio>

и

<audio controls autoplay loop>
<source id = 'menuAudio' src='/assets/menuTheme.mp3'/>
<embed src= '/assets/menuTheme.mp3' autoplay='autoplay' loop='loop'/>
</audio>

, затем вызывая его в моей игре. js file by

this.sound = document.getElementById('menuAudio');
this.sound.play();

Я даже нашел один ответ, чтобы создать функцию или класс для звука

sound = function(src) {
this.sound = document.createElement('audio');
this.sound.src = src;
this.sound.setAttribute('preload', 'auto');
this.sound.setAttribute('controls', 'none');
this.sound.style.display = 'none';
document.body.appendChild(this.sound);
this.play = function() {
    this.sound.play();
}
this.stop = function() {
    this.sound.pause();
}
}

Ничего не помогло, и я оступился, что еще делать. Я знаю, что файл поддерживается используемым браузером и правильно загружен, потому что он будет воспроизводиться, но не автоматически и не показывать панель управления.

Пожалуйста, помогите:)

РЕШЕНО:

всегда проверяйте, включено ли автоматическое воспроизведение в браузере ... * лицом к ладони *

1 Ответ

0 голосов
/ 27 апреля 2020

проверьте, не остановился ли сначала звук, а затем воспроизведите его, если он вернёт истину .. также это должно происходить внутри события window.onload

if(audio.isPaused)
   audio.play()
...