Lecture d'échantillons audio via AVAssetReader
Comment voulez-vous lire des extraits audio via AVAssetReader? J'ai trouvé des exemples de dupliquer ou de mélange à l'aide de AVAssetReader, mais ces boucles sont toujours contrôlés par le AVAssetWriter boucle. Est-il possible de créer un AVAssetReader et de lire à travers elle, l'obtention de chaque échantillon et de le jeter en l'int32 de chaque échantillon audio dans un tableau?
Grâce.
source d'informationauteur Eric Christensen
Vous devez vous connecter pour publier un commentaire.
Étendre sur @amrox réponse, vous pouvez obtenir un AudioBufferList de la CMBlockBufferRef, par exemple
Les réponses ici ne sont pas génériques. L'appel à
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
peut échouer lorsque leAudioBufferList
doit être de taille différente. Lors de la non-intererleaved échantillons à titre d'exemple.La bonne façon est d'appeler
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
deux fois. Le premier appel requêtes de la taille nécessaire pour leAudioBufferList
et une seconde remplit effectivement leAudioBufferList
.Dans un exemple réel, vous devez effectuer la gestion d'erreur et aussi vous ne devriez pas malloc chaque image, au lieu de cache de la
AudioBufferList
.