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())
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;
}