- •Что Вам необходимо?
- •Создание miDlet-а
- •О том, что скрыто от наших глаз
- •А дальше?
- •Ресурсы
- •Инсталяция и запуск Tomcat
- •Написание исходного кода Servlet-а
- •Компиляция Servlet – а
- •Развертывание Servlet-а
- •Как обратиться к Servlet-у из miDlet-а
- •Замечания
- •Заключение
- •Дейтаграммы
- •Получение Web контента
- •Когда какой протокол использовать?
- •Стек протоколов
- •Профили
- •Bluetooth устройства и сети
- •Системные требования
- •Java api For Bluetooth — организация и пакеты
- •Анатомия miDlet-ов, использующих jsr 82
- •Использование Java apIs for Bluetooth
- •Использование Bluetooth в j2me приложениях. (jsr-82) - Часть 2. Обзор Connection и Device Management api Обзор Connection api
- •Типы Bluetooth соединения
- •Создание соединения
- •Ожидание соединения
- •Отправка и получение даннях
- •Обзор Device Management api
- •Удаленное устройство
- •Класс устройства
- •Получение информации о настройках Bluetooth устройства
- •Интерфейсы pim api
- •Классы pim api
- •Использование pim api
- •Использование эмулятора j2me Wireless Toolkit 2.2 для тестирования pim списков
- •Особенности спецификации Sony Ericsson
- •Свойства системы
- •Классы и интерфейсы FileConnection api
- •Операции ввода/вывода
- •Получение информации о файлах и каталогах
- •Вычисление Экспоненты
- •Гиперболические функции
- •Вычисление натурального логарифма
- •Вычисление арксинуса и арккосинуса
- •Вычисление арктангенса
- •Обзор mmapi
- •Механизм обработки мультимедмйной информации
- •Mmapi пакеты
- •Использование mmapi
- •Последовательности нот
- •Проигрывание мультимедийных файлов
- •Воспроизведение видео
- •Использование камеры
- •Поддерживаемые форматы
- •Ограничения использования mmapi в wtk
- •Пример простого медиаплеера
- •Создание midp приложения с использованием Visual Designer-а.
- •Редактирование Java исходников
- •Создание midp приложений с использованием Source Editor Создание нового j2me midp проекта
- •Редактирование Java исходников
- •Компиляция и запуск проекта
- •Выбор платформы эмулятора
- •Использование конфигурирования
- •Добавление конфигурации
- •Настройка конфигурации
Использование mmapi
Ниже будет приведен код, показывающий использование MMAPI. Мы будем рассматривать стандартный пример, входящий в WTK: /wtk20/apps/mmademo.
Последовательности нот
Метод Manager.playTone() используется для генерации тонального звука. Вы должны передать ему требуемую ноту, ее длительность и громкость:
..
try {
// Играть ноту C4 ("До") 4000 миллисекунд с громкостью 100 единиц (диапазон громкости от 0 до 100).
Manager.playTone()(ToneControl.C4, 4000, 100);
}
catch(MediaException me) {
}
...
Кроме того, Вы можете создать плеер для синхронизации с последовательностью нот.
...
Player player =
Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);
player.realize();
ToneControl tc1=(ToneControl)player.getContril("ToneControl");
//Подключаем последовательность нот, указанных в массиве Nots
tc1.setSequence(Nots);
player.start();
...
Последовательность нот должна быть задана в следующем виде:
byte[] Nots={
ToneControl.VERSION, 1, //версия используемого атрибута
ToneControl.TEMPO, speed, //темп мелодии. Переменная speed = 5-127
ToneControl.BLOCK_START, 0, //начало блока 0
ToneControl.С4, 4 //Нота До продолжительностью 4 (можно от 2 до 16)
ToneControl.SILENCE, 4 //Пауза продолжительностью 4
ToneControl.С4+1, 4 //Нота До# продолжительностью 4
ToneControl.SILENCE, 4 //Пауза продолжительностью 4
ToneControl.С4+2, 4 //Нота Ре продолжительностью 4
ToneControl.SILENCE, 4 //Пауза продолжительностью 4
...
...
ToneControl.С4+12, 4 //Нота До следующей октавы
ToneControl.BLOCK_END, 0, //конец блока 0
ToneControl.PLAY_BLOCK, 0} //воспроизведение блока 0
Этот тип плеера создает ToneControl, который можно использовать для программирования последовательности нот. Эта возможность доступна только на мощных устройствах.
Проигрывание мультимедийных файлов
Приведенный ниже пример показывает, как воспроизвести простой mp3 файл без использования контроля.
...
try {
Player p = Manager.createPlayer
("http://server/somemusic.mp3");
p.setLoopCount(5);
p.start();
}
catch(IOException ioe) {
}
catch(MediaException e) {
}
...
Аналогичным способом можно воспроизводить wav и midi файлы.
В приведенном ниже коде добавлена возможность управления:
...
Player p;
VolumeControl vc;
try {
p = Manager.createPlayer("http://server/somemusic.mp3");
p.realize();
// получаем доступ к управлению громкостью и устанавливаем ее на полную мощность.
vc = (VolumeControl) p.getControl("VolumeControl");
if(vc != null) {
vc.setVolume(100);
}
// плеер запускается с минимальным временем ожидания
p.prefetch();
// неблокируемый запуск
p.start();
}
catch(IOException ioe) {
}
catch(MediaException e) {
}
...
Поскольку Manager.createPlayer() можно передавать любой InputStream, ваше приложение может проигрывать информацию, сохраненную в MIDP Record Management System (RMS), или находящуюся внутри JAR архива. В приведенном ниже примере показано, как получить InputStream из RMS и воспроизвести эту информацию.
...
RecordStore store;
int id;
// воспроизведение из RMS
try {
InputStream is = new ByteArrayInputStream(store.getRecord(id));
Player player = Manager.createPlayer(is, "audio/X-wav");
p.start();
}
catch (IOException ioe) {
}
catch (MediaException me) {
}
...
Обратите внимание на строчку Player player = Manager.createPlayer(is, "audio/X-wav"). Если Вы хотите проигрывать midi файл, необходимо указать другой MIME тип: "audio/midi".
Ниже приведен пример, проигрывающий wav файл, входящий в состав JAR архива.
...
try {
InputStream is = getClass().getResourceAsStream("audio.wav");
Player player = Manager.createPlayer(is, "audio/X-wav");
p.start();
}
catch(IOException ioe) {
}
catch(MediaException me) {
}
...