Archived:Playing large audio files using Java ME InputStream throws an OutOfMemoryError (Known Issue)
If an audio player is created using the Manager.createPlayer(InputStream in, String mimeType) and large audio files are played, Series 40 2nd and 3rd Edition devices run out of memory.
Article Metadata
Tested with
Compatibility
Article
Description
If an audio player is created using the Manager.createPlayer(InputStream in, String mimeType), the player tries to read the entire stream to heap memory. At about 700 kB the device throws an OutOfMemoryError. This does not happen if the audio player is created by using the form Manager.createPlayer(String fileUrl). While this player does play songs of unlimited length, it expects a cleartext media file.
How to reproduce
Create audio player by using form Manager.createPlayer(InputStream in, String mimeType) and try to play back a large (> 1MB) audio file.
Solution
Some of the Series 40 3rd Edition FP2 devices support audio streaming, but only for specific audio formats (MP3, MP4 and AAC). Streaming must also be explicitly requested by the MIDlet using a special JAD attribute that causes all players to attempt streaming if they support the given content type and protocol. The JAD tag that the MIDlet must define is as follows:
progressive_download: enabled
Note: MetaDataControl is unsupported for Players that use this feature. For the other Series 40 devices, there is currently no solution.


10 Sep
2009