package fr.utc.leapband.sma.sound; public abstract class MusicPlayer { protected String filename; public static MusicPlayer getMusicPlayer(String filename) throws Exception { int debutExtension = filename.lastIndexOf('.') + 1; String extension = filename.substring(debutExtension); extension = extension.toLowerCase(); switch(extension) { case "mid": return new MIDIMusicPlayer(filename); case "mp3": return new MP3MusicPlayer(filename); default: throw new Exception("File format not managed."); } } public MusicPlayer(String filename) { this.filename = filename; } public String getFilename() { return filename; } public abstract void Start(); public abstract void Pause(); public abstract void Stop(); public abstract void Restart(); public abstract void SetVolume(int volume); }