ADX2とSofdec2を併用する際の注意点は?


ライブラリ初期化時の注意点

(1) エラーコールバック

エラーコールバック関数は全てのライブラリについて1つです。
criErr_SetCallback 関数を複数回実行すると、先に登録したコールバック関数が後から登録するコールバック関数により上書きされてしまいます。
(先に登録したコールバック関数はエラーが発生しても呼ばれなくなってしまいます。)

(2) 初期化順序

以下の順序でライブラリを初期化する必要があります。

終了処理は初期化処理とは逆の順序で行う必要があります。

[備考]
CRI Atomライブラリを使用する場合、CRI File Systemライブラリの初期化/終了処理は省略することも可能です。
CRI File Systemライブラリの初期化を省いた場合は、CRI File Systemライブラリの初期化処理をCRI Atomライブラリ側で行います。

(3) スレッドフレームワーク

CRI AtomライブラリとCRI File Systemライブラリには、同じスレッドフレームワークを指定する必要があります。
具体的には、各ライブラリを初期化する際、以下の構造体メンバーに同じスレッドフレームワークタイプ(スレッドモデル)を設定する必要があります。
[備考]
CRI Manaライブラリのスレッドフレームワークは、CRI AtomライブラリやCRI File Systemライブラリとは異なるスレッドモデルを設定可能です。

ライブラリ間で共有されるリソース

(1) スレッド

CRI Atomライブラリのサーバ処理スレッドと、CRI File Systemライブラリのサーバ処理スレッドは、同一のスレッドです。
criAtomEx_SetThreadPriority_PC 関数等でCRI Atomライブラリのスレッドパラメーターを変更した場合、CRI File Systemライブラリのサーバー処理スレッドのパラメーターも変更されます。

(2) バインダ

AWBファイルをロードする際、CRI Atomライブラリはバインダーを使用します。
AWBファイルをロードする場合、AWBファイル数分のバインダーが確保できる設定でCRI File Systemライブラリを初期化する必要があります。
[注意]
criAtomAwb_LoadToc 関数等でAWBファイルをロードするケース以外に、 criAtomExAcb_LoadAcbFile 関数等でストリーム再生用のACBファイルをロードする場合もバインダーが必要となります。
(ストリーム再生用のACBファイルをロードする際、対になるAWBファイルが合わせてロードされます。)

(3) ローダ

CRI AtomライブラリやCRI Manaライブラリは、CRI File Systemライブラリのローダーを使用してストリーム再生を行います。
ストリーム再生を行う場合には、ファイルの読み込みに使用するローダーの数に加え、ボイスプール内のボイス数や、Manaプレーヤ数分のローダーを余分に確保しておく必要があります。
以下の API は、関数実行時に一時的にローダー( CriFsLoaderHn )を使用します。
(関数実行開始時に criFsLoader_Create 関数でローダーが確保されます。)

上記関数を実行する際には、空きローダーハンドルが1つ以上ある状態になるよう、ローダー数を調整してください。
[注意]
上記 API のうち、 criAtomExStreamingCache_LoadWaveformByNameAsync 関数と criAtomExStreamingCache_LoadWaveformByIdAsync 関数については、 関数が返すローダーハンドルを別途ユーザが破棄する必要があります。
その他の API については、関数終了時点で criFsLoader_Destroy 関数でローダーが破棄されます。

(4) サーバー処理

CRI Atomライブラリのサーバー処理 ( criAtomEx_ExecuteMain 関数 ) と、CRI File Systemライブラリのサーバー処理 ( criFs_ExecuteMain関数 ) は、同一の実体を持つ関数です。
そのため、CRI AtomライブラリとCRI File Systemライブラリを併用する場合、どちらか一方のサーバー処理のみを実行してください。
(両方のサーバー処理を実行すると、処理が二重に行われます。)
[注意]
CRI Manaライブラリを併用する場合、CRI Atomライブラリのサーバー処理(またはCRI File Systemライブラリのサーバー処理)とは別に、CRI Manaライブラリのサーバー処理( criMana_ExecuteMain 関数)を実行する必要があります。

ストリーミング再生の注意点

(1) D-BAS

音声のストリーム再生とムービのストリーム再生を同時に行う場合、D-BASに指定するストリーム数と最大ビットレートには、両者を足し合わせた数を指定する必要があります。
[備考]
音声/ムービーのストリーミング以外のデータの読み込みについては、D-BAS作成時のパラメーターに加える必要はありません。
ローダー等によるデータの裏読みは、ストリーミングの空き時間にバッファリングなしに行われるため、D-BAS作成時に考慮する必要はありません。

(2) プライオリティ

音声やムービーのストリーミングは、ローダーに設定可能な最高プライオリティ ( CRIFSLOADER_PRIORITY_HIGHEST ) よりも高いプライオリティで実行されます。
そのため、ストリーム再生中に巨大なデータをローダーで読み込んだとしても、ストリーム再生中の音声やムービーが途切れることはありません。
[注意]
データの読み込みは、ストリーミングデータの読み込みに頻繁に割り込まれるため、ストリーミング中のデータ読み込みの速度は低下します。


CRI Middleware logo Copyright (c) 2006-2018 CRI Middleware Co., Ltd.