CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
获取输出波形

范例内容

概要

获取音频输出的波形数据并进行可视化的脚本范例。

cri4u_samples_criatom_script06_main.png

操作方法

不存在可以操作的地方。

场景信息


中间件 CRI ADX (CRI Atom)
范例 脚本范例:获取输出波形
存储位置 /CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/criatom/script/ScriptSample06_OutputCapture/Scenes
场景文件 ScriptSample06_OutputCapture.unity
ADX数据的原始数据 数据:简易的音乐交叉淡入淡出


程序说明

实时获取并显示音频输出的波形数据的脚本范例。
PCM数据值反映在立方体的Y轴位置上,创建波形图的形状。
要播放的音乐指定在范例脚本中,在脚本执行开始时播放。

波形数据获取脚本

音频输出的波形数据可通过ADX的音频输出数据解析功能获取。
通过脚本文件WaveMeter.cs实际演示了该方法。
具体步骤如下:

  1. 用适当的设置参数对CriAtomExOutputAnalyzer进行初始化。
    • 将构件CriAtomExOutputAnalyzer.Config的成员enablePcmCapture指定为true,指定为想要获取numCapturedPcmSamples的数据长度(范例数量)。
    • 将设置好的Config构件传递到CriAtomExOutputAnalyzer的构造函数,进行初始化。

  2. 播放音频前,在CriAtomExPlayer上附加音频数据解析模块。
    • 使用CriAtomExOutputAnalyzer.AttachExPlayer(CriAtomExPlayer)。
    • 也可以附加在DSP总线上。此时使用CriAtomExOutputAnalyzer.AttachDspBus(string busName)。
    • 播放开始后的附加将失败。

  3. 播放期间使用GetPcmData函数获取波形数据,进行可视化。
    • 用Update()等执行CriAtomExOutputAnalyzer.GetPcmData(ref float[] pcmData, int channelId),在指定频道的同时,获取PCM数据。
    • PCM数据作为浮动数组输出至参照参数。
    • 如作为参照参数传递的输出用pcmData数组的长度(1)低于在设置的numCapturedPcmSamples,则将重新分配GetPcmData内的内存空间。为避免不必要的GC,请事先确保长度超过numCapturedPcmSamples的数组。

注意
脚本执行结束时等不再需要输出音频数据解析功能时,按顺序执行CriAtomExOutputAnalyzer.DetachExPlayer() (附加在DSP总线上时为DetachDspBus)、CriAtomExOutputAnalyzer.Dispose()函数,将实例丢弃掉。