Phaser3 - Звуковые записи отсутствуют в Safari - PullRequest
0 голосов
/ 05 августа 2020

Я использую в своем проекте phaser@3.24.0, и у меня проблема с играми в Safari 13.1.

В моем методе предварительной загрузки у меня есть объект loadConfig со звуковыми данными:

var data = {
  mediaURL: "../../../static/sound/",
  dataObjects: [
    { type: "sound", name: "ok", file: "ok.ogg" },
    { type: "sound", name: "wrong", file: "wrong.ogg" },
    { type: "sound", name: "missing", file: "missing.png" },
  ],
};

loadData(data, this);

Вспомогательная функция:

function loadData(data, game) {
    data.loadObjects.forEach((element) => {
    game.load.audio(element.name, config.mediaURL + element.file);
   }
}

В моем методе создания:

this.sound.add("ok")
When I load the scene I get:
    Error: There is no audio asset with key “ok” in the audio cache
    initialize — phaser.min.js
    add — phaser.min.js
    create — culture.js
    create — phaser.min.js

В других браузерах все работает нормально, у меня нет проблем с этим.

**: this.sound.add("ok")

Это не работает, у меня все пути к файлу et c указаны в записях / данных игровой сцены. Но, похоже, это не нужно добавлять в метод создания - только в сафари.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Решение: должна быть альтернатива в формате .mp3 для Safari. Safari не может продолжить работу с файлами .oog.

0 голосов
/ 05 августа 2020

У меня нет Phaser3, настроенного для тестирования, но, судя по вашему описанию, я думаю, что вы можете использовать функцию блокировки автоматического воспроизведения Safari.

Попробуйте выбрать Safari => Настройки для этого веб-сайта .. . и выберите «Автозапуск»: «Разрешить все автозапуск»

Было бы интересно посмотреть, правильно ли вы затем увидите, что ваши звуковые данные загружены правильно в Safari.

...