public class JetPlayer extends Object
Please refer to the JET Creator User Manual for a presentation of the JET interactive music concept and how to use the JetCreator tool to create content to be player by JetPlayer.
Use of the JetPlayer class is based around the playback of a number of JET segments sequentially added to a playback FIFO queue. The rendering of the MIDI content stored in each segment can be dynamically affected by two mechanisms:
getJetPlayer()
to construct a JetPlayer instance. JetPlayer is a singleton class.
For more information about how to use JetPlayer, read the JetPlayer developer guide.
Modifier and Type | Class and Description |
---|---|
static interface |
JetPlayer.OnJetEventListener
Handles the notification when the JET engine generates an event.
|
Modifier and Type | Method and Description |
---|---|
boolean |
clearQueue()
Empties the segment queue, and clears all clips that are scheduled for playback.
|
Object |
clone()
Cloning a JetPlayer instance is not supported.
|
boolean |
closeJetFile()
Closes the resource containing the JET content.
|
protected void |
finalize()
Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.
|
static JetPlayer |
getJetPlayer()
Factory method for the JetPlayer class.
|
static int |
getMaxTracks()
Returns the maximum number of simultaneous MIDI tracks supported by JetPlayer
|
boolean |
loadJetFile(AssetFileDescriptor afd)
Loads a .jet file from an asset file descriptor.
|
boolean |
loadJetFile(String path)
Loads a .jet file from a given path.
|
boolean |
pause()
Pauses the playback of the JET segment queue.
|
boolean |
play()
Starts playing the JET segment queue.
|
boolean |
queueJetSegment(int segmentNum,
int libNum,
int repeatCount,
int transpose,
int muteFlags,
byte userID)
Queues the specified segment in the JET queue.
|
boolean |
queueJetSegmentMuteArray(int segmentNum,
int libNum,
int repeatCount,
int transpose,
boolean[] muteArray,
byte userID)
Queues the specified segment in the JET queue.
|
void |
release()
Stops the current JET playback, and releases all associated native resources.
|
void |
setEventListener(JetPlayer.OnJetEventListener listener)
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and
playback engine.
|
void |
setEventListener(JetPlayer.OnJetEventListener listener,
Handler handler)
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and
playback engine.
|
boolean |
setMuteArray(boolean[] muteArray,
boolean sync)
Modifies the mute flags for the current active segment.
|
boolean |
setMuteFlag(int trackId,
boolean muteFlag,
boolean sync)
Mutes or unmutes a single track.
|
boolean |
setMuteFlags(int muteFlags,
boolean sync)
Modifies the mute flags.
|
boolean |
triggerClip(int clipId)
Schedules the playback of a clip.
|
public static JetPlayer getJetPlayer()
public Object clone() throws CloneNotSupportedException
clone
in class Object
CloneNotSupportedException
- if the object's class does not
support the Cloneable
interface. Subclasses
that override the clone
method can also
throw this exception to indicate that an instance cannot
be cloned.Cloneable
protected void finalize()
Object
finalize
method to dispose of
system resources or to perform other cleanup.
The general contract of finalize
is that it is invoked
if and when the JavaTM virtual
machine has determined that there is no longer any
means by which this object can be accessed by any thread that has
not yet died, except as a result of an action taken by the
finalization of some other object or class which is ready to be
finalized. The finalize
method may take any action, including
making this object available again to other threads; the usual purpose
of finalize
, however, is to perform cleanup actions before
the object is irrevocably discarded. For example, the finalize method
for an object that represents an input/output connection might perform
explicit I/O transactions to break the connection before the object is
permanently discarded.
The finalize
method of class Object
performs no
special action; it simply returns normally. Subclasses of
Object
may override this definition.
The Java programming language does not guarantee which thread will
invoke the finalize
method for any given object. It is
guaranteed, however, that the thread that invokes finalize will not
be holding any user-visible synchronization locks when finalize is
invoked. If an uncaught exception is thrown by the finalize method,
the exception is ignored and finalization of that object terminates.
After the finalize
method has been invoked for an object, no
further action is taken until the Java virtual machine has again
determined that there is no longer any means by which this object can
be accessed by any thread that has not yet died, including possible
actions by other objects or classes which are ready to be finalized,
at which point the object may be discarded.
The finalize
method is never invoked more than once by a Java
virtual machine for any given object.
Any exception thrown by the finalize
method causes
the finalization of this object to be halted, but is otherwise
ignored.
public void release()
public static int getMaxTracks()
public boolean loadJetFile(String path)
path
- the path to the .jet file, for instance "/sdcard/mygame/music.jet".public boolean loadJetFile(AssetFileDescriptor afd)
afd
- the asset file descriptor.public boolean closeJetFile()
public boolean play()
public boolean pause()
public boolean queueJetSegment(int segmentNum, int libNum, int repeatCount, int transpose, int muteFlags, byte userID)
segmentNum
- the identifier of the segment.libNum
- the index of the sound bank associated with the segment. Use -1 to indicate
that no sound bank (DLS file) is associated with this segment, in which case JET will use
the General MIDI library.repeatCount
- the number of times the segment will be repeated. 0 means the segment will
only play once. -1 means the segment will repeat indefinitely.transpose
- the amount of pitch transposition. Set to 0 for normal playback.
Range is -12 to +12.muteFlags
- a bitmask to specify which MIDI tracks will be muted during playback. Bit 0
affects track 0, bit 1 affects track 1 etc.userID
- a value specified by the application that uniquely identifies the segment.
this value is received in the
JetPlayer.OnJetEventListener.onJetUserIdUpdate(JetPlayer, int, int)
event listener method.
Normally, the application will keep a byte value that is incremented each time a new
segment is queued up. This can be used to look up any special characteristics of that
track including trigger clips and mute flags.public boolean queueJetSegmentMuteArray(int segmentNum, int libNum, int repeatCount, int transpose, boolean[] muteArray, byte userID)
segmentNum
- the identifier of the segment.libNum
- the index of the soundbank associated with the segment. Use -1 to indicate that
no sound bank (DLS file) is associated with this segment, in which case JET will use
the General MIDI library.repeatCount
- the number of times the segment will be repeated. 0 means the segment will
only play once. -1 means the segment will repeat indefinitely.transpose
- the amount of pitch transposition. Set to 0 for normal playback.
Range is -12 to +12.muteArray
- an array of booleans to specify which MIDI tracks will be muted during
playback. The value at index 0 affects track 0, value at index 1 affects track 1 etc.
The length of the array must be getMaxTracks()
for the call to succeed.userID
- a value specified by the application that uniquely identifies the segment.
this value is received in the
JetPlayer.OnJetEventListener.onJetUserIdUpdate(JetPlayer, int, int)
event listener method.
Normally, the application will keep a byte value that is incremented each time a new
segment is queued up. This can be used to look up any special characteristics of that
track including trigger clips and mute flags.public boolean setMuteFlags(int muteFlags, boolean sync)
muteFlags
- a bitmask to specify which MIDI tracks are muted. Bit 0 affects track 0,
bit 1 affects track 1 etc.sync
- if false, the new mute flags will be applied as soon as possible by the JET
render and playback engine. If true, the mute flags will be updated at the start of the
next segment. If the segment is repeated, the flags will take effect the next time
segment is repeated.public boolean setMuteArray(boolean[] muteArray, boolean sync)
muteArray
- an array of booleans to specify which MIDI tracks are muted. The value at
index 0 affects track 0, value at index 1 affects track 1 etc.
The length of the array must be getMaxTracks()
for the call to succeed.sync
- if false, the new mute flags will be applied as soon as possible by the JET
render and playback engine. If true, the mute flags will be updated at the start of the
next segment. If the segment is repeated, the flags will take effect the next time
segment is repeated.public boolean setMuteFlag(int trackId, boolean muteFlag, boolean sync)
trackId
- the index of the track to mute.muteFlag
- set to true to mute, false to unmute.sync
- if false, the new mute flags will be applied as soon as possible by the JET
render and playback engine. If true, the mute flag will be updated at the start of the
next segment. If the segment is repeated, the flag will take effect the next time
segment is repeated.public boolean triggerClip(int clipId)
clipId
- the identifier of the clip to trigger.public boolean clearQueue()
public void setEventListener(JetPlayer.OnJetEventListener listener)
listener
- public void setEventListener(JetPlayer.OnJetEventListener listener, Handler handler)
listener
- handler
- the Handler that will receive the event notification messages.