Videos aufnehmen

Hinweis: Diese Seite bezieht sich auf die verworfene Klasse Camera. Wir empfehlen die Verwendung von CameraX oder für bestimmte Anwendungsfälle Camera2. Sowohl CameraX als auch Camera2 unterstützen Android 5.0 (API-Level 21) und höher.

Informationen zur Migration von Camera1 zu CameraX finden Sie unter Camera1 zu CameraX migrieren. Alternativ können Sie den agentischen Skill für die Migration von Camera1 zu CameraX verwenden.

In dieser Lektion wird erläutert, wie du Videos mit vorhandenen Kamera-Apps aufnimmst.

Deine Anwendung hat eine Aufgabe und die Integration von Videos ist nur ein kleiner Teil davon. Du möchtest Videos mit minimalem Aufwand aufnehmen und nicht den Camcorder neu erfinden. Glücklicherweise haben die meisten Android-Geräte bereits eine Kamera-App, mit der Videos aufgenommen werden können. In dieser Lektion lernen Sie, wie Sie das tun.

Weitere Informationen finden Sie hier:

Kamerafunktion anfordern

Wenn du angeben möchtest, dass deine App eine Kamera benötigt, füge der Manifestdatei ein <uses-feature>-Tag hinzu:

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

Wenn deine App eine Kamera verwendet, diese aber nicht für die Funktion erforderlich ist, setze android:required auf false. Dadurch können Nutzer mit Geräten ohne Kamera deine App bei Google Play herunterladen. Es liegt dann in deiner Verantwortung, die Verfügbarkeit der Kamera zur Laufzeit durch Aufrufen von hasSystemFeature(PackageManager.FEATURE_CAMERA) zu prüfen. Wenn eine Kamera nicht verfügbar ist, solltest du die Kamerafunktionen deaktivieren.

Video wiedergeben

Die Android-Kamera-App gibt das Video im Intent zurück, das an onActivityResult() als Uri gesendet wird, der auf den Speicherort des Videos verweist. Mit dem folgenden Code wird dieses Video abgerufen und in einem VideoView angezeigt.

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);
    }
}