// Класс вывода звука SimpleSound (С) By Shadowsshot 2011 import javax.microedition.media.Manager; import javax.microedition.media.MediaException; import javax.microedition.media.Player; import java.io.IOException; import java.io.InputStream; import javax.microedition.media.control.VolumeControl; public class SimpleSound { private String song_name; private Player player; private int volume; private boolean loop; private boolean cashed; public void SimpleSound() { song_name=null; player=null; volume=0; loop=false; cashed=false; } // Загрузка звука по заданному имени из ресурса public void Load(String name) { if(!(name.equals(song_name) && cashed)){ String sound_type=null; if(name.indexOf(".wav")>=0)sound_type="audio/x-wav"; if(name.indexOf(".mp3")>=0)sound_type="audio/mpeg"; if(name.indexOf(".mid")>=0)sound_type="audio/midi"; if(sound_type!=null){ try{ InputStream is = getClass().getResourceAsStream(name); player=Manager.createPlayer(is,sound_type); player.realize(); player.prefetch(); is.close(); is=null; SetLoop(loop); SetVolume(volume); song_name=name; } catch(MediaException pe){System.out.println("Media exception");} catch(IOException ioe){System.out.println("Music file not found");} }else System.out.println("Unknown audio file type. Check extension/."); } } // Воспроизведение звука public void Play() { if(player!=null){ try{ player.start(); SetVolume(volume); }catch(MediaException e){System.out.println("Media exception on play sound");} } } // Воспроизведение звука по имени public void Play(String name) { Load(name); Play(); } // Воспроизведение звука по имени с заданной громкостью public void Play(String name, int volume) { Load(name); SetVolume(volume); Play(); } // Выключить звук public void Mute() { SetVolume(0); } // Остановить воспроизведение public void Stop() { if(player!=null){ try{player.stop();}catch(MediaException e){System.out.println("Media exception");} } } // Полностью закрыть ресурсы проигрывателя public void Kill() { if(player!=null){ try{player.stop();}catch(MediaException e){System.out.println("Media exception");} try{player.deallocate();}catch(Exception e){System.out.println("Media exception");} try{player=null;}catch(Exception e){System.out.println("Media exception");} } } // Установить громкость public void SetVolume(int new_volume) { if(player!=null && volume>=0 && volume<=100){ VolumeControl volume_control = (VolumeControl) player.getControl( "VolumeControl" ); if(volume_control!=null) volume_control.setLevel( new_volume ); volume = new_volume; } if(volume>=0 && volume<=100){ volume = new_volume; } } // Получить громкость public int GetVolume() { if(player!=null){ VolumeControl volume_control = (VolumeControl) player.getControl( "VolumeControl" ); return volume_control.getLevel(); } return 0; } // Задать повтор мелодии public void SetLoop(boolean loopc) { if(player!=null){ if(loopc)player.setLoopCount(-1);else player.setLoopCount(1); } loop=loopc; } // Задать кеширование последнего звука public void SetCashe(boolean cashe) { cashed=cashe; } }