Visualizer.GetFft(Byte[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 재생 중인 오디오 콘텐츠의 빈도 캡처를 반환합니다.
[Android.Runtime.Register("getFft", "([B)I", "GetGetFft_arrayBHandler")]
public virtual Android.Media.Audiofx.VisualizerStatus GetFft (byte[]? fft);
[<Android.Runtime.Register("getFft", "([B)I", "GetGetFft_arrayBHandler")>]
abstract member GetFft : byte[] -> Android.Media.Audiofx.VisualizerStatus
override this.GetFft : byte[] -> Android.Media.Audiofx.VisualizerStatus
매개 변수
- fft
- Byte[]
FFT를 반환해야 하는 바이트 배열
반환
#SUCCESS
성공 #ERROR_NO_MEMORY
#ERROR_INVALID_OPERATION
또는 #ERROR_DEAD_OBJECT
실패의 경우
- 특성
예외
설명
현재 재생 중인 오디오 콘텐츠의 빈도 캡처를 반환합니다.
시각화 도우미를 사용할 때 이 메서드를 호출해야 합니다.
캡처는 8비트 크기의 FFT이며, 0(DC)에서 반환 #getSamplingRate()
된 샘플링 속도의 절반까지의 빈도 범위입니다. 캡처는 캡처 크기의 절반에 1을 더한 여러 빈도 지점의 실제 부분과 가상 부분을 반환합니다.
참고: 첫 번째 지점(DC) 및 마지막 지점(샘플링 빈도/2)에 대해 실제 부분만 반환됩니다.
반환된 바이트 배열의 레이아웃은 다음과 같습니다. ul>li n은 getCaptureSize()</li li>>< Rfk에서 반환된 캡처 크기입니다. Ifk는 각각 kth frequency component</li li>><의 실제 및 허수 부분인 경우 Fs가 getSamplingRate()에 의해 조정된 샘플링 빈도인 경우 kth 주파수는 k * Fs / n </li<>/ul><table border="0" cellspacing="0" cellpadding="0"><tr tr><td>Index입니다.><<
</td><td>0 </p></td td>><1 </p></td><td>2 </p></td<>td>3 </p></td<>td>4 </p></td td<>>5 </p></td td... <><>/p></td td>><n - 2 </p></td td><>n - 1 </p></td></tr tr><td><>Data </p></td td><>Rf0 </p></td td>><Rf(n/2) </p></td td>><Rf1 /p></td td><>If1 <</p></td td><>Rf2 </p/td td>If2 </p><></td<>td td... <><>/p></td td><>Rf(n/2-1) </p></td td><>If(n/2-1) </p></td></tr></table>
크기 및 위상 값을 얻기 위해 다음 코드를 사용할 수 있습니다.
int n = fft.size();
float[] magnitudes = new float[n / 2 + 1];
float[] phases = new float[n / 2 + 1];
magnitudes[0] = (float)Math.abs(fft[0]); // DC
magnitudes[n / 2] = (float)Math.abs(fft[1]); // Nyquist
phases[0] = phases[n / 2] = 0;
for (int k = 1; k < n / 2; k++) {
int i = k * 2;
magnitudes[k] = (float)Math.hypot(fft[i], fft[i + 1]);
phases[k] = (float)Math.atan2(fft[i + 1], fft[i]);
}
에 대한 android.media.audiofx.Visualizer.getFft(byte[])
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.