Class Sound
- Direct Known Subclasses:
BackgroundSound
,PointSound
Sound Data
- Associated with each Sound node is a MediaContainer
which includes audio data and information about this data.
This data can be cached (buffered) or non-cached (unbuffered or streaming).
If an AudioDevice has been attached to the PhysicalEnvironment, the sound
data is made ready to begin playing.
Certain functionality can not be applied to true streaming sound data:
1) querying the sound's duration (Sound.DURATION_UNKNOWN will be returned),
2) looping over a range of the streaming data; and
3) restart a previously played portion of the data.
Depending on the implementation of the AudioDevice used, streamed, non- cached data may not be fully spatialized.
Initial Gain
- This gain is a scale factor applied to the sound data associated
with this sound source to increase or decrease its overall amplitude.
Loop
- Data for non-streaming sound (such as a sound sample) can contain two
loop points marking a section of the data that is to be looped a specific
number of times. Thus sound data can be divided into three segments:
the attack (before the begin loop point), the sustain (between the begin
and end loop points), and the release (after the end loop point). If
there are no loop begin and end points defined as part of the sound data,
the begin loop point is set at the beginning of the sound data,
and the end loop point at the end of the sound data.
If this is the case, looping the sound would mean repeating the whole
sound. However, these allow a portion in the middle of the sound to
be looped.
A sound can be looped a specified number of times after it is activated before it is completed. The loop count value explicitly sets the number of times the sound is looped. Any non-negative number is a valid value. A value of zero denotes that the looped section is not repeated, but is played only once. A value of -1 denotes that the loop is repeated indefinitely.
Changing loop count of a sound after the sound has been started will not dynamically affect the loop count currently used by the sound playing. The new loop count will be used the next time the sound is enabled.
Release Flag
- When a sound is disabled, its playback would normally stop immediately
no matter what part of the sound data was currently being played. By
setting the Release Flag to true for nodes with non-streaming sound data,
the sound is allowed to play from its current position in the sound data
to the end of the data (without repeats), thus playing the release portion
of the sound before stopping.
Continuous Flag
- For some applications, it's useful to turn a sound source "off" but to
continue "silently" playing the sound so that when it is turned back "on"
the sound picks up playing in the same location (over time) as it would
have been if the sound had never been disabled (turned off). Setting the
Continuous flag true causes the sound renderer to keep track of where
(over time) the sound would be playing even when the sound is disabled.
Enable Sound
- When enabled, the sound source is started
playing and thus can potentially be heard, depending on its activation
state, gain control parameters, continuation state, and spatialization
parameters. If the continuous state is true, even if the sound is not
active, enabling the sound starts the sound silently "playing," so that
when the sound is activated, the sound is (potentially) heard from
somewhere in the middle of the sound data. Activation state can change
from active to inactive any number of times without stopping or starting
the sound. To re-start a sound at the beginning of its data, re-enable
the sound by calling setEnable with true.
Setting the enable flag to true during construction acts as a request to start the sound playing "as soon as it can" be started. This could be close to immediately in limited cases, but several conditions, detailed below, must be met for a sound to be ready to be played.
Mute Sound
- When the mute state is set true, a playing sound is made to play silently.
Pause Sound
- When the pause state is set true, a playing sound is paused.
Setting the enable flag to true during construction acts as a request to start the sound playing "as soon as it can" be started. This could be close to immediately in limited cases, but several conditions, detailed below, must be met for a sound to be ready to be played.
Scheduling Bounds
-
A Sound is scheduled for activation when its scheduling region intersects
the ViewPlatform's activation volume. This is used when the scheduling
bounding leaf is set to null.
Scheduling Bounding Leaf
- When set to a value other than null, the scheduling bounding leaf
region overrides the scheduling bounds
object.
Prioritize Sound
- Sound Priority is used
to rank concurrently playing sounds in order of importance during playback.
When more sounds are started than the AudioDevice
can handle, the sound node with the lowest priority ranking is
deactivated (but continues playing silently). If a sound is deactivated
(due to a sound with a higher
priority being started), it is automatically re-activated when
resources become available (e.g., when a sound with a higher priority
finishes playing), or when the ordering of sound nodes are changed due to
a change in a sound node's priority.
Sounds with a lower priority than sound that can not be played due to lack of channels will be played. For example, assume we have eight channels available for playing sounds. After ordering four sounds, we begin playing them in order, checking if the number of channels required to play a given sound are actually available before the sound is played. Furthermore, say the first sound needs three channels to play, the second sound needs four channels, the third sound needs three channels and the fourth sound needs only one channel. The first and second sounds can be started because they require seven of the eight available channels. The third sound can not be audibly started because it requires three channels and only one is still available. Consequently, the third sound starts playing 'silently.' The fourth sound can and will be started since it only requires one channel. The third sound will be made audible when three channels become available (i.e., when the first or second sound finishes playing).
Sounds given the same priority are ordered randomly. If the application wants a specific ordering, it must assign unique priorities to each sound.
Methods to determine what audio output resources are required for playing a Sound node on a particular AudioDevice and to determine the currently available audio output resources are described in the AudioDevice class.
Duration
- Each sound has a length of time in milliseconds that it
can run (including repeating loop section)
if it plays to completion. If the sound
media type is streaming, or if the sound is looped indefinitely, then a
value of -1 (implying infinite length) is returned.
Number of Channels used on Audio Device to Play Sound
- When a sound is started, it could use more than one channel on the
selected AudioDevice it is to be played on. The number of Audio Device
channels currently used for a sound can be queried using
getNumberOfChannelsUsed().
Preparing a Sound to be Played
- Sound data associated with a Sound node, either during construction
(when the MediaContainer is passed into the constructor as a parameter)
or by calling setSoundData(), it can be prepared to begin playing
only after the following conditions are satisfied:
1) the Sound node has non-null sound data associated with it
2) the Sound node is live
3) there is an active View in the Universe and
4) there is an initialized AudioDevice associated with the
PhysicalEnvironment.
Depending on the type of MediaContainer the sound data is and on the implementation of the AudioDevice used, sound data preparation could consist of opening, attaching, loading, or copying into memory the associated sound data. The query method, isReady() returns true when the sound is fully preprocessed so that it is playable (audibly if active, silently if not active).
Playing Status
- A sound source will not be heard unless it is:
1) enabled/started
2) activated
3) not muted
4) not paused
While these conditions are meet, the sound is potentially audible and the method isPlaying() will return a status of true.
isPlaying returns false but isPlayingSilently returns true if a sound:
1) is enabled before it is activated; it is begun playing silently.
2) is enabled then deactivated while playing; it continues playing silently
3) is enabled while it mute state is true
When the sound finishes playing it's sound data (including all loops), it is implicitly disabled.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Specifies that this node allows access to its number of channels used by this sound.static final int
Specifies that this node allows access to its object's continuous play information.static final int
Specifies that this node allows writing to its object's continuous play information.static final int
Specifies that this node allows access to its object's sound duration information.static final int
Specifies that this node allows access to its object's sound on information.static final int
Specifies that this node allows writing to its object's sound on information.static final int
Specifies that this node allows access to its object's initial gain information.static final int
Specifies that this node allows writing to its object's initial gain information.static final int
Specifies that this node allows access to its object's sound audibly playing or playing silently status.static final int
Specifies that this node allows access to its object's sound status denoting if it is ready to be played 'immediately'.static final int
Specifies that this node allows access to its object's loop information.static final int
Specifies that this node allows writing to its object's loop information.static final int
Specifies that this node allows access to its object's mute flag information.static final int
Specifies that this node allows writing to its object's mute flag information.static final int
Specifies that this node allows access to its object's pause flag information.static final int
Specifies that this node allows writing to its object's pause flag information.static final int
Specifies that this node allows read access to its priority order value.static final int
Specifies that this node allows write access to its priority order value.static final int
Specifies that this node allows access to its object's sample rate scale factor information.static final int
Specifies that this node allows writing to its object's sample rate scale factor information.static final int
Specifies that this node allows access to its object's release flag information.static final int
Specifies that this node allows writing to its object's release flag information.static final int
Specifies that this node allows read access to its scheduling bounds information.static final int
Specifies that this node allows write access to its scheduling bounds information.static final int
Specifies that this node allows access to its object's sound data information.static final int
Specifies that this node allows writing to its object's sound data information.static final int
Denotes that the sound's duration could not be calculated.static final int
When used as a loop count sound will loop an infinite number of time until explicitly stopped (setEnabled(false)).static final float
Denotes that there is no filter value associated with object's distance or angular attenuation array.Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
-
Constructor Summary
ConstructorsConstructorDescriptionSound()
Constructs and initializes a new Sound node using default parameters.Sound
(MediaContainer soundData, float initialGain) Constructs and initializes a new Sound node object using the provided data and gain parameter values, and defaults for all other fields.Sound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority) Constructs and initializes a new Sound node using provided parameter values.Sound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float rateFactor) Constructs and initializes a new Sound node using provided parameter values. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Retrieves sound's continuous play flag.long
Get the Sound's durationboolean
Retrieves sound's enabled flag.float
Get the overall gain applied to the sound data associated with source.int
getLoop()
Retrieves loop count for this soundboolean
getMute()
Retrieves sound Mute state.int
Retrieves number of channels that are being used to render this sound on the audio device associated with the Virtual Universe's primary view.int
getNumberOfChannelsUsed
(View view) Retrieves number of channels that are being used to render this sound on the audio device associated with given view.boolean
getPause()
Retrieves the value of the Pause state flag.float
Retrieves sound's priority value.float
Retrieves Sample Rate.boolean
Retrieves the release flag for sound associated with sound.Retrieves the Sound node's scheduling bounding leaf.Retrieves the Sound node's scheduling bounds.Retrieves description/data associated with this sound source.boolean
Retrieves sound's play status.boolean
Retrieves sound's play status.boolean
Retrieves sound's silent status.boolean
isPlayingSilently
(View view) Retrieves sound's silent status.boolean
isReady()
Retrieves sound's 'ready' status.boolean
Retrieves sound's 'ready' status.void
setContinuousEnable
(boolean state) Enables or disables continuous play flag.void
setEnable
(boolean state) Enable or disable sound.void
setInitialGain
(float amplitude) Set the overall gain scale factor applied to data associated with this source to increase or decrease its overall amplitude.void
setLoop
(int loopCount) Sets a sound's loop count.void
setMute
(boolean state) Set mute state flag.void
setPause
(boolean state) Pauses or resumes (paused) playing sound.void
setPriority
(float priority) Set sound's priority value.void
setRateScaleFactor
(float scaleFactor) Sets Sample Rate.void
setReleaseEnable
(boolean state) Enables or disables the release flag for the sound associated with this sound.void
Set the Sound's scheduling region to the specified bounding leaf.void
setSchedulingBounds
(Bounds region) Set the Sound's scheduling region to the specified bounds.void
setSoundData
(MediaContainer soundData) Sets fields that define the sound source data of this node.void
updateNodeReferences
(NodeReferenceTable referenceTable) Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call tocloneTree
.Methods inherited from class javax.media.j3d.Node
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
-
Field Details
-
ALLOW_SOUND_DATA_READ
public static final int ALLOW_SOUND_DATA_READSpecifies that this node allows access to its object's sound data information.- See Also:
-
ALLOW_SOUND_DATA_WRITE
public static final int ALLOW_SOUND_DATA_WRITESpecifies that this node allows writing to its object's sound data information.- See Also:
-
ALLOW_INITIAL_GAIN_READ
public static final int ALLOW_INITIAL_GAIN_READSpecifies that this node allows access to its object's initial gain information.- See Also:
-
ALLOW_INITIAL_GAIN_WRITE
public static final int ALLOW_INITIAL_GAIN_WRITESpecifies that this node allows writing to its object's initial gain information.- See Also:
-
ALLOW_LOOP_READ
public static final int ALLOW_LOOP_READSpecifies that this node allows access to its object's loop information.- See Also:
-
ALLOW_LOOP_WRITE
public static final int ALLOW_LOOP_WRITESpecifies that this node allows writing to its object's loop information.- See Also:
-
ALLOW_RELEASE_READ
public static final int ALLOW_RELEASE_READSpecifies that this node allows access to its object's release flag information.- See Also:
-
ALLOW_RELEASE_WRITE
public static final int ALLOW_RELEASE_WRITESpecifies that this node allows writing to its object's release flag information.- See Also:
-
ALLOW_CONT_PLAY_READ
public static final int ALLOW_CONT_PLAY_READSpecifies that this node allows access to its object's continuous play information.- See Also:
-
ALLOW_CONT_PLAY_WRITE
public static final int ALLOW_CONT_PLAY_WRITESpecifies that this node allows writing to its object's continuous play information.- See Also:
-
ALLOW_ENABLE_READ
public static final int ALLOW_ENABLE_READSpecifies that this node allows access to its object's sound on information.- See Also:
-
ALLOW_ENABLE_WRITE
public static final int ALLOW_ENABLE_WRITESpecifies that this node allows writing to its object's sound on information.- See Also:
-
ALLOW_SCHEDULING_BOUNDS_READ
public static final int ALLOW_SCHEDULING_BOUNDS_READSpecifies that this node allows read access to its scheduling bounds information.- See Also:
-
ALLOW_SCHEDULING_BOUNDS_WRITE
public static final int ALLOW_SCHEDULING_BOUNDS_WRITESpecifies that this node allows write access to its scheduling bounds information.- See Also:
-
ALLOW_PRIORITY_READ
public static final int ALLOW_PRIORITY_READSpecifies that this node allows read access to its priority order value.- See Also:
-
ALLOW_PRIORITY_WRITE
public static final int ALLOW_PRIORITY_WRITESpecifies that this node allows write access to its priority order value.- See Also:
-
ALLOW_DURATION_READ
public static final int ALLOW_DURATION_READSpecifies that this node allows access to its object's sound duration information.- See Also:
-
ALLOW_IS_READY_READ
public static final int ALLOW_IS_READY_READSpecifies that this node allows access to its object's sound status denoting if it is ready to be played 'immediately'.- See Also:
-
ALLOW_IS_PLAYING_READ
public static final int ALLOW_IS_PLAYING_READSpecifies that this node allows access to its object's sound audibly playing or playing silently status.- See Also:
-
ALLOW_CHANNELS_USED_READ
public static final int ALLOW_CHANNELS_USED_READSpecifies that this node allows access to its number of channels used by this sound.- See Also:
-
ALLOW_MUTE_READ
public static final int ALLOW_MUTE_READSpecifies that this node allows access to its object's mute flag information.- Since:
- Java 3D 1.3
- See Also:
-
ALLOW_MUTE_WRITE
public static final int ALLOW_MUTE_WRITESpecifies that this node allows writing to its object's mute flag information.- Since:
- Java 3D 1.3
- See Also:
-
ALLOW_PAUSE_READ
public static final int ALLOW_PAUSE_READSpecifies that this node allows access to its object's pause flag information.- Since:
- Java 3D 1.3
- See Also:
-
ALLOW_PAUSE_WRITE
public static final int ALLOW_PAUSE_WRITESpecifies that this node allows writing to its object's pause flag information.- Since:
- Java 3D 1.3
- See Also:
-
ALLOW_RATE_SCALE_FACTOR_READ
public static final int ALLOW_RATE_SCALE_FACTOR_READSpecifies that this node allows access to its object's sample rate scale factor information.- Since:
- Java 3D 1.3
- See Also:
-
ALLOW_RATE_SCALE_FACTOR_WRITE
public static final int ALLOW_RATE_SCALE_FACTOR_WRITESpecifies that this node allows writing to its object's sample rate scale factor information.- Since:
- Java 3D 1.3
- See Also:
-
NO_FILTER
public static final float NO_FILTERDenotes that there is no filter value associated with object's distance or angular attenuation array.- See Also:
-
DURATION_UNKNOWN
public static final int DURATION_UNKNOWNDenotes that the sound's duration could not be calculated. A fall back for getDuration of a non-cached sound.- See Also:
-
INFINITE_LOOPS
public static final int INFINITE_LOOPSWhen used as a loop count sound will loop an infinite number of time until explicitly stopped (setEnabled(false)).- See Also:
-
-
Constructor Details
-
Sound
public Sound()Constructs and initializes a new Sound node using default parameters. The following defaults values are used:-
sound data: null
initial gain: 1.0
loop: 0
release flag: false
continuous flag: false
enable flag: false
scheduling bounds : null
scheduling bounding leaf : null
priority: 1.0
rate scale factor: 1.0
mute state: false
pause state: false
-
Sound
Constructs and initializes a new Sound node object using the provided data and gain parameter values, and defaults for all other fields. This constructor implicitly loads the sound data associated with this node if the implementation uses sound caching.- Parameters:
soundData
- description of JMF source data used by this sound sourceinitialGain
- overall amplitude scale factor applied to sound source
-
Sound
public Sound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority) Constructs and initializes a new Sound node using provided parameter values.- Parameters:
soundData
- description of JMF source data used by this sound sourceinitialGain
- overall amplitude scale factor applied to sound sourceloopCount
- number of times sound is looped when playedrelease
- flag specifying whether the sound is to be played to end when stoppedcontinuous
- flag specifying whether the sound silently plays when disabledenable
- flag specifying whether the sound is enabledregion
- scheduling boundspriority
- defines playback priority if too many sounds started
-
Sound
public Sound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float rateFactor) Constructs and initializes a new Sound node using provided parameter values.- Parameters:
soundData
- description of JMF source data used by this sound sourceinitialGain
- overall amplitude scale factor applied to sound sourceloopCount
- number of times sound is looped when playedrelease
- flag specifying whether the sound is to be played to end when stoppedcontinuous
- flag specifying whether the sound silently plays when disabledenable
- flag specifying whether the sound is enabledregion
- scheduling boundspriority
- defines playback priority if too many sounds startedrateFactor
- defines playback sample rate scale factor- Since:
- Java 3D 1.3
-
-
Method Details
-
setSoundData
Sets fields that define the sound source data of this node.- Parameters:
soundData
- description of JMF source data used by this sound source- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getSoundData
Retrieves description/data associated with this sound source.- Returns:
- soundData description of JMF source data used by this sound source
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setInitialGain
public void setInitialGain(float amplitude) Set the overall gain scale factor applied to data associated with this source to increase or decrease its overall amplitude.- Parameters:
amplitude
- (gain) scale factor- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getInitialGain
public float getInitialGain()Get the overall gain applied to the sound data associated with source.- Returns:
- overall gain scale factor applied to sound source data.
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setLoop
public void setLoop(int loopCount) Sets a sound's loop count.- Parameters:
loopCount
- number of times sound is looped during play- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getLoop
public int getLoop()Retrieves loop count for this sound- Returns:
- loop count
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setReleaseEnable
public void setReleaseEnable(boolean state) Enables or disables the release flag for the sound associated with this sound.- Parameters:
state
- release flag- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getReleaseEnable
public boolean getReleaseEnable()Retrieves the release flag for sound associated with sound.- Returns:
- sound's release flag
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setContinuousEnable
public void setContinuousEnable(boolean state) Enables or disables continuous play flag.- Parameters:
state
- denotes if deactivated sound silently continues playing- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getContinuousEnable
public boolean getContinuousEnable()Retrieves sound's continuous play flag.- Returns:
- flag denoting if deactivated sound silently continues playing
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setEnable
public void setEnable(boolean state) Enable or disable sound.- Parameters:
state
- enable (on/off) flag denotes if active sound is heard- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getEnable
public boolean getEnable()Retrieves sound's enabled flag.- Returns:
- sound enabled flag
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setSchedulingBounds
Set the Sound's scheduling region to the specified bounds. This is used when the scheduling bounding leaf is set to null.- Parameters:
region
- the bounds that contains the Sound's new scheduling region.- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getSchedulingBounds
Retrieves the Sound node's scheduling bounds.- Returns:
- this Sound's scheduling bounds information
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setSchedulingBoundingLeaf
Set the Sound's scheduling region to the specified bounding leaf. When set to a value other than null, this overrides the scheduling bounds object.- Parameters:
region
- the bounding leaf node used to specify the Sound node's new scheduling region.- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getSchedulingBoundingLeaf
Retrieves the Sound node's scheduling bounding leaf.- Returns:
- this Sound's scheduling bounding leaf information
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setPriority
public void setPriority(float priority) Set sound's priority value.- Parameters:
priority
- value used to order sound's importance for playback.- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getPriority
public float getPriority()Retrieves sound's priority value.- Returns:
- sound priority value
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getDuration
public long getDuration()Get the Sound's duration- Returns:
- this Sound's duration in milliseconds including repeated loops
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
isReady
public boolean isReady()Retrieves sound's 'ready' status. If this sound is fully prepared to begin playing (audibly or silently) on all initialized audio devices, this method returns true.- Returns:
- flag denoting if sound is immediate playable or not
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
isReady
Retrieves sound's 'ready' status. If this sound is fully prepared to begin playing (audibly or silently) on the audio device associated with this view, this method returns true.- Parameters:
view
- the view on which to query the ready status.- Returns:
- flag denoting if sound is immediate playable or not
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
isPlaying
public boolean isPlaying()Retrieves sound's play status. If this sound is audibly playing on any initialized audio device, this method returns true.- Returns:
- flag denoting if sound is playing (potentially audible) or not
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
isPlaying
Retrieves sound's play status. If this sound is audibly playing on the audio device associated with the given view, this method returns true.- Parameters:
view
- the view on which to query the isPlaying status.- Returns:
- flag denoting if sound is playing (potentially audible) or not
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
isPlayingSilently
public boolean isPlayingSilently()Retrieves sound's silent status. If this sound is silently playing on any initialized audio device, this method returns true.- Returns:
- flag denoting if sound is silently playing (enabled but not active)
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
isPlayingSilently
Retrieves sound's silent status. If this sound is silently playing on the audio device associated with the given view, this method returns true. The isPlayingSilently state is affected by enable, mute, and continuous states as well as active status of sound.- Parameters:
view
- the view on which to query the isPlayingSilently status.- Returns:
- flag denoting if sound is silently playing (enabled but not active)
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
getNumberOfChannelsUsed
public int getNumberOfChannelsUsed()Retrieves number of channels that are being used to render this sound on the audio device associated with the Virtual Universe's primary view.- Returns:
- number of channels used by sound; returns 0 if not playing
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getNumberOfChannelsUsed
Retrieves number of channels that are being used to render this sound on the audio device associated with given view.- Parameters:
view
- the view on which to query the number of channels used.- Returns:
- number of channels used by sound; returns 0 if not playing
- Throws:
CapabilityNotSetException
- if appropriate capability is- Since:
- Java 3D 1.3 not set and this object is part of live or compiled scene graph
-
setMute
public void setMute(boolean state) Set mute state flag. If the sound is playing it will be set to play silently- Parameters:
state
- flag- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
getMute
public boolean getMute()Retrieves sound Mute state. A return value of true does not imply that the sound has been started playing or is still playing silently.- Returns:
- mute state flag
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
setPause
public void setPause(boolean state) Pauses or resumes (paused) playing sound.- Parameters:
state
- pause flag- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
getPause
public boolean getPause()Retrieves the value of the Pause state flag. A return value of true does not imply that the sound was started playing and then paused.- Returns:
- pause state
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
setRateScaleFactor
public void setRateScaleFactor(float scaleFactor) Sets Sample Rate. Changes (scales) the playback rate of a sound independent of Doppler rate changes - applied to ALL sound types. Affects device sample rate playback and thus affects both pitch and speed- Parameters:
scaleFactor
- %%% describe this.- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
getRateScaleFactor
public float getRateScaleFactor()Retrieves Sample Rate.- Returns:
- sample rate scale factor
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph- Since:
- Java 3D 1.3
-
updateNodeReferences
Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call tocloneTree
. This method is called bycloneTree
after all nodes in the sub-graph have been duplicated. The cloned Leaf node's method will be called and the Leaf node can then look up any object references by using thegetNewObjectReference
method found in theNodeReferenceTable
object. If a match is found, a reference to the corresponding object in the newly cloned sub-graph is returned. If no corresponding reference is found, either a DanglingReferenceException is thrown or a reference to the original object is returned depending on the value of theallowDanglingReferences
parameter passed in thecloneTree
call.NOTE: Applications should not call this method directly. It should only be called by the cloneTree method.
- Overrides:
updateNodeReferences
in classSceneGraphObject
- Parameters:
referenceTable
- a NodeReferenceTableObject that contains thegetNewObjectReference
method needed to search for new object instances.- See Also:
-