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

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

Моделирование работы класса персональных компьютеров на GPSS + Отчет + Б...
Моделирование процесса обработки заданий пакетным режимом работы с квант...
Диплом RSA, ЭЦП, сертификаты, шифрование на C#

Реклама



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

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Х. М. Дейтел, П. ...
Алгоритм трассиро...
mp3tag
XPmenu
DelphiX
Animated Menus
ICQ
Srinilist
Исправление проц...
База для Allsubmi...
Удаление своего EXE
LaserTank [Исходн...
Самоучитель C++
Microsoft SQL Ser...
Иллюстрированный ...
WordReport
Разработка Web-пр...
Формирование отче...
Введение в станда...
Генетический алго...

Топ загрузок
Приложение Клие... 100384
Delphi 7 Enterp... 83559
Converter AMR<-... 20051
GPSS World Stud... 11314
Borland C++Buil... 11245
Borland Delphi ... 8183
Turbo Pascal fo... 6987
Visual Studio 2... 4970
Калькулятор [Ис... 4419
FreeSMS v1.3.1 3516
Случайные статьи
Последовательность...
Исходя из этого, о...
Где происходит кон...
Disk read error
Клининговые компан...
к ресурсам для уче...
Получить доступ в ...
nl
Функция GlobalMemo...
Абстрактные классы
Фантомные файлы. 2
1.2. ЧТО СОДЕРЖИТС...
Разработка инфогра...
Сеть CDN
Словарь раскрутки ...
XHTML - переход к XML
Исходя из сценария...
Hemstädning N...
Чтобы найти номер ...
Структура ОП должн...
Как создать новый ...
Формы представлени...
Операция VOP_LOOKUP
Подробно о принцип...
Хранение документ...
Статистика



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


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