// 拍照 function getImage() { outSet( "開始拍照:" ); var cmr = plus.camera.getCamera(); cmr.captureImage( function ( p ) { outLine( "成功:"+p ); plus.io.resolveLocalFileSystemURL( p, function ( entry ) { createItem( entry ); }, function ( e ) { outLine( "讀取拍照文件錯誤:"+e.message ); } ); }, function ( e ) { outLine( "失敗:"+e.message ); }, {filename:"_doc/camera/",index:1} ); }
// 錄像 function getVideo() { outSet( "開始錄像:" ); var cmr = plus.camera.getCamera(); cmr.startVideoCapture( function ( p ) { outLine( "成功:"+p ); plus.io.resolveLocalFileSystemURL( p, function( entry) { createItem( entry ); }, function( e ) { outLine( "讀取錄像文件錯誤:"+e.message ); } ); }, function( e ){ outLine( "失敗:"+e.message ); }, {filename:"_doc/camera/",index:i} ); }
camera
Camera模塊管理設備的攝像頭,可用於拍照、攝像操作,通過plus.camera獲取攝像頭管理對象。
方法:
- getCamera: 獲取攝像頭管理對象
對象:
- Camera: 攝像頭對象
- CameraOption: JSON對象,調用攝像頭的參數
- PopPosition: JSON對象,彈出拍照或攝像界面指示位置
回調方法:
- CameraSuccessCallback: 調用攝像頭操作成功回調
- CameraErrorCallback: 攝像頭操作失敗回調
權限:
permissions
"Camera":{"description":"訪問攝像頭設備"}
getCamera
獲取攝像頭管理對象
Camera plus.camera.getCamera( index );
說明:
獲取需要操作的攝像頭對象,如果要進行拍照或攝像操作,需先通過此方法獲取攝像頭對象。
參數:
- index: ( Number ) 可選 要獲取攝像頭的索引值
指定要獲取攝像頭的索引值,1表示主攝像頭,2表示輔攝像頭。如果沒有設置則使用系統默認主攝像頭。
返回值:
Camera : 攝像頭對象平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);var r =null;// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){// 獲取設備默認的攝像頭對象 var cmr = plus.camera.getCamera();// ...... }</script></head><body></body></html>
Camera
攝像頭對象
interfaceCamera{readonly attribute DOMString[] supportedImageResolutions;readonly attribute DOMString[] supportedVideoResolutions;readonly attribute DOMString[] supportedImageFormats;readonly attribute DOMString[] supportedVideoFormats;functionvoid captureImage( successCB, errorCB, option );functionvoid startVideoCapture( successCB, errorCB, option );functionvoid stopVideoCapture();}
屬性:
- supportedImageResolutions: 字符串數組,攝像頭支持的拍照分辨率
- supportedVideoResolutions: 字符串數組,攝像頭支持的攝像分辨率
- supportedImageFormats: 字符串數組,攝像頭支持的拍照文件格式
- supportedVideoFormats: 字符串數組,攝像頭支持的攝像文件格式
方法:
- captureImage: 進行拍照操作
- startVideoCapture: 調用攝像頭進行攝像操作
- stopVideoCapture: 結束攝像操作
supportedImageResolutions
字符串數組,攝像頭支持的拍照分辨率
說明:
Array 類型 只讀屬性
屬性類型為DOMString[],若不支持此屬性則返回空數組對象。攝像頭支持的拍照圖片分辨率字符串形式“WIDTH*Height”,如“400*800”;如果支持任意自定義分辨率則“*”。
平台支持:
- Android (支持)
- iOS (不支持): 返回空數組對象
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera(); alert("Camera supperted image resolutions: "+ cmr.supportedImageResolutions );}</script></head><body></body></html>
supportedVideoResolutions
字符串數組,攝像頭支持的攝像分辨率
說明:
Array 類型 只讀屬性
屬性類型為String[],若不支持此屬性則返回空數組對象。攝像頭支持的視頻分辨率字符串形式為“WIDTH*Height”,如“400*800”;如果支持任意自定義分辨率則“*”。
平台支持:
- Android (支持)
- iOS (不支持): 返回空數組對象
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera(); alert("Camera supperted image resolutions: "+ cmr.supportedImageResolutions );}</script></head><body></body></html>
supportedImageFormats
字符串數組,攝像頭支持的拍照文件格式
說明:
Array 類型 只讀屬性
屬性類型為String[],若不支持此屬性則返回空數組對象。攝像頭支持的圖片文件格式字符串形式為文件格式后綴名,如“jpg”、“png”、“bmp”。
平台支持:
- Android (支持)
- iOS (不支持): 返回空數組對象
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera(); alert("Camera supperted image formats: "+ cmr.supportedImageFormats );}</script></head><body></body></html>
supportedVideoFormats
字符串數組,攝像頭支持的攝像文件格式
說明:
Array 類型 只讀屬性
屬性類型為String[],若不支持此屬性則返回空數組對象。攝像頭支持的視頻文件格式字符串形式為文件格式后綴名,如“3gp”、“mp4”、“avi”。
平台支持:
- Android (支持)
- iOS (不支持): 返回空數組對象
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera(); alert("Camera supperted video formats: "+ cmr.supportedVideoFormats );}</script></head><body></body></html>
captureImage
進行拍照操作
cmr.captureImage( successCB, errorCB, option );
說明:
攝像頭資源為獨占資源,如果其它程序或頁面已經占用攝像頭,再次操作則失敗。 拍照操作成功將通過successCB返回拍照獲取的圖片路徑。 可通過option設置攝像頭的各種屬性參數。
參數:
- successCB: ( CameraSuccessCallback ) 必選 拍照操作成功的回調函數
- errorCB: ( CameraErrorCallback ) 可選 拍照操作失敗的回調函數
- option: ( CameraOption ) 必選 攝像頭拍照參數
返回值:
void : 無平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);var r =null;// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera();var res = cmr.supportedImageResolutions[0];var fmt = cmr.supportedImageFormats[0]; cmr.captureImage(function( path ){ alert("Capture image success: "+ path );},function( error ){ alert("Capture image failed: "+ error.message );},{resolution:res, format:fmt });}</script></head><body></body></html>
startVideoCapture
調用攝像頭進行攝像操作
cmr.startVideoCapture( successCB, errorCB, option );
說明:
攝像頭資源為獨占資源,如果其它程序或頁面已經占用攝像頭,再次操作則失敗。 拍照操作成功將通過successCB返回攝像獲取的視頻文件路徑。 可通過option設置攝像頭的各種屬性參數。
參數:
- successCB: ( CameraSuccessCallback ) 必選 攝像操作成功的回調函數
- errorCB: ( CameraErrorCallback ) 可選 拍攝像操作失敗的回調函數
- option: ( CameraOption ) 必選 攝像頭拍照參數
返回值:
void : 無平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);var r =null;// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera();var res = cmr.supportedVideoResolutions[0];var fmt = cmr.supportedVideoFormats[0]; cmr.startVideoCapture(function( path ){ alert("Capture video success: "+ path );},function( error ){ alert("Capture video failed: "+ error.message );},{resolution:res, format:fmt });}</script></head><body></body></html>
stopVideoCapture
結束攝像操作
cmr.stopVideoCapture();
說明:
開始調用攝像頭進行攝像操作后,可在后台結束攝像操作,與用戶在界面結束操作效果一致。 攝像操作成功將通過startVideoCapture函數中的successCB返回拍照獲取的圖片路徑。 用戶如果沒有進行攝像操作關閉攝像頭頁面則調用失敗回調函數。
參數:
返回值:
void : 無平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html><html><head><metacharset="utf-8"><title>Camera Example</title><scripttype="text/javascript">// 擴展API加載完畢后調用onPlusReady回調函數 document.addEventListener("plusready", onPlusReady,false);var r =null;// 擴展API加載完畢,現在可以正常調用擴展API function onPlusReady(){var cmr = plus.camera.getCamera();var res = cmr.supportedVideoResolutions[0];var fmt = cmr.supportedVideoFormats[0]; cmr.startVideoCapture(function( path ){ alert("Capture video success: "+ path );},function( error ){ alert("Capture video failed: "+ error.message );},{resolution:res, format:fmt });// 拍攝10s后自動完成 setTimeout(function(){ cmr.stopVideoCapture();},10000);}</script></head><body></body></html>
CameraOption
JSON對象,調用攝像頭的參數
interfaceCameraOption{ attribute String filename; attribute String format; attribute String index; attribute PopPosition popover;}
屬性:
- filename: (DOMString 類型 )拍照或攝像文件保存的路徑
可設置具體文件名,也可只設置路徑,如果以“/”結尾則表明是路徑,如未設置文件名稱或設置的文件名沖突則文件名由程序程序自動生成。
- format: (DOMString 類型 )拍照或攝像的文件格式
可通過Camera對象的supportedImageFormats或supportedVideoFormats獲取,如果設置的參數無效則使用系統默認值。
- index: (DOMString 類型 )拍照或攝像默認使用的攝像頭
拍照或攝像界面默認使用的攝像頭編號,1表示主攝像頭,2表示輔攝像頭。
- popover: (PopPosition 類型 )拍照或攝像界面彈出指示區域
對於大屏幕設備如iPad,拍照或攝像界面為彈出窗口,此時可通過此參數設置彈出窗口位置,其為JSON對象,格式如{top:10,left:10,width:200,height:200},默認彈出位置為屏幕居中。
PopPosition
JSON對象,彈出拍照或攝像界面指示位置
屬性:
- top: (DOMString 類型 )指示區域距離容器頂部的距離
彈出拍照或攝像窗口指示區域距離容器頂部的距離,支持像素值(如100px)和百分比(如50%)。
- left: (DOMString 類型 )指示區域距離容器左側的距離
彈出拍照或攝像窗口指示區域距離容器左側的距離,支持像素值(如100px)和百分比(如50%)。
- width: (DOMString 類型 )指示區域的寬度
彈出拍照或攝像窗口指示區域的寬度,支持像素值(如100px)和百分比(如50%)。
- height: (DOMString 類型 )指示區域的高度
彈出拍照或攝像窗口指示區域的高度,支持像素值(如100px)和百分比(如50%)。
CameraSuccessCallback
調用攝像頭操作成功回調
void onSuccess( capturedFile ){// Caputre image/video file code.}
說明:
調用攝像頭操作成功的回調函數,在拍照或攝像操作成功時調用,用於返回圖片或視頻文件的路徑。
參數:
- capturedFile: ( DOMString ) 必選 拍照或攝像操作保存的文件路徑
返回值:
void : 無平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
CameraErrorCallback
攝像頭操作失敗回調
void onError( error ){// Handle camera error}
參數:
- error: ( DOMException ) 必選 攝像頭操作的錯誤信息
返回值:
void : 無平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)