CRI ADX  Last Updated: 2024-03-21 14:32 p
大量ストリーミングボイス再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/playback_many_streaming_voices

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

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

サンプルの解説

ストリーミングボイスを大量に用意して、ストリーミングデータを大量に再生します。
#define SMP_NUM_VOICE (100)
CriFsConfig fs_config;
CriAtomExConfig atomex_config;
/* CRI File Systemの設定パラメーターをデフォルト値で初期化 */
/* ローダ数を(デフォルト値+再生ボイス数)分に増やす */
fs_config.num_loaders = fs_config.num_loaders + SMP_NUM_VOICE;
/* ファイルハンドル数を(デフォルト値+再生ボイス数)分に増やす */
fs_config.max_files = fs_config.max_files + SMP_NUM_VOICE;
/* ライブラリ設定をデフォルト値で初期化 */
criAtomEx_SetDefaultConfig(&atomex_config);
/* バーチャルボイス数を設定 */
atomex_config.max_virtual_voices = SMP_NUM_VOICE;
/* CRI File Systemの初期化パラメーターを渡す */
atomex_config.fs_config = &fs_config;
/* ライブラリの初期化 */
criAtomEx_Initialize(&atomex_config, NULL, 0);
/* ACFファイルの読み込みと登録 */
criAtomEx_RegisterAcfFile(NULL, PATH ACF_FILE, NULL, 0);
/* ACBファイルを読み込み、ACBハンドルを作成 */
acb_hn = criAtomExAcb_LoadAcbFile(NULL, PATH ACB_FILE, NULL, PATH AWB_FILE, NULL, 0);
/* ADXボイスプールの作成 */
adxvp_config.num_voices = SMP_NUM_VOICE;
adxvp_config.player_config.streaming_flag = CRI_TRUE;
voice_pool = criAtomExVoicePool_AllocateAdxVoicePool(&adxvp_config, NULL, 0);
/* プレーヤーの作成 */
player = criAtomExPlayer_Create(NULL, NULL, 0);
/* キューIDの指定 */
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_MUSIC_LOOP);
/* 再生の開始 */
#define criFs_SetDefaultConfig(p_config)
デフォルトコンフィギュレーションのセット
Definition: cri_file_system.h:1426
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ファイルのロード
CriBool criAtomEx_Initialize(const CriAtomExConfig *config, void *work, CriSint32 work_size)
ライブラリの初期化
#define criAtomEx_SetDefaultConfig(p_config)
ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
Definition: cri_atom_ex.h:326
CriBool criAtomEx_RegisterAcfFile(CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size)
ACFファイルの登録
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_SetDefaultConfigForAdxVoicePool(p_config)
ADXボイスプール作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_atom_ex.h:585
struct CriAtomExVoicePoolTag * CriAtomExVoicePoolHn
ボイスプールハンドル
Definition: cri_atom_ex.h:3254
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateAdxVoicePool(const CriAtomExAdxVoicePoolConfig *config, void *work, CriSint32 work_size)
ADXボイスプールの作成
CriBool streaming_flag
ストリーミング再生を行うかどうか
Definition: cri_atom.h:1729
ADXボイスプール作成用コンフィグ構造体
Definition: cri_atom_ex.h:3311
CriSint32 num_voices
Definition: cri_atom_ex.h:3313
CriAtomAdxPlayerConfig player_config
Definition: cri_atom_ex.h:3314
Atomライブラリ初期化用コンフィグ構造体CRI Atomライブラリの動作仕様を指定するための構造体です。 criAtomEx_Initialize 関数の引数に指定します。 CRI Atomラ...
Definition: cri_atom_ex.h:1465
CriSint32 max_virtual_voices
最大バーチャルボイス数
Definition: cri_atom_ex.h:1589
const CriFsConfig * fs_config
CRI File System の初期化パラメーターへのポインタ
Definition: cri_atom_ex.h:1816
コンフィギュレーション
Definition: cri_file_system.h:251
CriSint32 num_loaders
使用するCriFsLoaderの数
Definition: cri_file_system.h:296
CriSint32 max_files
最大同時オープンファイル数
Definition: cri_file_system.h:410

CRI AtomはCRI File Systemライブラリを介してファイルアクセスを行っており、 1ストリーミング処理あたり1つのローダーハンドルを消費します。
つまり、CRI Atomでストリーミングデータを大量に再生するためには、 CRI File System側のローダーハンドル数、ファイルハンドル数も増やす必要があります。


CRI File Systemのパラメーター設定をアプリケーション側で変更する場合は、 CriFsConfig 構造体の値を変更した後、 CriAtomExConfig 構造体のfs_configメンバーに登録し、CRI Atomを初期化します。


また、ストリーミング再生を行うので、ボイスプール作成時に streaming_flag メンバーをCRI_TRUEに設定します。