ファイル名指定再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/playback_fname

サンプルの解説

CRI Atomはファイル名を直接指定しての音声再生もサポートしています。
ファイル名を指定して音声データを再生する手順は、以下のとおりです。
  1. ストリーミング再生用にD-BASを作成する
  2. ストリーミング再生可能なボイスプールを作成する
  3. パスの保存領域を持ったAtomExプレーヤーを作成する
  4. 再生する音声データのファイル名を指定する
  5. 再生する音声のフォーマット情報を指定する
  6. 再生を開始する
    CriAtomExDbasId dbas_id;
    CriAtomExStandardVoicePoolConfig voice_pool_config;
    CriAtomExPlayerConfig player_config;
    CriAtomExVoicePoolHn voice_pool;
    CriAtomExPlayerHn player;

    /* D-BASの作成 */
    dbas_id = criAtomDbas_Create(NULL, NULL, 0);

    /* ボイスプールの作成パラメーターをデフォルト値で初期化 */
    criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(&voice_pool_config);

    /* ファイル名指定の再生はストリーミング再生なので、ストリーミング再生可能に設定 */
    voice_pool_config.player_config.streaming_flag = CRI_TRUE;

    /* ストリーミング再生可能なボイスプールの作成 */
    voice_pool = criAtomExVoicePool_AllocateStandardVoicePool(&voice_pool_config, NULL, 0);

    /* プレーヤーの作成パラメーターをデフォルト値で初期化 */
    criAtomExPlayer_SetDefaultConfig(&player_config);

    /* 再生するファイル名を覚えておくためのパス保存領域サイズを指定 */
    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);

    /* 再生の開始 */
    criAtomExPlayer_Start(player);
 
それぞれの操作の説明は以下のとおりです。
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 は、 AtomEx プレーヤーが同時に記憶可能なファイル名の数です。
1 つのプレーヤーで 2 つ以上のファイルを同時に再生する場合には、 max_path_strings に 2 以上の値を指定する必要があります。
max_path には使用するパス文字列の最大長を指定します。
ファイル情報の指定

再生するファイルのパスを criAtomExPlayer_SetFile 関数で指定します。
合わせて、再生する音声データのフォーマット情報を、以下の関数で指定します。
フォーマット情報指定関数一覧
指定するパラメーター 使用する関数
フォーマット criAtomExPlayer_SetFormat
チャンネル数 criAtomExPlayer_SetNumChannels
サンプリングレート criAtomExPlayer_SetSamplingRate

Atom ライブラリは、これらの API で設定されたパラメーターに合致するボイスプールからボイスを取得し、 音声データのデコードと出力を行います。
再生の開始

criAtomExPlayer_Start 関数で再生を開始します。

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