<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioStreamPlayer" inherits="Node" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Plays back audio non-positionally.
	</brief_description>
	<description>
		Plays an audio stream non-positionally.
		To play audio positionally, use [AudioStreamPlayer2D] or [AudioStreamPlayer3D] instead of [AudioStreamPlayer].
	</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/515</link>
		<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/525</link>
		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
		<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
	</tutorials>
	<methods>
		<method name="get_playback_position">
			<return type="float" />
			<description>
				Returns the position in the [AudioStream] in seconds.
			</description>
		</method>
		<method name="get_stream_playback">
			<return type="AudioStreamPlayback" />
			<description>
				Returns the [AudioStreamPlayback] object associated with this [AudioStreamPlayer].
			</description>
		</method>
		<method name="has_stream_playback">
			<return type="bool" />
			<description>
				Returns whether the [AudioStreamPlayer] can return the [AudioStreamPlayback] object or not.
			</description>
		</method>
		<method name="play">
			<return type="void" />
			<param index="0" name="from_position" type="float" default="0.0" />
			<description>
				Plays the audio from the given [param from_position], in seconds.
			</description>
		</method>
		<method name="seek">
			<return type="void" />
			<param 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="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="&amp;&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_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. Playing additional sounds 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">
			If the audio configuration has more than two speakers, this sets the target channels. See [enum MixTarget] constants.
		</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 [member stream_paused] to [code]false[/code].
		</member>
		<member name="volume_db" type="float" setter="set_volume_db" getter="get_volume_db" default="0.0">
			Volume of sound, in dB.
		</member>
	</members>
	<signals>
		<signal name="finished">
			<description>
				Emitted when the audio stops playing.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="MIX_TARGET_STEREO" value="0" enum="MixTarget">
			The audio will be played only on the first channel.
		</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>
