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 |