This page was last modified 11:47, 23 August 2007.
KIJ000449 - Playing large audio files by using InputStream throws an OutOfMemoryError
From Forum Nokia Wiki
Playing large audio files by using InputStream throws an OutOfMemoryError
|
KIJ000449
|
Overview
| If an audio player is created using the Manager.createPlayer(InputStream in, String mimeType) and large audio files are played, Series 40 devices run out of memory.
|
Reported against
| Series 40 2nd Edition and Series 40 3rd Edition, all devices with MMAPI.
|
Date identified
| November 22, 2006
|
Symptoms
| -
|
Detailed 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.
|