CRI ADX  Last Updated: 2024-03-21 14:32 p
キューID再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/playback_cue

サンプルで使用しているデータ

/cri/common/smpdata/criatomex/
  • SampleProject.acf
  • AtomCueSheet.acb
  • AtomCueSheet.awb

サンプルの解説

オーサリングツール上で作成されたキューを再生する手順は、以下のとおりです。
  1. オーサリングツールが出力した ACF ファイルを criAtomEx_RegisterAcfFile 関数で登録する。
  2. オーサリングツールが出力した ACB ファイルと AWB ファイルを criAtomExAcb_LoadAcbFile 関数で登録する。
  3. キュー再生用にボイスプールと D-BAS 、プレーヤーを作成する。
  4. criAtomExPlayer_SetCueId 関数で、再生するキューの ID をプレーヤーに指定する。
  5. criAtomExPlayer_Start 関数で、キューの再生を開始する。
以下、キューIDを指定して音声を再生するコードを示します。
/* ストリーミング再生可能なボイスプールを作成 */
vp_config.player_config.streaming_flag = CRI_TRUE;
stmvoice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&vp_config, NULL, 0);
/* D-BASの作成 */
dbas_id = criAtomExDbas_Create(NULL, NULL, 0);
/* ACBファイルのロード */
acb_hn = criAtomExAcb_LoadAcbFile(NULL, PATH ACB_FILE, NULL, PATH AWB_FILE, NULL, 0);
/* プレーヤーの作成 */
player = criAtomExPlayer_Create(NULL, NULL, 0);
/* 再生するキューのIDを指定 */
criAtomExPlayer_SetCueId(player, acb_hn, 15);
/* 再生の開始 */
CriAtomDbasId CriAtomExDbasId
AtomEx D-BAS ID
Definition: cri_atom_ex.h:4484
#define criAtomExDbas_Create(config, work, work_size)
D-BASの作成
Definition: cri_atom_ex.h:814
CriAtomExAcbObj * CriAtomExAcbHn
ACBハンドル
Definition: cri_atom_ex.h:3067
CriAtomExAcbHn criAtomExAcb_LoadAcbFile(CriFsBinderHn acb_binder, const CriChar8 *acb_path, CriFsBinderHn awb_binder, const CriChar8 *awb_path, void *work, CriSint32 work_size)
ACBファイルのロード
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
再生の開始
CriAtomExPlayerObj * CriAtomExPlayerHn
プレーヤーハンドル
Definition: cri_atom_ex.h:3656
CriAtomExPlayerHn criAtomExPlayer_Create(const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size)
AtomExPlayerの作成
void criAtomExPlayer_SetCueId(CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueId id)
音声データのセット(キューID指定)
#define criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(p_config)
標準ボイスプール作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_atom_ex.h:567
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateStandardVoicePool(const CriAtomExStandardVoicePoolConfig *config, void *work, CriSint32 work_size)
標準ボイスプールの作成
struct CriAtomExVoicePoolTag * CriAtomExVoicePoolHn
ボイスプールハンドル
Definition: cri_atom_ex.h:3254
標準ボイスプール作成用コンフィグ構造体
Definition: cri_atom_ex.h:3289
CriAtomStandardPlayerConfig player_config
Definition: cri_atom_ex.h:3292
CriBool streaming_flag
ストリーミング再生を行うかどうか
Definition: cri_atom.h:1571
キューの指定方法について
上記サンプルでは、キューの指定を ID 指定で行っていますが、 criAtomExPlayer_SetCueName 関数や criAtomExPlayer_SetCueIndex 関数を使用することで、 キュー名やキューインデックス(ファイル内のキューのオフセット番号)でキューの指定を行うことも可能です。
また、オーサリングツールが出力したヘッダーファイルをインクルードすることで、 キュー ID を数値ではなく、マクロ定義名で指定することも可能です。
再生する音声のチャンネル数について
上記サンプルでは、音声再生用にストリーミング再生可能な標準ボイスプールを作成しています。
一般的な音声データ(モノラル/ステレオの ADX / HCA データ)については上記コードで再生が可能ですが、 マルチチャンネル音声を再生する場合にはコードを一部修正する必要があります。
具体的には、マルチチャンネル音声の再生に対応する場合は、ボイスプール作成時に player_config.max_channels の値を増やす必要があります。

オンメモリ再生のみを行う場合について
ストリーミング再生を行わず、オンメモリデータのみの再生を行う(ACBファイルのみを使用する)場合、 以下の修正を加えることで、使用するメモリサイズを削減することが可能です。
  • ACBファイルのロードする際、AWBファイルのパスを指定しない。
  • D-BASを作成しない。
  • ボイスプール作成時、 player_config.streaming_flag を CRI_FALSE に設定する。