`
luck_dream
  • 浏览: 21768 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JMF_1:获取设备列表

 
阅读更多

闲来无事,便想到研究一下JMF。

 

首先,下载JMF,安装。

打开eclipse,新建工程,注意要将你的JMF引入到工程的classpath中。

(在你的工程上右键->Build Path->Configure Build Path,在弹出的对话框中,选择Libraries->Add External JARs,在弹出的对话框中,选择JMF安装目录下的\lib,我是全部将下面的jar都选中了。)

 

新建一个类。加入如下方法(此代码网上有)。

唯一需要注意的是:

Format videoFormat = new VideoFormat(VideoFormat.RGB);
		Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
				.getDeviceList(null);
 

我之前是按照网上的写法:

Format videoFormat = new VideoFormat(VideoFormat.RGB);
		Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
				.getDeviceList(videoFormat);
 可是无论如何也取不到设备列表,后经多方查找,有人说将getDeviceList()的参数设为null即可,一试果然如此。但尚不知道原因,麻烦大家告知我一声吧。

 

public CaptureDeviceInfo getCaptureDeviceInfo() {
		Format videoFormat = new VideoFormat(VideoFormat.RGB);
		Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
				.getDeviceList(null);
		if (deviceList.size() < 1) {
			JOptionPane.showMessageDialog(null, "No capture device be found",
					"Error", JOptionPane.ERROR_MESSAGE);
			System.exit(0);
		}
		String[] deviceNames = new String[deviceList.size()];
		for (int i = 0; i < deviceNames.length; i++) {
			deviceNames[i] = deviceList.get(i).getName();
		}
		String deviceName = (String) JOptionPane
				.showInputDialog(null, "Pls choose video input device",
						"Please Choose", JOptionPane.QUESTION_MESSAGE, null,
						deviceNames, deviceNames[0]);
		if (deviceName == null) {
			return null;
		} else {
			CaptureDeviceInfo deviceInfo;
			for (int i = 0; i < deviceNames.length; i++) {
				deviceInfo = deviceList.get(i);
				if (deviceName.equals(deviceInfo.getName())) {
					return deviceInfo;
				}
			}
		}
		return null;
	}
 

 

分享到:
评论
1 楼 luck_dream 2011-08-17  
关于video format的问题,刚才找到原因了。
打开JMStudio,点击File->Capture。就能看到自己的USB摄像头信息了。我注意到我的摄像头的Encoding是YUV,但是网上的代码中的format是RGB,直接拿过来当然不行了,于是做如下改动,便顺利找到设备了。
Format videoFormat = new VideoFormat(VideoFormat.YUV);
Vector<CaptureDeviceInfo> deviceList = CaptureDeviceManager
				.getDeviceList(videoFormat);

相关推荐

    jmf.rar_jmf_jmf 音频_麦克风

    以下是一段简单的代码示例,展示了如何使用JMF获取麦克风输入: ```java import javax.media.*; import javax.media.control.*; public class MicrophoneCapture { public static void main(String[] args) { ...

    jmf.rar_Java视频聊天_java 视频 聊天_java 视频聊天_jmf_jmf video chat

    - **视频捕获**:JMF提供了VideoInput类,用于从摄像头或其他视频输入设备获取原始视频数据。 - **视频编码**:捕获的视频数据需要经过编码才能在网络上传输。JMF支持多种编码标准,如MPEG-1、H.263等。 - **网络...

    Java中利用JMF编写摄像头拍照程序.rar_JMF 摄像头_java 摄像头_jmf_拍照_摄像头

    2. **查找摄像头设备**: 使用 `Manager.createCaptureDevice()` 方法来获取摄像头设备列表。选择合适的设备后,可以创建一个 `Player` 对象来控制摄像头。 3. **启动摄像头**: 调用 `Player.start()` 方法开始...

    JMF.rar_java JMF_jmf

    1. **JMF组件**: - **MediaLocator**:用于定位媒体资源的接口,它可以是本地文件、URL或者网络流。 - **Player**:播放媒体内容的核心组件,它根据MediaLocator加载媒体并进行播放。 - **Processor**:对媒体...

    jmf.rar_jmf_语音通信java

    1. **JMF基础**:JMF是Sun Microsystems开发的一个开源库,主要用于处理多媒体数据,包括音频和视频。它提供了一种标准的方式来注册、管理和控制媒体播放器,支持多种媒体格式,并且可以扩展以支持新的媒体类型。 2...

    JMF_2.1拍照demo

    这里使用`CaptureDeviceManager.getDevice()`方法来获取指定的视频捕获设备信息。`"vfw:MicrosoftWDMImageCapture(Win32):0"`是一个设备定位器字符串,指定了要使用的具体视频捕获设备。 ```java mediaLocator = ...

    JMF_API帮助文档

    `AudioDeviceUnavailableEvent` 类是 `ControllerEvent` 的子类,表示控制器无法获取音频设备。这可能是由于设备被其他进程占用或者硬件问题导致的。 `AudioFormat` 类是 `Format` 类的子类,提供了关于压缩音频...

    java 多媒体 JMF_api文档

    1. **组件体系结构**:JMF基于组件化的架构,由多个可插拔的媒体处理器(称为“处理器链”)组成,这些处理器负责解码、播放、捕获等任务。开发者可以扩展或替换这些组件以适应特定的多媒体格式。 2. **注册服务...

    jmf-2_1_1e.rar

    1. **设备访问**:JMF提供对本地硬件资源,如摄像头和麦克风的访问,通过`MediaLocator`对象指定设备的URL或端口。 2. `CaptureDevice`:使用JMF的`CaptureDevice`类,可以获取和控制摄像头的输入源。 3. **预览与...

    JMF608MP_2.03.059.rar

    1. “访问我们.url”是一个链接快捷方式,可能是开发者或制造商提供的网站链接,用户可以通过这个链接获取更多关于JMF608MP工具的信息、技术支持或者更新。 2. “U盘量产网.url”同样是一个网址链接,可能指向一个...

    Java用JMF拍照

    可以通过`getDeviceDescriptions()`方法获取设备列表,并根据需求选择合适的设备。 4. **创建捕捉会话**: 创建一个`CaptureSession`,这是捕获图像的核心部分。你需要指定视频格式,如分辨率、帧率等,然后调用`...

    jmf2.1.1源代码

    6. **Capture Device**:捕获设备接口允许JMF获取来自硬件输入的多媒体数据,例如摄像头或麦克风。 通过研究这些组件的实现,开发者不仅可以掌握JMF的工作流程,还能了解到如何处理多媒体数据的挑战,如同步问题、...

    JMF.rar_jmf

    在JMF中,媒体捕获是指从外部设备(如摄像头或麦克风)获取音频或视频数据。这些数据可以被实时处理,比如调整音量、裁剪画面等,也可以存储到本地文件中。媒体流传输则涉及将这些数据发送到网络,使远程用户可以...

    jmf.zip_Mine!

    1. **Media Manager**: 这是JMF的入口点,负责管理所有媒体资源的加载、播放和控制。它可以根据媒体类型和可用的硬件资源来选择合适的播放器。 2. **Player**: JMF中的Player类是媒体播放的核心,它可以解析媒体...

    JMF 的CaptureDeviceManager.getDeviceList(null)获取不到设备列表,返回值为空

    JMF 的CaptureDeviceManager.getDeviceList(null)获取不到设备列表,返回值为空,的解决方法;

    JMF602B Data Sheet V1.3

    JMF602B完全符合SATA I/II规范,确保了与各种SATA设备的兼容性。 #### CPU与Flash管理 它内建有强大的CPU,能够高效处理复杂的指令,并支持多种闪存类型,包括NAND Flash,提供灵活的存储解决方案。 #### 系统集成...

    Melomane_Records:迪斯科舞厅

    4. **RESTful API**:为了实现跨平台的访问,项目可能提供了RESTful接口,便于其他应用或设备获取和上传音乐数据。 5. **安全性**:使用Java的安全特性,如SSL/TLS加密,防止未授权访问,保护用户数据。 6. **测试...

    JMF摄像头视频采集示例

    1. **视频采集**:JMF通过`CaptureDevice`接口来获取视频源,通常是摄像头。开发者首先需要注册并初始化设备,然后创建一个`Player`实例来播放捕获的视频。在这个过程中,可能需要设置各种参数,如帧率、分辨率和...

    jmf rtp 传输视频例子

    2. **捕获视频流**:使用JMF的CaptureDevice接口从摄像头获取视频流。这通常涉及到选择合适的设备,设置捕获格式,然后启动捕获。 3. **创建RTP会话**:使用JMF的RTPManager类创建一个RTP会话,这将处理RTP包的发送...

    JMF摄像头麦克风视频音频的捕获及播放

    在音频捕获方面,JMF支持从麦克风或其他音频输入设备获取声音数据。AudioSystem类是音频捕获的关键,它可以创建并管理音频输入流。通过设置适当的采样率、位深度和声道数,开发者可以定制音频捕获的质量。 播放视频...

Global site tag (gtag.js) - Google Analytics