Mediatracker bruger 100% CPU når den loader et billede.
Jeg udvikler en Ogg/Mp3 afspillet i JavaImens jeg afspiller musik i en tråd, henter jeg albummets cover billede i en anden tråd. Desværre medfører dette at musikken hakker. Det er ikke når jeg henter data fra harddisken, men når jeg første gang spørger mediatracker om billedet er loadet("mt.checkAll(true)"). Er det muligt at fortælle, at den skal genere JPEG billedet langsommer?
jeg tester poå en 500 mhz CPU med jdk1.3.1_03
Thread priority er Thread.MIN_PRIORITY
private Image loadPicture(String v)
{
int n=0;
Image image = null;
InputStream in = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[2048];
try {
in = new FileInputStream(v);
while ((n = in.read(buf)) > 0) {
out.write(buf, 0, n);
System.err.print("*");
sleep(5);
}
byte[] bufPic = out.toByteArray();
Toolkit tk = Toolkit.getDefaultToolkit();
System.err.print("Toolkit");
sleep(1000); //Testing purpose
image = tk.createImage(bufPic);
System.err.print("createImage");
sleep(1000); //Testing purpose
MediaTracker mt = new MediaTracker(consumer.main);
System.err.print("mt");
sleep(1000); //Testing purpose
mt.addImage(image,0);
System.err.print("addImage");
sleep(1000); //Testing purpose
while(!mt.checkAll(true)) <-- The Music is chopping here !
{
System.err.print(".");
sleep(50);
}
} catch (Exception ex)
{System.out.print(ex); }
return image;
}
