Hi guys,
since weeks I’m trying to find out what makes our game crash when we try to start the microphone on iOS 7.1 (iPad)
Using XCode 5.1 and Unity Pro 4.3.4f1
It seems to crash at this point:
audio.clip = Microphone.Start(selectedDevice, true, 10, maxFreq);
selectedDevice is null, so the default microphone should be used. “Built-in Microphone” doesn’t work either.
The xcode debugger shows
Starting Microphone failed. result=57 (A call to a standard soundcard driver failed, which` could possibly mean a bug in the driver or resources were missing or exhausted. )
/Applications/buildAgent/work/d3d49558e4d408f4/Runtime/Audio/AudioManager.cpp line 1481]
StackTrace
#0 0x017c2f64 in FMOD::SystemI::getRecordPosition(int, unsigned int*) ()
#1 0x017bae70 in FMOD::System::getRecordPosition(int, unsigned int*) ()
#2 0x0164fe74 in AudioManager::GetRecordPosition(int) const at /Applications/buildAgent/work/d3d49558e4d408f4/Runtime/Audio/AudioManager.cpp:1637
#3 0x01661bcc in Microphone_CUSTOM_GetPosition(ICallString) at /Applications/buildAgent/work/d3d49558e4d408f4/artifacts/iPhonePlayer-armv7Generated/AudioBindings.cpp:1490
#4 0x0087de08 in m_7b8 ()
My StartMic function looks like
public void startMicrophone(){
audio.clip = Microphone.Start(selectedDevice, true, 10, maxFreq);
audio.loop = true;
audio.mute = true;
while (!(Microphone.GetPosition(selectedDevice) > 0)){}
}
And in my Update() I try this to give the microphone startup a little time:
void Update(){
if( audio.isPlaying == false && Microphone.GetPosition( selectedDevice ) > 0 && audio.clip != null ){
audio.Play();
}
}
Sometimes it works perfectly but most of the times the app crashes.
Does anybody know how to fix this?
Best regards,
Robert