Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 18
На сайте нет зарегистрированных пользователей

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

Меры близости на векторах в Delphi + Блок схемы
Информационная система - продуктовый магазин на Turbo Pascal (База данны...
Лабораторная работа по динамическим спискам на Turbo Pascal (перемещение...

Методы настройки камеры
Метод 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 13:36:05 · 0 Комментариев · 2595 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Архив значков
начисление процен...
Dreamsoft Progres...
Borland C++Builde...
Page Promoter 7.7...
Animation Effect ...
Приложение Клиент...
PHP/MySQL для нач...
MPTools
Blobs [Исходник н...
JBlabel3D
Меню проводника в...
Пример работы с р...
Система баннеро-о...
AboutSystem
Пример клиента ФТ...
Библия хакера 2. ...
Усложнённый кальк...
DS_Group
Самоучитель PHP 5...

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20261
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
autocad lt
Расчет токов корот...
Фольклор
Программирование: ...
Основные недостатк...
Слоты 777
Определите тип инф...
Упражнения на знан...
Иззи Казино
Распространение по...
Стандарт POSIX
Старший и младший ...
Объектная модель W...
Маршалер свободной...
Клуб Вулкан снова ...
Ввод-вывод объекто...
Адресация по базе ...
SAVEVALUE (СОХРАНИ...
Драйвер seg_vn
Арифметическое выр...
Переход в графичес...
Просмотр состояния...
Символы и специаль...
Реализация одного ...
Программа расширен...
Статистика



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


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