Hi Felix.
The two libraries are different. The media.* is the older library and depends on native hardware decoding to render audio. While it’s faster on older Android operating systems, it has major limits of only being able to play one sound at a time, and volume control is limited. Let’s talk about that limitation because that could be your problem. There are two play sound functions:
media.playSound()
media.playEventSound()
The second one, media.playEventSound(), which is the fastest way to play sound does not support volume controls. See: http://docs.coronalabs.com/api/library/media/setSoundVolume.html
The first one, if I read the docs correctly, you have to play the sound and if it’s long enough, then you can adjust the volume of that sound after you start playing it. It does not set the overall system sound, but the sound for the currently playing one.
Because of these limits, we really prefer you to use the audio.* library which is based on OpenAL/OpenES and lets you have 32 channels to mix sound at the same time while independently controlling volume on each channel independently regardless of a sound playing as well as control the master volume. The audio.* api is much more feature rich and solid.
But on Android devices older that Android 4.1, the sounds lag. This is a bug Google fixed in 4.1, but it doesn’t help you for older operating systems. That’s why our advice is to use audio.* unless you need time dependent short sounds (remember you can only have one at a time) then you should use media.playEventSound() which has no volume control.
Rob