Ciao a tutti!!
dovrei realizzare un applet che viene attivata da dei pulsati posti su una jsp , che da delle immagini crea un video .
La libreria utilizzata è JMF
Ho provato a realizzare l'applet fino ad adesso riesco attraverso il bottone start a realizzare dei screenshot poi con il bottone stop dovrei chiamare il metodo o classe che crea il video ma al momento della scrittura mi va in errore dicendo :
codice:
Impossibile creare il DataSink: java.lang.RuntimeException: No permission to write files from applets
ma come è possibile se prima le immagini me le ha salvate???
Ecco il codice:
codice:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.applet.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import javax.imageio.ImageIO;
// Implement Runnable, this will make it possible for threads
// to call the run method when activated.
public class mainApplet extends Applet implements Runnable {
int i=0;
Thread threadFoto=null;
boolean continua = false;
boolean chiamato = false;
public void start() {
System.out.println("1");
if(chiamato) continua= true;
threadFoto = new Thread(this);
threadFoto.start();
}
public void stop(){
System.out.println("2");
continua = false;
if(threadFoto != null){
threadFoto.interrupt();
}
threadFoto=null;
}
public void run(){
System.out.println("3");
while (continua){
i++;
System.out.println("3a");
try {
scattaFoto(i);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void stopFoto(){
System.out.println("stop Foto");
stop();
System.out.println("Crea video");
generaVideo.creaVideo();
}
public void startFoto() {
System.out.println("1");
chiamato = true;
EventQueue.invokeLater(new Runnable(){
public void run() {
start();
}
});
}
public void scattaFoto(int i) throws AWTException, IOException{
BufferedImage screencapture = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
Point p= MouseInfo.getPointerInfo().getLocation();
URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();
URL fileLocation = urlLoader.findResource("cursor.gif");
BufferedImage cursor= ImageIO.read(fileLocation);
screencapture.createGraphics().drawImage(cursor, p.x, p.y, null);
ImageIO.write(screencapture, "jpg", new File("c:/image/screencapture"+i+".png"));
}
}
Continuaa...............