הערה: הדף הזה מתייחס לכיתה Camera, שהוצאה משימוש. מומלץ להשתמש ב-CameraX או, במקרים ספציפיים, ב-Camera2. גם CameraX וגם Camera2 תומכים ב-Android מגרסה 5.0 (רמת API 21) ואילך.
בשיעור הזה נסביר איך לצלם סרטונים באמצעות אפליקציות מצלמה קיימות.
לאפליקציה שלכם יש מטרה, ושילוב סרטונים הוא רק חלק קטן ממנה. אתם רוצים לצלם סרטונים בקלות בלי להמציא מחדש את המצלמה. למרבה המזל, ברוב המכשירים עם Android כבר מותקנת אפליקציית מצלמה שאפשר לצלם בה סרטונים. בשיעור הזה תלמדו איך לעשות זאת.
כדאי לעיין במקורות המידע הבאים:
שליחת בקשה לשימוש בתכונה של המצלמה
כדי להצהיר שהאפליקציה שלכם תלויה במצלמה, צריך להוסיף תג <uses-feature>
לקובץ המניפסט:
<manifest ... > <uses-feature android:name="android.hardware.camera" android:required="true" /> ... </manifest>
אם האפליקציה משתמשת במצלמה אבל לא נדרשת לה כדי לפעול, מגדירים את android:required
לערך false
. כך, Google Play תאפשר למכשירים ללא מצלמה להוריד את האפליקציה. לאחר מכן, באחריותכם לבדוק את הזמינות של המצלמה בזמן הריצה באמצעות קריאה ל-hasSystemFeature(PackageManager.FEATURE_CAMERA)
.
אם המצלמה לא זמינה, צריך להשבית את תכונות המצלמה.
צפייה בסרטון
אפליקציית המצלמה של Android מחזירה את הסרטון ב-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); } }