<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioStreamPlayer2D" inherits="Node2D" version="4.2">
	<brief_description>
		Plays positional sound in 2D space.
	</brief_description>
	<description>
		Plays audio that dampens with distance from a given position.
		By default, audio is heard from the screen center. This can be changed by adding a [Listener2D] node to the scene and enabling it by calling [method Listener2D.make_current] on it.
		See also [AudioStreamPlayer] to play a sound non-positionally.
		[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set [member volume_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).
	</description>
	<tutorials>
		<link>$DOCS_URL/tutorials/audio/audio_streams.md</link>
	</tutorials>
	<methods>
		<method name="get_playback_position">
			<return type="float" />
			<description>
				Returns the position in the [AudioStream].
			</description>
		</method>
		<method name="get_stream_playback">
			<return type="AudioStreamPlayback" />
			<description>
				Returns the [AudioStreamPlayback] object associated with this [AudioStreamPlayer2D].
			</description>
		</method>
		<method name="play">
			<return type="void" />
			<argument index="0" name="from_position" type="float" default="0.0" />
			<description>
				Plays the audio from the given position [code]from_position[/code], in seconds.
			</description>
		</method>
		<method name="seek">
			<return type="void" />
			<argument index="0" name="to_position" type="float" />
			<description>
				Sets the position from which audio will be played, in seconds.
			</description>
		</method>
		<method name="stop">
			<return type="void" />
			<description>
				Stops the audio.
			</description>
		</method>
	</methods>
	<members>
		<member name="area_mask" type="int" setter="set_area_mask" getter="get_area_mask" default="1">
			Determines which [Area2D] layers affect the sound for reverb and audio bus effects. Areas can be used to redirect [AudioStream]s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
		</member>
		<member name="attenuation" type="float" setter="set_attenuation" getter="get_attenuation" default="1.0">
			Dampens audio over distance with this as an exponent.
		</member>
		<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false">
			If [code]true[/code], audio plays when added to scene tree.
		</member>
		<member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="@&quot;Master&quot;">
			Bus on which this audio is playing.
			[b]Note:[/b] When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to [code]"Master"[/code].
		</member>
		<member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="2000.0">
			Maximum distance from which audio is still hearable.
		</member>
		<member name="panning_strength" type="float" setter="set_panning_strength" getter="get_panning_strength" default="1.0">
			Scales the panning strength for this node by multiplying the base [member ProjectSettings.audio/2d_panning_strength] with this factor. Higher values will pan audio from left to right more dramatically than lower values.
		</member>
		<member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale" default="1.0">
			The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
		</member>
		<member name="playing" type="bool" setter="_set_playing" getter="is_playing" default="false">
			If [code]true[/code], audio is playing.
		</member>
		<member name="stream" type="AudioStream" setter="set_stream" getter="get_stream">
			The [AudioStream] object to be played.
		</member>
		<member name="stream_paused" type="bool" setter="set_stream_paused" getter="get_stream_paused" default="false">
			If [code]true[/code], the playback is paused. You can resume it by setting [code]stream_paused[/code] to [code]false[/code].
		</member>
		<member name="volume_db" type="float" setter="set_volume_db" getter="get_volume_db" default="0.0">
			Base volume without dampening.
		</member>
	</members>
	<signals>
		<signal name="finished">
			<description>
				Emitted when the audio stops playing.
			</description>
		</signal>
	</signals>
	<constants>
	</constants>
</class>
