1 2 3 4 5 6 7 8 9 10 11 12 13 14
| begin
ttimer(sender).Enabled := false; // arrêter le timer, le temps de traiter l'évènement
ChannelVolumes[0] := 0; // assurer que le tableau est bien lis à zéro
ChannelVolumes[1] := 0;
// suppression de cette ligne
// pVolumes := pSingle(@ChannelVolumes[0]); // créer le pointeur vers le début du tableau
// si j'ai bien compris la documentation de MSDN, la méthode GetChannelsPeakValues prens 2 paramètres:
// le premier donne le nombre de canaux (deux dans mon cas, et j'ai vérifié le contenu de la variab
peak.GetPeakValue(Temp); // prendre la valeur instantané du volume global, résultat dans Temp ==> correct !
// pour un passage direct et là ça fonctionne ;)
HR := peak.GetChannelsPeakValues(nChannels, pSingle(ChannelVolumes[0])); // prendre les valeurs instantanées des deux canaux <========== Seul [1] est retourné, [2] reste à zéro !
// un pointeur vers le premier élément d'un tableau de flottants (de type Single)
// la méthode est supposé remplir le tableau avec les deux valeurs... |