38 import javax.sound.midi.MidiSystem;
39 import javax.sound.midi.MidiUnavailableException;
40 import javax.sound.midi.Sequence;
41 import javax.sound.midi.Sequencer;
42 import javax.sound.sampled.AudioFormat;
43 import javax.sound.sampled.AudioInputStream;
44 import javax.sound.sampled.AudioSystem;
45 import javax.sound.sampled.Clip;
46 import javax.sound.sampled.DataLine;
47 import javax.sound.sampled.LineEvent;
48 import javax.sound.sampled.LineListener;
49 import javax.sound.sampled.SourceDataLine;
50 import javax.sound.sampled.UnsupportedAudioFileException;
51
52 /**
53 * Java Sound audio clip;
54 *
55 * @author Arthur van Hoff, Kara Kytle, Jan Borgersen
56 * @author Florian Bomers
57 */
58 public final class JavaSoundAudioClip implements AudioClip, MetaEventListener, LineListener {
59
60 private static final boolean DEBUG = false;
61 private static final int BUFFER_SIZE = 16384; // number of bytes written each time to the source data line
62
63 private long lastPlayCall = 0;
64 private static final int MINIMUM_PLAY_DELAY = 30;
65
66 private byte loadedAudio[] = null;
67 private int loadedAudioByteLength = 0;
68 private AudioFormat loadedAudioFormat = null;
69
70 private AutoClosingClip clip = null;
71 private boolean clipLooping = false;
72
73 private DataPusher datapusher = null;
74
75 private Sequencer sequencer = null;
76 private Sequence sequence = null;
77 private boolean sequencerloop = false;
|
38 import javax.sound.midi.MidiSystem;
39 import javax.sound.midi.MidiUnavailableException;
40 import javax.sound.midi.Sequence;
41 import javax.sound.midi.Sequencer;
42 import javax.sound.sampled.AudioFormat;
43 import javax.sound.sampled.AudioInputStream;
44 import javax.sound.sampled.AudioSystem;
45 import javax.sound.sampled.Clip;
46 import javax.sound.sampled.DataLine;
47 import javax.sound.sampled.LineEvent;
48 import javax.sound.sampled.LineListener;
49 import javax.sound.sampled.SourceDataLine;
50 import javax.sound.sampled.UnsupportedAudioFileException;
51
52 /**
53 * Java Sound audio clip;
54 *
55 * @author Arthur van Hoff, Kara Kytle, Jan Borgersen
56 * @author Florian Bomers
57 */
58 @SuppressWarnings("deprecation")
59 public final class JavaSoundAudioClip implements AudioClip, MetaEventListener, LineListener {
60
61 private static final boolean DEBUG = false;
62 private static final int BUFFER_SIZE = 16384; // number of bytes written each time to the source data line
63
64 private long lastPlayCall = 0;
65 private static final int MINIMUM_PLAY_DELAY = 30;
66
67 private byte loadedAudio[] = null;
68 private int loadedAudioByteLength = 0;
69 private AudioFormat loadedAudioFormat = null;
70
71 private AutoClosingClip clip = null;
72 private boolean clipLooping = false;
73
74 private DataPusher datapusher = null;
75
76 private Sequencer sequencer = null;
77 private Sequence sequence = null;
78 private boolean sequencerloop = false;
|