записывать видео;

Примечание. На этой странице рассматривается класс 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);
    }
}