gpt4 book ai didi

javascript - 使用 Capacitor 为 iOS 构建时,Phaser 3 应用程序中没有声音

转载 作者:行者123 更新时间:2023-12-04 08:55:09 25 4
gpt4 key购买 nike

我创建了一个简单的 Phaser 3测试应用程序(在 Typescript 中,使用 rollup 进行转译)并且我正在使用 Capacitor将其转换为 Mac 上的 iOS 应用程序。
这是应用程序的相关部分:

function preload () {
this.load.audio('boom', ['boom.mp3', 'boom.ogg', './boom-44100.ogg', './boom-44100.mp3']);
this.load.image('wizball', './wizball.png');
}

function create () {
const image = this.add.image(400, 300, 'wizball').setInteractive();;
this.boom = this.sound.add('boom');
image.on('pointerup', () => {
this.boom.play();
});
}
该应用程序显示了 wizball 的图像,如果你点击它,你会听到“boom”。
当我运行它时:
  • npm run watch ,在我的 Mac 上的浏览​​器中使用 http://localhost:10001,它工作正常;
  • 通过加载 index.htmldist/ dir 在我的 Mac 上的浏览​​器中,它工作正常;
  • 通过加载 https://garion.org/soundtest-ts/在我的 Mac 或 iPad 上,它运行良好;
  • 但是当我使用 Capacitor 在 Xcode 中构建 iOS 应用程序时,单击图像根本没有声音。

  • 这些是生成 iOS 应用程序的步骤:
    npm i
    npm run watch
    npx cap add ios
    npx cap copy ios
    npx cap open ios
    Xcode 中的控制台日志显示以下错误:
    Error: There is no audio asset with key "boom" in the audio cache
    ⚡️ URL: capacitor://localhost/game.js
    我觉得这很奇怪,因为可以很好地找到图像 Assets 。在 ios/App/public/目录,两者 boom.mp3wizball.png存在。
    我已经把完整的代码和重现步骤放在了这里: https://github.com/joostvunderink/soundtest您将需要安装 node 10+ 和 Xcode(至少配置一个虚拟设备)来构建 iOS 应用程序。
    我在看什么?

    最佳答案

    在你的游戏配置中禁用网络音频,添加到你的游戏配置底部,就像这样。

    let game = new Phaser.Game({
    ...
    audio: {
    disableWebAudio: true
    }
    });
    警告:
  • 禁用网络音频将使移相器使用 html5 音频。
  • 使用 html5 音频
    而不是网络音频会让你的游戏滞后

  • 此问题的另一种解决方法是:
  • 使用外部音频文件,如果您使用网络音频仍然可以工作
    音频文件 不是 来自内部 Assets (我仍然找不到原因)
  • 使用 native 音频/媒体插件为移相器应用程序播放音频
  • 关于javascript - 使用 Capacitor 为 iOS 构建时,Phaser 3 应用程序中没有声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63864590/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com