Работа с аудио и видеоинформацией, использование Intel Perceptual Computing SDK Лекция 6 Разработка приложений для смартфонов на ОС Android.

Презентация:



Advertisements
Похожие презентации
1. Определить последовательность проезда перекрестка
Advertisements

Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.

Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Поддержка игровых процессоров и базовых средств разработки Лекция 7.
1 До зеленых человечков: исследовательское тестирование приложений для мобильных Роман Твердохлебов, Санкт-Петербург.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Набор игр Создание игровых ситуаций на уроках математики повышает интерес к математике, вносит разнообразие и эмоциональную окраску в учебную работу, снимает.
1 Федеральное агентство по образованию Государственное образовательное учреждение Московский государственный индустриальный университет (ГОУ МГИУ) Москва.
1 Знаток математики Тренажер Таблица умножения 3 класс Школа России Масько Любовь Георгиевна Муниципальное общеобразовательное учреждение средняя общеобразовательная.
1 Основы работы в интерфейсе Яндекс.Директ Практическое пособие Екатеринбург, 2011.
Алексей Иванов Агентство ISEE Marketing Анализ поведения пользователей на сайте и управление конверсией.
Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение, на примере шага вперед человекоподобного робота Ю.К.
Развивающая викторина для детей "Самый-самый " Муниципальное общеобразовательное учреждение средняя общеобразовательная школа 7 ст. Беломечётской.
Урок-обобщение (7 класс – алгебра) МОУ "СОШ 45 г. Чебоксары" Кабуркина М. Н.1.
Транксрипт:

Работа с аудио и видеоинформацией, использование Intel Perceptual Computing SDK Лекция 6 Разработка приложений для смартфонов на ОС Android

Содержание Основы работы с аудио и видеоинформацией Введение в Perceptual Computing и возможности Intel Perceptual Computing SDK Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 2

Основы работы с аудио и видеоинформацией 3 Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK

Смартфон – мультимедийный центр 4 Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK Аудио плеер Видео плеер Камера для фотоснимков и видеосъемки Набор библиотек для обработки мультимедиа Media Framework

Мультимедиа библиотека Android позволяет легко использовать в приложениях аудио, видео и изображения: из медиа файлов сохраненных как ресурсы приложения (raw ресурсы) из файлов, расположенных в файловой системе из потока данных, получаемого через сетевое соединение НО! невозможно воспроизводить аудио во время звонка 5 Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK

Мультимедиа библиотека Android Для воспроизведения аудио и видео Android предоставляет класс MediaPlayer При работе с аудиоконтентом можно воспроизводить необработанные данные (проигрывание динамически генерируемого аудио) Для записи аудио и видео Android предоставляет класс MediaRecorder 6 Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK

