Главная » Разработка для Android » Запись аудио- и видеоданных

0

Android  предлагает  два разных пути для записи аудио и видео внутри приложения.

Самый  простой  способ — использование Намерений для запуска  стан- дартного приложения, управляющего камерой. Это позволяет  указать ка- чество видео и место, куда его сохранять. Вся работа по записи видео, взаи- модействию с пользователем и отлавливанию ошибок «ложится на плечи» стандартного  приложения.

Если нужен более тонкий контроль над пользовательским интерфейсом или параметрами записи  и вы хотите заменить  стандартное  приложение, можете воспользоваться классом MediaRecorder.

Использование Намерений

в сочетании с объектом MediaRecorder

Самый простой способ инициировать запись видео — использование ста- тической константы  ACTION_VIDEO_CAPTURE из объекта MediaStore в качестве параметра  для Намерения, которое, в свою очередь, передается методу startActivityForResult.

startActivityForResult(new Intent(MediaStore.ACTION_VIDEO_CAPTURE), RECORD_VIDEO);

Этот код запускает  стандартную  управляющую видеокамерой  Актив- ность, позволяя пользователям начать, остановить,  просмотреть  и повто- рить запись видео, что освобождает  вас от необходимости создавать  свое собственное приложение для этих нужд.

Для записи видео поддерживаются два необязательных параметра, до- ступных в качестве статических констант класса MediaStore.

EXTRA_OUTPUT. По умолчанию  записанное  видео сохраняется в источнике MediaStore. Если хотите сохранить его в другом месте, ис- пользуйте этот параметр для указания альтернативного пути URI.

EXTRA_VIDEO_QUALITY. В процессе записи  можно указать  ка- чество картинки с помощью целочисленного значения.  В настоящее время доступны  два варианта:  0 — для низкого  качества  (подходит для MMS)  и 1 — для видео с высоким  разрешением.  По умолчанию выбирается  второй вариант.

В листинге 11.8 показано, как с помощью описанных выше действий за- писать новый видеофайл с высоким качеством, сохраняя его по указанному пути URI или в стандартный источник MediaStore.

Листинг 11.8. Запись  видео с помощью Намерения

private static int RECORD_VIDEO = 1; private static int HIGH_VIDEO_QUALITY = 1; private static int MMS_VIDEO_QUALITY = 0;

private void recordVideo(Uri outputpath) {

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

if (outputpath != null)

intent.putExtra(MediaStore.EXTRA_OUTPUT, output);

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, HIGH_VIDEO_QUALITY);

startActivityForResult(intent, RECORD_VIDEO);

}

@Override

protected void onActivityResult(int requestCode,

int resultCode, Intent data) {

if (requestCode == RECORD_VIDEO) {

Uri recordedVideo = data.getData();

// TODO Сделать что-нибудь с записанным видеофайлом

}

}

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии