我在使用VideoControl.getSnapshot()方法拍照时出现问题。它总是抛出异常:getSnapshot不受支持。我在Eclipse和BlackBerry®Java®SDK 5.0插件上使用JRE 5.0.0。getSnapshot黑莓手机不支持
我所做的第一件事是用命令System.getProperty(“video.snapshot.encodings”)列出黑莓智能手机支持的编码(粗体9700),并从列表中选择一种编码并将其作为getSnapshot传递论据。
我测试过几款黑莓手机,并且抛出了相同的异常。代码
部分:
mPlayer = Manager.createPlayer("capture://video?encoding=video/3gpp");
mPlayer.realize();
mPlayer = Manager.createPlayer("capture://video?encoding=video/3gpp");
mPlayer.start();
videoControl = (VideoControl)mPlayer.getControl("VideoControl");
Field cameraView = (Field) videoControl.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");
Thread.sleep(1000);
UiApplication.getUiApplication().pushScreen(new TempScreen(cameraView));
byte[] snapShot = videoControl.getSnapshot("encoding=jpeg&width=480&height=360&quality=superfine");
Bitmap image = Bitmap.createBitmapFromBytes(snapShot, 0, snapShot.length, 1);
UiApplication.getUiApplication().pushScreen(new TempScreen(image));
}catch (MediaException e){
UiApplication.getUiApplication().pushScreen(new TempScreen("Exception: " + e.getMessage())); }
catch (IOException e){
UiApplication.getUiApplication().pushScreen(new TempScreen("IO Exception: " + e.getMessage()));
}
catch (InterruptedException e){UiApplication.getUiApplication().pushScreen(new TempScreen("Interrupted Exception: "+ e.getMessage()));}