Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 62796
Создание отчето... 62775
ТЕХНОЛОГИИ ДОСТ... 59318
Пример работы с... 58035
Имитационное мо... 54700
Реклама
Сейчас на сайте
Гостей: 13
На сайте нет зарегистрированных пользователей

Пользователей: 13,071
новичок: virtualight
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы крупного аэропорта на GPSS + Пояснительная записка
Моделирование вычислительного центра на GPSS + Отчет + Блок схема
Моделирование автовокзала + Отчет + Блок схема

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Методы настройки камеры
Метод initRecorder — это место, где производится большая часть настройки. Программа должна знать, куда выполнять запись, поэтому мы указываем путевое имя файла. Если файл уже существует, мы его удаляем. Обратите внимание, что затем мы останавливаем предварительный просмотр камеры, разблокируем ее и подключаем к MediaRecorder? Камера чувствительна к блокированию и разблокированию, и временами нужно блокировать камеру, чтобы предотвратить доступ к ней, а иногда разблокировать, чтобы с ней можно было работать. Один из моментов, когда камера должна быть разблокирована — когда нужно подключить ее к MediaRecorder.
Как только камера подключена, мы устанавливаем остальные атрибуты MediaRecorder, в том числе источник аудио и видео. Но постойте, разве мы не подключили ее только что к программе записи? Подключили. Но, тем не менее, нужно еще явно указать источник видео. Устанавливая камеру в программе записи, мы избегаем необходимости уничтожать объект Camera, чтобы заставить ее создать новый. Перед вызовом метода prepare мы также устанавливаем аудио- и видеокодировщики и путь к выходному файлу на SD-карте. Метод prepare вызывается в конце и подготавливает программу к записи чего-либо. В отличие от MediaPlayer, в MediaRecorder нет метода, подобного prepareAsync. Этот метод завершается http://www.medicalserviceplus.ru/spetsodezhda/ включением доступа к кнопке Begin Recording.
Метод beginRecording сравнительно прост. Он добавляет слушатели, вызывает start, затем устанавливает строку с сообщением о записи и изменяет кнопки. К концу работы метода приложение должно начать видеозапись с отображением сообщения RECORDING (запись) красного цвета (см. ).
Метод stopRecording немного сложнее, отчасти потому, что он может быть вызван в более чем одном месте. Чуть позже мы поговорим о втором таком месте, а пока предположим, что его инициирует кнопка Stop Recording (Остановить запись). Если программа записи по-прежнему допустима, мы отключаем обратные вызовы и затем вызываем stop. Поскольку stop может быть вызван при уже остановленной программе записи, мы обрабатываем исключение, которое сообщает о попытке останова уже остановленной программы записи. Затем мы освобождаем программу записи и камеру и устанавливаем пустое сообщение вместо RECORDING. Наконец, кнопки переключаются из записи на воспроизведение.
Метод playRecording также прост. Мы захватываем объект MediaController для VideoView, указываем ему новый файл и затем вызываем start.
Метод stopPlayRecording еще проще: мы просто останавливаем воспроизведение видеоконтента. Когда приложение находится в режиме воспроизведения, бессмысленно щелкать на кнопке Play Recording (Воспроизвести запись), когда видео уже воспроизводится, либо щелкать на кнопке Stop Recording (Остановить запись), когда оно уже остановлено.
Как упоминалось ранее, действие записи может быть остановлено в более чем одном месте. Одной из настроек приложения записи была максимальная длительность в секунд. Это значит, что запись будет остановлена по истечении секунд и будет активизирован метод обратного вызова onInfo. Давайте посмотрим, как это выглядит .
Эти два метода обратного вызова очень похожи. Единственное отличие между ними связано с условиями, при которых они вызываются. В методе onInfo сообщения не трактуются как ошибки. Метод onInfo может быть вызван, когда достигнут лимит времени записи или максимальный размер файла, если соответствующие опции установлены. В документации по методу onError не указано явно, когда он может быть вызван, но это может произойти в ситуации, например, когда не остается места для записи видеофайла. Если метод onInfo был вызван по истечении лимита времени либо по причине возникновения некоторой ошибки записи, запись останавливается.
Как и ранее, при аудиозаписи нужно установить те же права доступа для аудио (android.permission.RECORD_AUDIO) и SD-карты (android.permission.WRITE_ EXTERNAL_STORAGE), а, кроме того, теперь понадобится добавить права доступа к камере (andriod.permission.CAMERA). Для полноты картины в приве
дено содержимое файла AndroidManifest.xml. Вы заметите, что мы принудительно устанавливаем альбомную ориентацию, и потому файл компоновки находится в /res/ layout-land/main.xml.
Опубликовал Kest February 14 2015 16:36:05 · 0 Комментариев · 1475 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Киллер окон
Autorunner
Мод "проверочный ...
Мод "register.php...
Экранная лупа
Delphi. Учимся на...
WordReport
XPATComponents
Архив Апгрейтов с...
Tag Игра "Пятнашк...
XPButtons
Geo-Whois
Голосование для ...
Prolog Interprete...
DAlarm
Delphi7 Для профе...
VFW
ScrollCredit
Добавление басса ...
NetGraph [Исходни...

Топ загрузок
Приложение Клие... 100421
Delphi 7 Enterp... 84904
Converter AMR<-... 20061
GPSS World Stud... 11943
Borland C++Buil... 11401
Borland Delphi ... 8366
Turbo Pascal fo... 7007
Visual Studio 2... 4984
Калькулятор [Ис... 4620
FreeSMS v1.3.1 3529
Случайные статьи
Создание инфографи...
Преимущества языка...
Мониторинг
Если многомерный с...
Как решать задачи ...
Голосовые и видеоп...
PHP против ASP - В...
Риски безопасности...
Оконная сигнализация
Ключевые слова
С чего начать
Монтаж вывески
Изучая сложные объ...
При этом не имеет ...
Ва-Банк - вот лучш...
Другие режимы базо...
Если у клиента либ...
Карта RESET
Задачи клиентского...
Выработка решенияП...
Особенности примен...
LINITIAL (ИНИЦИАЛИ...
Гарантирует, что п...
Режим многоадресно...
Рекурсивное вычисл...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?