113 lines
6.7 KiB
XML
113 lines
6.7 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="AudioStreamPlayer" inherits="Node" keywords="sound, music, song" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
A node for audio playback.
|
|
</brief_description>
|
|
<description>
|
|
The [AudioStreamPlayer] node plays an audio stream non-positionally. It is ideal for user interfaces, menus, or background music.
|
|
To use this node, [member stream] needs to be set to a valid [AudioStream] resource. Playing more than one sound at the same time is also supported, see [member max_polyphony].
|
|
If you need to play audio at a specific position, use [AudioStreamPlayer2D] or [AudioStreamPlayer3D] instead.
|
|
</description>
|
|
<tutorials>
|
|
<link title="Audio streams">$DOCS_URL/tutorials/audio/audio_streams.html</link>
|
|
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/2712</link>
|
|
<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/2758</link>
|
|
<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/2759</link>
|
|
<link title="Audio Microphone Record Demo">https://godotengine.org/asset-library/asset/2760</link>
|
|
<link title="Audio Spectrum Visualizer Demo">https://godotengine.org/asset-library/asset/2762</link>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="get_playback_position">
|
|
<return type="float" />
|
|
<description>
|
|
Returns the position in the [AudioStream] of the latest sound, in seconds. Returns [code]0.0[/code] if no sounds are playing.
|
|
[b]Note:[/b] The position is not always accurate, as the [AudioServer] does not mix audio every processed frame. To get more accurate results, add [method AudioServer.get_time_since_last_mix] to the returned position.
|
|
</description>
|
|
</method>
|
|
<method name="get_stream_playback">
|
|
<return type="AudioStreamPlayback" />
|
|
<description>
|
|
Returns the latest [AudioStreamPlayback] of this node, usually the most recently created by [method play]. If no sounds are playing, this method fails and returns an empty playback.
|
|
</description>
|
|
</method>
|
|
<method name="has_stream_playback">
|
|
<return type="bool" />
|
|
<description>
|
|
Returns [code]true[/code] if any sound is active, even if [member stream_paused] is set to [code]true[/code]. See also [member playing] and [method get_stream_playback].
|
|
</description>
|
|
</method>
|
|
<method name="play">
|
|
<return type="void" />
|
|
<param index="0" name="from_position" type="float" default="0.0" />
|
|
<description>
|
|
Plays a sound from the beginning, or the given [param from_position] in seconds.
|
|
</description>
|
|
</method>
|
|
<method name="seek">
|
|
<return type="void" />
|
|
<param index="0" name="to_position" type="float" />
|
|
<description>
|
|
Restarts all sounds to be played from the given [param to_position], in seconds. Does nothing if no sounds are playing.
|
|
</description>
|
|
</method>
|
|
<method name="stop">
|
|
<return type="void" />
|
|
<description>
|
|
Stops all sounds from this node.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false">
|
|
If [code]true[/code], this node calls [method play] when entering the tree.
|
|
</member>
|
|
<member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="&"Master"">
|
|
The target bus name. All sounds from this node will be playing on this bus.
|
|
[b]Note:[/b] At runtime, if no bus with the given name exists, all sounds will fall back on [code]"Master"[/code]. See also [method AudioServer.get_bus_name].
|
|
</member>
|
|
<member name="max_polyphony" type="int" setter="set_max_polyphony" getter="get_max_polyphony" default="1">
|
|
The maximum number of sounds this node can play at the same time. Calling [method play] after this value is reached will cut off the oldest sounds.
|
|
</member>
|
|
<member name="mix_target" type="int" setter="set_mix_target" getter="get_mix_target" enum="AudioStreamPlayer.MixTarget" default="0">
|
|
The mix target channels, as one of the [enum MixTarget] constants. Has no effect when two speakers or less are detected (see [enum AudioServer.SpeakerMode]).
|
|
</member>
|
|
<member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale" default="1.0">
|
|
The audio's pitch and tempo, as a multiplier of the [member stream]'s sample rate. A value of [code]2.0[/code] doubles the audio's pitch, while a value of [code]0.5[/code] halves the pitch.
|
|
</member>
|
|
<member name="playback_type" type="int" setter="set_playback_type" getter="get_playback_type" enum="AudioServer.PlaybackType" default="0" experimental="">
|
|
The playback type of the stream player. If set other than to the default value, it will force that playback type.
|
|
</member>
|
|
<member name="playing" type="bool" setter="_set_playing" getter="is_playing" default="false">
|
|
If [code]true[/code], this node is playing sounds. Setting this property has the same effect as [method play] and [method stop].
|
|
</member>
|
|
<member name="stream" type="AudioStream" setter="set_stream" getter="get_stream">
|
|
The [AudioStream] resource to be played. Setting this property stops all currently playing sounds. If left empty, the [AudioStreamPlayer] does not work.
|
|
</member>
|
|
<member name="stream_paused" type="bool" setter="set_stream_paused" getter="get_stream_paused" default="false">
|
|
If [code]true[/code], the sounds are paused. Setting [member stream_paused] to [code]false[/code] resumes all sounds.
|
|
[b]Note:[/b] This property is automatically changed when exiting or entering the tree, or this node is paused (see [member Node.process_mode]).
|
|
</member>
|
|
<member name="volume_db" type="float" setter="set_volume_db" getter="get_volume_db" default="0.0">
|
|
Volume of sound, in decibel. This is an offset of the [member stream]'s volume.
|
|
[b]Note:[/b] To convert between decibel and linear energy (like most volume sliders do), use [method @GlobalScope.db_to_linear] and [method @GlobalScope.linear_to_db].
|
|
</member>
|
|
</members>
|
|
<signals>
|
|
<signal name="finished">
|
|
<description>
|
|
Emitted when a sound finishes playing without interruptions. This signal is [i]not[/i] emitted when calling [method stop], or when exiting the tree while sounds are playing.
|
|
</description>
|
|
</signal>
|
|
</signals>
|
|
<constants>
|
|
<constant name="MIX_TARGET_STEREO" value="0" enum="MixTarget">
|
|
The audio will be played only on the first channel. This is the default.
|
|
</constant>
|
|
<constant name="MIX_TARGET_SURROUND" value="1" enum="MixTarget">
|
|
The audio will be played on all surround channels.
|
|
</constant>
|
|
<constant name="MIX_TARGET_CENTER" value="2" enum="MixTarget">
|
|
The audio will be played on the second channel, which is usually the center.
|
|
</constant>
|
|
</constants>
|
|
</class>
|