版本

menu_open
警告:系统已根据您所用大版本 (2021.1.14.8108) 自动跳转至最新文档。若想访问特定版本的文档,请从 Audiokinetic Launcher 下载离线文档,并在 Wwise 设计程序中勾选 Offline Documentation 选项。
Wwise SDK 2021.1.14
在 Wwise 插件中使用 Wwise Authoring API

调用远程程序

Wwise Authoring API 可以用来从 Wwise 插件内使用 AK::Wwise::Plugin::Host::WaapiCall() 的方法发出远程程序调用。 此方法由 Host 组件提供,可通过从 AK::Wwise::Plugin::RequestHost 继承来发送相应请求。

备注:AK::Wwise::Plugin::Host::WaapiCall() 方法的调用总是阻塞的。

提供了工具类,供调用者提供内存分配的策略。AK::Wwise::Mallocator 使用来自 C 库的函数(如 mallocfreerealloc)提供默认实现。不过,也可通过定义类来实现 AK::IAkPluginMemAlloc,以此轻松提供自定义策略。最终,封装类 AK::Wwise::SafeAllocator 被用于保证类型安全和自动内存管理。

示例:

#include <rapidjson/document.h>
// 为结果和错误使用默认分配策略
AK::Wwise::SafeAllocator<char> szResults(&alloc);
// 对 Wwise Authoring API 发出远程程序调用
m_host.WaapiCall("ak.wwise.core.getInfo", NULL, NULL, alloc, szResults, szError);
if (!szError)
{
// Parse the results JSON string
rapidjson::Document results;
results.Parse(szResults);
// ...
}
#include <rapidjson/document.h>
#include <rapidjson/stringbuffer.h>
#include <rapidjson/writer.h>
// 为结果和错误使用默认分配策略
AK::Wwise::SafeAllocator<char> szResults(&alloc);
// 建立一个包含该程序参数的 JSON 对象
rapidjson::Document args;
args.SetObject();
args.AddMember("classId", 8192003, args.GetAllocator());
args.AddMember("property", "ModDepth", args.GetAllocator());
// 对 JSON 对象进行字符串化
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
args.Accept(writer);
// 对 Wwise Authoring API 发出远程程序调用
m_host.WaapiCall("ak.wwise.core.plugin.getProperty", buffer.GetString(), NULL, alloc, szResults, szError);
if (!szError)
{
// Parse the results JSON string
rapidjson::Document results;
results.Parse(szResults);
// ...
}
备注: 这里用到的 RapidJSON 只是出于演示目的,并不是必须的库。

请参阅 设计工具插件库格式 了解 Wwise plug-ins 的更多详情。

#define NULL
Definition: AkTypes.h:47

此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