How to play sound in Java ME
Article Metadata
MMAPI (JSR 135) allows Java ME applications to easily access MultiMedia functionalities, like playing and recording both video and audio data. This article shows the steps required to play a sound, from both local and network resources.
Playing Sound
You need to import the following packages:
import java.io.*;
import javax.microedition.media.*;
The following code helps to play sound which is embedded in your jar file
InputStream is = getClass().getResourceAsStream("sound.wav");
Player p = Manager.createPlayer(is, "audio/X-wav");
p.start();
The following code helps to play sound which is stored in a web server
Player p = Manager.createPlayer("http://server/sound.wav");
p.start();
You may also try other sound formats by minor changing ie; by changing the mime type.
Also you have to keep in mind while giving the url in the second case, use of special characters like '&' etc are not supported. In such case you should follow the following method
HttpConnection hc = (HttpConnection) Connector.open(url);
InputStream in = hc.openInputStream();
Player p = Manager.createPlayer(is, "audio/X-wav");
p.start();
Notes
- When playing a multimedia file, you should always check if the used format is supported by the target device. To do this, you should use the Manager getSupportedContentTypes()
- Also, you should always check which protocols are supported, by using Manager getSupportedProtocols() method
Related resources
- MultiMedia section on Java Me Developer's Library
- MMAPI Wiki article


This articles explains MMAPI (JSR 135)that allows J2ME applications to easily access MultiMedia functionalities, like playing and recording both video and audio files. Most Basic classed to accomplish playing sound is Player,HttpConnection for remotely playing file from device.
Given code has been tested for its correctness and is compiles and run perfectly without any bugs.
--kalki 20:56, 26 September 2009 (UTC)