バージョン

menu_open
ターゲットプラットフォーム:
Wwise SDK 2024.1.1
OpenHarmonyに固有の情報

このページには、OpenHarmony向けにWwise SDKを使用する際の情報が記載されています。

ライセンス要件

OpenHarmony SDKをダウンロードする前に、まずプロジェクトを登録(プロジェクトの登録を参照)し、ライセンスを取得する必要があります。プロジェクトが承認されると、Audiokinetic LauncherのDeployment PlatformsリストにOpenHarmonyのオプションが表示されます。

プラットフォーム要件

Wwise SDKをOpenHarmonyプラットフォームで使用するには、HarmonyOS NEXT SDKをインストールする必要があります。バージョン要件については、 OpenHarmonyリリースノート にある適切なバージョンをご参照ください。

OpenHarmonyにサンプルプラグインをビルドするには、HarmonyOS NEXT SDKに含まれるCMakeツールが必要です。

OpenHarmony ABI

Wwise SDKのプリコンパイルライブラリが以下のフレーバーでコンパイルされています:

  • arm64-v8a

今後、ほかのABIのプリコンパイル済みサポートが追加される可能性があります。

SoundBankの展開とロード

OpenHarmonyにSoundBankを展開およびロードする方法は2つあります。

OpenHarmonyアプリケーションパッケージ(HAP)の一部としてSoundBankを展開する

HAPをビルドする前に、サウンドエンジンを稼働させるOpenHarmonyモジュールのsrc/main/resources/rawfileサブフォルダに、SoundBankとメディアファイルを入れます。この場所にあるファイルは、ビルド時にHAPにパッケージ化されます。

次に、アプリケーションは以下のアクションをネイティブコードで実行する必要があります:

  1. OpenHarmonyネイティブAPIを使用し、NativeResourceManagerオブジェクトを作成します。
  2. SDK/samples/SoundEngine/OpenHarmonyディレクトリにあるサンプル低レベルI/Oフック CAkDefaultIOHookDeferred をインスタンス化します。
  3. CAkDefaultIOHookDeferred::UseResourceManager() をコールし、ステップ1で作成したリソースマネージャオブジェクトを渡します。
  4. 最後に CAkDefaultIOHookDeferred::AddBasePath() をコールし、rawfile://のプレフィックスが付いたrawfileディレクトリの相対パスを渡します。例えばSoundBankをsrc/main/resources/rawfile/StreamingAssets/Wwiseに入れた場合、ベースパスrawfile://StreamingAssets/Wwiseを指定します。

注釈: Wwise SDKに含まれるサンプル低レベルI/Oフックを使用しない場合、独自のI/Oフックを実装し、OpenHarmonyのrawfile APIを使用してパッケージ化されたファイルを読み込む必要があります。

OpenHarmonyのrawfile APIは読み取り専用のため、rawfile://のプレフィックスが付いたベースパスも読み取り専用となります。これらの場所では、サンプル低レベルI/Oフックがファイルを書き込みモードで開くことは一切ありません。

OpenHarmony POSIXファイルシステムに直接SoundBankを展開する

SoundBankは、デバイスのファイルシステムのどこにでも展開できます。追加できるディレクトリ数に制限はなく、追加するには CAkDefaultIOHookDeferred::AddBasePath() を使用します。rawfile://のプレフィックスが付いていないベースパスはすべて標準的なPOSIXファイルシステムパスと解釈され、ファイルの読み書きに標準的なPOSIXファイルI/O関数が使用されます。書き込みモードで開く必要のあるファイルについては、これらのパスを限定的に使用します。

I/Oシステムは、指定したパスのファイル検索を、最も新しく追加されたパスから逆順に開始します。

低レベルI/Oサブモジュールの実装方法については 低レベル I/O をご覧ください。

Handling application lifecycle events

Audio interruptions

Wwise handles audio interruptions (such as incoming calls or alarms) automatically. Wwise suspends the sound engine during an interruption and reactivates it when the interruption ends.

Transitions to background

By default, Wwise keeps playing back audio even when the app loses focus and is hidden from view. To stop playback when the app is out of focus, call AK::SoundEngine::Suspend when the app is hidden, and AK::SoundEngine::WakeupFromSuspend when the app is shown. You can register Event listeners for these transitions from ArkTS through the Window module, or from C/C++ using the Xcomponent module.

Refer to Integration Demoサンプル for an example of how to handle Xcomponent's SurfaceHide and SurfaceShow callbacks to suspend and resume the sound engine.

OpenHarmonyデバイスでCommunicationsを使用する

Communicationsモジュールを正常に初期化するには、アプリケーションモジュールがohos.permission.INTERNETパーミッションをリクエストする必要があります。このパーミッションがOSによって許可されると、Communicationsモジュールは適切なTCPポートとUDPポートを開くことができるため、Wwise Profilerとの通信が可能になります。

Communicationsモジュールを初期化する方法については、 通信の初期化 をご覧ください。

OpenHarmonyデバイスでWwise Motionを使用する

Wwise Motionが正常に動作するには、アプリケーションモジュールがohos.permission.VIBRATEパーミッションをリクエストする必要があります。このパーミッションがOSによって許可されると、Wwise Motionはデバイスを適切に振動させることができるようになります。

OpenHarmonyデバイスのバイブレーション機能は非常に大まかなため、きめ細かい高解像度のハプティックフィードバックに対応できません。このプラットフォームでは、一定強度のランブルエフェクトや短いUIハプティックフィードバックの波動にWwise Motionを活用することが推奨されます。

OpenHarmonyリリースノート


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう