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 周波数成分</li li><> の実数部と虚数部です。Fs が getSamplingRate() によって再チューニングされたサンプリング周波数である場合、k 番目の周波数は k * Fs / n </li></ul><テーブル border="0" cellspacing="0" cellpadding="0"<>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><td>Rf0 </p></td td><Rf>(n/2) </p></td><td>Rf1 </p></td<>td>If1 </p></td<>td td>Rf2 </p></td 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]);
}
の Java ドキュメントandroid.media.audiofx.Visualizer.getFft(byte[])
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。