После выхода версии Android. появилась возможность захватывать видеоданные с использованием инфраструктуры для работы с медиа. Это работает подобно записи аудиоконтента и фактически запись видеоконтента обычно включает в себя и аудиозапись. Однако существует одно большое отличие. Начиная с Android., запись видеоконтента требует предварительного просмотра изображения с камеры в объекте Surface. В базовых приложениях это не представляет проблемы, поскольку пользователь обычно желает видеть то, что видит камера. Однако в более изощренных приложениях это может привести к проблемам. Даже если приложению не требуется показывать видеоконтент пользователю при съемке, объект Surface все равно должен быть
предоставлен, чтобы камера могла обеспечить в нем предварительный просмотр видео. В будущих версиях Android SDK можно надеяться на ослабление требований, чтобы приложение могло работать напрямую с видеобуферами, не копируя его в компонент пользовательского интерфейса. Однако пока что необходимо работать с Surface.
В следующем примере будет, http://окна-лучшие.рф/пластиковые-окна-краснодар как это делается. Пример приложения является довольно длинным, а потому он разбит на части, каждая из которых будет описана по отдельности. Имеет смысл загрузить этот проект в рамках кода примеров для этой и импортировать его в Eclipse. В разделе “Ссылки” и соответствующие сведения. Начнем с компоновки для приложения, которая показана .
Результат этой компоновки выглядит, . Этот экран снят во время записи видео на реальном устройстве, камера которого была направлена на экран рабочей станции с открытой IDE-средой Eclipse.
Книга.indb
Компоновка состоит из двух LinearLayout, находящихся рядом в родительском контейнере LinearLayout. Слева расположены пять кнопок, которые приложение делает доступными и недоступными в процессе демонстрации. Справа находится главный элемент VideoView, а выше него — сообщение RECORDING, которое включается, когда приложение действительно записывает видео. Как вы, возможно, заметили, это приложение принудительно переведено в альбомный режим за счет установки атрибута android:screenOrientation="landscape" в дескрипторе внутри файла AndroidManifest.xml. Давайте рассмотрим код MainActivity приложения, который .
В этом приложении используется стандартная активность, но также реализованы три интерфейса. Первый интерфейс — SurfaceHolder.Callback — служит для приема индикации о готовности Surface для отображения видеоизображения. В данном случае Surface берется из VideoView. Также нужно узнавать о поступлении сообщений от MediaRecorder, и для этого реализованы интерфейсы OnInfoListener и OnErrorListener. Методы этих интерфейсов будут описаны ниже.
Опубликовал Kest
February 14 2015 13:34:22 ·
0 Комментариев ·
3129 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.