web-dev-qa-db-fra.com

AVAudioRecorder génère des erreurs

J'utilise AVAudioRecorder pour enregistrer, cela a bien fonctionné sur les appareils iOS 4, mais hier, nous avons découvert que l'enregistrement était interrompu sur iOS5. En utilisant le simulateur iPhone 5, j'ai eu l'erreur suivante:

2011-08-02 11: 09: 03.586 Moodle [7832: 10103] Erreur de chargement /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen (/ System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Symbole introuvable: ___CFObjCIsCollectable

Savez-vous d'où vient cette erreur et comment y remédier?

80
Dongsheng Cai

Cette erreur n'est que du bruit de console provenant d'une infrastructure système, vous devez l'ignorer, cela ne vous affecte pas. Si votre application plante ou ne parvient pas à enregistrer, la vraie raison est ailleurs.

AVAudioRecorder fonctionne très bien sur iOS 5, même s'il lance (et intercepte) des exceptions pendant les opérations normales, ce qui rend le débogage plus difficile.

29
hooleyhoop

J'ai également rencontré ces erreurs depuis mon passage à iOS5. Je n'enregistre pas, mais je reproduis des sons avec AVAudioPlayer. Cela semble être un problème avec les frameworks AVAudio lors de l'utilisation du simulateur iOS uniquement. Les tests sur du matériel réel (un iPad 2 et iPad 1, dans mon cas) ne produisent pas ces mêmes erreurs, ce qui me rend moins préoccupé car les tests sur le matériel sont ce que je considère comme les tests qui comptent réellement.

BTW, désolé que ce ne soit pas une solution pour résoudre le problème, autant qu'une confirmation que vous n'êtes pas le seul à rencontrer le problème.

11
PixelCloudSt

J'ai constaté que cette erreur n'apparaît que lors de l'utilisation du simulateur. Lorsqu'il est testé sur un appareil réel, il fonctionne correctement et aucune erreur ne se produit.

Donc, jusqu'à ce que Apple publie un correctif de bogue pour le simulateur, testez vos applications sur les appareils.

8
Derek

J'ai résolu ce problème en supprimant des points d'arrêt exceptionnels.

5
haawa

Si vous souhaitez laisser vos points d'arrêt sur toutes les exceptions (que je trouve très utiles), vous pouvez simplement utiliser une instruction if (! TARGET_IPHONE_SIMULATOR) avant d'exécuter l'audio. Cela entraînera l'exécution audio uniquement si vous utilisez un appareil.

Il n'y aura pas de son du simulateur, mais c'est très utile si vous n'avez pas besoin de musique et que vous souhaitez déboguer un autre code.

5
Jon Evans

Ce n'est pas une erreur. Ce n'est qu'une attente de point d'arrêt. Ce problème se produit si vous avez ajouté des "points d'arrêt d'attente" dans votre XCode. La principale suggestion est - ne pensez-vous pas aux "points d'arrêt des attentes" dans les projets Cocos2d.

1
Vov4yk

Utilisez simplement un appareil réel pour tester votre code et attendez la prochaine mise à jour. Je pense que c'est votre meilleur choix.

0
Tinyfool