Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AVAudioRecorder throws errors

I use AVAudioRecorder to record, it worked fine on iOS 4 devices, but yesterday we found out recording is broken on iOS5. Using the iPhone 5 simulator I got following error:

2011-08-02 11:09:03.586 Moodle[7832:10103] Error loading /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): Symbol not found: ___CFObjCIsCollectable

Do you know where this error came from and how to fix this?

like image 553
Dongsheng Cai Avatar asked Aug 02 '11 03:08

Dongsheng Cai


4 Answers

This error is just console noise from a System framework, you should ignore it, it doesn't affect you. If your app is crashing or failing to record the real reason is elsewhere.

AVAudioRecorder works just fine on iOS 5, even if it does throw (and catch) Exceptions during normal operations which make debugging harder.

like image 79
hooleyhoop Avatar answered Nov 12 '22 22:11

hooleyhoop


I have also been experiencing these errors since moving to iOS5. I am not recording, but playing back sounds with AVAudioPlayer. This seems to be a problem with the AVAudio frameworks when using the iOS simulator only. Testing on actual hardware (an iPad 2 & iPad 1, in my case) does not produce these same errors, which makes me less concerned since testing on hardware is what I consider the testing that actually counts.

BTW, sorry that this is not an solution to fixing the issue, so much as a confirmation that you are not the only one experiencing the problem.

like image 26
PixelCloudSt Avatar answered Nov 12 '22 21:11

PixelCloudSt


I have found that this error only comes up when using the Simulator. When it is tested on an actual device it works fine and no errors come up.

So until Apple releases a bug fix for the Simulator, test your apps on devices.

like image 8
Derek Avatar answered Nov 12 '22 23:11

Derek


If you want to leave your break points on all exceptions in (which I find very useful), you can just use an if(!TARGET_IPHONE_SIMULATOR) statement before running audio. This will cause audio to only run if you're using a device.

There won't be any sound from the simulator, but it's very helpful if you don't need music on and want to debug other code.

like image 5
Jon Evans Avatar answered Nov 12 '22 21:11

Jon Evans