2009-04-16 8 views
0

Je viens de commencer à utiliser les instruments et sa fonction de détection de fuite. Je suivais mon code et j'ai remarqué qu'il ya une fuite quand je l'appelle la méthode:AudioServicesCreateSystemSoundID fuite de mémoire?

AudioServicesCreateSystemSoundID

J'utilise essentiellement le fichier SoundEffect.m à partir du code exemple Metronome. J'utilise un soundfile qui était à l'origine un .wav et je l'ai converti en utilisant Itunes à un aif et l'ai rebaptisé un café. Il joue très bien et ce n'est que lorsque j'ai lancé Instruments que j'ai réalisé qu'il y avait une fuite.

La chose étrange est que, quand j'utilise un fichier son différent (tick.caf - du projet exemple Mentronome) - il n'y a pas de fuite. Le même problème est décrit ici sans réelle réponse à pourquoi:

http://discussions.apple.com/thread.jspa?messageID=8360344

Quoi qu'il en soit, est-il une raison pour laquelle mon fichier son causerait une fuite? Audio Toolkit est-il particulièrement pointilleux sur le fichier audio qu'il essaie de lire?

Répondre

2

Je ne vois pas pourquoi cela provoquerait une fuite, mais il y a peut-être un bogue dans AudioServices lors de la lecture d'un fichier aiff nommé caf. Essayez de convertir en utilisant afconvert pour produire un vrai fichier caf à partir de votre Mac:

afconvert -f caff -d ima4 input.mp3 output.caf 
+0

Yup qui l'a fait! Merci! – WillF

0

Utilisez AudioServicesDisposeSystemSoundID de disposer.