Locking of audio devices: 11.2 vs. 11.3

Please note that this is not a java question, though the problem manifests itself through the usage of a java program.

I am running a java-based music player on two machines, one running 11.2 and the other running 11.3.
I wrote the code myself, so I have complete control over it. Both machines have Sun java development kit installed, and both have version 1.6.0.

The tracks of a given album are each played by a separate thread. Each thread requests the use of the audio device and plays through it. Under 11.2, the device is then locked for the use of this thread, and once the playing is through the lock on the device is automatically removed and the next thread starts playing its music without difficulty. I have no control over this lock, though. It appears to happen at the OS level, independently of my code.

When the exact same code is running under 11.3 the first thread plays through as before, but then the next thread does not manage to get hold of the audio device. It appears to play but no music is heard. When it finishes and the third thread tries to start, I get a “line unavailable” exception.

Can anyone explain to me the difference between 11.2 and 11.3 in the locking mechanism of audio devices by an application? Is there anything programmatic I can do to remove the lock myself?



Opensuse 11.4 Asus 1000H Netbook

Not sure if there is any connection but I had a similar problem recently when using the vlc media player to play a CD from a portable CD player. The track appeared to play but no music was heard. This behavior was intermittent.

I know nothing of an alsa locking method. I do know some multimedia applications are sensitive to how the ALSA API is tuned. For example vlc is often reported to work better if one choses the OSS emulation (in alsa) as opposed to using other audio output modes.