หมายเหตุ: หน้านี้อ้างอิงถึงคลาส Camera ซึ่งเลิกใช้งานแล้ว เราขอแนะนำให้ใช้ CameraX หรือ Camera2 สำหรับกรณีการใช้งานที่เฉพาะเจาะจง ทั้ง CameraX และ Camera2 รองรับ Android 5.0 (API ระดับ 21) ขึ้นไป
ดูวิธีย้ายข้อมูลจาก Camera1 ไปยัง CameraX ได้ที่หัวข้อย้ายข้อมูล Camera1 ไปยัง CameraX
หรือจะใช้ทักษะ Agentic สำหรับการย้ายข้อมูลจาก Camera1 ไปยัง CameraX ก็ได้
บทเรียนนี้จะอธิบายวิธีจับภาพวิดีโอโดยใช้แอปพลิเคชันกล้องที่มีอยู่
แอปพลิเคชันของคุณมีงานที่ต้องทำ และการผสานรวมวิดีโอเป็นเพียงส่วนเล็กๆ ของงานเท่านั้น คุณต้องการถ่ายวิดีโอโดยไม่ต้องยุ่งยาก และไม่ต้องการสร้างกล้องวิดีโอขึ้นมาใหม่ โชคดีที่อุปกรณ์ Android ส่วนใหญ่มีแอปพลิเคชันกล้องที่บันทึกวิดีโอได้อยู่แล้ว ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีทำให้ AI ทำสิ่งนี้ให้คุณ
โปรดดูแหล่งข้อมูลที่เกี่ยวข้องต่อไปนี้
ขอฟีเจอร์กล้อง
หากต้องการโฆษณาว่าแอปพลิเคชันของคุณต้องใช้กล้อง ให้ใส่แท็ก <uses-feature> ในไฟล์ Manifest ดังนี้
<manifest ... > <uses-feature android:name="android.hardware.camera" android:required="true" /> ... </manifest>
หากแอปพลิเคชันของคุณใช้กล้อง แต่ไม่จำเป็นต้องใช้กล้องเพื่อให้ทำงานได้ ให้ตั้งค่า android:required เป็น false ซึ่งการทำเช่นนี้จะทำให้ Google Play อนุญาตให้อุปกรณ์ที่ไม่มีกล้องดาวน์โหลดแอปพลิเคชันของคุณได้ จากนั้นคุณมีหน้าที่ตรวจสอบความพร้อมใช้งานของกล้องที่รันไทม์โดยเรียกใช้ hasSystemFeature(PackageManager.FEATURE_CAMERA)
หากกล้องไม่พร้อมใช้งาน คุณควรปิดใช้ฟีเจอร์กล้อง
ดูวิดีโอ
แอปพลิเคชัน Android Camera จะแสดงผลวิดีโอใน Intent ที่ส่งไปยัง onActivityResult() เป็น Uri ที่ชี้ไปยังตำแหน่งของวิดีโอในพื้นที่เก็บข้อมูล โค้ดต่อไปนี้จะดึงข้อมูลวิดีโอนี้และแสดงใน VideoView
Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { val videoUri: Uri = intent.data videoView.setVideoURI(videoUri) } }
Java
@Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { Uri videoUri = intent.getData(); videoView.setVideoURI(videoUri); } }