CRI ADX  Last Updated: 2024-07-17 10:48 p
交叉渐变播放

示例目录

/cri/pc/samples/criatomex/crossfade_playback


示例描述

通过为AtomExPlayer附加(安装)“渐变器”,可以自动实现渐入和渐出、 交叉渐变等时间系列的音量控制。
渐入步骤
如果想要渐入音频(在静音状态开始播放后,逐渐提高音量), 处理步骤如下。
  1. 使用::criAtomExPlayer_Create函数创建AtomExPlayer。
  2. 使用::criAtomExPlayer_AttachFader函数为AtomExPlayer附加渐变器。
  3. 使用::criAtomExPlayer_SetFadeInTime函数指定渐入时间。
  4. 使用::criAtomExPlayer_SetCueId函数等为AtomExPlayer设置要渐入播放的音频数据。
  5. 使用::criAtomExPlayer_Start函数开始播放。
通过以上的操作,自动控制音量,使得用::criAtomExPlayer_Start函数播放的音频 在用::criAtomExPlayer_SetFadeInTime函数指定的时间 达到最大音量。
渐出步骤
如果想要渐出正在播放的声音(逐渐降低音量,在达到静音状态时停止播放), 处理步骤如下。
  1. 使用::criAtomExPlayer_SetFadeOutTime函数指定渐出时间。
  2. 使用::criAtomExPlayer_Stop函数停止播放。
通过以上的操作,自动控制音量,使得正在播放的声音在用::criAtomExPlayer_SetFadeOutTime函数指定的时间静音。
交叉渐变步骤
在使用::criAtomExPlayer_SetFadeInTime函数和::criAtomExPlayer_SetFadeOutTime函数指定了渐入/渐出时间的状态下, 重复执行::criAtomExPlayer_Start函数,将在每次执行::criAtomExPlayer_Start函数时,渐出正在播放的声音, 渐入新的声音。
/* 创建Player */
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)
Attach a fader to a player
void criAtomExPlayer_SetFadeInTime(CriAtomExPlayerHn player, CriSint32 ms)
Set the fade-in time
void criAtomExPlayer_SetFadeOutTime(CriAtomExPlayerHn player, CriSint32 ms)
Set the fade-out time
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
Start the playback
CriAtomExPlayerHn criAtomExPlayer_Create(const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size)
Create an AtomEx player
 
[备注]
预设情况下,渐入和渐出同时开始, 但可以通过使用::criAtomExPlayer_SetFadeInStartOffset函数, 错开渐入和渐出的时间。
想要在正在播放的声音完全渐出后再渐入下一个声音, 或想要在声音完全渐入后再渐出上一个声音, 希望错开渐入和渐出的时间时, 请同时使用::criAtomExPlayer_SetFadeInStartOffset函数。


示例使用的数据中AtomCraft项目的目录

/cri/tools/criatomex/examples/tutorial_data_for_runtime