Примечание. На этой странице описывается класс Camera, который больше не поддерживается. Мы рекомендуем использовать CameraX или, в некоторых случаях, Camera2. CameraX и Camera2 поддерживают Android 5.0 (уровень API 21) и более поздние версии.
Чтобы узнать, как перейти с Camera1 на CameraX, прочитайте статью Migrate Camera1 to CameraX (Переход с Camera1 на CameraX).
Вы также можете использовать агентский навык для перехода с Camera1 на CameraX.
В этом уроке объясняется, как записывать видео с помощью существующих приложений камеры.
У вашего приложения есть определенная задача, и интеграция видео – лишь небольшая ее часть. Вы хотите снимать видео без лишних хлопот и не изобретать видеокамеру заново. К счастью, на большинстве устройств 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); } }