Навигация
Главная
Поиск
Форум
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
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 63572
Имитационное мо... 58622
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

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

База данных склада на Delphi + Схема БД
Моделирование процесса поступления заявок в систему, состоящую из трёх Э...
Моделирование процесса обеспечивающего надежность функционирования АСУ Т...

Реклама



Подписывайся на 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 Комментариев · 1651 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
PHP5. Профессиона...
AlnComponents
Allsubmitter 4.7 ...
JBlabel3D
Abc_component
TmxOutlookBarPro
Игра "Астероиды" ...
ЯЗЫК ПРОГРАММИРОВ...
Графика в проекта...
LaserTank [Исходн...
PHP 5 для "чайников"
Программирование ...
Email
Java 2. Наиболее ...
Report
Приемы программир...
База данных фильм...
AntiRus
С. Г. Горнаков - ...
DCMintry

Топ загрузок
Приложение Клие... 100487
Delphi 7 Enterp... 88192
Converter AMR<-... 20084
GPSS World Stud... 13842
Borland C++Buil... 12147
Borland Delphi ... 8708
Turbo Pascal fo... 7057
Visual Studio 2... 5007
Калькулятор [Ис... 4929
FreeSMS v1.3.1 3547
Случайные статьи
Применение эффекти...
Простой графически...
6.8. Равенство
Akismet и All -in ...
Причины хранения и...
Кристен Нюгорд и е...
Инициализация опер...
Illegal assignment
Пакетный режим
Класс bitset - объ...
Варианты атмосферы...
Вулкан онлайн - ву...
Ассоциативные конт...
Приемы безопасного...
Веб-дизайн и модел...
Как я обращался в ...
Подход к реализаци...
Процесс дефрагмент...
Основная особеннос...
Построение навигац...
Что входит в Servi...
Важные замечания п...
Что ещё можно сдел...
Процедура обращени...
Как обойти AVP
Статистика



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


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