語言

Camera 類別

定義

警告

This class is obsoleted in this android platform

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

[Android.Runtime.Register("android/hardware/Camera", DoNotGenerateAcw=true)]
[System.Obsolete("This class is obsoleted in this android platform")]
public class Camera : Java.Lang.Object
[<Android.Runtime.Register("android/hardware/Camera", DoNotGenerateAcw=true)>]
[<System.Obsolete("This class is obsoleted in this android platform")>]
type Camera = class
    inherit Object
繼承
屬性

備註

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。 此類別是 Camera 服務的客戶端,負責管理實際的相機硬體。

要存取裝置相機,必須在 Android 清單中宣告權限。android.Manifest.permission#CAMERA 同時也務必包含 <uses-feature> 清單元素,以宣告應用程式使用的相機功能。 例如,如果您使用相機與自動對焦功能,您的清單應包含以下內容:

&lt;uses-permission android:name="android.permission.CAMERA" />
            &lt;uses-feature android:name="android.hardware.camera" />
            &lt;uses-feature android:name="android.hardware.camera.autofocus" />

要與這堂課拍照,請使用以下步驟:

<ol><li>從 取得 Camera #open(int)的實例。

<li>取得現有(預設)設定。#getParameters()

<如>有必要,修改回傳物件 Camera.Parameters 並呼叫 #setParameters(Camera.Parameters)。

< >請致電#setDisplayOrientation(int)以確保預覽的正確方向。

<li><b>重要</b>:將 a 完全初始 SurfaceHolder 化為 #setPreviewDisplay(SurfaceHolder)。 沒有表面,攝影機將無法啟動預覽。

<li><b>重要</b>:請致電 #startPreview() 開始更新預覽表面。 預覽必須先開始,才能拍照。

<李>,想拍照的時候打電話 #takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) 。 等回調提供實際的影像資料。

<李>拍照後,預覽顯示會停止。 想拍更多照片,請先再打電話 #startPreview() 。

<李>,打電話 #stopPreview() 停止更新預覽表面。

<li><b>重要:</b> 呼叫 #release() 釋放相機供其他應用程式使用。 應用程式應該會立即 android.app.Activity#onPause() 釋放攝影機(並重新放#open() 回 android.app.Activity#onResume())。 </ol>

要快速切換到錄影模式,請使用以下步驟:

< > <ol li>取得並初始化相機,並如上所述開始預覽。

< >打電話#unlock()讓媒體進程進入攝影機。

<李>,把相機交給 android.media.MediaRecorder#setCamera(Camera)。 請參閱 android.media.MediaRecorder 有關錄影的資訊。

<李>錄影結束後,打電話 #reconnect() 重新取得並鎖定攝影機。

<如果>需要,可以重新啟動預覽並拍攝更多照片或影片。

<如上所述,李>考爾#stopPreview()#release()。 </ol>

此類別並非執行緒安全,設計用於單一事件執行緒。 大多數長期執行的操作(預覽、對焦、拍照等)都是非同步進行,並視需要呼叫回調。 回調會在呼叫執行緒的事件執行緒 #open(int) 中被調用。 此類別的方法絕不能同時從多個執行緒呼叫。

<強烈>注意:</strong> 不同的 Android 裝置可能有不同的硬體規格,例如百萬像素和自動對焦功能。 為了讓你的應用程式能與更多裝置相容,你不應該對裝置攝影機的規格做出假設。

<div class=“特殊參考”><h3>開發者指南</h3>

想了解更多相機使用資訊,請閱讀 相機 開發指南。

</div>

此會員已被棄用。 我們建議新應用程式使用新的 android.hardware.camera2 API。

Java 文件 android.hardware.Camera。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
Camera(IntPtr, JniHandleOwnership)
已淘汰.

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

欄位

名稱 Description
ActionNewPicture
已淘汰.

廣播動作:相機拍攝新照片,該照片的輸入已加入媒體商店。

ActionNewVideo
已淘汰.

轉播動作:攝影機錄製新影片,並將影片條目加入媒體商店。

屬性

名稱 Description
Class
已淘汰.

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle
已淘汰.

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode
已淘汰.

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
JniPeerMembers
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

NumberOfCameras
已淘汰.

回傳此裝置上可用的實體攝影機數量。

PeerReference
已淘汰.

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass
已淘汰.

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType
已淘汰.

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
AddCallbackBuffer(Byte[])
已淘汰.

在預覽回調緩衝區佇列中加入預先分配的緩衝區。

AutoFocus(Camera+IAutoFocusCallback)
已淘汰.

啟動相機自動對焦,並在相機對焦時註冊回調功能執行。

