צילום סרטונים

הערה: הדף הזה מתייחס לכיתה 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);
    }
}