UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
AudioSource.GetSpectrumData
# [AudioSource](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioSource.html).GetSpectrumData public void **GetSpectrumData** (float[] **samples**, int **channel**, [FFTWindow](https://docs.unity3d.com/cn/2019.4/ScriptReference/FFTWindow.html) **window**); ## 参数 | samples | 用于填充音频样本的数组。其长度必须为 2 的幂数。 | | --------- | ------------------------------------------------- | | channel | 用于采样的声道。 | | window | 采样时使用的 FFTWindow 类型。 | ## 描述 提供当前播放音频源的频谱数据块。 将向 samples 参数指定的数组填充请求的数据。 值的数量(提供的样本数组的长度)必须为 2 的幂数,即 128/256/512 等。最小值为 64,最大值为 8192。 使用 [window](https://docs.unity3d.com/cn/2019.4/ScriptReference/FFTWindow.html) 可减少频点/频带之间的泄漏。 注意,窗口类型越复杂,音质越好,但会降低速度。 该函数将使用 [AudioSettings.outputSampleRate](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioSettings-outputSampleRate.html) 中指定的采样率,而不是为音频剪辑指定的采样率。 另请参阅:[AudioSource.GetOutputData](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioSource.GetOutputData.html)、[AudioListener.GetSpectrumData](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioListener.GetSpectrumData.html)、[AudioListener.GetOutputData](https://docs.unity3d.com/cn/2019.4/ScriptReference/AudioListener.GetOutputData.html)。 ``` using UnityEngine; [RequireComponent(typeof(AudioSource))] public class AudioSourceGetSpectrumDataExample : MonoBehaviour { void Update() { float[] spectrum = new float[256]; AudioListener.GetSpectrumData(spectrum, 0, FFTWindow.Rectangular); for (int i = 1; i < spectrum.Length - 1; i++) { Debug.DrawLine(new Vector3(i - 1, spectrum[i] + 10, 0), new Vector3(i, spectrum[i + 1] + 10, 0), Color.red); Debug.DrawLine(new Vector3(i - 1, Mathf.Log(spectrum[i - 1]) + 10, 2), new Vector3(i, Mathf.Log(spectrum[i]) + 10, 2), Color.cyan); Debug.DrawLine(new Vector3(Mathf.Log(i - 1), spectrum[i - 1] - 10, 1), new Vector3(Mathf.Log(i), spectrum[i] - 10, 1), Color.green); Debug.DrawLine(new Vector3(Mathf.Log(i - 1), Mathf.Log(spectrum[i - 1]), 3), new Vector3(Mathf.Log(i), Mathf.Log(spectrum[i]), 3), Color.blue); } } } ``` --- Obsolete public float[] **GetSpectrumData** (int **numSamples**, int **channel**, [FFTWindow](https://docs.unity3d.com/cn/2019.4/ScriptReference/FFTWindow.html) **window**); ## 参数 | numSamples | 要检索的样本数。必须为 2 的幂数。 | | ------------ | ----------------------------------- | | channel | 用于采样的声道。 | | window | 采样时使用的 FFTWindow 类型。 | ## 描述 *已弃用的版本* 。返回当前播放源的频谱数据块。 该函数变体在每次调用时分配一个新的数组。为获得更好的性能,请使用无分配版本。 值的数量 (numSamples) 必须为 2 的幂数,即 128/256/512 等。最小值为 64,最大值为 8192。 使用 [window](https://docs.unity3d.com/cn/2019.4/ScriptReference/FFTWindow.html) 可减少频点/频带之间的泄漏。 注意,窗口类型越复杂,音质越好,但会降低速度。
da
2022年5月24日 10:05
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码