关于JMF语音视频捕获.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于JMF语音视频捕获

JMF捕获 首先介绍一些该用到的术语(类) ●截取设备(CaptureDeviceInfo) ●数据格式(Format) ●定位器(MediaLocator) ●数据源(Data source)●播放器(Player) ●处理器(Processor) ●管理器(Manager) ●数据保存(DataSink) 个人理解这些类: 截取设备(CaptureDviceInfo)是检查是否有视频或者语音设备,一般用向量(Vector)泛型接住,视频和语音是样的。 定位器(MediaLocator) 既然我们用vector接住此设备信息。然后我们可以拿出这个信息进行此信息来源的定位,意思就是比如说别人寄一封信给你,然后你可以通过信上的信息得到他在哪个地方,我们可以通过这个信息去找到他。定位器的工作也就是跑到设备面前说:黑呀,它在这里! 数据源(DataSource) 既然定位器找到了设备所在地,那么接下来我们是不是可以让这个设备拿出一点小意思(找的辛苦啊),那么我们就得和管理员(Manager)说一声叫他让这个设备给我们工作,传出一点什么来(数据)。 数据格式(Format) 既然把数据源拿出来了,我们要确定它的格式,就像视频文件有很多种格式(rmvb,avi········),总要有我们播放器(Player)能识别的吧。其实数据格式在截取设备之时就给定了(代码会给出) 播放器(Player)播放器有很多种状态,我就只说一种,如果有机会介绍RTP传输协议的话,我会逐一解释。因为我们的数据源的来源是已经完全确定下来了的,所以它是一个Realized状态 管理器(Manager) 顾名思义,我们在这某地方做什么事情都有个管事的人不?所以这个人的权利不可小觑,自己慢慢领悟。 数据保存(DataSink) 这个就是我们所说的视频语音的现场拍摄吧,都把自己拍的东东保存下来了,以后可以看看,呵呵。 处理器(Processor) 数据保存需要有人去保存不,所以就叫处理器去做这个工作咯,处理器还有传输数据的功能 好了,大概的也就介绍完毕,废话少说,摆代码了: 这是个方法,如果你自己都不会写GUI的话,那到此打住吧 顺便说一下:在运行此方法之前,如果是用Eclipse,你需要安装JMF,然后在你建立的工程里面导入jmf.jar包。怕有些人不懂还是给一下步骤吧:工程名那里点击右键(BuildPath(Configure BuildPath(java Build Path(Libraries(Add External JARs(找到你所安装JMF的安装路径里面的lib文件夹里面确定jmf.jar(Program Files/JMF2.1.1e/lib) public void initVedio() throws NoDataSourceException, IOException, IncompatibleSourceException, NoPlayerException, CannotRealizeException{ //////////////////////////////////////////////////////// //由于JMF与win7不兼容缘故,这段话可以避免你在win7里面运行时出现问 //题的解决方案,如果是XP那就免了 String name = VFWCapture.capGetDriverDescriptionName(0); if(name !=null){ VFWSourceStream.autoDetect(0); }else{ JOptionPane.showMessageDialog(this, 无视频驱动); } VectorCaptureDeviceInfo video = CaptureDeviceManager.getDeviceList(new VideoFormat(null)); //此为截取音频设备,这两个截取都给了Format //音频设备格式是固定给予的 VectorCaptureDeviceInfo audio = CaptureDeviceManager.getDeviceList(new AudioFormat( AudioFormat.LINEAR,44100,16,2 )); //定义数据源 DataSource audioDataLocal = null; DataSource videoDataLocal = null; //如果音频设备捕捉不为空就让定位器(MediaLocator)去定位 if(audio !=null audi

文档评论(0)

xjj2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档