web-dev-qa-db-fra.com

Génération d'une forme d'onde à partir de n'importe quel fichier musical iOS

Je cherche comment dessiner les ondes sonores en fonction de la musique.

Je veux des vagues comme cette image

enter image description here

voici une discussion sur l'affichage des ondes de la musique

  1. WaveForm sur IOS
  2. rendu d'une forme d'onde sur un iphone
  3. visualisation de la forme d'onde audio avec iPhone

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?

25
Vishal Khatri

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:

EDIT: lien mort supprimé, j'ai perdu ce code désolé

4
JConway

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.

3
Tendulkar