文档

支持

Vivox Unity SDK

Vivox Unity SDK

访问音频数据

Access and analyze audio data using Vivox Audio Taps.
阅读时间2 分钟最后更新于 13 天前

在某些用例中,分析 Audio Tap 提供的原始音频数据可能很有用。您可以创建一些实现
OnAudioFilterRead
方法的 MonoBehaviour C# 脚本,并将这些脚本添加到 Audio Source 游戏对象。将 C# 脚本添加到包含 Audio Tap 的 Audio Source 组件链后,该脚本将接收 Audio Tap 提供的所有音频。以下示例是接收音频数据的名为
AudioAnalyzer
的类:
using UnityEngine;public class AudioAnalyzer : MonoBehaviour{ private void OnAudioFilterRead(float[] data, int channels) { // Do something with the audio contained in the data array }}
在下图中,您可以在 Audio Source 组件链中 Vivox Channel Audio 之后找到
AudioAnalyzer
类,使 Vivox Channel Audio Tap 音频在 Audio Analyzer 脚本中可用:
Unity 编辑器 Inspector 窗口的屏幕截图,其中显示了 Audio Tap 组件。

Unity 编辑器 Inspector 窗口的屏幕截图,其中显示了 Audio Tap 组件。

请注意,将组件添加到音频源游戏对象时,顺序很重要。如果要将不同类中的两个
OnAudioFilterRead
实现添加到游戏对象,则会按顺序从上到下调用每个实现。这一点不适用于 Audio Tap,因为无论 Audio Tap 在链中的位置如何,它们的音频都是在链的最开始提供。
要从原生代码访问原始音频数据,请参阅 Unity 的原生音频插件 SDK 文档

共存的音频系统

Unity 和 Vivox 具有共存的音频系统。 向游戏添加 Audio Tap 时,Tap 音频将通过 Unity 的音频引擎播放,而不是通过 Vivox 的独立音频系统播放。这种情况下,在 Vivox 中设置用于渲染音频的设备可能与 Unity 设置使用的设备不同。由于 Unity 接管了 Tap 音频渲染任务,因此您需要确保 Unity 用于渲染的设备是您期望的设备。 当仅使用 Participant Tap 时,Channel Audio 输出仍从 Vivox 的音频系统播放,而通过音频源播放的 Participant Tap 使用 Unity 的音频系统。