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