Capture et enregistrement d'une vidéo
ibtissamat
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
MrREX007 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
MrREX007 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en train de développer un projet pour capturer et enregistrer les vidéo sous Eclipse, et a l'aide de la bibliothèque JMF.
lors de l'exécution , le compilateur me signal une erreur, elle comme suit: java.util.NoSuchElementException.
et j'arrive pas a resoudre ce problème. et voilà mon code:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.media.*;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.RGBFormat;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
public class WebCam {
CaptureDeviceInfo device;
MediaLocator ml;
Player player;
Component videoScreen;
public static void main(String[] args) {
new WebCam();// create a new instance of WebCam in main function
}
WebCam() {
try {
//gets a list of devices how support the given videoformat
Vector deviceList = CaptureDeviceManager.getDeviceList(new RGBFormat());
System.out.println(deviceList.toString());
//gets the first device in deviceList
device = (CaptureDeviceInfo) deviceList.firstElement();
// ml = device.getLocator();
player = Manager.createRealizedPlayer(ml);
player.start();
videoScreen = player.getVisualComponent();
Frame frm = new Frame();
frm.setBounds(10, 10, 900, 700);//sets the size of the screen
// setting close operation to the frame
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
//place player and video screen on the frame
frm.add(videoScreen, BorderLayout.CENTER);
frm.add(player.getControlPanelComponent(), BorderLayout.SOUTH);
frm.setVisible(true);
frm.setSize(550,550);
//capture image
Thread.sleep(10000);//wait 10 seconds before capturing photo
FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf = fgc.grabFrame();//grab the current frame on video screen
BufferToImage btoi = new BufferToImage((VideoFormat) buf.getFormat());
Image img = btoi.createImage(buf);
saveImagetoFile(img, "MyPhoto.jpg");//save the captured image as MyPhoto.jpg
} catch (Exception e) {
System.out.println(e);
}
}
private void saveImagetoFile(Image img, String string) {
try {
int w = img.getWidth(null);
int h = img.getHeight(null);
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, 0, 0, null);
g2.dispose();
String fileType = string.substring(string.indexOf('.') + 1);
ImageIO.write(bi, fileType, new File(string));
} catch (Exception e) {
}
}
}
Si vous permettez, je demende votre aide.(et pardonnez moi a ma façon de parler, je suis débutante en français)
je suis en train de développer un projet pour capturer et enregistrer les vidéo sous Eclipse, et a l'aide de la bibliothèque JMF.
lors de l'exécution , le compilateur me signal une erreur, elle comme suit: java.util.NoSuchElementException.
et j'arrive pas a resoudre ce problème. et voilà mon code:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.media.*;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.RGBFormat;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
public class WebCam {
CaptureDeviceInfo device;
MediaLocator ml;
Player player;
Component videoScreen;
public static void main(String[] args) {
new WebCam();// create a new instance of WebCam in main function
}
WebCam() {
try {
//gets a list of devices how support the given videoformat
Vector deviceList = CaptureDeviceManager.getDeviceList(new RGBFormat());
System.out.println(deviceList.toString());
//gets the first device in deviceList
device = (CaptureDeviceInfo) deviceList.firstElement();
// ml = device.getLocator();
player = Manager.createRealizedPlayer(ml);
player.start();
videoScreen = player.getVisualComponent();
Frame frm = new Frame();
frm.setBounds(10, 10, 900, 700);//sets the size of the screen
// setting close operation to the frame
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
//place player and video screen on the frame
frm.add(videoScreen, BorderLayout.CENTER);
frm.add(player.getControlPanelComponent(), BorderLayout.SOUTH);
frm.setVisible(true);
frm.setSize(550,550);
//capture image
Thread.sleep(10000);//wait 10 seconds before capturing photo
FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf = fgc.grabFrame();//grab the current frame on video screen
BufferToImage btoi = new BufferToImage((VideoFormat) buf.getFormat());
Image img = btoi.createImage(buf);
saveImagetoFile(img, "MyPhoto.jpg");//save the captured image as MyPhoto.jpg
} catch (Exception e) {
System.out.println(e);
}
}
private void saveImagetoFile(Image img, String string) {
try {
int w = img.getWidth(null);
int h = img.getHeight(null);
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, 0, 0, null);
g2.dispose();
String fileType = string.substring(string.indexOf('.') + 1);
ImageIO.write(bi, fileType, new File(string));
} catch (Exception e) {
}
}
}
Si vous permettez, je demende votre aide.(et pardonnez moi a ma façon de parler, je suis débutante en français)
A voir également:
- Capture et enregistrement d'une vidéo
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Montage video windows - Guide
- Comment télécharger une vidéo youtube - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Capture d'écran samsung - Guide