Hinweis:Auf dieser Seite wird die Klasse Camera verwendet, die verworfen wurde. 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 wird erläutert, wie du Videos mit vorhandenen Kamera-Apps aufnimmst.
Ihre Anwendung hat eine Aufgabe und die Einbindung 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 Sie angeben möchten, dass Ihre Anwendung eine Kamera benötigt, 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 für die Funktion erforderlich ist, setzen Sie android:required auf false. Dadurch können Nutzer Ihre App auch auf Geräten ohne Kamera herunterladen. Es liegt dann in Ihrer 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 übermittelt wird, das 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); } }