开发者

Black berry camera programming

开发者 https://www.devze.com 2023-02-24 05:38 出处:网络
I开发者_运维百科 want take pictures using black berry camera for my app, it is possible in v5.0 and yes then how?Yes it is definitely possible, but not a very simple task if you don\'t get some advice

I开发者_运维百科 want take pictures using black berry camera for my app, it is possible in v5.0 and yes then how?


Yes it is definitely possible, but not a very simple task if you don't get some advice up front.

First and foremost, there is some sample code that is shipped with the Eclipse package at least (CameraDemo) that shows how to create a viewfiender using a Field, Player, and VideoScreen. The biggest issue is third party developers cannot overlay anything on top of the view finder (which is the what they'll call the Field after you set it as such with a VideoControl.

Also, you are very limited to what size you can set the Field -- I only got half size and fullscreen working, some dimensions got ignored and others caused it to not be displayed at all.

Here is some code that shows this:

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
        }
    }

After you do this you can use

            byte[] image = _videoControl.getSnapshot(sizeAndEncodingParamters);

to snap the picture. To determine what sizeAndEncodingParameters your device supports, you can use System.getProperty("video.snapshot.encodings"); which will return a String[] that you can iterate over to determine what to use.


Take a look at samples that come with the BB SDK installation on your PC. There is CameraDemo sample. You can just try searching for CameraDemo.java on your HDD if you're unsure where those samples are.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号