以下代码播放动态序列(Dynamic Sequence)中的一个对白事件:
#include <AK/SoundEngine/Common/AkDynamicDialogue.h> #include <AK/SoundEngine/Common/AkDynamicSequence.h> (...) { // 使用适合的游戏对象打开动态序列。 AkPlayingID sequenceID = AK::SoundEngine::DynamicSequence::Open( GAME_OBJECT_ID_HUMAN ); // 将单个对白事件添加到动态序列的播放列表中。 { // 根据指定的变量路径将对白事件解析到音频节点 ID 中。 const char * argPath[3] = { // 按照变量的顺序: "Unit_A", // "单元" "RescueHostage", // "对象" "Completed" }; // "对象状态" AkUniqueID nodeID = AK::SoundEngine::DynamicDialogue::ResolveDialogueEvent( "Objective_Status", argPath, 3 ); // 将音频节点 ID 添加到动态序列播放列表中。 AK::SoundEngine::DynamicSequence::Playlist * pPlaylist = AK::SoundEngine::DynamicSequence::LockPlaylist( sequenceID ); pPlaylist->Enqueue( nodeID ); AK::SoundEngine::DynamicSequence::UnlockPlaylist( sequenceID ); } // 播放动态序列。 AK::SoundEngine::DynamicSequence::Play( sequenceID ); // 关闭动态序列。动态序列一直播放到结束,然后 // 自动取消内存分配。 AK::SoundEngine::DynamicSequence::Close( sequenceID ); }
请参阅 集成详情——动态对白 了解更多信息。