====== CameraView control ======
//(Information and examples taken from the DroidScript documentation)//
===== Description =====
Create a camera preview control using the **CreateCameraView** function of the **[[built_in:app|app]]** object:
cam = app.CreateCameraView( width, height, options );
This control allows your program to show a live feed of what is currently being seen by the phone/tablet's camera. If your device has a front facing camera and is at least version 2.3 of Android you can use the **"Front"** option to show the front camera's preview.
You will need to call the **StartPreview** function of the CameraView control to start the preview\\ (Note: On some phones it is neccessary to wait at least one second before calling the StartPreview function).
cam.StartPreview();
Use the **TakePicture** function to take a picture and save it to a given location.
cam.TakePicture( filename );
Use the **SetPictureSize** function to set the dimensions in pixels of the pictures taken (eg. 1024 x 768).
cam.SetPictureSize( width, height );
For more sophisticated examples including motion detection and video streaming, check out the **'Camera Stream'**, **'Camera Snap'** and **'Camera Motion'** sample programs in the DroidScript samples section.
----
===== Methods =====
Some controls use the same methods.\\
For examples of the **[[same methods]]** look here.
^ Method ^ Description ^
| CameraView.AutoCapture( folder, fileName, maxCount ) | |
| CameraView.Destroy() | |
| CameraView.FindFaces( max ) | |
| CameraView.Focus() | |
| CameraView.GetAbsHeight() | |
| CameraView.GetAbsWidth() | |
| CameraView.GetCameraCount() | |
| CameraView.GetColorEffects() | use in SetOnReady |
| CameraView.GetHeight() | |
| CameraView.GetImageHeight() | |
| CameraView.GetImageWidth() | |
| CameraView.GetMaxZoom() | |
| CameraView.GetParameters() | |
| CameraView.GetPictureSizes() | |
| CameraView.GetPixelData( format,left,top,width,height ) | format can be “rawbase64”, “pngbase64” or “jpgbase64” |
| CameraView.GetPosition() | |
| CameraView.GetType() | |
| CameraView.GetVisibility() | |
| CameraView.GetWidth() | |
| CameraView.GetZoom() | |
| Cameraview.IsRecording() | |
| CameraView.MotionMosaic( xtiles, ytiles, sensitivity, minPeriod, imageObj ) | |
| CameraView.Record(file,seconds) | |
| CameraView.Release() | |
| CameraView.ReportColors( list,callback,sampSize,maxRate ) | |
| CameraView.SetBackColor( color ) | |
| CameraView.SetBackGradient( color1,color2,color3,p4,p5,p6,p7 ) | |
| CameraView.SetBackGradientRadial( x,y,r,color1,color2,color3,p7 ) | |
| CameraView.SetBackground( imagefile,options ) | |
| CameraView.SetColorEffect( effect ) | use in SetOnReady |
| CameraView.SetDuplicateImage( img1,img2 ) | |
| CameraView.SetFlash( onoff ) | set to true or false |
| CameraView.SetFocusMode( mode ) | |
| CameraView.SetMargins( left,top,right,bottom ) | |
| CameraView.SetOnMotion( callback ) | |
| CameraView.SetOnPicture( callback ) | |
| CameraView.SetOnReady( callback ) | |
| CameraView.SetPadding( left,top,right,bottom ) | |
| CameraView.SetParameter( name,value ) | |
| CameraView.SetPictureSize( width,height ) | Set size in pixel |
| CameraView.SetPosition( left, top, width, height ) | |
| CameraView.SetPreviewImage( imageObj ) | |
| CameraView.SetScale( x,y ) | |
| CameraView.SetSize( width, height ) | |
| CameraView.SetSound( onoff ) | |
| CameraView.SetVisibility( HideShow ) | |
| CameraView.SetZoom( level ) | |
| CameraView.StartPreview() | |
| CameraView.Stop() | |
| CameraView.StopPreview() | |
| CameraView.Stream( ip,p2,quality,fps,p5 ) | |
| CameraView.TakePicture( fileName ) | |
----
===== Options =====
These are the camera resolution options:
* CIF
* QVGA
* SVGA
* VGA
* XGA
* UXGA
----
====Example - Show camera preview====
function OnStart()
{
lay = app.CreateLayout( "Linear", "VCenter,FillXY" );
cam = app.CreateCameraView( 0.8, 0.4 );
cam.SetOnReady( cam_OnReady );
lay.AddChild( cam );
app.AddLayout( lay );
}
// Runs after "SetOnReady" as a callback
function cam_OnReady() {
cam.StartPreview();
}
====Example - Take pictures====
function OnStart()
{
lay = app.CreateLayout( "Linear", "VCenter,FillXY" );
cam = app.CreateCameraView( 0.8, 0.4 );
lay.AddChild( cam );
cam.SetPictureSize( 1024, 768 );
setTimeout( "cam.StartPreview()", 1000 );
btn = app.CreateButton( "Snap", 0.3, -1 );
btn.SetOnTouch( Snap );
lay.AddChild( btn );
app.AddLayout( lay );
}
function Snap()
{
cam.TakePicture( "/sdcard/MyPic.jpg" );
app.ShowPopup("Picture saved");
}
====Example - Record Video====
//Called when application is started.
function OnStart()
{
//Fix orientation to landscape since
//most phones cameras work this way.
app.SetOrientation( "Landscape" );
//Create horizontal layout that fills the screen.
lay = app.CreateLayout( "Linear", "Horizontal,FillXY,VCenter" );
lay.SetBackground( "/res/drawable/pattern_carbon", "repeat" );
//Create camera view control.
cam = app.CreateCameraView( 0.6, 0.8 );
cam.SetOnReady( cam_OnReady );
cam.SetMargins( 0, 0, 0.04, 0 );
lay.AddChild( cam );
//Create vertical layout on right for other stuff.
layRight = app.CreateLayout( "Linear", "Vertical" );
lay.AddChild( layRight );
//Create record button.
btn = app.CreateButton( "Record", 0.2, 0.15, "Alum" );
btn.SetMargins( 0, 0.06, 0, 0 );
btn.SetOnTouch( btn_OnTouch );
layRight.AddChild( btn );
//Add main layout to app.
app.AddLayout( lay );
//Create a folder for recordings.
recFolder = "/sdcard/Videos";
app.MakeFolder( recFolder );
}
//Called when camera is ready.
function cam_OnReady()
{
//Set focus mode and start preview.
cam.SetFocusMode( "Video" );
cam.StartPreview();
}
//Handle record button.
function btn_OnTouch()
{
if( cam.IsRecording() )
{
//Stop recording and update button.
cam.Stop();
btn.SetText( "Record" );
}
else
{
//Start recording and update button.
cam.Record( recFolder+"/test.mp4" );
btn.SetText( "Stop" );
}
}