import java.awt.*;
import javax.media.*;
import javax.media.protocol.*;

import javax.swing.*;
import java.util.*;

 

public class Cam extends JFrame implements ControllerListener{
 Player player;
 DataSource ds;
 Process p = null;
 CaptureDeviceInfo captureDeviceInfo;
 
 Container c;
 Vector deviceList;
 
 Cam(){
  c = getContentPane();
  try{

   detect();
   play();
  }catch(Exception e){e.printStackTrace();}
 }
 
 public void play() throws Exception{
  ds = Manager.createDataSource(captureDeviceInfo.getLocator());
  player = Manager.createPlayer(ds);
  player.addControllerListener(this);
  start();
 }
 
 public void start(){
  if(player != null)
   player.start();
 }
 
 public void detect(){
  deviceList = CaptureDeviceManager.getDeviceList(null);
  if( deviceList.size()>0 ){
   System.out.println("장치를 찾았습니다.");

   // 장치가 하나라고 가정했을경우 정보 얻어옴(for 문을 돌려서 전체 목록을 구할수도 있음)
   // elementAt(num) num값을 바꿔 가다보면 현재 사용중인 캡쳐 장치가 콘솔에 출력되는데
   // 그 장치만 사용하면 되므로 간략하게 코딩하였음
   
   captureDeviceInfo = (CaptureDeviceInfo)deviceList.elementAt(2);
   System.out.println(captureDeviceInfo.getName());
   
  }else{
   System.out.println("장치 없음!");
  }
 }
 
 // 플레이어에서 발생하는 처리부분(최초 realize)
 public synchronized void controllerUpdate(ControllerEvent e){
  if(e instanceof RealizeCompleteEvent){
   Component component;
   if( (component = player.getVisualComponent()) != null )
    c.add(component, "Center");
   if( (component = player.getControlPanelComponent()) !=null )
    c.add(component, "South");
   validate();
   this.setVisible(true);
  }
 }
 
 public static void main(String[] args) {
  Cam ca = new Cam();
  ca.setBounds(200,200,360,280);
 }

}

'Java' 카테고리의 다른 글

java mail helper  (2) 2010.12.24
정규표현식  (2) 2010.08.04
java socket 통신  (2) 2010.04.07
lotto 당첨번호 파싱  (4) 2010.04.07
openCsv sample function  (2) 2010.04.07