版本
menu_open

终止声音引擎的不同模块

简介

当游戏准备退出且不再需要音频时,就可以终止先前已经初始化的所有模块。我们的示例程序使用以下函数,来将所有终止代码重新组合:

void TermSoundEngine()
{
    ... 以下是模块终止代码 ...
}

终止各模块时,将按初始化的相反顺序进行。

终止通信模块

如果通信模块已经初始化,就要首先被终止:

void TermSoundEngine()
{
#ifndef AK_OPTIMIZED
    //
    // 终止通信服务
    //
    AK::Comm::Term();
#endif // AK_OPTIMIZED

    (...)
}
Caution.gif
Caution: 在其他模块 之前先终止通信模块非常重要。

终止音乐引擎

如果音乐引擎已被初始化,则应先于声音引擎被终止。

void TermSoundEngine()
{
    (...)
    
    //
    // 终止音乐引擎
    //
    
    AK::MusicEngine::Term();
    
    (...)
}

终止声音引擎

然后终止声音引擎本身:

void TermSoundEngine()
{
    (...)
    
    //
    // 终止声音引擎
    //
    
    AK::SoundEngine::Term();
    
    (...)
}

终止 Streaming Manager (流播放管理器)

接下来终止 Streaming Manager 和 Low-Level I/O:

void TermSoundEngine()
{
    (...)
    
    // 终止流播放设备和流播放管理器
    
    // CAkFilePackageLowLevelIOBlocking::Term() 销毁 Stream Manager 中
    // 与其相关的流播放设备,并注销自己的 File Location Resolver 身份。
    g_lowLevelIO.Term();
    
    if ( AK::IAkStreamMgr::Get() )
        AK::IAkStreamMgr::Get()->Destroy();
    
    (...)
}

终止 Memory Manager(内存管理器)

现在 Memory Manager 的所有使用者都已终止,到了终止 Memory Manager 本身的时候了:

void TermSoundEngine()
{
    (...)
    
    // 终止 Memory Manager
    AK::MemoryMgr::Term();
}

与声音引擎相关的一切模块都已终止,已经可以退出程序了。请继续参阅 将 Wwise 元素集成到游戏中


此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