Some of our customers are reporting the error FMOD_ERR_OUTPUT_INIT, which doesn’t give a lot of help. I have received a DxDiag report from one of them and it appears that there was no default playback device. I’m not sure how that’s possible. What can I do to figure out what’s going wrong? These are the parameters I’m passing:
When there is no audio device, FMOD falls back to nosound.
There is a log entry at runtime when this happens. ie
[WRN] SystemI::init : No output sound devices found - switching output mode to FMOD_OUTPUTTYPE_NOSOUND
FMOD_ERR_OUTPUT_INIT is more like a device failed to init. We are seeing this a bit more lately and is most likely USB headset device related. When they send you the dxdiag the headset is not plugged in, and it looks like there are no sound devices.
If they can provide their headset ad OS version, i’d love to hear more about it, but its probably related to bad drivers at this point. We have one headset which we found refuses to initialize in a certain speaker mode, and only under directsound mode (which is WinXP only usually).
The way to avoid just bailing out, is to go into nosound mode again. You’d have to destroy the system object and recreate it, otherwise you’ll get FMOD_ERR_INVAILD_HANDLE by the look of it. This is something we’re looking to fix.
result = mFModStudio->initialize(512, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL |
if (result == FMOD_ERR_OUTPUT_INIT)
result = mFModStudio->initialize(512, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL | FMOD_INIT_VOL0_BECOMES_VIRTUAL, 0);
(I just typed that out here sorry if it doesnt compile straight away)
More info about the OS and device that fails would be good, and if FMOD logging mode is used, that would be even better. We could then get the WASAPI error code most likely.
So far, my only clue is - if the user has ‘allow applications to take exclusive control of this device’ and they have some media player or something that is doing this - then fmod could fail. I’d be interested if any of your users have that ticked on, and if unticking it solves it.
Who knows what else they’re using. You’re right though, media players are generally friendly, in fact most programs are. Only a DAW or something hardcore like that would consider using exclusive mode in windows.
iPhone’s headphone is using i’m guessing the built in audio , not the razer? Its possible that the other program is not playing through that app or disallows exclusive mode? (that’s in the settings as I said). I’d like to know if the exclusive mode tickbox was on in that case.
If its not, then yes, it could be a driver, but if that was the case I should be able to download that driver and reproduce the problem. Currently with the latest driver it works no problem.
Either way, we can’t fix the driver , and we can’t stop the user having the exclusive mode tickbox on, so we can only fail and reinit in nosound in this case, either way.
With a bad driver, sometimes we can alter some init code to work around it, this is like what we had to do in the old old days , ie some sound cards we had to do a strncmp against the device name, and avoid setting 7.1 for example , otherwise the OS bluescreened.