Воспроизведение аудио инициализация плеера (I способ): параметр source задает источник и может иметь одно из следующих значений: идентификатор ресурса; путь URI к локальному файлу (используя схему file://); путь URI к удаленному ресурсу с аудио, предоставленному в виде URL; путь URI к записи внутри локального источника данных Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 7 MediaPlayer mediaPlayer = MediaPlayer.create(context, source);

Пример 6.1. Разные источники инициализации медиаплеера идентификатор ресурса MediaPlayer resPlayer = MediaPlayer.create(getApplicationContext(), R.raw.my_audio); путь URI к локальному файлу MediaPlayer filePlayer = MediaPlayer.create(getApplicationContext(), Uri.parse("file:///sdcard/localfile.mp3")); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 8

Пример 6.1. Источники инициализации медиаплеера путь URI к удаленному ресурсу с аудио, предоставленному в виде URL MediaPlayer urlPlayer = MediaPlayer.create(getApplicationContext(), Uri.parse(" путь URI к записи внутри локального источника данных MediaPlayer contPlayer = MediaPlayer.create(getApplicationContext(), Settings.System.DEFAULT_RINGTONE_URI); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 9

Замечание: для объекта MediaPlayer, возвращаемого методом create(), уже был вызван метод prepare(), поэтому не надо вызывать его еще раз Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 10

Воспроизведение аудио Инициализация плеера (II способ): создание экземпляра класса MediaPlayer вызов метода setDataSource() параметр: путь к файлу, путь URI к источнику данных, адрес URL мультимедийного потока или файловый дескриптор. Важно не забыть вызвать метод prepare() класса MediaPlayer, прежде чем начинать воспроизведение Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 11

Пример 6.2. Инициализация медиаплеера метод setDataSource() MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource("/sdcard/test.3gp"); mediaPlayer.prepare(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 12

Воспроизведение видео подготовка поверхности для отображения видео: добавление в окно активности приложения элемента SurfaceView; передача в медиаплеер объекта класса SurfaceHolder с помощью метода setDisplay() Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 13

Пример 6.3. Инициализация видеоплеера MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDisplay(((SurfaceView)findViewById( R.id.surfaceView1)).GetHolder()); mediaPlayer.setDataSource("/sdcard/test2.3gp"); mediaPlayer.prepare(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 14

Комментарии: в отличие от ресурсов с аудиоданными, Android не поддерживает проигрывание видео, включенного в проект в качестве ресурса; нет возможности использовать статический метод create() для упрощенного создания объекта MediaPlayer и путь URI, ссылающийся на локальный файл с помощью схемы file://. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 15

Работа с медиаплеером для запуска воспроизведения используется метод: mediaPlayer.start(); при завершении процесса воспроизведения необходимо вызвать метод release() класса MediaPlayer, чтобы освободить соответствующие ресурсы: mediaPlayer.release(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 16

Управление воспроизведением: pause() – приостановка воспроизведения; stop() – остановка воспроизведения; start() – возобновление воспроизведения; seekTo() – переход к определенной позиции; setVolume() – управление громкостью; setScreenOnWhilePlaying() – запрещает автоматическое отключение подсветки экрана. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 17

Замечание: В случае, если в приложении предполагается сохранение экрана и процессора от засыпания, или использование методов класса MediaPlayer: setWakeMode() и setScreenOnWhilePlaying(), необходимо добавить в файл манифеста следующую строку: Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 18

Замечание: В настоящее время нельзя воспроизводить аудиоданные одновременно с разговором по телефону. Медиаплеер всегда использует стандартное устройство для вывода звука динамик или подключенную по Bluetooth гарнитуру. При воспроизведении видеоресурсов можно использовать метод getFrame(), чтобы получить заданный кадр. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 19

Запись видео Самый простой способ записи видео заключается в использовании intent-объектов для запуска стандартного приложения, управляющего камерой. Для запуска записи видео необходимо создать новый intent-объект, используя константу ACTION_VIDEO_CAPTURE класса MediaStore: Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 20

Запись видео настройка свойств intent-объекта: место сохранения видеозаписи, если есть необходимость сохранить ее в месте, отличном от используемого по умолчанию, применяют константу EXTRA_OUTPUT класса MediaStore: intent.putExtra(MediaStore.EXTRA_OUTPUT, outputpath); outputpath – указывает альтернативный путь URI; Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 21

Запись видео настройка свойств intent-объекта: качество видеозаписи, если есть необходимость сохранить картинку в качестве, отличном от используемого по умолчанию, применяют константу EXTRA_VIDEO_QUALITY класса MediaStore: intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, VIDEO_QUALITY); VIDEO_QUALITY = 0 – низкое качество (подходит для MMS) VIDEO_QUALITY = 1 – высокое качество (по умолчанию) Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 22

Запись видео После создания и настройки intent-объекта необходимо вызвать метод startActivityForResult() и передать ему полученный экземпляр Intent в качестве параметра: startActivityForResult(intent, RECORD_VIDEO); Этот метод запускает стандартную активность, управляющую видеокамерой и позволяющую начать, остановить, просмотреть и повторить запись видео. При этом нет необходимости создавать собственное приложение для этих нужд. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 23

Запись мультимедиа, использование класса MediaRecorder Чтобы иметь возможность записывать мультимедийные файлы в Android, приложение должно получить полномочия RECORD_AUDIO и/или RECORD_VIDEO. Для этого необходимо добавить в манифест приложения следующие строки: Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 24

Запись мультимедиа, использование класса MediaRecorder Для управления записью медиа-контента с помощью класса MediaRecorder необходимо выполнить следующие действия в заданной последовательности: 1. создать экземпляр класса MediaRecorder: MediaRecorder mediaRecorder = new MediaRecorder(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 25

Запись мультимедиа, использование класса MediaRecorder 2. определить источник записи с помощью методов setAudioSource() и setVideoSource(), которым в качестве параметра передаются статические константы классов MediaRecorder.AudioSource и MediaRecorder.VideoSource, определяющие источники для аудио и видеоданных соответственно: mediaRecorder.setAudioSource( MediaRecorder.AudioSource.MIC); mediaRecorder.setVideoSource( MediaRecorder.VideoSource.CAMERA); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 26

Запись мультимедиа, использование класса MediaRecorder 3. задать итоговый формат с помощью метода setOutputFormat(), передав ему одну из констант класса MediaRecorder.OutputFormat: mediaRecorder.setOutputFormat( MediaRecorder.OutputFormat.DEFAULT); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 27

Запись мультимедиа, использование класса MediaRecorder 4. определить кодировщики для аудио и видео с помощью методов setAudioEncoder() и setVideoEncoder(), используя константы класса MediaRecorder.AudioEncoder и MediaRecorder.VideoEncoder, соответственно. mediaRecorder.setAudioEncoder( MediaRecorder.AudioEncoder.DEFAULT); mediaRecorder.setVideoEncoder( MediaRecorder.VideoEncoder.DEFAULT); При желании можно установить частоту кадров и размер итогового видео. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 28

Запись мультимедиа, использование класса MediaRecorder 5. выбрать итоговый файл с помощью метода setOutputFile(): mediaRecorder.setOutputFile("/sdcard/myoutputfile.mp4"); После выполнения вышеперечисленных шагов, получим экземпляр класса MediaRecorder, настроенный для записи аудио- и видеоданных с микрофона и камеры, соответственно, при этом использованы итоговый формат и кодировщики по умолчанию, а запись будет сохранена на карту SD. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 29

Запись мультимедиа, использование класса MediaRecorder 5. подготовить к записи с помощью метода prepare(): mediaRecorder.prepare(); 6. начать запись с помощью метода start(): mediaRecorder.start(); 7. завершить запись с помощью метода stop() – завершение записи, и метода release() – освобождение ресурсов объекта MediaRecorder: mediaRecorder.stop(); mediaRecorder.release(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 30

Настройка предпросмотра Метод setPreviewDisplay() позволяет задать объект Surface для показа видеопотока во время записи. mediaRecorder.setPreviewDisplay((SurfaceView)findViewById (R.id.surface).getHolder().getSurface()); mediaRecorder.prepare(); После настройки предварительного просмотра необходимо вызвать метод prepare(), после этого на экране в режиме реального времени начнет отображаться записываемый видеопоток. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 31

Добавление мультимедийных файлов в MediaStore По умолчанию мультимедийные файлы, созданные любым приложением, недоступны для других программ, чтобы предоставить доступ к таким файлам необходимо добавить их в MediaStore Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 32

Использование сервиса MediaScannerConnection Для установки связи с сервисом MediaScannerConnection необходимо вызвать метод connect(), чтобы получить уведомление об успешной установке связи необходимо реализовать интерфейс MediaScannerConnectionClient. В реализации необходимо прописать методы onMediaScannerConnected() и onScanCompleted(), первый вызывается системой, когда связь с сервисом установлена, второй когда завершен процесс сканирования. В первом методе вызываем метод scanFile(), чтобы начать сканирование, во втором вызываем метод disconnect(), чтобы разорвать связь с сервисом. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 33

Пример класса MediaScannerConnectionClient MediaScannerConnectionClient mediaScannerClient = new MediaScannerConnectionClient() { private MediaScannerConnection msc = null; msc = new MediaScannerConnection(getApplicationContext(), this); msc.connect(); public void onMediaScannerConnected() { msc.scanFile("/sdcard/test1.jpg", null); } public void onScanCompleted(String path, Uri uri) { msc.disconnect(); } }; Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 34

Создание нового объекта ContentValues и добавление его в соответствующий источник данных ContentValues content = new ContentValues(3); content.put(Audio.AudioColumns.TITLE, "TheSoundandtheFury"); content.put(Audio.AudioColumns.DATE_ADDED, System.currentTimeMillis()/1000); content.put(Audio.Media.MIME_TYPE, "audio/amr"); //указание абсолютного пути к добавляемому файлу content.put(MediaStore.Audio.Media.DATA, "/sdcard/myoutputfile.mp4"); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 35

Создание нового объекта ContentValues и добавление его в соответствующий источник данных //доступ к объекту ContentResolver приложения ContentResolver resolver = getContentResolver(); //вставка новой строки в MediaStore Uri uri = resolver.insert( MediaStore.Video.Media.EXTERNAL_CONTENT_URI, сontent); //объявление о доступности добавленного файла sendBroadcast(new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri)); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 36

Работа с несжатым звуком Android API предоставляет классы AudioTrack и AudioRecord, позволяющие напрямую записывать аудио и воспроизводить аудиопоток в формате PCM, используя аппаратные возможности устройства. Рассмотрим процесс записи и воспроизведения «сырых» данных в формате PCM. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 37

Работа с несжатым звуком Для записи аудиоданных непосредственно с аппаратных буферов используется класс AudioRecord. Необходимо создать новый объект AudioRecord, указав источник, частоту, настройки каналов, кодировщик для аудио и размер буфера. Значения частоты, кодировщика аудио и настроек каналов повлияют на размер и качество записанного аудиофайла. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 38

Настройка свойств записи //частота int frequency = 11025; //конфигурация каналов int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO; //кодировщик int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 39

Инициализация объекта AudioRecord //размер буфера int bufferSize = AudioRecord.getMinBufferSize( frequency, channelConfiguration, audioEncoding); AudioRecord audioRecord = new AudioRecord( MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, audioEncoding, bufferSize); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 40

Комментарий: Для возможности записи несжатого аудио необходимо в манифест приложения добавить полномочие RECORD_AUDIO. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 41

Запись несжатого звука После инициализации объекта AudioRecord необходимо вызвать метод startRecording(), чтобы начать асинхронную запись. Для добавления необработанных аудиоданных в записываемый буфер используется метод read(): short[] buffer = new short[bufferSize]; audioRecord.startRecording(); while (isRecording) { //заполнение буфера данными int bufferReadResult = audioRecord.read( buffer, 0, bufferSize);} Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 42

Обработка входящего аудиопотока Для обработки входящего аудиопотока и воспроизведения его практически в режиме реального времени, используется класс AudioTrack. Этот класс дает возможность манипулировать входящим и исходящим звуком, обрабатывая на устройстве несжатые аудиоданные. Необходимо создать новый объект AudioTrack, указав потоковый режим, частоту, параметры каналов, тип кодировщика и длину аудио. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 43

Воспроизведение аудио, класс AudioTrack //частота, увеличивает скорость проигрывания вдвое int frequency = 11025/2; int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO; int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; AudioTrack audioTrack = new AudioTrack( AudioManager.STREAM_MUSIC, frequency, channelConfiguration, audioEncoding, audioLength, AudioTrack.MODE_STREAM); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 44

Воспроизведение аудио, класс AudioTrack Поскольку аудиоданные необработанные, отсутствует метаинформация, связанная с ними. Поэтому важно установить корректные свойства, чтобы они совпадали с теми, которые были использованы при записи файла. File file = new File(Environment.getExternalStorageDirectory(), "raw.pcm"); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 45

Воспроизведение аудио, класс AudioTrack int audioLength = (int)(file.length()/2); short[] audio = new short[audioLength]; DataInputStream dis = new DataInputStream( new BufferedInputStream(new FileInputStream(file))); int i = 0; while (dis.available() > 0) { audio[audioLength] = dis.readShort(); i++; } dis.close(); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 46

Воспроизведение аудио, класс AudioTrack После инициализации объекта AudioTrack, чтобы начать асинхронное воспроизведение, необходимо вызвать метод play(). Метод write() позволяет добавить «сырые» аудиоданные в буфер проигрывателя. audioTrack.play(); audioTrack.write(audio, 0, audioLength); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 47

Воспроизведение аудио, класс AudioTrack Запись в буфер объекта AudioTrack можно начать, как до вызова метода play, так и после. В первом случае воспроизведение пойдет сразу после вызова, во втором звук станет проигрываться, как только данные запишутся в буфер AudioTrack. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 48

Распознавание речи Начиная с версии 1.5 (API Level 3) Android поддерживает голосовой ввод и распознавание речи и позволяет встраивать в приложения голосовой ввод. Для распознавания речи необходимо создать intent- объект, используя константу ACTION_RECOGNIZE_SPEECH класса RecognizerIntent: Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 49

Распознавание речи зададим языковую модель распознавания: intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); зададим строку, которая будет отображаться в окне голосового ввода, она должна предлагать пользователю сказать что-нибудь в микрофон: intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "speak now"); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 50

Распознавание речи ограничим количество результатов, которые могут быть возвращены при распознавании, зададим 1: intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); укажем языковую константу из класса Locale, чтобы задать язык для ввода, отличный от языка по умолчанию на данном устройстве: intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 51

Распознавание речи Можно получить текущее значение по умолчанию, вызвав статический метод getDefault() из класса Locale. После формирования intent-объекта передадим его в качестве параметра в метод startActivityForResult(), который вызывает стандартное диалоговое окно для распознавания речи: startActivityForResult(intent, VOICE_RECOGNITION); Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 52

Распознавание речи После завершения голосового ввода, движок для распознавания речи проанализирует и обработает записанный звук. Для получения результатов необходимо переопределить метод onActivityResult() активности, из которой был отправлен запрос на распознавание речи. В примере 6.6 показано переопределение метода onActivityResult(). Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 53

Актуальная информация MediaRecorder.html MediaRecorder.html Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 54

Введение в Perceptual Computing и возможности Intel Perceptual Computing SDK 55 Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK

Perceptual Computing Идеи естественно-интуитивного взаимодействия человека с компьютером (perceptual computing), предполагают способность вычислительных устройств понимать человека через физический контакт, словесные команды и жесты. Разработчикам программного обеспечения использование новых идей позволит создавать приложения, вносящие ощущение присутствия и погружения. Такого эффекта можно добиться реализацией возможностей отслеживания жестов рук и пальцев, анализа лица (мимики), распознавания голоса (речи), отслеживания перемещений 2D/3D объектов. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 56

Intel Perceptual Computing SDK В октябре 2012 года компания Intel представила SDK (от англ. software development kit) – комплект разработки для написания программных средств. Полное название комплекта Intel Perceptual Computing SDK. SDK фокусируется на нескольких аспектах естественно-интуитивного взаимодействия человека с компьютером, а именно распознавание лиц, голосовых команд и жестов. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 57

Применение Perceptual Computing Наиболее очевидный способ использования функций естественно-интуитивного взаимодействия видео игры. К примеру, разработчики могут взять функции, предоставляемые SDK и в сфере видео игр для взаимодействия игрока с трехмерным миром, использовать голос или жесты для манипуляций в игре. Многопользовательские режимы игры получат совершенно другой облик, позволяя участникам игры по-новому взаимодействовать друг с другом. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 58

Применение Perceptual Computing Распознавание набора мелкозернистых объектов, таких как десять пальцев на руках, на относительно небольшом расстоянии от компьютера дает возможность моделировать систему захвата какого-либо трехмерного виртуального объекта, перемещать его или указывать на данный объект. Вспомним язык жестов. Распознавание движения рук или жестов может быть интерпретировано компьютером и использовано для взаимодействия. Кроме этого можно реализовать такие жесты как перелистывание в разных направлениях. К примеру, переключать треки в плейлисте или перелистывать страницы книги Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 59

Применение Perceptual Computing Функции распознавания лица и контрольных точек на лице позволят определить, где расположены глаза, нос или рот. Присутствует функция распознания моргания, улыбки, распознавания пола и возрастной группы. Cуществуют решения простой идентификации личности такие как, например, фейс-логин. Помимо этого, использование параметров лица позволит реализовать приложения, к примеру, осуществляющие оценку поведения представителей разных возрастных групп или распознать эмоциональные состояний человека Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 60

Применение Perceptual Computing Использование сенсора глубины добавит новые возможности веб конференциям и дистанционному общению. Сегментация, основанная на глубине изображения, позволит разделить передний и задний фон. К примеру, чтобы добавить красок виртуальному общению, задний фон может быть заменен каким-либо изображением, к примеру лунным ландшафтом или пляжем. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 61

Применение Perceptual Computing Возможно распознавание трехмерных объектов реального мира и комбинирование их с интерактивным контентом. Трехмерная камера способна распознать модель реального объекта и добавить виртуальные графические и звуковые спецэффекты. Таким образом, распознав группу объектов, положение отдельных объектов относительно других и их поведение, создается новая модель взаимодействия объектов. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 62

Архитектура Intel Perceptual Computing SDK Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 63

Архитектура Intel Perceptual Computing SDK Основная идея заключается в модульности структуры SDK. Здесь имеется набор модулей для ввода/вывода, а также набор модулей для реализации тех или иных алгоритмов. Например, алгоритмов распознавания лиц, распознавания речи или синтеза речи. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 64

Модуль распознавания жестов предоставляет возможность отслеживания позиций пальцев на руке. Доступны 7 точек: кончики пальцев, центр ладони и максимально видимая точка, которая находится у локтя. Если не требуется знать о местоположении каждого пальца, то можно запросить специальные параметры, например, самую верхнюю точку, самую правую точку или центр масс руки. На последнее не стоит сильно полагаться, так как это изменяемая величина. Поэтому если нужно отслеживать руку, то для точных взаимодействий рекомендуется использовать кончик пальца. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 65

Модуль распознавания лиц позволяет получить большое количество информации о распознанном лице. В итоге может быть возвращено 7 точек на лице: уголки глаз, уголки рта, кончик носа. Кроме этого можно получить некоторую аналитическую информацию о распознанном лице. Например, мы можем получить возрастную группу лица присутствующего на картинке (ребенок, пожилой человек), можно определить пол, распознать подмигивание, распознать улыбку. Еще одна полезная особенность этого модуля заключается в том, что он может находить похожие лица. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 66

Модуль голосового управления предлагает две основных функциональности по распознаванию речи: первая – это использование функций модуля для реализации голосовых меню. Вторая - это надиктовывание. Данная функция предназначена для реализации надиктовывания коротких фраз продолжительностью до 30 секунд; для реализации голосового управления используется голосовой движок Nuance Dragon Assistant кроме того, в SDK доступен модуль синтеза речи Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 67

Модуль отслеживания двумерных и трехмерных объектов Функционал данного модуля позволяет отслеживать плоские двумерные объекты. Достаточно просто создать модель этого объекта на компьютере и отслеживать его. В результате мы можем получать параметры позиции объекта, угол наклона и т.д. Также поддерживается отслеживание трехмерных объектов, которые задаются в виде модели (.obj файла). По умолчанию доступна модель маски лица, при помощи которой можно отслеживать наклоны и изменения позиции лица как трехмерного объекта. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 68

Дополнения: Стоит дополнить, что SDK реализует несколько уровней интерфейсов, которые позволяют сразу же использовать игровые движки. На текущий момент поддерживаются следующие игровые движки: Unity, Processing, использующий Java и openFrameworks. Разработка приложений для смартфонов на ОС Android. Лекция 6. Работа с аудио и видеоинформацией в приложениях для смартфона, использование Intel Perceptual Computing SDK 69