2011-05-23 1 views
1

Im Utilisation de MixerHostAudio pour charger plusieurs fichiers audio en même temps.Comment implémenter la mise en mémoire tampon dans le mélangeur multicanal sur iOS?

Je ne peux pas charger les fichiers entiers à la mémoire parce que l'APP CRASHES! Est-ce que quelqu'un peut m'aider à implémenter un Algorythme pour Buffering thesae?

Ou au moins pointez-moi un exemple?

j'ai réussi à en arriver là:

Je le Code où mis le doigt sur l'appel à la fonction de rendu est appelé:

UInt32 numberOfPacketsToRead = (UInt32) totalFramesInFile; 

    result = ExtAudioFileRead (audioFileObject, &numberOfPacketsToRead, bufferList); 

    free (bufferList); 

    if (noErr != result) { 

     [self printErrorMessage: @"ExtAudioFileRead failure - " withStatus: result]; 

     // If reading from the file failed, then free the memory for the sound buffer. 
     free (soundStructArray[audioFile].audioDataLeft); 
     soundStructArray[audioFile].audioDataLeft = 0; 

     if (2 == channelCount) { 
      free (soundStructArray[audioFile].audioDataRight); 
      soundStructArray[audioFile].audioDataRight = 0; 
     } 

     ExtAudioFileDispose (audioFileObject);    
     return; 
    } 

--- Maintenant Im manquant seulement la partie lorsque la Buffering est terminée et je peux dire au programme d'obtenir le morceau suivant ....

Des idées?

Merci

Hernan

Répondre

1

Vous devez utiliser un tampon circulaire pour traiter votre audio.

Il y a un exemple simple à trouver ici.

ring buffer

+0

Merci Bro .. Je vais vérifier. (Des relations avec DubStep?) –

+0

Vous avez des exemples pour Objective-C par hasard? –

Questions connexes