Videos aufnehmen

Hinweis:Auf dieser Seite wird die Klasse Camera beschrieben, die eingestellt wird. 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.

In dieser Lektion erfahren Sie, wie Sie mit vorhandenen Kamera-Apps Videos aufnehmen.

Ihre Anwendung hat eine Aufgabe und die Einbindung von Videos ist nur ein kleiner Teil davon. Sie möchten 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 sorgen Sie dafür, dass das Programm dies für Sie erledigt.

Weitere Informationen finden Sie unter den folgenden Links:

Kamerafunktion anfordern

Wenn Sie angeben möchten, dass Ihre Anwendung eine Kamera benötigt, fügen Sie der Manifestdatei das Tag <uses-feature> hinzu:

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

Wenn Ihre Anwendung eine Kamera verwendet, diese aber nicht für die Funktion benötigt, setzen Sie android:required auf false. So können Nutzer mit Geräten ohne Kamera Ihre App bei Google Play herunterladen. Sie sind dann dafür verantwortlich, die Verfügbarkeit der Kamera zur Laufzeit durch Aufrufen von hasSystemFeature(PackageManager.FEATURE_CAMERA) zu prüfen. Wenn keine Kamera verfügbar ist, sollten Sie die Kamerafunktionen deaktivieren.

Video ansehen

Die Android-Kamera-App gibt das Video in der Intent zurück, die an onActivityResult() gesendet wird, als Uri, die auf den Speicherort des Videos verweist. Der folgende Code ruft dieses Video ab und zeigt es in einem VideoView an.

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