CancelAutoFocus()
已淘汰.

取消所有正在進行中的自動對焦功能。

Clone()
已淘汰.

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
Dispose()
已淘汰.

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)
已淘汰.

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
EnableShutterSound(Boolean)
已淘汰.

拍照時請開啟或關閉預設快門聲。

Equals(Object)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
Equals(Object)
已淘汰.

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetCameraInfo(Int32, Camera+CameraInfo)
已淘汰.

回傳特定攝影機的資訊。

GetHashCode()
已淘汰.

回傳物件的雜湊碼值。

(繼承來源 Object)
GetParameters()
已淘汰.

會回傳此相機服務的當前設定。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Lock()
已淘汰.

重新鎖定攝影機,防止其他程序存取。

Notify()
已淘汰.

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()
已淘汰.

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Open()
已淘汰.

建立一個新的相機物件,以存取裝置上第一個背面相機。

Open(Int32)
已淘汰.

建立一個新的相機物件以存取特定的硬體相機。

Reconnect()
已淘汰.

在另一個程序使用攝影機服務後,重新連接。

Release()
已淘汰.

斷開並釋放相機物件資源。

SetAutoFocusMoveCallback(Camera+IAutoFocusMoveCallback)
已淘汰.

設定相機自動對焦移動回撥。

SetDisplayOrientation(Int32)
已淘汰.

將預覽畫面的順時針旋轉設定為度數。

SetErrorCallback(Camera+IErrorCallback)
已淘汰.

註冊回調,當發生錯誤時可呼叫。

SetFaceDetectionListener(Camera+IFaceDetectionListener)
已淘汰.

註冊監聽器以通知預覽幀中偵測到的人臉。

SetHandle(IntPtr, JniHandleOwnership)
已淘汰.

設定 Handle 屬性。

(繼承來源 Object)
SetOneShotPreviewCallback(Camera+IPreviewCallback)
已淘汰.

除了在螢幕上顯示回調外,還安裝一個回調來用於下一幀預覽。

SetParameters(Camera+Parameters)
已淘汰.

更改此相機服務的設定。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
SetPreviewCallback(Camera+IPreviewCallback)
已淘汰.

安裝一個回調功能,讓每個預覽幀都能調用,並且會在螢幕上顯示。

SetPreviewCallbackWithBuffer(Camera+IPreviewCallback)
已淘汰.

安裝回調功能,使用隨 提供的 #addCallbackBuffer(byte[])緩衝區呼叫,並顯示在螢幕上。

SetPreviewDisplay(ISurfaceHolder)
已淘汰.

設定 將 Surface 用於現場預覽。

SetPreviewTexture(SurfaceTexture)
已淘汰.

設定 將 SurfaceTexture 用於現場預覽。

SetZoomChangeListener(Camera+IOnZoomChangeListener)
已淘汰.

在平滑變焦時,當攝影機驅動程式更新縮放值時,會註冊一個監聽器。

StartFaceDetection()
已淘汰.

開始臉部偵測。

StartPreview()
已淘汰.

開始擷取並繪製預覽幀到螢幕上。

StartSmoothZoom(Int32)
已淘汰.

可以順暢地縮放到請求的數值。

StopFaceDetection()
已淘汰.

這樣可以停止臉部偵測。

StopPreview()
已淘汰.

停止捕捉並繪製預覽幀到表面,並重置相機以備未來呼叫。#startPreview()

StopSmoothZoom()
已淘汰.

這樣會停止平滑的變焦。

TakePicture(Camera+IShutterCallback, Camera+IPictureCallback, Camera+IPictureCallback, Camera+IPictureCallback)
已淘汰.

相當於

TakePicture(Camera+IShutterCallback, Camera+IPictureCallback, Camera+IPictureCallback)
已淘汰.

拍了張照片。 擷取後預覽顯示停止;在再拍一張照片前先打電話 StartPreview() 。

ToArray<T>()
已淘汰.

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()
已淘汰.

回傳物件的字串表示。

(繼承來源 Object)
Unlock()
已淘汰.

解鎖攝影機,讓其他程序進入。

UnregisterFromRuntime()
已淘汰.

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()
已淘汰.

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)
已淘汰.

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)
已淘汰.

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

事件

名稱 Description
FaceDetection
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

ZoomChange
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)
已淘汰.

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)
已淘汰.

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)
已淘汰.

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)
已淘汰.

相機類別用於設定影像擷取設定、開始/停止預覽、拍攝照片,以及擷取影格以編碼影片。

TryJavaCast<TResult>(IJavaPeerable, TResult)
已淘汰.

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於