הערה: הדף הזה מתייחס למחלקה Camera, שהוצאה משימוש. מומלץ להשתמש ב-CameraX או ב-Camera2 במקרים ספציפיים. גם CameraX וגם Camera2 תומכים ב-Android מגרסה 5.0 (רמת API 21) ואילך.
כדי ללמוד איך לעבור מ-Camera1 ל-CameraX, אפשר לעיין במאמר מעבר מ-Camera1 ל-CameraX.
לחלופין, אתם יכולים להשתמש במיומנות מבוססת-סוכן להעברה מ-Camera1 ל-CameraX.
בשיעור הזה נסביר איך לצלם סרטון באמצעות אפליקציות מצלמה קיימות.
לאפליקציה שלכם יש מטרה, ושילוב סרטונים הוא רק חלק קטן ממנה. אתם רוצים לצלם סרטונים בלי להתאמץ יותר מדי, ולא להמציא מחדש את מצלמת הווידאו. למרבה המזל, ברוב המכשירים עם Android כבר יש אפליקציית מצלמה שמצלמת וידאו. בשיעור הזה תלמדו איך לעשות את זה.
מקורות מידע שקשורים לנושא:
- מצלמה
- thought Intents and Intent Filters
בקשת גישה לתכונת המצלמה
כדי להצהיר שהאפליקציה שלכם תלויה במצלמה, הוסיפו תג <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); } }