Программирование мобильных телефонов на Java



9.3. Воспроизведение wav-файлов



Воспроизведение wav-фа.йлов в телефоне задача не сложная. Wav-файл должен быть размещен в каталоге создаваемого приложения. Если вы используете J2ME Wireless Toolkit 2.1, то расположите wav-файл в папке res. Впоследствии, после компиляции и установки программы, wav-файл будет находиться в JAR-  архиве, и доступен для воспроизведения.

Для того чтобы воспроизвести необходимый wav-файл создается объект класса Inputstream для связывания потока данных с ресурсом, а именно wav-файлом,например:

Inputstream input =
getClassf).getResourceAsStream(«файл.wav»);


Затем создается проигрыватель:

Player player = Manager.createPlayer(input,«audio/X-wav»);


Проигрыватель формируется с помощью метода createPlayer() класса Manager. Количество создаваемых проигрывателей регламентируется только системными ресурсами телефона. После чего используется метод start() для воспроизведения wav-файла.

В листинге 9.1 вы найдете пример исходного кода, в котором происходит загрузка и воспроизведение wav-файла из JAR-архива. В примере используется класс Form, с помощью которого создается пустой экран, и добавляются две команды: выход из приложения и воспроизведение wav-файла. Основные действия разворачиваются в методе WavPlay (), где создается проигрыватель и воспроизводится wav-файл. Обратите также внимание на подключаемые пакеты.

/**
листинг 9.1.
класс WavMIDlet
воспроизводит wav-файл
*/
import javax.microedition.Icdui.*;
import javax.microedition.midlet.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.io.*;
public class WavMIDlet
extends MIDlet implements CommandListener
{
// команда выхода
private Command
exitMidlet = new Command("Выход",
Command.EXIT, 0);
// команда воспроизведения
private Command
pi = new Command("Играть", Command.OK, 1);
// объект mydisplay представляет экран телефона
private Display mydisplay;
public WavMIDlet()
{
mydisplay = Display.getDisplay(this);
}
public void startApp()
{
Form Is = new Form("Воспроизведение wav");
// добавляем команду выхода
ls.addCommand(exitMidlet);
// добавляем команду воспроизведения
ls.addCommand(pl);
ls.setCommandListener(this);
// отражаем текущий дисплей
mydisplay.setCurrent(Is);
}
private void WawPlay()
{
try {
// ищем ресурс с именем melod.wav
InputStream
input =getClass().getResourceAsStream("melod.wav");
// создаем проигрыватель
Player player = Manager.createPlayer(input,
"audio/X-wav");
// воспроизводим player.start();
}
 catch (lOException zxz) {} catch (MediaException zmz) {}
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c, Displayable d)
{
if (c == exitMidlet)
 {
destroyApp(false); notifyDestroyed() ;
}
if (c = = pi) {
WawPlay();
}
}
 }

Назад Начало Вперед



Книжный магазин