2011-04-21 127 views
2

我下面的代码返回null,摄像头编程

byte[] image1 = _videoControl.getSnapshot(null); 

任何建议,请有关VideoControl.getSnapshot方法

回答

4

几个重要时刻:

  • 一些制造商可能无法实现getSnapshot( ) 方法;
  • 取景器在调用getSnapShot()之前必须在屏幕上可见。
  • 如果您尝试快速拍照,但是,getSnapShot()可能会返回null。相机需要时间清除缓冲区并准备下一张照片;
  • 你可以捕捉前检查MMAPI系统属性为 “video.snapshot.encodings”:
if (System.getProperty("video.snapshot.encodings") == null) { 
     // getSnapshot() is not supported 
} 

您可以阅读的书 “高级黑莓发展” 这一章: http://books.google.com/books?id=F4Qu-lpoVncC&pg=PA53&lpg=PA53#v=onepage&q&f=false

+1

+1这是一个非常好的答案。 – 2011-04-21 07:43:36

+0

这真的很有用......感谢链接中的针点回答,即在所有情况下,在调用getSnapShot()之前,取景器必须实际在屏幕上可见,只需使您的字段可以聚焦,并且将获得一个字节[] 作为回报。 Gr8回答... – Panache 2012-03-07 13:33:03

0

由于VideoControl.getSnapshot方法不被我推荐使用另一种方法的所有设备支持。使用FileSystemJournalListener捕捉拍摄的图像

Invoke.invokeApplication(Invoke.APP_TYPE_CAMERA, new CameraArguments()); 

,然后:您可以使用此行代码开始原生BB相机应用程序。

PC上的BB SDK包含示例。搜索'fileexplorerdemo'示例以查看其余细节。