




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近项目要求能对视频和语音进行同步合成,以及对视频进行画面与语音的分离功能,由于没有接触过这类东西,所以想从最基础做起,于是在网上找到sun公司开源的jmf架构,看到网上也有不少小例子,就开始对安装jmf并配置了开发环境,将小例子粘到自己的新建工程下,结果发现不好用,没办法自己也顺手写了一个都发生同样的问题,希望有经验的朋友能够帮助解决一下。 我现在干脆就用网上的一个例子来说明问题,实现的功能是,利用点击拍照按钮能,启动摄像头并将捕捉摄像头的画面将生成图片保存到物理硬盘中,代码如下:Java代码1. packagecom.creatplay;2. importjava.awt.BorderLayout;3. importjava.awt.Color;4. importjava.awt.Component;5. importjava.awt.Dimension;6. importjava.awt.Graphics;7. importjava.awt.Graphics2D;8. importjava.awt.Image;9. importjava.awt.Panel;10. importjava.awt.Rectangle;11. importjava.awt.event.ActionEvent;12. importjava.awt.event.ActionListener;13. importjava.awt.event.WindowAdapter;14. importjava.awt.event.WindowEvent;15. importjava.awt.image.BufferedImage;16. importjava.io.FileNotFoundException;17. importjava.io.FileOutputStream;18. importjava.io.IOException;19. 20. importjavax.media.Buffer;21. importjavax.media.CannotRealizeException;22. importjavax.media.CaptureDeviceInfo;23. importjavax.media.CaptureDeviceManager;24. importjavax.media.Manager;25. importjavax.media.MediaLocator;26. importjavax.media.NoPlayerException;27. importjavax.media.Player;28. importjavax.media.control.FrameGrabbingControl;29. importjavax.media.format.VideoFormat;30. importjavax.media.util.BufferToImage;31. importjavax.swing.JButton;32. importjavax.swing.JFrame;33. importjavax.swing.JPanel;34. 35. importcom.sun.image.codec.jpeg.ImageFormatException;36. importcom.sun.image.codec.jpeg.JPEGCodec;37. importcom.sun.image.codec.jpeg.JPEGEncodeParam;38. importcom.sun.image.codec.jpeg.JPEGImageEncoder;39. 40. 41. publicclassFirstCaptureextendsJPanelimplementsActionListener42. 43. privateCaptureDeviceInfocaptureDeviceInfo=null;44. privateMediaLocatormediaLocator=null;45. privatestaticPlayerplayer=null;46. privateImagePanelimagePanel=null;47. privateJButtoncapture;48. privateBufferbuffer=null;49. privateVideoFormatvideoFormat=null;50. privateBufferToImagebufferToImage=null;51. privateImageimage=null;52. 53. publicFirstCapture()54. 55. 56. 57. setLayout(newBorderLayout();58. setSize(320,550);59. Stringstr=vfw:MicrosoftWDMImageCapture(Win32):0;60. captureDeviceInfo=CaptureDeviceManager.getDevice(str);61. /MediaLocatormediaLocator=captureDeviceInfo.getLocator();62. mediaLocator=newMediaLocator(vfw:/0);63. imagePanel=newImagePanel();64. capture=newJButton(拍照);65. capture.addActionListener(this);66. try67. player=Manager.createRealizedPlayer(mediaLocator);68. player.start();69. Componentcomp;70. Componentcomp1;71. if(comp=player.getVisualComponent()!=null)72. add(comp,BorderLayout.NORTH);73. /if(comp1=player.getControlPanelComponent()!=null)74. /add(comp1,BorderLayout.CENTER);75. catch(NoPlayerExceptione)76. /TODOAuto-generatedcatchblock77. e.printStackTrace();78. catch(CannotRealizeExceptione)79. /TODOAuto-generatedcatchblock80. e.printStackTrace();81. catch(IOExceptione)82. /TODOAuto-generatedcatchblock83. e.printStackTrace();84. 85. add(imagePanel,BorderLayout.SOUTH);86. add(capture,BorderLayout.CENTER);87. 88. 89. Override90. publicvoidprint(Graphicsg)91. /TODOAuto-generatedmethodstub92. super.print(g);93. g.setColor(newColor(255,0,0);94. g.drawLine(0,0,100,100);95. 96. 97. publicstaticvoidmain(Stringargs)98. /TODOAuto-generatedmethodstub99. JFramef=newJFrame(FirstCapture);100. FirstCapturecf=newFirstCapture();101. 102. f.addWindowListener(newWindowAdapter()103. publicvoidwindowClosing(WindowEvente)104. player.close();105. System.exit(0););106. 107. f.add(Center,cf);108. f.pack();109. f.setSize(newDimension(320,550);110. f.setVisible(true);111. 112. 113. publicvoidactionPerformed(ActionEvente)114. /TODOAuto-generatedmethodstub115. FrameGrabbingControlfgc=(FrameGrabbingControl)player.getControl(javax.media.control.FrameGrabbingControl);116. buffer=fgc.grabFrame();117. bufferToImage=newBufferToImage(VideoFormat)buffer.getFormat();118. image=bufferToImage.createImage(buffer);119. imagePanel.setImage(image);120. saveImage(image,D:/test.jpg);121. 122. publicstaticvoidsaveImage(Imageimage,Stringpath)123. 124. BufferedImagebi=newBufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);125. Graphics2Dg2=bi.createGraphics();126. g2.drawImage(image,null,null);127. FileOutputStreamfos=null;128. try129. fos=newFileOutputStream(path);130. 131. catch(FileNotFoundExceptione)132. /TODOAuto-generatedcatchblock133. e.printStackTrace();134. 135. JPEGImageEncoderje=JPEGCodec.createJPEGEncoder(fos);136. JPEGEncodeParamjp=je.getDefaultJPEGEncodeParam(bi);137. jp.setQuality(0.5f,false);138. je.setJPEGEncodeParam(jp);139. try140. je.encode(bi);141. fos.close();142. catch(ImageFormatExceptione)143. /TODOAuto-generatedcatchblock144. e.printStackTrace();145. catch(IOExceptione)146. /TODOAuto-generatedcatchblock147. e.printStackTrace();148. 149. 150. 151. classImagePanelextendsPanel152. 153. publicImagemyimg=null;154. 155. publicImagePanel()156. 157. setLayout(null);158. setSize(320,240);159. 160. 161. publicvoidsetImage(Imageimg)162. 163. this.myimg=img;164. repaint();165. 166. 167. publicvoidpaint(Graphicsg)168. 169. if(myimg!=null)170. 171. g.drawImage(myimg,0,0,this);172. 173. 174. 175. 176. 177. 加载报出的异常为:javax.media.NoPlayerException: Cannot find a Player for :vfw:/0 at javax.media.Manager.createPlayerForContent(Manager.java:1412) at javax.media.Manager.createPlayer(Manager.java:417) at javax.media.Manager.createRealizedPlayer(Manager.java:553) at com.creatplay.FirstCapture.(FirstCapture.java:67) at com.creatplay.FirstCapture.main(FirstCapture.java:100)继续运行点击“拍照”出现的一场为:Exception in thread AWT-EventQueue-0 java.lang.NullPointerException at com.creatplay.FirstCapture$1.windowClosing(FirstCapture.java:104) at java.awt.WcessWindowEvent(Unknown Source) at javax.swing.JFcessWindowEvent(Unknown Source) at java.awt.Window.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广播电视节目策划方案范例
- 支付监管挑战-洞察及研究
- 企业文化培训方案设计
- 民办教育机构招生宣传策略分析
- 五年级语文期末复习资料及考点归纳
- 购买种子的合同(标准版)
- 软件项目风险控制与合作协议
- 消防中控室值班合同(标准版)
- 小学武术培训课程计划
- 彩钢板屋面防漏技术总结
- 第二类医疗器械经营范围、经营方式说明
- 《灌区数字孪生平台与-四预-功能建设》
- 沙滩承包合同范例
- 2022年CSCO软组织肉瘤诊疗指南
- 住宅物业安全隐患巡查制度
- 自然辩证法学习通超星期末考试答案章节答案2024年
- 教师资格认定申请表
- 劳保用品验收标准
- 2024年北师大版八年级上册全册数学单元测试题含答案
- XX镇村级光伏扶贫电站运维管理考核方案
- 军工PCB市场潜力
评论
0/150
提交评论