「MonoGameでBGMを再生する」の版間の差分

編集の要約なし
33行目: 33行目:
ただしSoundEffectクラスを使う方法ではMonoGame Pipelineで生成されるxnbファイルがアホみたいに巨大になる。約3MBのmp3ファイルが約30MBのxnbファイルになるくらい。MonoGame PipelineでQualityプロパティをBestからLowに変えてもファイルサイズに変化はない。
ただしSoundEffectクラスを使う方法ではMonoGame Pipelineで生成されるxnbファイルがアホみたいに巨大になる。約3MBのmp3ファイルが約30MBのxnbファイルになるくらい。MonoGame PipelineでQualityプロパティをBestからLowに変えてもファイルサイズに変化はない。


===回避策:音質を落としたwavを使う===
====回避策:音質を落としたwavを使う====
ファイルがデカイ理由はMonoGame Pipelineにmp3を食わせると最高音質でwavに変換しているためのようだ。
ファイルがデカイ理由はMonoGame Pipelineにmp3を食わせると最高音質でwavに変換しているためのようだ。


39行目: 39行目:


事前に音質を落としたwavファイルをMonoGame Pipelineに食わせると良いようだ。
事前に音質を落としたwavファイルをMonoGame Pipelineに食わせると良いようだ。
===問題点:ARM64でクラッシュする===
MonoGame 3.3および3.4かつ[[Android]]かつ[[ARM64]]でSoundEffectクラスを使おうとするとクラッシュする。
====回避策2:MonoGame 3.5以降を使う====
この問題はMonoGame 3.5で修正されている。
====回避策2:ARM v7aを使う====
MonoGame 3.5にアップデートするとこの問題は治るが、今度は[[3DCG]]の[[レンダリング]]周りで従来と異なる挙動になるなど不用意にアップデートできるものではなさそうだ。
そのような場合はMonoGame 3.3などの古いバージョンを使い続け、そのうえでプロジェクトのプロパティから[[ARM64]]のチェックをはずして[[ARM v7a]]向けにビルドすることで回避できる。そもそも[[Android]]で[[ARM64]]を使うメリットなど何一つないと思われる上に、簡易的な[[ベンチマーク]]でサクッと測った限りでは速度的な差もない。
現状ではARM64だと[[LLVM]]での最適化も効かないので本当に何のメリットもないと思う。


==関連項目==
==関連項目==