 <p>As they always say, have a look at the MMAPI docs. forum Nokia has good examples of this for the MMAPI. </p> <p>But first you can check your code by adding: </p> <pre><code>p.realize(); p.prefetch(); </code></pre> <p>To pause / stop the player call <code>p.stop()</code>. </p> <p>To get the current position call <code>p.getMediaTime();</code> To get the full duration of the file call <code>p.getDuration();</code></p> <p>From those you can calculate the progress. </p> <p>To control volume: </p> <pre><code>import javax.microedition.media.Player; import javax.microedition.media.Manager; import javax.microedition.media.*; import javax.microedition.media.control.VolumeControl; private VolumeControl vc; public void changeVolume(int diff) { VolumeControl vc; if ( p != null) { vc = (VolumeControl) p.getControl("VolumeControl"); if (vc != null) { int cv = vc.getLevel(); cv += diff; cv = vc.setLevel(cv); } } } </code></pre> <p>Define your player class to implement runnable, and control it in its own thread. </p> <p>Have a look at: <a href="http://www.java-tips.org/java-me-tips/midp/" rel="nofollow noreferrer">http://www.java-tips.org/java-me-tips/midp/</a></p> <p>Hope this helps.</p>