Delay before playing embedded mp3 in Actionscript / Flex 3

Posted by lacker on Stack Overflow See other posts from Stack Overflow or by lacker
Published on 2009-11-19T23:09:05Z Indexed on 2010/04/17 11:53 UTC
Read the original article Hit count: 357

I am embedding an mp3 into my Flex project for use as a sound effect, but I am finding that every time I play it, there is a delay of about half a second from when I call .play() to when you can hear the sound. This makes it weird because I want the sound effects to sync to game events. My mp3 itself is only about a fifth of a second long so it isn't because of the contents of the mp3.

I'm embedding with

[Embed(source="assets/Tock.mp3")]
[Bindable]
public static var TockSound:Class;
public var tock_sound:SoundAsset;

and then playing with

if (tock_sound == null) {
  tock_sound = new TockSound() as SoundAsset;
}
Alert.show("tock");
tock_sound.play();

I know there's a delay because the sound plays about a half second after the Alert displays. I did consider that maybe it was the initial loading time of constructing the TockSound, but the delay is there on all the subsequent calls as well.

How can I avoid this delay on playing a sound?

Update: It turns out this delay is only present when playing the swf on Linux. I believe it is a Linux-specific flaw in Adobe's flash player.

© Stack Overflow or respective owner

Related posts about actionscript

Related posts about actionscript-3