Да, это определенно возможно, но не очень простая задача, если вы заранее не получите совета.
Прежде всего, есть пример кода, который поставляется как минимум с пакетом Eclipse (CameraDemo), который показывает, как создать видоискатель, используя Field, Player и VideoScreen.Самая большая проблема заключается в том, что сторонние разработчики не могут наложить что-либо поверх видоискателя (то, что они назовут полем после того, как вы установите его как таковой с помощью VideoControl.
Кроме того, вы очень ограниченыкакой размер вы можете установить Поле - у меня только половина размера и полноэкранный режим, некоторые измерения игнорируются, а другие приводят к тому, что оно вообще не отображается.
Вот код, который показывает это:
private Field _videoField;
private Player _player;
private VideoControl _videoControl;
private void initCamera() {
try{
_player = Manager.createPlayer( "capture://video??encoding=jpeg&width=640&height=480" );
_player.realize();
_player.prefetch();
_videoControl = (VideoControl)_player.getControl("VideoControl");
_player.start();
if (_videoControl != null){
_videoField = (Field) _videoControl.initDisplayMode (VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");
_videoControl.setDisplayFullScreen(true);
add(_videoField);
}
}
catch(Exception e)
{
//show error
}
}
После этого вы можете использовать
byte[] image = _videoControl.getSnapshot(sizeAndEncodingParamters);
для привязки изображения. Чтобы определить, какие sizeAndEncodingParameters поддерживает ваше устройство, вы можете использовать System.getProperty("video.snapshot.encodings");
, который вернет String[]
, который выможно перебрать, чтобы определить, что использовать.