Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public static void GetSpectrumData(float[] samples, int channel, FFTWindow window);

Параметры

samples Массив для заполнения аудиосэмплами. Его длина должна быть степенью числа 2.
channel Канал для выборки.
window Тип FFTWindow для использования при выборке.

Описание

Предоставляет блок данных спектра слушателя (мастера).

Массив, указанный в параметре Samples, будет заполнен запрошенными данными.

Количество значений (длина массива образцов) должно быть степенью числа 2 (например, 128/256/512 и т. д.). Мин. = 64. Макс. = 8192. Используйте окно, чтобы уменьшить утечку между частотными элементами/диапазонами. Обратите внимание: чем сложнее тип окна, тем выше качество, но ниже скорость.

Эта функция будет использовать частоту дискретизации, указанную в AudioSettings.outputSampleRate, а НЕ частоту дискретизации, указанную для аудиоклипа.

Смотрите так же: AudioListener.GetOutputData, AudioSource.GetSpectrumData, AudioSource.GetOutputData.

using UnityEngine; [RequireComponent(typeof(AudioListener))] public class GetSpectrumDataExample : 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); } } }
Устаревший GetSpectrumData, возвращающий float[], устарел, используйте GetSpectrumData и вместо этого передайте предварительно выделенный массив.

Объявление

public static float[] GetSpectrumData(int numSamples, int channel, FFTWindow window);

Параметры

numSamples Количество значений (длина массива образцов). Должно быть степенью 2. Мин. = 64. Макс. = 8192..
channel Канал для выборки.
window Тип FFTWindow для использования при выборке.

Описание

Устаревшая версия. Возвращает блок данных спектра слушателя (мастера).

Этот вариант функции выделяет новый массив при каждом вызове. Вместо этого используйте версию без распределения для повышения производительности.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3