音を明確な最初のアクションの一部にする
音が再生されていると思い込むゲームでは、実際には無音なのにミュート状態を示すアイコンが表示されることがあります。ブラウザーはユーザーの操作があるまでスクリプトからの音声再生を制限することが多く、メディアの再生要求は拒否されたり、結果が返るまで時間がかかったりします。最初の操作でプレイヤーの音声設定を確定し、実際の再生結果に基づいて画面を更新してください。動作が予測しやすくなり、予期しない音で驚かせずに済みます。
新しいページの読み込みと別のタブからの戻りの両方をテストします。自動再生をブロックするブラウザ設定、ミュートされたシステム、低速のオーディオ アセットを試してください。ゲームの視覚的な開始がオプションのサウンド効果によって人質に取られていないこと、および音声が開始されていない場合でもコントロール ラベルが真実のままであることを確認します。
フィードバックとオーディオの状態を一致させておく
play() の呼び出しが成功したことと即座に聞こえる出力を同一視しないでください。 Promise は非同期で解決され、ブラウザが許可を求める場合があります。拒否を処理し、有用な場合は再試行アクションを公開し、サウンドのみが利用できない場合にゲーム全体が失敗したことを示唆するエラーを報告しません。
ユーザー設定と実行時の許可を分離します。保存されたミュートの選択はプレーヤーの意図ですが、再生が現在許可されているかどうかはブラウザーの条件です。ミュート、ミュート解除、一時停止、再開、およびシーンの遷移を個別にテストして、状態の変化後にエフェクトが誤って最大音量で再開されないようにします。
ブラウザゲームオーディオ起動についての質問
ページの読み込み後にゲーム音楽を自動再生できますか?
再生できるとは限りません。自動再生の規則により、ユーザー操作なしで開始した音声メディアや Web Audio はブロックされる場合があります。プレイヤーが操作して開始できるようにし、再生に失敗した場合も処理してください。
再生がブロックされている場合、サウンド ボタンには何が表示されますか?
観察した結果に基づいて、サウンドをオフにしたり、サウンドを有効にするアクションなどの正直な状態を表示します。 MDN では、再生が開始されたと仮定するのではなく、play() Promise に応答することをお勧めします。
関連情報
古い情報を見つけましたか? 訂正を連絡