ใช้งานกล้องถ่ายรูปด้วย Titanium Mobile

ในบทความนี้ จะเป็นการใช้งานกล้องถ่ายรูป เพื่อให้สามารถถ่ายภาพโดยผ่าน Application ที่เขียนขึ้นมาเองได้นะครับ โดยการทดสอบทั้งหมดจะต้องไปทำการทดสอบบน Device จริง ๆ กัน ทั้ง บน iOS และ Android ส่วนวิธีการนำ Application ไปทดสอบนั้น ผมได้เคยกล่าวไปแล้วในบทความ ทดสอบ บนเครื่องจริง สำหรับ Android และ ทดสอบบนเครื่อง สำหรับ iOS ส่วนวิธีการเรียกใช้งาน กล้องถ่ายรูปใน Application นั้นทำอย่างไรเราไปดูกันเลยครับ

วิธีการเรียกใช้กล้องนั้น สามารถเรียกใช้งานได้ด้วยคำสั่ง
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 ทำอย่างไรต่อไป
เรามาสร้าง Application สำหรับการถ่ายรูปกันเลยดีกว่าครับ โดยผมจะเริ่มจาก สร้าง window และมีปุ่ม 1 ปุ่ม พร้อมทั้ง imageView สำหรับแสดงภาพที่ได้จากการถ่ายภาพนะครับ ทำการสร้าง window สร้างปุ่ม และ imageview
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 ความคิดเห็น:

แสดงความคิดเห็น