Silverlight 오디오 레코더 제작 방법에 대해서는 this tutorial을 따르고있었습니다. 나는 무슨 일이 일어나고 있는지에 대한 피드백을 사용자에게 제공하기 위해 볼륨 바 표시기를 추가하는 것이 좋을 것이라고 생각했다. 그러나, 나는 제대로 작동하지 않을 것 같습니다.Silverlight 4에서 마이크 사운드/압력 수준을 시각화하는 방법은 무엇입니까?
OnSamples AudioSink 클래스의 메소드는 원시 PCM 데이터를 인수 중 하나로 제공합니다. 또한 AudioFrameSize 속성은 AudioCaptureDevice을 40 (1000/40 == 25fps)으로 설정하므로 OnSamples가 40ms마다 트리거됩니다.
제 질문은 PCM 데이터에서 사운드 볼륨 정보를 추출하고 진행률 표시 줄 [0-100]에 백분율로 표시하는 방법입니다. 진행률 표시 줄의
double average = 0;
for (int a = 0; a < sampleData.Length; ++a)
{
average += Math.Abs(sampleData[a]);
}
average /= sampleData.Length;
double volume = 20 * Math.Log10(average);
값은 다음 볼륨으로 설정됩니다 :
이progressBar.Value = volume;
내 코드가 분명히 작동하지 않습니다, 이후
이
내가 지금까지 무엇을 가지고 볼륨 값은 거의 항상 같은 수준입니다.도움을 주시면 감사하겠습니다. 와