Skip to content

IE9 can only (pre)load max. 41 audio files; maybe also iPad affected #40

@netmills

Description

@netmills
Undocumented IE behavior

IE9 (and IE10?) has an internal limit of 41 simultaneous audio and video elements/objects. The 42nd won't be loaded.

It seems to me (without having tested it enough) that this is a "global" limit, affecting all open tabs, and not only a single html document. So it might be that one can load less than 41 audio/videos.

SoundJS/PreloadJS bug

PreloadJS with the SoundJS plugin creates an audio object for each loaded file. So if you load to many audio files, some will will not load - and the error event will be raised containing an valid HTMLAudioElement, which won't play.

The sound will play at random on your site (depending which loaded first). Also videos won't play after preloading sounds.

I reckon that even without preloading SoundJS will not be able to play more than 41 sounds.
I am not sure, but it seems that HTMLAudioPlugin keeps the played audio elements in memory.

Possible solution
  • Don't create HTMLAudioElements when preloading (at least in IE). This would affect existing code of developers using the library.
  • Reuse the max. 41 "slots" when playing sound on IE.
Further information

It took me almost a day to find this piece of information - more or less by accident :(
This is the only information i could find:

If you find an official documentation of this limit, I would be glad if you let me know.

iPad bug?

We also found a very weird behavior on the iPad (with WebAudioPlugin). At some point our sounds sounded completely distorted and also played to slow. (The sound files are fine, it also occurs with sound files from you demos.) At the beginning of the project everything was ok (we used less sounds them).

I also assume that we are preloading to many sound files, but I don't have the time to isolate the error. (If one sound is distorted, subsequently sound may also be - even in other tabs. You must then quit (not only close) Mobile Safari and delete the cache to have a "clean" state for testing.)

Sorry, but currently I have no time to create a test page. If you need one it will take some time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions