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

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