2010-04-26 4 views
1

J'essaye de faire une animation audio-sensible, et à cette fin, je cherche un moyen de rechercher le niveau audio actuel. Je cherche le pic dans un laps de temps défini. (Pensez à la barre rouge qui reste allumée pendant une seconde environ, sur un audiomètre.)Lire le pic du niveau d'entrée audio dans Cocoa

J'ai cherché quelque chose comme ça, et la seule chose que j'ai pu trouver était comment lire les niveaux audio d'un film. , et comment Quartz Compositions ont accès à ce à travers leur protocole iTunes Visualizer.

Je cherche un moyen de lire ceci à partir du microphone, bien que je sois également intéressé si vous savez lire ceci à partir d'un fichier audio.

Merci!

Répondre

0

Vous pouvez utiliser les services AudioQueue pour enregistrer des tampons, puis utiliser une boucle for sur chaque échantillon 16 bits pour rechercher le pic. Vous pouvez faire la même chose pour la sortie.

2

Take a look here. Vous souhaitez utiliser l'une des méthodes 'détecteur d'enveloppe' ou 'suiveur de pic simple'.

Si vous faites cela, tôt ou tard, vous aurez besoin d'un autre algorithme de ce site.

+0

Bien que ce lien semble avoir des informations très utiles, je ne sais pas comment l'utiliser dans Cocoa. –

+0

L'autre réponse indique comment obtenir les données de l'échantillon, puis vous utilisez ces algorithmes pour calculer les lectures des compteurs. Il peut y avoir une conversion de type requise. –

2

Je cherchais la même chose et suis tombé sur votre message. J'ai trouvé la réponse. Vous avez besoin d'une QTCaptureConnection à un périphérique audio puis vous pouvez surveiller l'attribut QTCaptureConnectionAudioAveragePowerLevelsAttribute de la connexion. Voir cet exemple de projet pour montrer les détails: here

Questions connexes