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

הערה: הדף הזה מתייחס למחלקה Camera, שהוצאה משימוש. מומלץ להשתמש ב-CameraX או ב-Camera2 במקרים ספציפיים. גם CameraX וגם Camera2 תומכים ב-Android מגרסה 5.0 (רמת API‏ 21) ואילך.

כדי ללמוד איך לעבור מ-Camera1 ל-CameraX, אפשר לעיין במאמר מעבר מ-Camera1 ל-CameraX. לחלופין, אתם יכולים להשתמש במיומנות מבוססת-סוכן להעברה מ-Camera1 ל-CameraX.

בשיעור הזה נסביר איך לצלם סרטון באמצעות אפליקציות מצלמה קיימות.

לאפליקציה שלכם יש מטרה, ושילוב סרטונים הוא רק חלק קטן ממנה. אתם רוצים לצלם סרטונים בלי להתאמץ יותר מדי, ולא להמציא מחדש את מצלמת הווידאו. למרבה המזל, ברוב המכשירים עם 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);
    }
}