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

הערה: הדף הזה מתייחס למחלקה מצלמה, שהוצאה משימוש. מומלץ להשתמש ב-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);
    }
}