Używam AVAudioRecorder
do nagrywania, działało dobrze na urządzeniach z iOS 4, ale wczoraj dowiedzieliśmy się, że nagrywanie jest zepsute na iOS5. Korzystając z symulatora iPhone'a 5 otrzymałem następujący błąd:
2011-08-02 11: 09: 03.586 Moodle [7832: 10103] Błąd podczas ładowania /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen (/ System / Library / Rozszerzenia / AudioIPCDriver.kext / Contents / Resources / AudioIPCPlugIn.bundle / Contents / MacOS / AudioIPCPlugIn, 262): Nie znaleziono symbolu: ___CFObjCIsCollectable
Czy wiesz, skąd się wziął ten błąd i jak to naprawić?
iphone
ios
ios5
avaudiorecorder
Dongsheng Cai
źródło
źródło
Odpowiedzi:
Ten błąd jest po prostu szumem konsoli pochodzącym z frameworka systemu, powinieneś go zignorować, nie ma on na ciebie wpływu. Jeśli Twoja aplikacja ulega awarii lub nie może zarejestrować, prawdziwy powód znajduje się gdzie indziej.
AVAudioRecorder działa dobrze na iOS 5, nawet jeśli rzuca (i przechwytuje) wyjątki podczas normalnych operacji, które utrudniają debugowanie.
źródło
Te błędy też występują od czasu przejścia na iOS5. Nie nagrywam, ale odtwarzam dźwięki za pomocą AVAudioPlayer. Wydaje się, że jest to problem ze strukturami AVAudio podczas korzystania tylko z symulatora iOS. Testowanie na rzeczywistym sprzęcie (w moim przypadku iPad 2 i iPad 1) nie powoduje tych samych błędów, co sprawia, że jestem mniej zaniepokojony, ponieważ testowanie na sprzęcie jest tym, co uważam za test, który się liczy.
Przy okazji, przepraszam, że nie jest to rozwiązanie problemu, a raczej potwierdzenie, że nie jesteś jedynym, który ma problem.
źródło
Odkryłem, że ten błąd pojawia się tylko podczas korzystania z symulatora. Kiedy jest testowany na rzeczywistym urządzeniu, działa dobrze i nie pojawiają się żadne błędy.
Więc dopóki Apple nie wyda poprawki dla symulatora, testuj swoje aplikacje na urządzeniach.
źródło
Jeśli chcesz zostawić punkty przerwania dla wszystkich wyjątków w (które uważam za bardzo przydatne), możesz po prostu użyć instrukcji if (! TARGET_IPHONE_SIMULATOR) przed uruchomieniem dźwięku. Spowoduje to, że dźwięk będzie działał tylko wtedy, gdy używasz urządzenia.
Symulator nie wyda żadnego dźwięku, ale jest to bardzo pomocne, jeśli nie potrzebujesz włączonej muzyki i chcesz debugować inny kod.
źródło
Rozwiązałem ten problem, usuwając wyjątkowe punkty przerwania.
źródło
To nie jest błąd. To tylko oczekiwanie na punkt przerwania. Ten problem występuje, jeśli w XCode dodano „oczekiwane punkty przerwania”. Główna sugestia brzmi - czy nie „oczekuj punktów przerwania” w projektach Cocos2d.
źródło
Po prostu użyj prawdziwego urządzenia, aby przetestować kod i poczekaj na następną aktualizację. Myślę, że to najlepszy wybór.
źródło