CRI ADX  Last Updated: 2024-09-25 17:41 p
クロスフェード再生

サンプルのディレクトリ

/cri/pc/samples/criatomex/crossfade_playback

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

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

サンプルの解説

AtomExプレーヤーに対し「フェーダー」をアタッチする(取り付ける)ことで、フェードインやフェードアウト、 クロスフェードといった時系列のボリューム制御を自動化することが可能です。
フェードイン手順
音声をフェードインする(ミュート状態で再生を開始後、徐々にボリュームを上げる)場合、 処理手順は以下のようになります。
  1. criAtomExPlayer_Create 関数で、AtomExプレーヤーを作成する。
  2. criAtomExPlayer_AttachFader 関数で、AtomExプレーヤーにフェーダーをアタッチする。
  3. criAtomExPlayer_SetFadeInTime 関数でフェードインにかける時間を指定する。
  4. criAtomExPlayer_SetCueId 関数等で、AtomExプレーヤーにフェードイン再生する音声データをセットする。
  5. criAtomExPlayer_Start 関数で再生を開始する。


以上の操作を行うことで、 criAtomExPlayer_Start 関数で再生した音声が、 criAtomExPlayer_SetFadeInTime 関数で指定した時間で最大ボリュームになるよう、 自動的にボリューム制御されます。
フェードアウト手順
再生中の音声をフェードアウトする(ボリュームを徐々に落とし、ミュート状態になった時点で再生を停止する)場合、 処理手順は以下のようになります。
  1. criAtomExPlayer_SetFadeOutTime 関数でフェードアウトにかける時間を指定する。
  2. criAtomExPlayer_Stop 関数で再生を停止する。


以上の操作を行うことで、再生中の音声が criAtomExPlayer_SetFadeOutTime 関数で指定した時間でミュートされるよう、 自動的にボリューム制御されます。
クロスフェード手順
criAtomExPlayer_SetFadeInTime 関数と criAtomExPlayer_SetFadeOutTime 関数でフェードイン/アウトの時間を指定した状態で、 criAtomExPlayer_Start 関数を繰り返し実行すると、 criAtomExPlayer_Start 関数実行毎に再生中の音声がフェードアウトし、 新たな音声がフェードインします。
/* プレーヤーの作成 */
app_obj->player = criAtomExPlayer_Create(NULL, NULL, 0);
/* フェーダーのアタッチ */
criAtomExPlayer_AttachFader(app_obj->player, NULL, NULL, 0);
/* フェード時間の初期化 */
/* 備考)3秒でクロスフェードするよう設定。 */
app_obj->fade_time_ms = 3000;
criAtomExPlayer_SetFadeInTime(app_obj->player, app_obj->fade_time_ms);
criAtomExPlayer_SetFadeOutTime(app_obj->player, app_obj->fade_time_ms);
/* 再生の開始 */
/* 備考)再生毎に前回再生した音声がフェードアウトされ、新たに音声がフェードインされる。 */
criAtomExPlayer_Start(app_obj->player);
void criAtomExPlayer_AttachFader(CriAtomExPlayerHn player, const CriAtomExFaderConfig *config, void *work, CriSint32 work_size)
プレーヤーにフェーダーを取り付ける
void criAtomExPlayer_SetFadeInTime(CriAtomExPlayerHn player, CriSint32 ms)
フェードイン時間の設定
void criAtomExPlayer_SetFadeOutTime(CriAtomExPlayerHn player, CriSint32 ms)
フェードアウト時間の設定
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
再生の開始
CriAtomExPlayerHn criAtomExPlayer_Create(const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size)
AtomExPlayerの作成
 
[備考]
デフォルト設定ではフェードインとフェードアウトは同じタイミングで開始されますが、 criAtomExPlayer_SetFadeInStartOffset 関数を使用することで、 フェードインとフェードアウトのタイミングをズラすことも可能です。
再生中の音声がフェードアウトしきってから次の音をフェードインさせたい場合や、 音声がフェードインしきってから前の音をフェードアウトさせたい場合等、 フェードインとフェードアウトのタイミングをズラしたい場合には、 criAtomExPlayer_SetFadeInStartOffset 関数を併用してください。