ใช้งานกล้องถ่ายรูปด้วย Titanium Mobile
ในบทความนี้ จะเป็นการใช้งานกล้องถ่ายรูป เพื่อให้สามารถถ่ายภาพโดยผ่าน Application ที่เขียนขึ้นมาเองได้นะครับ โดยการทดสอบทั้งหมดจะต้องไปทำการทดสอบบน Device จริง ๆ กัน ทั้ง บน iOS และ Android ส่วนวิธีการนำ Application ไปทดสอบนั้น ผมได้เคยกล่าวไปแล้วในบทความ ทดสอบ บนเครื่องจริง สำหรับ Android และ ทดสอบบนเครื่อง สำหรับ iOS ส่วนวิธีการเรียกใช้งาน กล้องถ่ายรูปใน Application นั้นทำอย่างไรเราไปดูกันเลยครับ
วิธีการเรียกใช้กล้องนั้น สามารถเรียกใช้งานได้ด้วยคำสั่ง
โดยคำสั่งนี้จะมี Property ต่าง ๆ มากมาย แต่ที่จะนำเสนอนั้นจะเป็น Property ที่จะถูกเรียกใช้เป็นส่วนใหญ่นั่นก็คือ
เมื่อเราได้ทุกอย่างพร้อมแล้ว ก็ มาเริ่มให้ โปรแกรมของเราเปิดกล้องกันดีกว่าครับ โดยเราจะทำให้เมื่อกดที่ปุ่ม opencamera แล้วทำการเปิด กล้องถ่ายรูปขึ้นมาครับ
สำหรับ Android นะครับ ต้องเพิ่ม Permission ลงไปใน tiapp.xml ก่อนนะครับ หากต้องการทดสอบให้ เอา โทรศัพท์ออกจาก PC ก่อนครับ (หากเปิดเป็น USB Mass Storage) ไม่อย่างนั้นจะไม่สามารถรันได้ครับ ส่วนที่ต้องเพิ่มก็คือ
ในส่วนของ iOS นั้นสามารถนำไปรันบนเครื่องได้เลยครับไม่ต้องเพิ่มอะไรใน tiapp.xml ครับ เมื่อรันได้แล้วก็จะสามารถถ่ายภาพได้แล้วหล่ะครับแล้วเมื่อถ่ายภาพเสร็จก็จะนำเอาภาพนั้น ๆ มาแสดงในหน้าจอได้ และรูปถ่ายนั้น ๆ ก็จะถูกจัดเก็บไว้ที่ Photo Gallery ของเครื่องอีกด้วย
ส่วนในกรณีที่ต้องการถ่ายเป็น Video นั้น ให้เปลี่ยน mediaTypes จาก MEDIA_TYPE_PHOTO เป็น MEDIA_TYPE_VIDEO ก็ สามารถถ่ายเป็น Video ได้แล้วหล่ะครับ
ในบทความหน้าเราจะไปทำการเปิดไฟล์รูปภาพที่อยู่ใน Gallery กันนะครับ จะต้องทำอย่างไรบ้างนั้น ติดตามกันต่อได้นะครับ หากมีข้อสงสัยหรือข้อติชม ก็ สามารถ comment กันได้นะครับ
วิธีการเรียกใช้กล้องนั้น สามารถเรียกใช้งานได้ด้วยคำสั่ง
Titanium.Media.showCamera
โดยคำสั่งนี้จะมี Property ต่าง ๆ มากมาย แต่ที่จะนำเสนอนั้นจะเป็น Property ที่จะถูกเรียกใช้เป็นส่วนใหญ่นั่นก็คือ
- mediaTypes สำหรับระบุว่าสิ่งที่เราต้องการนั้นเป็น รูปภาพหรือวีดีโอ โดยจะกำหนดค่าได้ดังนี้
- Titanium.Media.MEDIA_TYPE_PHOTO
- Titanium.Media.MEDIA_TYPE_VIDEO
- showControls สำหรับระบุว่าจะใช้ Camera Control ที่ติดมากับตัว OS หรือไม่ (สำหรับ iOS)
- saveToPhotoGallery สำหรับระบุว่าเมื่อทำการถ่ายภาพแล้วจะให้ทำการ Save ภาพที่ได้ไว้ใน Photo Gallery หรือไม่
- allowEditing สำหรับระบุว่าเมื่อถ่ายภาพแล้วจะสามารถ Crop หรือ แก้ไขได้หรืไม่ (สำหรับ iOS)
- videoMaximumDuration สำหรับระบุเวลาที่ใช้ในการบันทึกวีดีโอ ว่าสามารถบันทึกได้มากที่สุดเท่าไหร่ (หน่วยเป็น milliseconds)
- videoQuality สำหรับระบุคุณภาพของ Video โดยสามารถระบุได้ดังนี้
- Titanium.Media.QUALITY_HIGH
- Titanium.Media.QUALITY_LOW
- Titanium.Media.QUALITY_MEDIUM
- success สำหรับระบุว่าเมื่อถ่ายภาพเสร็จแล้วจะให้ Application ทำอย่างไรต่อไป
- cancel สำหรับระบุว่าเมื่อมีการยกเลิกการถ่ายภาพแล้วจะให้ Application ทำอย่างไรต่อไป
- error สำหรับระบุว่าเมื่อมีความผิดพลาดเกิดขึ้นแล้วจะให้ Application ทำอย่างไรต่อไป
var win = Titanium.UI.createWindow({ backgroundColor : '#fff', navBarHidden : true }); var openCamera = Titanium.UI.createButton({ title : 'Open Camera' , width : Titanium.Platform.displayCaps.platformWidth - 20, height : 50 , top : 0 }); var imageView = Titaniu.UI.createImageView({ width : Titanium.Platform.displayCaps.platformWidth - 20, top : 60 }); win.add(openCamera); win.add(imageView); win.open();
เมื่อเราได้ทุกอย่างพร้อมแล้ว ก็ มาเริ่มให้ โปรแกรมของเราเปิดกล้องกันดีกว่าครับ โดยเราจะทำให้เมื่อกดที่ปุ่ม opencamera แล้วทำการเปิด กล้องถ่ายรูปขึ้นมาครับ
openCamera.addEventListener('click',function(){ Titanium.Media.showCamera ({ mediaTypes : Titanium.Media.MEDIA_TYPE_PHOTO, saveToPhotoGallery : true, showControls : true, success : function(event){ imageView .image = event.media } }); });
สำหรับ Android นะครับ ต้องเพิ่ม Permission ลงไปใน tiapp.xml ก่อนนะครับ หากต้องการทดสอบให้ เอา โทรศัพท์ออกจาก PC ก่อนครับ (หากเปิดเป็น USB Mass Storage) ไม่อย่างนั้นจะไม่สามารถรันได้ครับ ส่วนที่ต้องเพิ่มก็คือ
<android xmlns:android="http://schemas.android.com/apk/res/android"/>
<manifest><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.FLASHLIGHT"</manifest></android>
ในส่วนของ iOS นั้นสามารถนำไปรันบนเครื่องได้เลยครับไม่ต้องเพิ่มอะไรใน tiapp.xml ครับ เมื่อรันได้แล้วก็จะสามารถถ่ายภาพได้แล้วหล่ะครับแล้วเมื่อถ่ายภาพเสร็จก็จะนำเอาภาพนั้น ๆ มาแสดงในหน้าจอได้ และรูปถ่ายนั้น ๆ ก็จะถูกจัดเก็บไว้ที่ Photo Gallery ของเครื่องอีกด้วย
ส่วนในกรณีที่ต้องการถ่ายเป็น Video นั้น ให้เปลี่ยน mediaTypes จาก MEDIA_TYPE_PHOTO เป็น MEDIA_TYPE_VIDEO ก็ สามารถถ่ายเป็น Video ได้แล้วหล่ะครับ
ในบทความหน้าเราจะไปทำการเปิดไฟล์รูปภาพที่อยู่ใน Gallery กันนะครับ จะต้องทำอย่างไรบ้างนั้น ติดตามกันต่อได้นะครับ หากมีข้อสงสัยหรือข้อติชม ก็ สามารถ comment กันได้นะครับ
0 ความคิดเห็น:
แสดงความคิดเห็น