CRI ADX  Last Updated: 2024-03-21 14:32 p
複数コーデック再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/playback_multi_codec

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

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

サンプルの解説

ACBファイルに含まれるキューのコーデックが複数ある場合、あらかじめ各コーデック用ボイスプールを作成しておくことで、 再生するキューが実際には何のコーデックかを意識せずにキューを再生できます。
CriAtomExVoicePoolHn adxvoice_pool;
CriAtomExVoicePoolHn hcavoice_pool;
/* ADXボイスプールの作成 */
adxvoice_pool = criAtomExVoicePool_AllocateAdxVoicePool(NULL, NULL, 0);
/* HCAボイスプールの作成 */
hcavoice_pool = criAtomExVoicePool_AllocateHcaVoicePool(NULL, NULL, 0);
/* プレーヤーの作成 */
player = criAtomExPlayer_Create(NULL, NULL, 0);
/* キューIDの指定 */
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_THUNDER1);
/* 再生の開始 */
CriAtomExAcbObj * CriAtomExAcbHn
ACBハンドル
Definition: cri_atom_ex.h:3067
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指定)
struct CriAtomExVoicePoolTag * CriAtomExVoicePoolHn
ボイスプールハンドル
Definition: cri_atom_ex.h:3254
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateAdxVoicePool(const CriAtomExAdxVoicePoolConfig *config, void *work, CriSint32 work_size)
ADXボイスプールの作成
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateHcaVoicePool(const CriAtomExHcaVoicePoolConfig *config, void *work, CriSint32 work_size)
HCAボイスプールの作成


この方法は複数のボイスプールを用意するので、多くのワーク領域が必要になることに注意してください。
ワークサイズを調整する必要がある場合は、使われているコーデックのキュー数に応じて、各コーデック用ボイスプールのボイス数を設定すると、 ワークサイズを小さくすることができます。