private void showCamera() { try { releaseResources(); player = Manager.createPlayer("capture://video"); player.addPlayerListener(this); player.realize(); videoControl = (VideoControl) player.getControl("VideoControl"); aVideoCanvas = new VideoCanvas(); aVideoCanvas.initControls(videoControl, player); aVideoCanvas.addCommand(CMD_RECORD); aVideoCanvas.addCommand(CMD_EXIT); aVideoCanvas.setCommandListener(this); parentMidlet.getDisplay().setCurrent(aVideoCanvas); player.start(); contentType = player.getContentType(); } catch (Exception e) { e.printStackTrace(); } }
public void run() { try { player = Manager.createPlayer("capture://audio?encoding=audio/basic"); player.realize(); rCtl = (RecordControl) player.getControl("RecordControl"); Control[] c = player.getControls(); for (int i = c.length - 1; i >= 0; i--) { if (c[i] instanceof AudioPathControl) { apc = (AudioPathControl) c[i]; oldPath = apc.getAudioPath(); apc.setAudioPath(AudioPathControl.AUDIO_PATH_HANDSFREE); path = apc.getAudioPath(); break; } } rCtl.setRecordStream(strm); rCtl.startRecord(); player.start(); } catch (Exception e) { final String msg = e.toString(); UiApplication.getUiApplication() .invokeAndWait( new Runnable() { public void run() { Dialog.inform(msg); } }); } }
public void captureImage() { String savepath = this.saveDirectory + "\\cam" + this.getDateFormatNow("yyyyMMdd_HHmmss-S") + ".jpg"; System.out.println("Capturing current image to " + savepath); // Grab a frame FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl"); buf = fgc.grabFrame(); // Convert it to an image btoi = new BufferToImage((VideoFormat) buf.getFormat()); img = btoi.createImage(buf); // save image saveJPG(img, savepath); // show the image // imgpanel.setImage(img); // images.add(img); images.add(savepath); if (images_lastadded.size() >= lastadded_max) { // Remove last images_lastadded.remove(images_lastadded.size() - 1); } images_lastadded.add(0, images.size() - 1); images_nevershown.add(0, images.size() - 1); forceNewImage(); }
private void showCamera() { try { mPlayer = Manager.createPlayer("capture://video"); mPlayer.realize(); mVideoControl = (VideoControl) mPlayer.getControl("VideoControl"); Canvas canvas = new CameraCanvas(this, mVideoControl); canvas.addCommand(mBackCommand); canvas.addCommand(mCaptureCommand); canvas.setCommandListener(this); mDisplay.setCurrent(canvas); /* Form form = new Form("Camera form"); Item item = (Item)mVideoControl.initDisplayMode( GUIControl.USE_GUI_PRIMITIVE, null); form.append(item); form.addCommand(mBackCommand); form.addCommand(mCaptureCommand); form.setCommandListener(this); mDisplay.setCurrent(form); */ mPlayer.start(); } catch (IOException ioe) { handleException(ioe); } catch (MediaException me) { handleException(me); } }
// sets volume for player private void setVolume(int value) { try { VolumeControl c = (VolumeControl) player.getControl("VolumeControl"); if ((null != c) && (0 < value)) { c.setLevel(value); } } catch (Exception e) { } }
public void addVisualElements() { // so we now we can ask for the visual component visualComponent = player.getVisualComponent(); if (visualComponent != null) { add(visualComponent, BorderLayout.CENTER); } // and get the control panel visual component too controlPanelComponent = player.getControlPanelComponent(); if (controlPanelComponent != null) { add(controlPanelComponent, BorderLayout.SOUTH); } /* Now I'll try to get Sun's proprietary component that shows me how the JMF has plugged the application together */ if ((jmdControl = player.getControl("com.sun.media.JMD")) != null) { System.err.println("Found Sun's JMD Control"); if ((jmdVisualComponent = jmdControl.getControlComponent()) != null) { add(jmdVisualComponent, BorderLayout.NORTH); } } pack(); }
/** * Creates a new instance of Recorder * * @param buffer the shared Buffer. * @param controller the controlling TunerMIDlet instance. */ public Recorder(Buffer buffer, TunerMIDlet controller) { this.buffer = buffer; this.controller = controller; // Buffer filling time (s) is FFT length / sample rate (* 1000ms). recordingTime = 1000 * controller.getSampleLength() / TunerMIDlet.RATE; if (capturePlayer == null) { try { capturePlayer = Manager.createPlayer("capture://audio?encoding=pcm&rate=" + TunerMIDlet.RATE); capturePlayer.realize(); recordControl = (RecordControl) capturePlayer.getControl("RecordControl"); // Create the internal buffer for the recording bos = new ByteArrayOutputStream(controller.getSampleLength()); } catch (Exception e) { // No point continuing without a capturePlayer or recordControl so show fatal error. controller.showError(e.getMessage(), new FatalForm(controller)); } } }
public WebcamCaptureAndFadePanel(String saveDir, String layout) { System.out.println("Using " + saveDir + " as directory for the images."); saveDirectory = saveDir; getImages(); images_used = new ArrayList<Integer>(); images_lastadded = new ArrayList<Integer>(); images_nevershown = new ArrayList<Integer>(); Vector devices = (Vector) CaptureDeviceManager.getDeviceList(null).clone(); Enumeration enumeration = devices.elements(); System.out.println("- Available cameras -"); ArrayList<String> names = new ArrayList<String>(); while (enumeration.hasMoreElements()) { CaptureDeviceInfo cdi = (CaptureDeviceInfo) enumeration.nextElement(); String name = cdi.getName(); if (name.startsWith("vfw:")) { names.add(name); System.out.println(name); } } // String str1 = "vfw:Logitech USB Video Camera:0"; // String str2 = "vfw:Microsoft WDM Image Capture (Win32):0"; if (names.size() == 0) { JOptionPane.showMessageDialog( null, "Ingen kamera funnet. " + "Du må koble til et kamera for å kjøre programmet.", "Feil", JOptionPane.ERROR_MESSAGE); System.exit(0); } else if (names.size() > 1) { JOptionPane.showMessageDialog( null, "Fant mer enn 1 kamera. " + "Velger da:\n" + names.get(0), "Advarsel", JOptionPane.WARNING_MESSAGE); } String str2 = names.get(0); di = CaptureDeviceManager.getDevice(str2); ml = di.getLocator(); try { player = Manager.createRealizedPlayer(ml); formatControl = (FormatControl) player.getControl("javax.media.control.FormatControl"); /* Format[] formats = formatControl.getSupportedFormats(); for (int i=0; i<formats.length; i++) System.out.println(formats[i].toString()); */ player.start(); } catch (javax.media.NoPlayerException e) { JOptionPane.showMessageDialog( null, "Klarer ikke å starte" + " programmet pga. feil med kamera. Sjekk at det er koblet til.", "IOException", JOptionPane.ERROR_MESSAGE); System.exit(0); } catch (Exception e) { e.printStackTrace(); System.exit(0); } /* * Layout * * Add * - comp * - imagepanels */ if (layout.equals("1024v2")) { layout1024v2(); } else if (layout.equals("1280")) { layout1280(); } else { layout1024(); } // Capture Window if (captureWindow) { cw = new JFrame("Capture from webcam"); cw.setAlwaysOnTop(true); cw.setSize(sizeCaptureWindow_x, sizeCaptureWindow_y); cw.addKeyListener(new captureWindowKeyListner()); cw.setUndecorated(true); // Add webcam if ((comp = player.getVisualComponent()) != null) { cw.add(comp); } // Add panel to window and set location of window cw.setLocation(cwLocation_x, cwLocation_y); } // Text window cwText = new rotatedText(""); /* * Timer for update */ Timer thread = new Timer(); thread.schedule(new frameUpdateTask(), 0, (1000 / fps)); }