Wwise SDK 2022.1.17
|
ほぼすべてのオペレーティングシステムで、次のイベントに対するコールバックもしくは通知があります:
これらのイベントはWwiseによって自動的に扱われることはありません。理由は、いくつかのOS APIが複数のコールバックもしくは通知の受け取りを許さないためです。従って、ゲームではなく、Wwise SDK に対してこれらのイベントを通知する必要があります。
ユーザーミュージックの置き換えの扱い方についての詳細は、 ユーザーミュージック(BGM)やDVRの取り扱い を参照してください。
一般的に、すべてのゲームシステムは、アプリケーションを一定の時間バックグラウンドに置くことができます。Wwiseでは、設定やプラットフォームの要件によって、3つの可能な動作があります:
一般的に、アプリケーションがバックグランドに回され、 Suspend(false) が使われるときは、ゲームはサウンドエンジンのAPIを呼び出すべきではありません。イベントのポストなどは動作しますが、蓄積されてシステムが動き出した際、すべてが同時に再生されます。オーディオ処理を再開するには、AK::SoundEngine::WakeupFromSuspend() を呼び出し、システムから適切な通知を受けた際、RenderAudio() を呼び出します。RenderAudio()を呼び出す前に、他のイベントがキューを作るかもしれません。
正しい動作を選択するには、製造会社の説明書にある各プラットフォームの要件を参照してください。
Androidでは、App Lost/Gain FocusイベントやApp Pause/Resumeイベントを処理することが重要です。Googleの要件では、フォアグラウンドにないアプリは、できるだけ最小限のCPUを使用するべきとしています (できればCPUの使用なし)。これは、 Suspend(false) を呼び出すことで達成できます。 AndroidでのBGM設定詳細 もご参照してください。
OpenHarmonyでは、アプリがバックグラウンドに移動した時に AK::SoundEngine::Suspend
をコールし、アプリがフォアグラウンドに移動した時に AK::SoundEngine::WakeupFromSuspend
をコールします。
Appleは、アプリケーションがバックグラウンドにある場合には、できるだけ最小限のCPU使用によう求めています。Wwiseは、自動的にこのような処理を行います。 iOSでのBGM設定詳細 もご参照してください。
macOS用の公式ガイドラインはありませんが、アプリケーション処理がアクティブでない場合は Suspend() でサウンドをカットするのが、ほかのプラットフォームと一致します。ハード的停止 (false パラメータ) もしくは能動的な停止 (true パラメータ) のどちらを利用するかは、ゲームの実装に依存します。
Linux用の公式ガイドラインはありませんが、アプリケーションがアクティブでない場合は、 Suspend() でサウンドをカットするのが、ほかのプラットフォームと一致します。ハード的停止 (false パラメータ) もしくは能動的な停止 (true パラメータ) のどちらを利用するかは、ゲームの実装に依存します。
も参照してください
HWNDはオーディオに関連するウィンドウのハンドルです。どのゲームでもデバイス検知目的のために、アプリケーションのHWNDを指定する必要があります。GetDefaultPlatformInitSettingsで返される値は、サウンドエンジンが初期化された瞬間のフォアグラウンドのHWNDであり、対象ゲームにとって正しいものではない可能性があります。各ゲームは、使用する正確なHWNDを提供する必要があります。
UWPの明示的な要件はありませんが、アプリケーションがフォアグラウンドにないときにオーディオをミュートすることが、通常望まれます。そのためにはSuspend() と WakeupFromSuspend() を、 それぞれCoreApplication.EnteredBackground と CoreApplication.LeavingBackground のイベントハンドラで呼び出します。
も参照してください。
も参照してください