try {
InputStream is = getClass().getResourceAsStream("Music.mid");
musicPlayer = Manager.createPlayer(is, "audio/midi");
musicPlayer.prefetch();
is = getClass().getResourceAsStream("Celebrate.wav");
celebratePlayer = Manager.createPlayer(is, "audio/X-wav");
celebratePlayer.prefetch();
is = getClass().getResourceAsStream("Squish.wav");
squishPlayer = Manager.createPlayer(is, "audio/X-wav");
squishPlayer.prefetch();
is = getClass().getResourceAsStream("GameOver.wav");
gameoverPlayer = Manager.createPlayer(is, "audio/X-wav");
gameoverPlayer.prefetch();
}
catch (IOException ioe) {
}
catch (MediaException me) {
Этот код напоминает рассмотренные ранее примеры и не содержит ничего принципиально нового. Для создания проигрывателей используются файлы Music.mid, Celebrate.wav, Squish.wav и GameOver.wav, хранящиеся в JAR-файле мидлета. Обратите внимание, что для каждого проигрывателя вызывается метод prefetch() непосредственно после создания, поэтому все звуки немедленно загружаются в память и готовы для воспроизведения.
Метод start() класса HCanvas также начинает воспроизведение фоновой музыки сразу после создания проигрывателей. Вот так выглядит запуск воспроизведения:
try {
musicPlayer.setLoopCount(-1);
musicPlayer.start();
}
catch (MediaException me) {
}
В метод setCountLoop() передается значение -1, это говорит о том, что мелодия будет воспроизводиться бесконечно. Этот метод вызывается перед методом start(). После этого начинается воспроизведение мелодии до тех пор, пока не будет вызван метод stop() или закрыт проигрыватель.
musicPlayer.close();
celebratePlayer.close();
squishPlayer.close();