CRI ADX  Last Updated: 2024-07-17 10:48 p
如何播放多个音频?
播放多个音频可以采用以下三种方法。


将多个声音集中到一个Cue中播放

CRI Atom Craft可以向一个Cue中输入多个声音波形数据。
为避免重叠,可以在时间轴创建按顺序播放的数据。
此外,也可以创建多个音轨,从而创建在时间轴上同时播放多个音频的数据。


详情请参照criatom_tools_tut_mtrk 。


优点

・可以按照声音设计师规划的时间和平衡执行播放。
・程序非常简单,只需对某一个Cue指示播放。


缺点

・如果无法按预期播放,则需要返回到数据制作进行调整。
(但在CRI Atom Craft中,可以一边预览一边调整,因此很少会在传递给程序员后重新调整。)


向一个Player发出多个播放请求

可以用一个AtomExPlayer执行多个播放请求。


具体代码如下。


/* 创建Player */
player = criAtomExPlayer_Create(NULL, NULL, 0);
/* 指定Cue ID和开始播放 */
criAtomExPlayer_SetCueId(player, acb_hn, CUEID_1);
/* 指定Cue ID和开始播放 */
criAtomExPlayer_SetCueId(player, acb_hn, CUEID_2);
/* 指定Cue ID和开始播放 */
criAtomExPlayer_SetCueId(player, acb_hn, CUEID_3);
CriAtomExPlaybackId criAtomExPlayer_Start(CriAtomExPlayerHn player)
Start the playback
CriAtomExPlayerHn criAtomExPlayer_Create(const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size)
Create an AtomEx player
void criAtomExPlayer_SetCueId(CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueId id)
Set the sound data to play (specifying a Cue ID)


关于详细信息,请参照示例程序“ Cue ID播放 ”。


优点

・可以在程序中自由更改播放时间和调整参数等。


缺点

・由于只有一个Player,因此无法在播放中控制每个声音。


创建多个Player,分别发出播放请求

具体代码如下。


/* 用Player1播放 */
player_1 = criAtomExPlayer_Create(NULL, NULL, 0);
criAtomExPlayer_SetCueId(player_1, acb_hn, CUEID_1);
/* 用Player2播放 */
player_2 = criAtomExPlayer_Create(NULL, NULL, 0);
criAtomExPlayer_SetCueId(player_2, acb_hn, CUEID_2);
/* 用Player3播放 */
player_3 = criAtomExPlayer_Create(NULL, NULL, 0);
criAtomExPlayer_SetCueId(player_3, acb_hn, CUEID_3);


优点

・可以在程序中自由更改播放时间和调整参数等。
・可以在播放期间对每个声音进行控制。


缺点

・由于要管理多个Player,因此程序会变得复杂。


Return:Tips