java.lang.Objectcom.realtime.crossfire.jxclient.sound.Processor
public class Processor
A thread that plays a music file over and over until terminated.
| Field Summary | |
|---|---|
private AudioFileLoader |
audioFileLoader
The AudioFileLoader for loading audio files. |
private static float |
MIN_VALUE
The minimum factor for fading in/out effects. |
private java.lang.String |
name
The name of the music to play. |
private int |
state
The current state: 0=fade in, 1=playing, 2=fade out, 3=terminate, 4=terminate immediately. |
private float |
volume
The current volume. |
private static float |
VOLUME_STEP_PER_SAMPLE
The step for the fading in/out factor. |
| Constructor Summary | |
|---|---|
Processor(java.lang.String name,
AudioFileLoader audioFileLoader)
Creates a new instance. |
|
| Method Summary | |
|---|---|
private void |
convertSample(byte[] buf,
int i)
Converts one audio sample according to the current volume. |
private javax.sound.sampled.AudioInputStream |
openAudioInputStream()
Opens and returns an audio stream for name. |
void |
run()
|
void |
terminate(boolean fadeOut)
Stops playing music. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
@NotNull private final AudioFileLoader audioFileLoader
AudioFileLoader for loading audio files.
private static final float MIN_VALUE
@NotNull private final java.lang.String name
private int state
private float volume
private static final float VOLUME_STEP_PER_SAMPLE
| Constructor Detail |
|---|
public Processor(@NotNull
java.lang.String name,
@NotNull
AudioFileLoader audioFileLoader)
name - the music name to playaudioFileLoader - the audio file loader for loading audio files| Method Detail |
|---|
private void convertSample(@NotNull
byte[] buf,
int i)
volume.
buf - the buffer holding the samplei - the sample offset
@NotNull
private javax.sound.sampled.AudioInputStream openAudioInputStream()
throws java.io.IOException,
javax.sound.sampled.UnsupportedAudioFileException
name.
java.io.IOException - if the file cannot be opened
javax.sound.sampled.UnsupportedAudioFileException - if the file cannot be decodedpublic void run()
run in interface java.lang.Runnablepublic void terminate(boolean fadeOut)
fadeOut - Whether tp fade out the music (true) or to
cut it off (false).