CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
[CriAtom] 估算Android设备的声音播放的延迟时间
范例内容
概述
此范例演示了如何估算在Android设备运行中的应用程序,其声音播放的延迟时间。
该范例场景的步骤如下。
开始延迟估算
延迟估算将异步执行
获取延迟估算的信息并将其显示在屏幕上(执行状态以及估计数值)
结束延迟估算
注意
该范例并不是为了提供低延迟声音播放而设计的。请同时参照
安卓的低延迟声音回放
。
操作方法
[Estimator Status ] 标签
显示了延迟估算的执行状态。一共有四种状态。初始状态为"Stop"。
如需了解关于状态的详细信息,请参照
CriWare.CriAtomExLatencyEstimator.Status
枚举符。
[Estimated Latency [msec]] 标签
显示延迟估算的结果(估计数值)。单位为毫秒。
[Initialize Estimator ] 按钮
初始化并开始延迟估算。
[Finalize Estimator] 按钮
结束延迟估算。
场景信息
中间件
CRI ADX (CRI Atom)
范例
进阶范例
存储路径
/CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/criatom/advanced/
场景文件
Scene_05_EstimateSoundLatency.unity
程序说明
获取执行结果的方法
CriWare.CriAtomExLatencyEstimator.GetCurrentInfo
函数用于获取结果。
该范例使用以下代码来获取这些数值。
void
Update()
{
info = CriAtomExLatencyEstimator.GetCurrentInfo();
}
info是
CriWare.CriAtomExLatencyEstimator.EstimatorInfo
结构体变量。它被保持为该范例场景类的private成员,并使用以下代码在标签中显示。
GUILayout.Label(
"Estimator Status : "
+ info.status);
// 显示延迟估算的执行状态的成员
GUILayout.Space(16);
GUILayout.Label(
"Estimated Latency[msec]: "
+ info.estimated_latency);
// 显示延迟估算结果(毫秒)的成员
GUILayout.Space(16);
当估算完成时,状态将变成 "Done",可以获取执行结果的估算数值(大于0)。
当状态不是"Done"时,估算数值则为0。
注意
估算数值将根据Atom文件库的初始设定而产生变化。
您可以更改配置于该范例场景的
CriWare.CriWareInitializer
组件的初始设定,并且重新加载场景来确认变化。
初始化
使用
CriWare.CriAtomExLatencyEstimator.InitializeModule
函数来初始化。
该范例使用以下代码来初始化。
if
(Scene_00_GUI.Button(
"Initialize Estimator"
, option)) {
if
(!is_initialized) {
// 开始延迟估算
CriAtomExLatencyEstimator.InitializeModule();
is_initialized =
true
;
}
}
该范例包含阻止多次初始化的is_initialized标记。
调用InitializeModule函数时,将初始化并开始延迟估算。
开始执行延迟估算时,状态将变为"Processing"。延迟将被异步估算。
结束
使用
CriWare.CriAtomExLatencyEstimator.FinalizeModule
函数来结束。
该范例使用以下代码来结束。
if
(Scene_00_GUI.Button(
"Finalize Estimator"
, option)) {
if
(is_initialized) {
// 结束延迟估算
CriAtomExLatencyEstimator.FinalizeModule();
is_initialized =
false
;
}
}
FinalizeModule函数是同步函数。
当调用该函数时,延迟估算将停止异步处理并且移至"Stop"状态。
Copyright (c) CRI Middleware Co., Ltd. 1.8.10