0
0

I’m trying to use fmodex 4.30.03 to play an MP3 file under Mono/Ubuntu.

My call to createSound() looks as follows:

[code:2jyx8p02]result = system.createSound(path,
(FMOD.MODE._2D | FMOD.MODE.HARDWARE | FMOD.MODE.CREATESTREAM),
ref sound);[/code:2jyx8p02]

as per the C# examples that come with the SDK.

result is being set to 19, ERR_FILE_BAD.

The same thing works fine under Windows. I have the following in app.config:

<dllmap os="linux" dll="fmodex" target="./libfmodex-4.30.03.so"/>

If this isn’t present, fmodex never even gets loaded, so I know it’s getting so far.

The file I’m passing in definitely exists, but if I pass an invalid path I actually get the same error message.

The MP3 file is just a randomly picked 44.1kHz 16 bit stereo MP3, and plays fine in VLC etc on the same platform.

Any clues? Can I get fmodex to produce more output for debugging?

Thanks

  • You must to post comments
0
0

Perhaps try linking with the logging version of FMOD, the lib that has the ‘L’ at the end of the name. This should give you TTY output and you can see how far FMOD is getting.

We haven’t tried FMOD on Linux via C#, perhaps there are others on the forum who know more in this area.

If you pass an invalid path you should really be getting FMOD_ERR_FILE_NOTFOUND though.

  • You must to post comments
0
0

[code:sf7ahyfv]joggler@joggler:~/Desktop/jt$ mono JoggleTopUI.exe
FMOD: SystemI::init : FMOD Ex Version: 00043003
FMOD: SystemI::init : maxchannels = 1, flags = 00000000, extradriverdata = (nil)
FMOD: SystemI::close :
FMOD: SystemI::close : Stop all sounds
FMOD: SystemI::close : Remove miscllaneous DSP stuff.
FMOD: SystemI::close : done.

FMOD: OutputOSS::init : Initializing.
FMOD: OutputOSS::init : Initialized.
FMOD: SystemI::init : Set up software engine
FMOD: OutputOSS::setDeviceParams : bits = 16 channels = 2 speed = 48000 bufferlen = 4096
FMOD: OutputOSS::setDeviceParams : Buffersize = 00001000
FMOD: OutputOSS::setDeviceParams : Fragment setting = 08x
FMOD: Thread::initThread : Initializing OSS Mixer. priority 1
FMOD: Thread::initThread : – Stacksize 0. Stack pointer (nil) : usesemaphore = 0 : sleeptime = 0
FMOD: Thread::callback : * OSS Mixer started
FMOD: Thread::initThread : done.
FMOD: SystemI::init : Set up emulated output
FMOD: SystemI::init : create the channel pool
FMOD: SystemI::init : Set up streamer
FMOD: Thread::initThread : Initializing FMOD stream thread. priority 2
FMOD: Thread::initThread : – Stacksize 49152. Stack pointer (nil) : usesemaphore = 0 : sleeptime = 10
FMOD: Thread::callback : * FMOD stream thread started
FMOD: Thread::initThread : done.
FMOD: SystemI::init : done

FMOD: SystemI::createSoundInternal : filename = / : mode 01000088
FMOD: SystemI::createSoundInternal : 19 codecs found. Scan all until one succeeds
FMOD: CodecTag::openInternal : attempting to open ID3 or ASF tags..
FMOD: Codec::release :
FMOD: Plugin::release : (0x9242c98)
FMOD: Plugin::release : done
FMOD: Codec::release : done
FMOD: CodecCDDA::openInternal : attempting to open as CDDA..
FMOD: Codec::release :
FMOD: Plugin::release : (0x9227768)
FMOD: Plugin::release : done
FMOD: Codec::release : done
FMOD: CodecFSB::openInternal : attempting to open as FSB..
FMOD: Codec::release :
FMOD: CodecFSB::closeInternal :
FMOD: CodecFSB::closeInternal : done
FMOD: Plugin::release : (0x9242c98)
FMOD: Plugin::release : done
FMOD: Codec::release : done
FMOD: System::createSoundInternal : Fatal error (19) scanning the codecs. (ie not FMOD_ERR_FORMAT or FMOD_ERR_FILE_EOF)
[/code:sf7ahyfv]

Going to go do my own research now, but to me I can’t see that that’s actually getting around to trying to open this file as an MP3.

Edit: is this line supposed to contain a filename?
[code:sf7ahyfv]FMOD: SystemI::createSoundInternal : filename = / : mode 01000088[/code:sf7ahyfv]

  • You must to post comments
0
0

[quote:efuxmf5w]Edit: is this line supposed to contain a filename? [/quote:efuxmf5w]
Yes it should.

I suspect you are having issues with Unicode support. FMOD on Linux doesn’t support wide chars (FMOD_UNICODE). The C# wrapper we provide defaults to using Unicode.

You would need to modify the C# wrapper to ensure all strings passed to FMOD are non-wide standard ASCII, and remove the FMOD_UNICODE flag.

  • You must to post comments
0
0

Thanks for the pointer. Looks a lot more like it should now.

However, still no sound. That’s for tomorrow, it’s late here now…

  • You must to post comments
Showing 4 results
Your Answer

Please first to submit.