Difference between revisions of "Global Command: getSoundProperty"

From The Official Visionaire Studio: Adventure Game Engine Wiki
 
Line 95: Line 95:
 
== Examples ==
 
== Examples ==
  
'''Example 1:''' Store the current playtime of a sound in a variable.
+
'''Example 1:''' Store the current playtime of an active sound in a variable.
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 +
-- Sound id can only be retrieved if the sound is active
 
local mySoundId = getSoundId("vispath:sounds/example.ogg")
 
local mySoundId = getSoundId("vispath:sounds/example.ogg")
 +
 
local soundOffset = getSoundProperty(mySoundId, "offset")
 
local soundOffset = getSoundProperty(mySoundId, "offset")
 
</syntaxhighlight>
 
</syntaxhighlight>
 
{{toc}}
 
{{toc}}

Latest revision as of 20:17, 4 May 2023

Retrieve various properties of a sound, such as: current playtime, balance, volume, loop. Only applicable for active sounds.

Related functions getSoundId | setSoundProperty | startSound | stopSound | toggleSoundPause


Syntax

getSoundProperty(soundId, property)


Parameters

Parameter Type Supported values Description
soundId integer Id of the sound to get property from.
property string "balance" Get the left/right audio balance.
"duration" Get the total length of the sound.
"loop" Check if the sound is looping.
"offset" Get the current playtime (position from the beginning of the sound).
"paused" Check if the sound is currently paused.
"playing" Check if the sound is currently playing.
"volume" Get the volume of the sound.


Return values

The return value depends on the passed "property" parameter:

Passed parameter Return type Description
"balance" integer Balance value in the range of -100 (100% left channel) to 100 (100% right channel). A value of 0 means 50% balance or balance could not be retrieved.
"duration" integer Total length of sound in milliseconds, or -1 if the duration could not be retrieved.
"loop" boolean True if the sound is looped, false if it is only played once or if the property could not be retrieved.
"offset" integer Current playtime of the sound in milliseconds, or -1 if the offset could not be retrieved.
"paused" boolean True if the sound is currently paused, false if it is playing or not active at all.
"playing" boolean True if the sound is currently playing, false otherwise.
"volume" integer Level of volume in the range of 0 (mute) to 100 (full volume). A value of -1 is returned, if the volume could not be retrieved.


Examples

Example 1: Store the current playtime of an active sound in a variable.

-- Sound id can only be retrieved if the sound is active
local mySoundId = getSoundId("vispath:sounds/example.ogg")

local soundOffset = getSoundProperty(mySoundId, "offset")