C# 索引异常-音频频谱问题
我不知道为什么:float val=spectrum[I];正在生成超出数组边界的索引。请帮忙。。。!我是这个游戏的初学者C# 索引异常-音频频谱问题,c#,C#,我不知道为什么:float val=spectrum[I];正在生成超出数组边界的索引。请帮忙。。。!我是这个游戏的初学者 public class InputScript : MonoBehaviour{ void Start() { float[] spectrum = new float[256]; AudioSource aud = GetComponent<AudioSource>(); aud.clip =
public class InputScript : MonoBehaviour{
void Start()
{
float[] spectrum = new float[256];
AudioSource aud = GetComponent<AudioSource>();
aud.clip = Microphone.Start(null, true, 10, 44100);
aud.Play();
float maxIndex = 0;
float maxValue = 0.0f;
for (int i = 0; i <= spectrum.Length; i++)
{
float val = spectrum[i];
if (val > maxValue)
{
maxValue = val;
maxIndex = i;
}
}
var freq = maxIndex * AudioSettings.outputSampleRate / 2 / spectrum.Length;
}
void Update()
{
float[] spectrum = new float[256];
AudioListener.GetSpectrumData(spectrum, 0, FFTWindow.Rectangular);
}
}
公共类InputScript:MonoBehavior{
void Start()
{
浮点[]频谱=新浮点[256];
AudioSource aud=GetComponent();
aud.clip=麦克风启动(null、true、1044100);
aud.Play();
float maxIndex=0;
浮点最大值=0.0f;
对于(int i=0;i maxValue)
{
maxValue=val;
maxIndex=i;
}
}
var freq=maxIndex*AudioSettings.outputSampleRate/2/spectrum.Length;
}
无效更新()
{
浮点[]频谱=新浮点[256];
GetSpectrumData(频谱,0,FFTWindow.矩形);
}
}
我应该能够从麦克风中提取输入的音调。在.net阵列中,索引从0到
频谱。长度
独占:
for (int i = 0; i < spectrum.Length; i++)
for(int i=0;i
问题在于:
for (int i = 0; i <= spectrum.Length; i++)
// ----------------^
这将解决您的问题。旁注的可能重复:我看不出您将值分配到
光谱的什么地方;根据您当前的代码float[]频谱=新的float[256]
是一个由256
零组成的数组:{0f,0f,0f,…,0f}
谢谢!我会试一试的!
for (int i = 0; i < spectrum.Length; i++)