Videos aufnehmen

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

In dieser Lektion wird erläutert, wie Videos mit vorhandenen Kameraanwendungen aufgenommen werden.

Ihre Anwendung hat eine Aufgabe zu erledigen, und die Einbindung von Videos ist nur ein kleiner Teil davon. Du solltest Videos mit minimalem Aufwand aufnehmen und den Camcorder nicht neu erfinden. Glücklicherweise haben die meisten Android-Geräte bereits eine Kamera-App, die Videos aufzeichnet. In dieser Lektion übernehmen Sie das für Sie.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Kamerafunktion anfordern

Um anzugeben, dass Ihre App auf eine Kamera angewiesen ist, fügen Sie der Manifestdatei ein <uses-feature>-Tag hinzu:

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

Wenn Ihre Anwendung eine Kamera verwendet, diese aber nicht funktioniert, setzen Sie android:required auf false. Google Play erlaubt dann Geräten ohne Kamera, deine App herunterzuladen. Es liegt dann in Ihrer Verantwortung, durch Aufrufen von hasSystemFeature(PackageManager.FEATURE_CAMERA) die Verfügbarkeit der Kamera zur Laufzeit zu prüfen. Wenn keine Kamera verfügbar ist, sollten Sie die Kamerafunktionen deaktivieren.

Video ansehen

Die Android-Kamera-App gibt das an onActivityResult() übermittelte Video im Intent als Uri zurück, das auf den Speicherort des Videos verweist. Mit dem folgenden Code wird dieses Video abgerufen und in einem VideoView-Element 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);
    }
}