CRI ADX  Last Updated: 2024-11-26 16:51 p
ファイル名指定再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/playback_fname

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

/cri/common/smpdata/criatomex/
  • music_loop.adx

サンプルの解説

CRI Atomはファイル名を直接指定しての音声再生もサポートしています。
ファイル名を指定して音声データを再生する手順は、以下のとおりです。
  1. ストリーミング再生用にD-BASを作成する
  2. ストリーミング再生可能なボイスプールを作成する
  3. パスの保存領域を持ったAtomExプレーヤーを作成する
  4. 再生する音声データのファイル名を指定する
  5. 再生する音声のフォーマット情報を指定する
  6. 再生を開始する
CriAtomExDbasId dbas_id;
CriAtomExPlayerConfig player_config;
/* D-BASの作成 */
dbas_id = criAtomDbas_Create(NULL, NULL, 0);
/* ボイスプールの作成パラメーターをデフォルト値で初期化 */
/* ファイル名指定の再生はストリーミング再生なので、ストリーミング再生可能に設定 */
voice_pool_config.player_config.streaming_flag = CRI_TRUE;
/* ストリーミング再生可能なボイスプールの作成 */
voice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&voice_pool_config, NULL, 0);
/* プレーヤーの作成パラメーターをデフォルト値で初期化 */
/* 再生するファイル名を覚えておくためのパス保存領域サイズを指定 */
player_config.max_path_strings = 1;
player_config.max_path = SMP_PATH_LENGTH;
/* プレーヤーの作成 */
player = criAtomExPlayer_Create(&player_config, NULL, 0);
/* 再生ファイルの指定 */
criAtomExPlayer_SetFile(player, NULL, PATH FILE);
/* 再生の開始 */
void criAtomExPlayer_SetFile(CriAtomExPlayerHn player, CriFsBinderHn binder, const CriChar8 *path)
音声データのセット(ファイル名の指定)
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
再生の開始
CriAtomExPlayerObj * CriAtomExPlayerHn
プレーヤーハンドル
Definition: cri_le_atom_ex.h:3628
CriAtomExPlayerHn criAtomExPlayer_Create(const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size)
AtomExPlayerの作成
#define criAtomExPlayer_SetDefaultConfig(p_config)
プレーヤー作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_le_atom_ex.h:713
#define criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(p_config)
標準ボイスプール作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_le_atom_ex.h:567
CriAtomExVoicePoolHn criAtomExVoicePool_AllocateStandardVoicePool(const CriAtomExStandardVoicePoolConfig *config, void *work, CriSint32 work_size)
標準ボイスプールの作成
struct CriAtomExVoicePoolTag * CriAtomExVoicePoolHn
ボイスプールハンドル
Definition: cri_le_atom_ex.h:3224
CriAtomDbasId criAtomDbas_Create(const CriAtomDbasConfig *config, void *work, CriSint32 work_size)
D-BASの作成
プレーヤー作成用コンフィグ構造体
Definition: cri_le_atom_ex.h:3490
CriSint32 max_path
最大パス長
Definition: cri_le_atom_ex.h:3571
CriSint32 max_path_strings
最大パス文字列数
Definition: cri_le_atom_ex.h:3550
標準ボイスプール作成用コンフィグ構造体
Definition: cri_le_atom_ex.h:3259
CriAtomStandardPlayerConfig player_config
Definition: cri_le_atom_ex.h:3262
CriBool streaming_flag
ストリーミング再生を行うかどうか
Definition: cri_le_atom.h:1489
 
それぞれの操作の説明は以下のとおりです。
D-BASの作成
ストリーミング再生を行う場合、ファイルから読み込んだデータをバッファリングするための領域を確保する必要があります。
Atom ライブラリでは、バッファリング量の管理に D-BAS と呼ばれる仕組みを用います。
ストリーミング再生を行う場合には、必ず criAtomDbas_Create 関数で D-BAS を作成する必要があります。
D-BAS を作成する際には、同時に読み込む(ストリーミング再生を行う)ファイルの数や、それらの合計ビットレートを指定する必要があります。
(D-BAS の作成に必要なワーク領域のサイズは、最大同時再生本数とビットレートによって変化します。)
[備考]
音声ファイルのビットレートは、 criAtomEx_CalculateAdxBitrate 関数等で計算可能です。
ボイスプールの作成
音声データのデコードと出力に必要な ボイス を、 criAtomExVoicePool_AllocateStandardVoicePool 関数等を使用します。
[備考]
criAtomExVoicePool_AllocateStandardVoicePool 関数で作成されたボイスプールは、 ADX と HCA の両方の音声ファイルを再生可能です。
再生する音声ファイルのフォーマットが ADX に限定される場合には、 criAtomExVoicePool_AllocateAdxVoicePool 関数を使用することで、 必要なワーク領域のサイズを抑えることも可能です。
(同様に、 HCA しか再生しない場合には、 criAtomExVoicePool_AllocateHcaVoicePool 関数を使用することで、ワーク領域を減らすことが可能です。
音声ファイルの再生を目的とする場合には、ストリーミング再生に対応したボイスプールを作成する必要があります。
ストリーミング再生用のボイスプールは、ボイスプール作成用のコンフィグ構造体( CriAtomExStandardVoicePoolConfig 等) の player_config の streaming_flag を CRI_TRUE に設定することで作成可能です。
プレーヤーの作成
ファイル名を指定して再生する場合には、 AtomEx プレーヤーを作成する際、プレーヤー内にパス名を保持するための領域が必要になります。
パスの保存領域のサイズは、 AtomEx プレーヤー作成用コンフィグ構造体( CriAtomExPlayerConfig )の以下のパラメーターによって決まります。
  • max_path_strings
  • max_path
max_path_strings は、 AtomEx プレーヤーが同時に記憶可能なファイル名の数です。
1 つのプレーヤーで 2 つ以上のファイルを同時に再生する場合には、 max_path_strings に 2 以上の値を指定する必要があります。
max_path には使用するパス文字列の最大長を指定します。
ファイル情報の指定
再生するファイルのパスを criAtomExPlayer_SetFile 関数で指定します。
合わせて、再生する音声データのフォーマット情報を、以下の関数で指定します。
フォーマット情報指定関数一覧
指定するパラメーター 使用する関数
フォーマット criAtomExPlayer_SetFormat
チャンネル数 criAtomExPlayer_SetNumChannels
サンプリングレート criAtomExPlayer_SetSamplingRate
Atom ライブラリは、これらの API で設定されたパラメーターに合致するボイスプールからボイスを取得し、 音声データのデコードと出力を行います。
再生の開始
criAtomExPlayer_Start 関数で再生を開始します。