Witam.

Postanowiłem napisać bardzo prostą i lekką aplikację na telefony komórkowe która miałaby posłużyć jako metronom, niestety nie okazało się to tak łatwe jak myślałem, otóż metronom nie trzyma tempa, czasem spowalnia, głównie przy rozjaśnianiu i przygaszaniu ekranu.

Oto moja klasa odpowiedzialna za odtwarzanie dźwięku, zostaje ona wywołana na zdarzenie timera (a właściwie metoda z tej klasy .start())

Kopiuj
import javax.microedition.media.control.*;
import javax.microedition.media.*;

/**
 * @author Damian
 */
public class Odtwarzanie implements Runnable {
    
    public Odtwarzanie () {
        adres = "/button.wav";
        try {
            odtwarzacz = Manager.createPlayer(getClass().getResourceAsStream(adres), "audio/x-wav");
            odtwarzacz.realize();
            odtwarzacz.prefetch();
        } catch(Exception ex) { }
        VolumeControl glosnosc = (VolumeControl)odtwarzacz.getControl("VolumeControl");
        glosnosc.setLevel(99);
    }
    
    public void start() {
        thread = new Thread(this);
        thread.run();
    }
    
    public void run() {
        try {
            odtwarzacz.start();
        } catch(Exception ex) {}
    }
    private String adres;
    private Player odtwarzacz;
    private Thread thread;
}