java.lang.Object | |
↳ | android.media.JetPlayer |
JetPlayer provides access to JET content playback and control.
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.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
JetPlayer.OnJetEventListener | Handles the notification when the JET engine generates an event. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Empties the segment queue, and clears all clips that are scheduled for playback.
|
||||||||||
|
Cloning a JetPlayer instance is not supported.
|
||||||||||
|
Closes the resource containing the JET content.
|
||||||||||
|
Factory method for the JetPlayer class.
|
||||||||||
|
Returns the maximum number of simultaneous MIDI tracks supported by JetPlayer
|
||||||||||
|
Loads a .jet file from an asset file descriptor.
|
||||||||||
|
Loads a .jet file from a given path.
|
||||||||||
|
Pauses the playback of the JET segment queue.
|
||||||||||
|
Starts playing the JET segment queue.
|
||||||||||
|
Queues the specified segment in the JET queue.
|
||||||||||
|
Queues the specified segment in the JET queue.
|
||||||||||
|
Stops the current JET playback, and releases all associated native resources.
|
||||||||||
|
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and
playback engine.
|
||||||||||
|
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and
playback engine.
|
||||||||||
|
Modifies the mute flags for the current active segment.
|
||||||||||
|
Mutes or unmutes a single track.
|
||||||||||
|
Modifies the mute flags.
|
||||||||||
|
Schedules the playback of a clip.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Empties the segment queue, and clears all clips that are scheduled for playback.
Cloning a JetPlayer instance is not supported. Calling clone() will generate an exception.
CloneNotSupportedException |
---|
Closes the resource containing the JET content.
Factory method for the JetPlayer class.
Returns the maximum number of simultaneous MIDI tracks supported by JetPlayer
Loads a .jet file from an asset file descriptor.
afd | the asset file descriptor. |
---|
Loads a .jet file from a given path.
path | the path to the .jet file, for instance "/sdcard/mygame/music.jet". |
---|
Pauses the playback of the JET segment queue.
Starts playing the JET segment queue.
Queues the specified segment in the JET queue.
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
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.
|
Queues the specified segment in the JET queue.
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
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.
|
Stops the current JET playback, and releases all associated native resources. The object can no longer be used and the reference should be set to null after a call to release().
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and playback engine. Use this method to receive JET events in the Handler associated with another thread than the one in which you created the JetPlayer instance.
handler | the Handler that will receive the event notification messages. |
---|
Sets the listener JetPlayer notifies when a JET event is generated by the rendering and playback engine. Notifications will be received in the same thread as the one in which the JetPlayer instance was created.
Modifies the mute flags for the current active segment.
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. |
Mutes or unmutes a single track.
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. |
Modifies the mute flags.
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. |
Schedules the playback of a clip. This will automatically update the mute flags in sync with the JET Clip Marker (controller 103). The parameter clipID must be in the range of 0-63. After the call to triggerClip, when JET next encounters a controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 1, it will automatically unmute the track containing the controller event. When JET encounters the complementary controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 0, it will mute the track again.
clipId | the identifier of the clip to trigger. |
---|
Invoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.
Note that objects that override
finalize
are significantly more expensive than
objects that don't. Finalizers may be run a long time after the object is no longer
reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup.
Note also that finalizers are run on a single VM-wide finalizer thread,
so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary
for a class that has a native peer and needs to call a native method to destroy that peer.
Even then, it's better to provide an explicit
close
method (and implement
Closeable
), and insist that callers manually dispose of instances. This
works well for something like files, but less well for something like a
BigInteger
where typical calling code would have to deal with lots of temporaries. Unfortunately,
code that creates lots of temporaries is the worst kind of code from the point of view of
the single finalizer thread.
If you
must
use finalizers, consider at least providing your own
ReferenceQueue
and having your own thread process that queue.
Unlike constructors, finalizers are not automatically chained. You are responsible for
calling
super.finalize()
yourself.
Uncaught exceptions thrown by finalizers are ignored and do not terminate the finalizer thread. See Effective Java Item 7, "Avoid finalizers" for more.