Читаем Создание игр для мобильных телефонов полностью

Перед тем как делать необоснованные предположения о том, что может и не может делать телефон с аудио, целесообразно спросить об этом у телефона. MIDP 2.0 Media API предоставляет простые средства для включения и отключения определенных звуковых средств мобильного телефона. Например, вы можете создать как тоновое звуковое сопровождение игры, так и цифровое, и воспроизводить нужный вариант в зависимости от функций телефона.

...

В копилку Игрока

Все телефоны стандарта MIDP 2.0 поддерживают звуки и их последовательности, поэтому вы всегда можете использовать их в играх.

Чтобы запросить возможности телефона, используется класс Manager. Если быть более точным, метод getSupportedContentTypes() возвращает список мультимедийных средств, которые поддерживаются данным телефоном. Поскольку этот метод статический, нет необходимости создавать экземпляр класса Manager, чтобы воспользоваться этим методом. Этот метод возвращает массив строк – список поддерживаемого контента. Ниже приведен пример того, как можно вызвать этот метод:

String[] contentType = Manager.getSupportedContentTypes(null);

Я же сказал, что это очень просто! После этого вызова массив contentType будет содержать список поддерживаемого контента в соответствии с их именами MIME. Ниже приведен список наиболее широко распространенных типов MIME, которые поддерживаются мобильными телефонами MIDP 2.0:

► audio/x-tone-seq – тоны и их последовательности;

► audio/x-wav – Wav-звуки;

► audio/x-midi – MIDI-музыка;

► audio/mpeg – MP3-аудио.

Несмотря на то что интересно поразмышлять о том, какие значения может возвратить метод getSupportContentTypes(), лучше опробовать его на реальном устройстве. В листинге 8.1 приведен код класса SSCanvas мидлета SoundCheck, который опрашивает телефон о его возможностях и выводит на экран каждый поддерживаемый тип контента.

...

Совет Разработчику

Класс Manager реализует другой метод – getSupportedProptocols(). Он опрашивает устройство о поддерживаемых протоколах передачи, с помощью которых можно получить доступ к определенному типу контента. Например, телефон может поддерживать загрузку Wav-файла из JAR-архива мидлета, однако не поддерживать загрузку через HTTP. Поскольку игры в этой книге разработаны так, что все необходимые ресурсы находятся в JAR-архиве, то выполнять проверку протоколов нет необходимости.

Листинг 8.1. Класс SSCanvas – это особый класс холста мидлета SoundCheck

import javax.microedition.lcdui.*;

import javax.microedition.media.*;

import javax.microedition.media.control.*;

public class SCCanvas extends Canvas {

private Display display;

public SCCanvas(Display d) {

super();

display = d;

}

void start() {

display.setCurrent(this);

repaint();

}

public void paint(Graphics g) {

// очистить холст

g.setColor(0, 0, 0); // черный

g.fillRect(0, 0, getWidth(), getHeight());

g.setColor(255, 255, 255); // белый

// получить данные о поддерживаемых типах контента

String[] contentTypes = Manager.getSupportedContentTypes(null); //Единственная строка кода выявляет все поддерживаемые типы контента

// вывести поддерживаемые типы звуков

int y = 0;

for (int i = 0; i < contentTypes.length; i++) {

// Draw the content type

g.drawString(contentTypes[i], 0, y, Graphics.TOP | Graphics.LEFT);

y += Font.getDefaultFont().getHeight();

// воспроизвести звук, если поддерживаются тоны

if (contentTypes[i] == "audio/x-tone-seq") {

try {

// воспроизвести среднее C (C4) в течение двух секунд (2000ms)

при максимальной громкости (100)

Manager.playTone(ToneControl.C4, 2000, 100); //Тон (среднее С) воспроизводится в течение 2 секунд на полной громкости в случае, если тоны поддерживаются устройством

}

catch(MediaException me) {

}

}

}

}

}

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT