Je cherche comment dessiner les ondes sonores en fonction de la musique.
Je veux des vagues comme cette image
voici une discussion sur l'affichage des ondes de la musique
Liens d'exemple Github
Mais sans avoir une idée de ce type d'ondes, est-il possible de dessiner des ondes comme cette image?
Avertissement: Une grande partie de cela a été découverte par essais et erreurs, je peux avoir de sérieuses fausses hypothèses en jeu ici:
Vous devez utiliser le framework AudioUnits. Lors de l'initialisation de la lecture, vous pouvez créer un AURenderCallbackStruct. Vous pouvez spécifier dans cette structure une fonction de rappel de lecture qui vous fournira quelques arguments qui contiendront les informations dont vous avez besoin.
la fonction de rappel aura une signature comme celle-ci:
static OSStatus recordingCallback (void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
Ici, il y a un tableau de données audio qui peut être utilisé pour obtenir l'amplitude du tampon audio pour chaque groupe de fréquences, ou pour calculer la valeur DB du groupe de fréquences.
Je ne sais pas ce que ce graphique montre, mais il me semble être un affichage lissé des amplitudes de chacun des casiers d'échantillonnage.
Les unités audio ne sont pas simples, mais cela vaut la peine de jouer pendant un certain temps jusqu'à ce que vous obteniez une prise en main.
Voici un squelette de ma fonction de rappel afin que vous compreniez mieux ce que je veux dire:
Moi aussi, j'essaie sincèrement depuis trois mois, mais je n'ai pas trouvé de solution. Pour le moment, j'ai utilisé des images statiques basées sur le type de chanson (chansons de données statiques). J'ai ajouté les images à un UIScrollView
et changé le contentOffset
en fonction de la position actuelle de l'audio.