J'ai presque fini de travailler sur une fonctionnalité de bruit blanc pour une de mes applications utilisant NSSound pour lire une boucle de 10 secondes codée AAC bruit blanc pré-enregistré.Un framework de type NSSound qui fonctionne, mais qui ne nécessite pas de courbe d'apprentissage abrupte
[sound setLoops: YES]
devrait être tout ce qui est nécessaire, non?
Cela fonctionne comme un charme, mais j'ai remarqué qu'il y a une pause audible entre la fin du fichier sonore et le redémarrage .. une sorte de "plop" son. Ceci n'est pas présent lors de la lecture en boucle des fichiers audio originaux et après une heure ou deux d'essayer de comprendre cela, je suis arrivé à la conclusion que NSSound est nul et que la pause audible est un artefact de la synchronisation du thread d'arrière-plan privé jouer le son. Cela semble être en quelque sorte dépendant de la boucle d'exécution principale, ce qui provoque l'écart audible entre la fin et le redémarrage du son. Je connais très peu de choses sur le son et c'est une caractéristique très mineure, donc je ne veux pas entrer dans les profondeurs de CoreAudio juste pour jouer un fragment de son 10s en boucle .. alors je suis allé à la poursuite d'une belle alternative , mais rien ne semble tout à fait en forme:
- Core Audio: overkill total, mais au moins un cadre standard
- AudioQueue: compliqué, avec exemple de code de C !?
- MusicKit/SndKit: courbe d'apprentissage aussi énorme, basé sur beaucoup de choses open source, etc.
j'ai vu que AVFoundation sur iOS 4 serait une belle façon de jouer des sons, mais qui est seulement prévue pour le Mac OS X 10.7 ..
Existe-t-il un moyen facile d'utiliser le bouclage fiable du son sur Mac OS X 10.5+?
Existe-t-il un exemple de code pour AudioQueue ou Core Audio qui supprime la douleur de les utiliser à partir d'une application Objective-C?
Toute aide serait très apprécié ..
Meilleures salutations,
Frank
Isn 't QTKit 32 bits et non-garbage collectable? Mes applications sont toutes éditées au format 64 bits. –
D'accord. Le plus difficile avec QTKit est de l'inclure dans votre projet (ce qui prend quelques secondes). –
Je l'ai vu travailler avec QTKit .. Je pensais que QuickTime ne peut pas fonctionner en 64 bits ou dans un mode de collecte de déchets, il ne valait pas la peine d'essayer QTKit non plus .. mais il semble fonctionner très bien. Merci. –