ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง camera_device_ops
#include <
camera.h
>
|
int(*
|
set_preview_window
)(struct
camera_device
*, struct
preview_stream_ops
*window)
|
|
void(*
|
set_callbacks
)(struct
camera_device
*,
camera_notify_callback
notify_cb,
camera_data_callback
data_cb,
camera_data_timestamp_callback
data_cb_timestamp,
camera_request_memory
get_memory, void *user)
|
|
void(*
|
enable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
void(*
|
disable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
msg_type_enabled
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
start_preview
)(struct
camera_device
*)
|
|
void(*
|
stop_preview
)(struct
camera_device
*)
|
|
int(*
|
preview_enabled
)(struct
camera_device
*)
|
|
int(*
|
store_meta_data_in_buffers
)(struct
camera_device
*, int enable)
|
|
int(*
|
start_recording
)(struct
camera_device
*)
|
|
void(*
|
stop_recording
)(struct
camera_device
*)
|
|
int(*
|
recording_enabled
)(struct
camera_device
*)
|
|
void(*
|
release_recording_frame
)(struct
camera_device
*, const void *opaque)
|
|
int(*
|
auto_focus
)(struct
camera_device
*)
|
|
int(*
|
cancel_auto_focus
)(struct
camera_device
*)
|
|
int(*
|
take_picture
)(struct
camera_device
*)
|
|
int(*
|
cancel_picture
)(struct
camera_device
*)
|
|
int(*
|
set_parameters
)(struct
camera_device
*, const char *parms)
|
|
char *(*
|
get_parameters
)(struct
camera_device
*)
|
|
void(*
|
put_parameters
)(struct
camera_device
*, char *)
|
|
int(*
|
send_command
)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
|
void(*
|
release
)(struct
camera_device
*)
|
|
int(*
|
dump
)(struct
camera_device
*, int fd)
|
|
คําจํากัดความที่บรรทัด
99
ของไฟล์
camera.h
.
เริ่มโฟกัสอัตโนมัติ ระบบจะเรียกใช้รูทีนการเรียกกลับการแจ้งเตือนด้วย CAMERA_MSG_FOCUS 1 ครั้งเมื่อโฟกัสเสร็จสมบูรณ์ ระบบจะเรียกใช้ autoFocus() อีกครั้งหากต้องการโฟกัสอัตโนมัติอีก
คําจํากัดความที่บรรทัด
227
ของไฟล์
camera.h
.
ยกเลิกฟังก์ชันโฟกัสอัตโนมัติ หากโฟกัสอัตโนมัติยังทำงานอยู่ ฟังก์ชันนี้จะยกเลิกโฟกัสอัตโนมัติ ฟังก์ชันนี้จะเปลี่ยนตำแหน่งโฟกัสกลับเป็นค่าเริ่มต้น ไม่ว่าโฟกัสอัตโนมัติจะทำงานอยู่หรือไม่ก็ตาม หากกล้องไม่รองรับโฟกัสอัตโนมัติ ตัวเลือกนี้จะใช้งานไม่ได้
คําจํากัดความที่บรรทัด
235
ของไฟล์
camera.h
.
ยกเลิกรูปภาพที่เริ่มต้นด้วย takePicture การเรียกใช้เมธอดนี้เมื่อไม่มีการถ่ายภาพจะใช้งานไม่ได้
คําจํากัดความที่บรรทัด
246
ของไฟล์
camera.h
.
void(* disable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
ปิดใช้ข้อความหรือชุดข้อความ
เมื่อได้รับการเรียกให้ disableMsgType(CAMERA_MSG_VIDEO_FRAME) แล้ว HAL ของกล้องไม่ควรใช้ไคลเอ็นต์เพื่อเรียก releaseRecordingFrame() เพื่อปล่อยเฟรมวิดีโอที่บันทึกไว้ซึ่ง HAL ของกล้องส่งออกมาก่อนและหลังการเรียก disableMsgType(CAMERA_MSG_VIDEO_FRAME) ไคลเอ็นต์ HAL ของกล้องต้องไม่แก้ไข/เข้าถึงเฟรมการบันทึกวิดีโอหลังจากเรียกใช้ disableMsgType(CAMERA_MSG_VIDEO_FRAME)
คําจํากัดความที่บรรทัด
132
ของไฟล์
camera.h
.
แสดงสถานะของฮาร์ดแวร์กล้อง
คําจํากัดความที่บรรทัด
282
ของไฟล์
camera.h
.
void(* enable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
ฟังก์ชัน 3 รายการต่อไปนี้ทั้งหมดใช้ msg_type ซึ่งเป็นบิตมาสก์ของข้อความที่กําหนดไว้ใน include/ui/Camera.h เปิดใช้ข้อความหรือชุดข้อความ
คําจํากัดความที่บรรทัด
120
ของไฟล์
camera.h
.
เรียกข้อมูลพารามิเตอร์ของกล้อง ต้องส่งบัฟเฟอร์ที่ HAL ของกล้องแสดงผลกลับไปยัง HAL ด้วย put_parameters หาก put_parameters ไม่ใช่ NULL
คําจํากัดความที่บรรทัด
258
ของไฟล์
camera.h
.
int(* msg_type_enabled)(struct
camera_device
*, int32_t msg_type)
|
ค้นหาว่าข้อความหรือชุดข้อความเปิดใช้อยู่หรือไม่ โปรดทราบว่าการดำเนินการนี้จะทำงานแบบ AND หากข้อความใดที่ค้นหาปิดอยู่ ระบบจะแสดงผลเป็นเท็จ
คําจํากัดความที่บรรทัด
139
ของไฟล์
camera.h
.
แสดงค่า "จริง" หากเปิดใช้ตัวอย่างเพลง
คําจํากัดความที่บรรทัด
154
ของไฟล์
camera.h
.
HAL ของกล้องใช้หน่วยความจำของตัวเองเพื่อส่งพารามิเตอร์ให้เราเมื่อเราเรียก get_parameters ใช้ฟังก์ชันนี้เพื่อส่งคืนหน่วยความจำกลับไปยัง HAL ของกล้อง หาก put_parameters ไม่ใช่ NULL หาก put_parameters เป็น NULL คุณต้องใช้ free() เพื่อปล่อยหน่วยความจํา
คําจํากัดความที่บรรทัด
265
ของไฟล์
camera.h
.
แสดงค่า "จริง" หากเปิดใช้การบันทึก
คําจํากัดความที่บรรทัด
208
ของไฟล์
camera.h
.
ปล่อยทรัพยากรฮาร์ดแวร์ที่ออบเจ็กต์นี้เป็นเจ้าของ โปรดทราบว่าการดำเนินการนี้
ไม่ได้ดำเนินการ
ในตัวทำลาย
คําจํากัดความที่บรรทัด
277
ของไฟล์
camera.h
.
void(* release_recording_frame)(struct
camera_device
*, const void *opaque)
|
ปล่อยเฟรมบันทึกที่ CAMERA_MSG_VIDEO_FRAME ส่งคืนก่อนหน้านี้
ลูกค้า HAL ของกล้องมีหน้าที่รับผิดชอบในการปล่อยเฟรมวิดีโอที่บันทึกไว้ซึ่ง HAL ของกล้องส่งออกมาก่อนที่ HAL ของกล้องจะได้รับการเรียกให้ disableMsgType(CAMERA_MSG_VIDEO_FRAME) หลังจากได้รับการเรียกใช้เพื่อปิดใช้ MsgType(CAMERA_MSG_VIDEO_FRAME) แล้ว HAL ของกล้องมีหน้าที่จัดการวงจรชีวิตของเฟรมการบันทึกวิดีโอ
คําจํากัดความที่บรรทัด
219
ของไฟล์
camera.h
.
int(* send_command)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
ส่งคำสั่งไปยังไดรเวอร์กล้อง
คําจํากัดความที่บรรทัด
270
ของไฟล์
camera.h
.
ตั้งค่าการแจ้งเตือนและการเรียกกลับข้อมูล
คําจํากัดความที่บรรทัด
105
ของไฟล์
camera.h
.
ตั้งค่าพารามิเตอร์ของกล้อง ซึ่งจะแสดงผล BAD_VALUE หากพารามิเตอร์ใดไม่ถูกต้องหรือไม่รองรับ
คําจํากัดความที่บรรทัด
252
ของไฟล์
camera.h
.
ตั้งค่า ANativeWindow ที่ระบบจะส่งเฟรมตัวอย่างไป
คําจํากัดความที่บรรทัด
101
ของไฟล์
camera.h
.
เริ่มโหมดแสดงตัวอย่าง
คําจํากัดความที่บรรทัด
144
ของไฟล์
camera.h
.
เริ่มโหมดบันทึก เมื่อบันทึกรูปภาพได้แล้ว ระบบจะส่งข้อความ CAMERA_MSG_VIDEO_FRAME พร้อมเฟรมที่เกี่ยวข้อง ไคลเอ็นต์ HAL ของกล้องต้องปล่อยเฟรมบันทึกทุกเฟรมผ่าน releaseRecordingFrame() ก่อนที่ไคลเอ็นต์จะเรียก disableMsgType(CAMERA_MSG_VIDEO_FRAME) หลังจากไคลเอ็นต์เรียกใช้ disableMsgType(CAMERA_MSG_VIDEO_FRAME) แล้ว HAL ของกล้องมีหน้าที่รับผิดชอบในการจัดการวงจรชีวิตของเฟรมวิดีโอที่บันทึกไว้ และคลีเอ็นต์ต้องไม่แก้ไข/เข้าถึงเฟรมวิดีโอที่บันทึกไว้
คําจํากัดความที่บรรทัด
198
ของไฟล์
camera.h
.
หยุดการแสดงตัวอย่างที่เริ่มไว้ก่อนหน้านี้
คําจํากัดความที่บรรทัด
149
ของไฟล์
camera.h
.
หยุดการบันทึกที่เริ่มไว้ก่อนหน้านี้
คําจํากัดความที่บรรทัด
203
ของไฟล์
camera.h
.
int(* store_meta_data_in_buffers)(struct
camera_device
*, int enable)
|
ขอให้ HAL ของกล้องจัดเก็บข้อมูลเมตาหรือข้อมูล YUV จริงในบัฟเฟอร์วิดีโอที่ส่งผ่าน CAMERA_MSG_VIDEO_FRAME สำหรับเซสชันการบันทึก หากไม่ได้เรียกใช้ ลักษณะการทํางานเริ่มต้นของ HAL ของกล้องจะจัดเก็บข้อมูล YUV จริงไว้ในบัฟเฟอร์วิดีโอ
ควรเรียกใช้เมธอดนี้ก่อน startRecording() เพื่อให้ได้ผล
หากมีการจัดเก็บข้อมูลเมตาไว้ในบัฟเฟอร์วิดีโอ ผู้รับบัฟเฟอร์วิดีโอจะต้องตีความเนื้อหาและค้นหาข้อมูลเฟรมจริงด้วยความช่วยเหลือของข้อมูลเมตาในบัฟเฟอร์ วิธีการดำเนินการนี้อยู่นอกขอบเขตของวิธีการนี้
HAL ของกล้องบางรายการอาจไม่รองรับการจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอ แต่ HAL ของกล้องทั้งหมดควรรองรับการจัดเก็บข้อมูล YUV จริงในบัฟเฟอร์วิดีโอ หาก HAL ของกล้องไม่รองรับการจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอเมื่อมีการร้องขอ ระบบต้องแสดงผล INVALID_OPERATION HAL ของกล้องจะส่งข้อมูลเมตาแทนข้อมูลเฟรมจริงไปยังโปรแกรมเปลี่ยนไฟล์วิดีโอโดยตรง ซึ่งมีประโยชน์มากเนื่องจากข้อมูลเฟรมที่ไม่มีการบีบอัดอาจมีขนาดใหญ่มากหากวิดีโอมีขนาดใหญ่
-
พารามิเตอร์
-
เปิดใช้
|
จริงเพื่อสั่งให้ HAL ของกล้องจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอ และเท็จเพื่อสั่งให้ HAL ของกล้องจัดเก็บข้อมูล YUV จริงในบัฟเฟอร์วิดีโอ
|
-
คิกรีเทิร์น
-
OK on success.
คําจํากัดความที่บรรทัด
186
ของไฟล์
camera.h
.
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
-
hardware/libhardware/include/hardware/
camera.h
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-03-26 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-03-26 UTC"],[],[]]