CRI ADX  Last Updated: 2025-05-07 13:34 p
Synchronizing the Start of Playback

Sample directory

/cri/pc/samples/criatomex/pause_playback

Data used in the sample

/cri/common/smpdata/criatomex/
  • SampleAdxPack.awb

Sample description

If you want to synchronize the start of multiple streaming playbacks, use the criAtomExPlayer_Prepare function.
Using the criAtomExPlayer_Prepare function will prepare for playback to start immediately before it can be pronounced.


You can confirm that playback preparation is complete when the playback ID status becomes CRIATOMEXPLAYBACK_STATUS_PLAYING .
(The status when playback cannot start is CRIATOMEXPLAYBACK_STATUS_PREP .)
The playback ID can be obtained as the return value of the criAtomExPlayer_Prepare function, so please keep it in your application.


After playback preparation is complete, to actually start playback, use the criAtomExPlayback_Pause function to cancel the pause for the playback ID.
CriAtomExPlayeBackId playback_id; /* Playback ID */
/* Prepare playback */
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_THUNDER1);
playback_id = criAtomExPlayer_Prepare(player);
for(;;) {
CriAtomExPlaybackStatus playback_status;
sleep(1);
playback_status = criAtomExPlayback_GetStatus(playback_id);
if (playback_status == CRIATOMEXPLAYBACK_STATUS_PLAYING) {
/* Playback is ready */
break;
}
}
/* Start playback (resume playback ID) */
criAtomExPlayback_Pause(playback_id, CRI_FALSE);
void criAtomEx_ExecuteMain(void)
Execute the server processing.
CriAtomExPlaybackStatus criAtomExPlayback_GetStatus(CriAtomExPlaybackId id)
Get the playback status.
void criAtomExPlayback_Pause(CriAtomExPlaybackId id, CriBool sw)
Pause/resume the sound.
enum CriAtomExPlaybackStatusTag CriAtomExPlaybackStatus
Playback status.
@ CRIATOMEXPLAYBACK_STATUS_PLAYING
Definition: cri_le_atom_ex.h:4180
CriAtomExPlayerObj * CriAtomExPlayerHn
Player handle.
Definition: cri_le_atom_ex.h:3622
CriAtomExPlaybackId criAtomExPlayer_Prepare(CriAtomExPlayerHn player)
Prepare the playback.
void criAtomExPlayer_SetCueId(CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueId id)
Set the sound data to play (specifying a Cue ID)


When you want to synchronize playback start timing, use one player and prepare playback for multiple Voices, then resume the player to start playback together.
In this case, you can determine whether playback is ready or not by checking the status of CriAtomExPlayerHn .
/* Prepare playback */
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_THUNDER1);
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_THUNDER2);
criAtomExPlayer_SetCueId(player, acb_hn, CRI_ATOMCUESHEET_THUNDER3);
for(;;) {
CriAtomExPlayerStatus player_status;
sleep(1);
player_status = criAtomExPlayer_GetStatus(player);
if (player_status == CRIATOMEXPLAYER_STATUS_PLAYING) {
/* Playback is ready */
break;
}
}
/* Start playback together (synchronize start timing) */
criAtomExPlayer_Pause(player, CRI_FALSE);
CriAtomExPlayerStatus criAtomExPlayer_GetStatus(CriAtomExPlayerHn player)
Get the player status.
enum CriAtomExPlayerStatusTag CriAtomExPlayerStatus
Player status.
void criAtomExPlayer_Pause(CriAtomExPlayerHn player, CriBool sw)
Pause/resume.
@ CRIATOMEXPLAYER_STATUS_PLAYING
Definition: cri_le_atom_ex.h:3669