Version: 5.4
Method group is Obsolete
GetSpectrumData returning a float[] is deprecated, use GetOutputData and pass a pre allocated array instead.

AudioListener.GetSpectrumData

マニュアルに切り替える
public static void GetSpectrumData (float[] samples, int channel, FFTWindow window);

パラメーター

samples オーディオサンプルとともに格納する配列です。その長さは 2 の累乗でなければなりません。
channel サンプルする元のチャンネル
window サンプリング時に使用する FFTWindow のタイプ

説明

リスナー(マスター)のスペクトルデータのブロックを取得します。

サンプルのパラメーターで指定された配列は、リクエストされたデータで埋められます。

Number of values (the length of the samples array) must be a power of 2. (ie 128/256/512 etc). Min = 64. Max = 8192. Use window to reduce leakage between frequency bins/bands. Note, the more complex window type, the better the quality, but reduced speed.

この関数は、オーディオクリップに指定されたサンプリングレートではなく、 AudioSettings.outputSampleRate で指定されたサンプリングレートを使用します。

See Also: 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 ); } } }

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

パラメーター

numSamples 値の数 (サンプル配列の長さ) は常に 2 のべき乗である必要があります。最小が 64 で最大が 8192 です。
channel サンプルする元のチャンネル
window サンプリング時に使用する FFTWindow のタイプ

説明

非推奨バージョン リスナー (マスター) のスペクトルデータのブロックを取得します。

この関数のバリエーションは、呼び出されるたびに新しい配列を割り当てます。パフォーマンスを向上させるには、代わりに Non-alloc バージョンを使用してください。