Visualizer.GetFft(Byte[]) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne une capture de fréquence du contenu audio en cours de lecture.
[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
Paramètres
- fft
- Byte[]
tableau d’octets où le FFT doit être retourné
Retours
#SUCCESS
en cas de réussite, #ERROR_NO_MEMORY
#ERROR_INVALID_OPERATION
ou #ERROR_DEAD_OBJECT
en cas d’échec.
- Attributs
Exceptions
Remarques
Retourne une capture de fréquence du contenu audio en cours de lecture.
Cette méthode doit être appelée lorsque le visualiseur est activé.
La capture est une FFT de 8 bits, la plage de fréquence couverte étant de 0 (DC) à la moitié du taux d’échantillonnage retourné par #getSamplingRate()
. La capture retourne les parties réelles et imaginaires d’un nombre de points de fréquence égal à la moitié de la taille de capture plus une.
Remarque : seule la partie réelle est retournée pour le premier point (DC) et le dernier point (fréquence d’échantillonnage / 2).
La disposition du tableau d’octets retourné est la suivante : <ul><li> n est la taille de capture retournée par getCaptureSize()</li li>>< Rfk, Ifk est respectivement les parties réelles et imaginaires du composant< de fréquence kth/li> Li<>If Fs est la fréquence d’échantillonnage retunée par getSamplingRate() la fréquence kth est : k * Fs / n </li<>/ul<>table 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 td...><></p></><td td>n - 2 </p></td td>><n - 1 </p></td></tr tr><><td>Data </p></td<>>rf0 </p></td td<>>Rf(n/2) </p></td<>td>Rf1 </p/td td If1 </p></><>td>><rf2 /p></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>
Pour obtenir des valeurs de magnitude et de phase, le code suivant peut être utilisé :
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]);
}
Documentation Java pour android.media.audiofx.Visualizer.getFft(byte[])
.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.