Наверняка в вашем android-гаджете есть, как минимум, динамик. А скорей всего, и микрофон, и фото/видеокамера, и аудио/видео плеер, и прочие мультимедиа-радости. Следовательно, логично использовать их в создаваемом приложении.
Вот, как раз, для обращения к медиа-инструментам и служат медиа-компоненты App Inventor.
Итак, к нашим баранам.
Player
Этот компонент представляет собой аудио-проигрыватель и предназначен для проигрывания аудио-композиций. Не путайте его с компонентом Sound (см. ниже), который служит для воспроизведения звуковых сигналов. А ещё он отвечает, впрочем как и Sound, за включение вибрации.
Свойства:
IsPlaying
Отчет о том, что плеер играет. Ну, например, «если плеер играет, то…»
Loop
Свойство, которое зацикливает проигрывание звукового файла
PlayOnlyInForeground
Если установлено данное свойство, то музыка будет проигрываться только при активном состоянии того экрана, где используется компонент Player. А если не установлено – музыка будет вечной.
Source
Указание на проигрываемый файл
Volume
Уровень громкости, от 0 до 100.
События
Completed
Окончание проигрывания аудиофайла.
OtherPlayerStarted
Событие сигнализирует о старте какого-либо другого плеера, но данный плеер при этом всё ёще воспроизводит.
Команды
Pause
Постановка на паузу.
Start
Понятное дело – старт. При этом, если плеер стоял на паузе, то воспроизводится с места остановки, а если запускается с «0» — то с начала.
Stop
Остановка плеера.
Vibrate
Включение вибрации на N-нное количество миллисекунд. Тут меня заинтересовал вопрос: через сколько секунд сгорит вибратор? Но пробовать пока не стал.
Sound
Медиа-компонент App Inventor, который отличается от Player большей адаптированностью к подаче звуковых сигналов.
Он отличается от Player наличием свойства MinimumInterval, которое задает интервал между воспроизведением звукового файла, который гоняется по кругу. В остальном – практически, то же самое. Да, команд своих у него нет.
TextToSpeech
Этот компонент пригодится, если вы хотите научить своё приложение говорить – он преобразует текст в речь. Компонент забавный и я с удовольствием с ним поиграл, хотя в своих приложениях практического применения ему не нашёл. В большинстве случаев, на мой взгляд, это просто украшалка. Разумеется, для некоторых приложений этот компонент незаменим, например, навигатор – тут «говорилка» просто незаменима и обязательна.
TextToSpeech умеет говорить на тех же языках ,что и ваш android-гаджет. Более того, он может говорить на диалекте желаемого региона, но это не про русский язык. Впрочем, это скорей к разработчикам Anroid – как будет поддержка говора разных регионов России, так и TextToSpeech сможет поддерживать эту возможность. Настраиваются языки в свойствах компонента.
Свойства:
AvailableCountries
С этим свойством некоторая тавтология: это свойство компонента позволяет узнать свойства вашего устройства, а именно поддерживаемые языковые регионы. Здесь как раз и идёт речь о настройке диалектов. Например, «американский английский». Впрочем, нас, русскоговорящих, это пока не особо касается – как говорится, русский, он и в Африке русский. Для разработчиков Anroid – точно.
AvailableLanguages
А вот это более ценный инструмент, хотя по смыслу похож на предыдущий. Он позволяет узнать, какие языки для «говорилки» поддерживает устройство пользователя приложения. И, соответственно, дать возможность ему выбрать язык. Например, прикрепляем это свойство к свойству ElementsFromString компонента ListPicker. В результате, получаем список используемых языков, один из которых пользователь может выбрать. А далее, уже свойство Selection того же ListPicker передаём в свойство Language, о котором ниже. И получаем «говорилку» на нужном пользователю языке.
Country
Задание того самого диалекта, который для русского языка не актуален в контексте Android.
Language
Задание языка. Язык можно и задать по умолчанию или в результате манипуляций с AvailableLanguages. Для русского – «ru».
Pitch
Установка высоты тона речи. Значения от 0 до 2.
SpeechRate
Установка скорости речи. Значения от 0 до 2
События
AfterSpeaking
Окончание речевого сообщение
BeforeSpeaking
Событие перед «говорением»
Команды
Speak
Запуск речи
VideoPlayer
Мультимедиа-компонент, позволяющий воспроизводить видео, проще говоря, видеопроигрыватель. Это видимый на экране компонент, который представляет собой прямоугольник на экране со стандартным функционалом видеопроигрывателя.
Видео файлы должны быть в 3GPP (.3gp) или MPEG-4 (.mp4).
Важно, что размер файле не должен превышать 1 Мб, так что жмите своё видео.
Свойства
FullScreen
Пожалуй, единственное уникальное для компонента свойство – полноэкранность.
События
Completed
Окончание проигрывания видео.
Команды
number GetDuration
Вернуть продолжительность видео в миллисекундах
Pause
Пауза
SeekTo
Ищет указанное время (в миллисекундах) в видео.
Start
Старт
YandexTranslate
В-о-от, наконец-то мы добрались до русского следа в App Inventor. Мне, например, совершенно непонятно, почему MIT договорился об использовании переводчика не с родственным Гуглом, а с Яндексом. Яндекс, в принципе, не хуже, но ведь и родство на помойку не выкинешь. Впрочем, ладно.
Для работы компонента, понятное дело, необходим доступ в интернет.
Перевод происходит асинхронно в фоновом режиме. Когда перевод завершен, срабатывает событие «GotTranslation».
События
GotTranslation
Событие срабатывает, когда Яндекс возвращает переведенный текст. Это событие также предоставляет код отклика для обработки ошибок.
Команды
RequestTranslation
Собственно, команда «перевести». В блоке команды надо указать направление перевода, например, en-ru, и текст для перевода.
В следующей статье я разберу всяческие пишущие и фотографирующие компоненты.