情况是这样,本人想作个视频聊天的程序,不用怎么复杂,就是能两个人聊聊天,能看见对方的视频就行!可是现在遇到这个问题是:我连本地的视频也看不到,大伙帮忙给看看吧,多谢了!!!下面是代码:import javax.media.*;
import java.io.*;
import java.awt.*;class CaptureVideo extends Frame implements ControllerListener {private CaptureDeviceInfo infor ;
private MediaLocator mediaLocator ;
private String url = "vfw:Microsoft WDM Image Capture (Win32):0";
private Component com;
private Panel panel ;Player player;
public CaptureVideo() {
infor = CaptureDeviceManager.getDevice(url);
mediaLocator = infor.getLocator();}public void play() {
try {
player = Manager.createPlayer(mediaLocator);//利用mediaLocator创建Player
player.addControllerListener(this);
player.realize();// System.out.println("infor:"+infor);
// System.out.println("mediaLocator:"+mediaLocator);
} catch (NoPlayerException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}public void createComponent() {
setTitle("视频信号");
// addWindowListener(new WinClose());setBounds(100,100,200,200);
panel = new Panel();if((com = player.getVisualComponent()) != null) {
panel.add(com);
}
add(panel);
setVisible(true);
}public synchronized void controllerUpdate(ControllerEvent arg0) {
// TODO 自动生成方法存根
if(arg0 instanceof RealizeCompleteEvent) {
System.out.println("realized");
createComponent(); //将播放器添加到Panel上
player.prefetch();}
if(arg0 instanceof PrefetchCompleteEvent) {
player.start();
System.out.println("prefetched");
}
}public static void main(String[] arg0) {
CaptureVideo video = new CaptureVideo();
video.play();}}下面是运行出来的结果:
realized
prefetched
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c95a982, pid=3204, tid=2164
#
# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode, sharing windows-x86)
# Problematic frame:
# C [ntdll.dll+0x2a982]
#
# An error report file with more information is saved as:
# F:\workspace\mpeg1\hs_err_pid3204.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#[error occurred during error reporting , id 0xc0000005]
大伙儿给看看,到底是什么原因,先谢了!!!
import java.io.*;
import java.awt.*;class CaptureVideo extends Frame implements ControllerListener {private CaptureDeviceInfo infor ;
private MediaLocator mediaLocator ;
private String url = "vfw:Microsoft WDM Image Capture (Win32):0";
private Component com;
private Panel panel ;Player player;
public CaptureVideo() {
infor = CaptureDeviceManager.getDevice(url);
mediaLocator = infor.getLocator();}public void play() {
try {
player = Manager.createPlayer(mediaLocator);//利用mediaLocator创建Player
player.addControllerListener(this);
player.realize();// System.out.println("infor:"+infor);
// System.out.println("mediaLocator:"+mediaLocator);
} catch (NoPlayerException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}public void createComponent() {
setTitle("视频信号");
// addWindowListener(new WinClose());setBounds(100,100,200,200);
panel = new Panel();if((com = player.getVisualComponent()) != null) {
panel.add(com);
}
add(panel);
setVisible(true);
}public synchronized void controllerUpdate(ControllerEvent arg0) {
// TODO 自动生成方法存根
if(arg0 instanceof RealizeCompleteEvent) {
System.out.println("realized");
createComponent(); //将播放器添加到Panel上
player.prefetch();}
if(arg0 instanceof PrefetchCompleteEvent) {
player.start();
System.out.println("prefetched");
}
}public static void main(String[] arg0) {
CaptureVideo video = new CaptureVideo();
video.play();}}下面是运行出来的结果:
realized
prefetched
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c95a982, pid=3204, tid=2164
#
# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode, sharing windows-x86)
# Problematic frame:
# C [ntdll.dll+0x2a982]
#
# An error report file with more information is saved as:
# F:\workspace\mpeg1\hs_err_pid3204.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#[error occurred during error reporting , id 0xc0000005]
大伙儿给看看,到底是什么原因,先谢了!!!
解决方案 »
- 新手,求代码
- spring如何初始化Map<String, Map<String, String>>这种Map
- Java中的comparator 怎么使用Collections.max()求出最大值?
- 怎么添加背景之后就把原来的Panel覆盖了啊!
- 如何使用package包名,通过反射找到该包下面的类?(在线加分)
- 求助:四柱汉诺塔求解算法的设计与实现
- sun.awt包在sun的哪个地方提供下载 叫什么名字 网址是什么
- java socket 与 vb socket通信问题
- 请教一个问题?
- 我还想问一个问题,就是在JB里在什么地方可以直接写完全自己的代码运行它?
- java多线程读文件问题
- 如何将基本类型的字符串形式转换为对应的Class,例如:将字符串"int"转换为对应的Class(与int.class一样的类型)
好像只支持基本的视频格式, rm, rmvb等都不支持
import javax.media.*;
import javax.swing.JFrame;public class MyVideoCapture extends JFrame { private static final long serialVersionUID = 1L; private Player player; private CaptureDeviceInfo captureDeviceInfo; private Component component; public MyVideoCapture() {
setLocation(200, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
captureDeviceInfo = CaptureDeviceManager
.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
this.setSize(200, 200);
setVisible(true);
try { player = Manager.createRealizedPlayer(captureDeviceInfo.getLocator());
if ((component = player.getVisualComponent()) != null) {
this.add(component);
}
player.start();
} catch (Exception e) {
e.printStackTrace();
} } public static void main(String[] args) {
new MyVideoCapture();
}
}
我已经运行过了没问题的》》互相学习了