AVAudioRecorder zgłasza błędy


80

Używam AVAudioRecorderdo 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ć?


3
Twoje pierwotne pytanie nie pytało, jak to naprawić, tylko prosiło innych o potwierdzenie, czy mają ten sam problem - nie chcieliśmy, aby tego rodzaju rzeczy były publikowane jako odpowiedzi i niepotrzebnie zatykały pytanie. Twoja zmiana sprawiła, że ​​intencja Twojego pytania jest teraz znacznie jaśniejsza, więc ponownie je otworzyłem.
BoltClock

możesz odświeżyć [to pytanie] [1], użyj urządzenia, przetestuj swój kod. [1]: stackoverflow.com/questions/7290418/…
HelloWorld

Odpowiedzi:


29

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.


1
Dzięki za odpowiedź. Ustawiłem Xcode na przerywanie wyjątków i zastanawiałem się, dlaczego mój odtwarzacz wideo ulega awarii!
Amy Worrall,

28
Och, to dobrze na mnie wpływa. Wpływa na mnie w ten sam sposób, w jaki spam wpływa na moją skrzynkę odbiorczą: poprzez zaszumienie strumienia informacji, utrudniając znalezienie przydatnych wiadomości. Dzienniki powinny być czyste. Należy wyeliminować spam. Ten błąd powinien zostać naprawiony.
OldPeculier

hooleyhoop: "AVAudioRecorder działa dobrze na iOS 5, nawet jeśli rzuca (i łapie) wyjątki podczas normalnych operacji, które utrudniają debugowanie." - Nie jestem pewien, czy zgadzam się z twoją definicją „działa dobrze”.
Greg Maletic

11

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.


8

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.


5

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.


5

Rozwiązałem ten problem, usuwając wyjątkowe punkty przerwania.


po lewej stronie okna xCode znajdź „punkt przerwania”. Wybierz wszystkie elementy i kliknij prawym przyciskiem myszy - usuń;
haawa

1
Rzeczywiście, jeśli masz włączone punkty przerwania wyjątków do celów debugowania, ten ignorowany komunikat jest zgłaszany jako błąd i symulator zatrzymuje się. Usunięcie wyjątków rozwiązuje problem, dopóki nie pojawi się poprawka dla symulatora.
Murat Ögat

1

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.


0

Po prostu użyj prawdziwego urządzenia, aby przetestować kod i poczekaj na następną aktualizację. Myślę, że to najlepszy wybór.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.