The method below shows how an mp3 file can be played from a server in Java ME.
public void playAudio()
{
try
{
String url = "http://server/audio.mp3";
HttpConnection conn = (HttpConnection)Connector.open(url,
Connector.READ_WRITE);
InputStream is = conn.openInputStream();
player = Manager.createPlayer(is,"audio/amr");
player.realize();
// get volume control for player and set volume to max
vc = (VolumeControl) player.getControl("VolumeControl");
if(vc != null)
{
vc.setLevel(100);
}
player.prefetch();
player.start();
}
catch(Exception e)
{}
}
Note for S40 Devices: - The Midlet is responsible to avoid/catch out_of_memory exceptions in case the mp3 file to be downloaded exceeds the amount of free memory.
A good practice to avoid these kind of problems may be to either: add the keyword <progressive_download; enable as an attribute to the midlets jad or manifest file; or change the url for the file to be downloaded to the format: resource://my_media_file.mp3?streamable=true In the case above this means: String url = "http://server/audio.mp3?streamable=true";
Applying one of the changes should result in streaming instead of first downloading the whole file and starting to play not before the complete file was downloaded.
No related wiki articles found