123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 |
- :github_url: hide
- .. meta::
- :keywords: sound, music, song
- .. DO NOT EDIT THIS FILE!!!
- .. Generated automatically from Godot engine sources.
- .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
- .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/AudioStreamPlayer.xml.
- .. _class_AudioStreamPlayer:
- AudioStreamPlayer
- =================
- **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- A node for audio playback.
- .. rst-class:: classref-introduction-group
- Description
- -----------
- The **AudioStreamPlayer** node plays an audio stream non-positionally. It is ideal for user interfaces, menus, or background music.
- To use this node, :ref:`stream<class_AudioStreamPlayer_property_stream>` needs to be set to a valid :ref:`AudioStream<class_AudioStream>` resource. Playing more than one sound at the same time is also supported, see :ref:`max_polyphony<class_AudioStreamPlayer_property_max_polyphony>`.
- If you need to play audio at a specific position, use :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>` or :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>` instead.
- .. rst-class:: classref-introduction-group
- Tutorials
- ---------
- - :doc:`Audio streams <../tutorials/audio/audio_streams>`
- - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/2712>`__
- - `Audio Device Changer Demo <https://godotengine.org/asset-library/asset/2758>`__
- - `Audio Generator Demo <https://godotengine.org/asset-library/asset/2759>`__
- - `Audio Microphone Record Demo <https://godotengine.org/asset-library/asset/2760>`__
- - `Audio Spectrum Visualizer Demo <https://godotengine.org/asset-library/asset/2762>`__
- .. rst-class:: classref-reftable-group
- Properties
- ----------
- .. table::
- :widths: auto
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`bool<class_bool>` | :ref:`autoplay<class_AudioStreamPlayer_property_autoplay>` | ``false`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`StringName<class_StringName>` | :ref:`bus<class_AudioStreamPlayer_property_bus>` | ``&"Master"`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`int<class_int>` | :ref:`max_polyphony<class_AudioStreamPlayer_property_max_polyphony>` | ``1`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` | :ref:`mix_target<class_AudioStreamPlayer_property_mix_target>` | ``0`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`float<class_float>` | :ref:`pitch_scale<class_AudioStreamPlayer_property_pitch_scale>` | ``1.0`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`PlaybackType<enum_AudioServer_PlaybackType>` | :ref:`playback_type<class_AudioStreamPlayer_property_playback_type>` | ``0`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`bool<class_bool>` | :ref:`playing<class_AudioStreamPlayer_property_playing>` | ``false`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`AudioStream<class_AudioStream>` | :ref:`stream<class_AudioStreamPlayer_property_stream>` | |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`bool<class_bool>` | :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` | ``false`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`float<class_float>` | :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>` | ``0.0`` |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- | :ref:`float<class_float>` | :ref:`volume_linear<class_AudioStreamPlayer_property_volume_linear>` | |
- +----------------------------------------------------+----------------------------------------------------------------------+---------------+
- .. rst-class:: classref-reftable-group
- Methods
- -------
- .. table::
- :widths: auto
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | :ref:`float<class_float>` | :ref:`get_playback_position<class_AudioStreamPlayer_method_get_playback_position>`\ (\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer_method_get_stream_playback>`\ (\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`has_stream_playback<class_AudioStreamPlayer_method_has_stream_playback>`\ (\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`play<class_AudioStreamPlayer_method_play>`\ (\ from_position\: :ref:`float<class_float>` = 0.0\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`seek<class_AudioStreamPlayer_method_seek>`\ (\ to_position\: :ref:`float<class_float>`\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`stop<class_AudioStreamPlayer_method_stop>`\ (\ ) |
- +-------------------------------------------------------+---------------------------------------------------------------------------------------------------------+
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Signals
- -------
- .. _class_AudioStreamPlayer_signal_finished:
- .. rst-class:: classref-signal
- **finished**\ (\ ) :ref:`🔗<class_AudioStreamPlayer_signal_finished>`
- Emitted when a sound finishes playing without interruptions. This signal is *not* emitted when calling :ref:`stop()<class_AudioStreamPlayer_method_stop>`, or when exiting the tree while sounds are playing.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Enumerations
- ------------
- .. _enum_AudioStreamPlayer_MixTarget:
- .. rst-class:: classref-enumeration
- enum **MixTarget**: :ref:`🔗<enum_AudioStreamPlayer_MixTarget>`
- .. _class_AudioStreamPlayer_constant_MIX_TARGET_STEREO:
- .. rst-class:: classref-enumeration-constant
- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_STEREO** = ``0``
- The audio will be played only on the first channel. This is the default.
- .. _class_AudioStreamPlayer_constant_MIX_TARGET_SURROUND:
- .. rst-class:: classref-enumeration-constant
- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_SURROUND** = ``1``
- The audio will be played on all surround channels.
- .. _class_AudioStreamPlayer_constant_MIX_TARGET_CENTER:
- .. rst-class:: classref-enumeration-constant
- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_CENTER** = ``2``
- The audio will be played on the second channel, which is usually the center.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Property Descriptions
- ---------------------
- .. _class_AudioStreamPlayer_property_autoplay:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **autoplay** = ``false`` :ref:`🔗<class_AudioStreamPlayer_property_autoplay>`
- .. rst-class:: classref-property-setget
- - |void| **set_autoplay**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **is_autoplay_enabled**\ (\ )
- If ``true``, this node calls :ref:`play()<class_AudioStreamPlayer_method_play>` when entering the tree.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_bus:
- .. rst-class:: classref-property
- :ref:`StringName<class_StringName>` **bus** = ``&"Master"`` :ref:`🔗<class_AudioStreamPlayer_property_bus>`
- .. rst-class:: classref-property-setget
- - |void| **set_bus**\ (\ value\: :ref:`StringName<class_StringName>`\ )
- - :ref:`StringName<class_StringName>` **get_bus**\ (\ )
- The target bus name. All sounds from this node will be playing on this bus.
- \ **Note:** At runtime, if no bus with the given name exists, all sounds will fall back on ``"Master"``. See also :ref:`AudioServer.get_bus_name()<class_AudioServer_method_get_bus_name>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_max_polyphony:
- .. rst-class:: classref-property
- :ref:`int<class_int>` **max_polyphony** = ``1`` :ref:`🔗<class_AudioStreamPlayer_property_max_polyphony>`
- .. rst-class:: classref-property-setget
- - |void| **set_max_polyphony**\ (\ value\: :ref:`int<class_int>`\ )
- - :ref:`int<class_int>` **get_max_polyphony**\ (\ )
- The maximum number of sounds this node can play at the same time. Calling :ref:`play()<class_AudioStreamPlayer_method_play>` after this value is reached will cut off the oldest sounds.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_mix_target:
- .. rst-class:: classref-property
- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **mix_target** = ``0`` :ref:`🔗<class_AudioStreamPlayer_property_mix_target>`
- .. rst-class:: classref-property-setget
- - |void| **set_mix_target**\ (\ value\: :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>`\ )
- - :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **get_mix_target**\ (\ )
- The mix target channels, as one of the :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` constants. Has no effect when two speakers or less are detected (see :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>`).
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_pitch_scale:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **pitch_scale** = ``1.0`` :ref:`🔗<class_AudioStreamPlayer_property_pitch_scale>`
- .. rst-class:: classref-property-setget
- - |void| **set_pitch_scale**\ (\ value\: :ref:`float<class_float>`\ )
- - :ref:`float<class_float>` **get_pitch_scale**\ (\ )
- The audio's pitch and tempo, as a multiplier of the :ref:`stream<class_AudioStreamPlayer_property_stream>`'s sample rate. A value of ``2.0`` doubles the audio's pitch, while a value of ``0.5`` halves the pitch.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_playback_type:
- .. rst-class:: classref-property
- :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **playback_type** = ``0`` :ref:`🔗<class_AudioStreamPlayer_property_playback_type>`
- .. rst-class:: classref-property-setget
- - |void| **set_playback_type**\ (\ value\: :ref:`PlaybackType<enum_AudioServer_PlaybackType>`\ )
- - :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **get_playback_type**\ (\ )
- **Experimental:** This property may be changed or removed in future versions.
- The playback type of the stream player. If set other than to the default value, it will force that playback type.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_playing:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **playing** = ``false`` :ref:`🔗<class_AudioStreamPlayer_property_playing>`
- .. rst-class:: classref-property-setget
- - |void| **set_playing**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **is_playing**\ (\ )
- If ``true``, this node is playing sounds. Setting this property has the same effect as :ref:`play()<class_AudioStreamPlayer_method_play>` and :ref:`stop()<class_AudioStreamPlayer_method_stop>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_stream:
- .. rst-class:: classref-property
- :ref:`AudioStream<class_AudioStream>` **stream** :ref:`🔗<class_AudioStreamPlayer_property_stream>`
- .. rst-class:: classref-property-setget
- - |void| **set_stream**\ (\ value\: :ref:`AudioStream<class_AudioStream>`\ )
- - :ref:`AudioStream<class_AudioStream>` **get_stream**\ (\ )
- The :ref:`AudioStream<class_AudioStream>` resource to be played. Setting this property stops all currently playing sounds. If left empty, the **AudioStreamPlayer** does not work.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_stream_paused:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **stream_paused** = ``false`` :ref:`🔗<class_AudioStreamPlayer_property_stream_paused>`
- .. rst-class:: classref-property-setget
- - |void| **set_stream_paused**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **get_stream_paused**\ (\ )
- If ``true``, the sounds are paused. Setting :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` to ``false`` resumes all sounds.
- \ **Note:** This property is automatically changed when exiting or entering the tree, or this node is paused (see :ref:`Node.process_mode<class_Node_property_process_mode>`).
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_volume_db:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **volume_db** = ``0.0`` :ref:`🔗<class_AudioStreamPlayer_property_volume_db>`
- .. rst-class:: classref-property-setget
- - |void| **set_volume_db**\ (\ value\: :ref:`float<class_float>`\ )
- - :ref:`float<class_float>` **get_volume_db**\ (\ )
- Volume of sound, in decibels. This is an offset of the :ref:`stream<class_AudioStreamPlayer_property_stream>`'s volume.
- \ **Note:** To convert between decibel and linear energy (like most volume sliders do), use :ref:`volume_linear<class_AudioStreamPlayer_property_volume_linear>`, or :ref:`@GlobalScope.db_to_linear()<class_@GlobalScope_method_db_to_linear>` and :ref:`@GlobalScope.linear_to_db()<class_@GlobalScope_method_linear_to_db>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_property_volume_linear:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **volume_linear** :ref:`🔗<class_AudioStreamPlayer_property_volume_linear>`
- .. rst-class:: classref-property-setget
- - |void| **set_volume_linear**\ (\ value\: :ref:`float<class_float>`\ )
- - :ref:`float<class_float>` **get_volume_linear**\ (\ )
- Volume of sound, as a linear value.
- \ **Note:** This member modifies :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>` for convenience. The returned value is equivalent to the result of :ref:`@GlobalScope.db_to_linear()<class_@GlobalScope_method_db_to_linear>` on :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>`. Setting this member is equivalent to setting :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>` to the result of :ref:`@GlobalScope.linear_to_db()<class_@GlobalScope_method_linear_to_db>` on a value.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Method Descriptions
- -------------------
- .. _class_AudioStreamPlayer_method_get_playback_position:
- .. rst-class:: classref-method
- :ref:`float<class_float>` **get_playback_position**\ (\ ) :ref:`🔗<class_AudioStreamPlayer_method_get_playback_position>`
- Returns the position in the :ref:`AudioStream<class_AudioStream>` of the latest sound, in seconds. Returns ``0.0`` if no sounds are playing.
- \ **Note:** The position is not always accurate, as the :ref:`AudioServer<class_AudioServer>` does not mix audio every processed frame. To get more accurate results, add :ref:`AudioServer.get_time_since_last_mix()<class_AudioServer_method_get_time_since_last_mix>` to the returned position.
- \ **Note:** This method always returns ``0.0`` if the :ref:`stream<class_AudioStreamPlayer_property_stream>` is an :ref:`AudioStreamInteractive<class_AudioStreamInteractive>`, since it can have multiple clips playing at once.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_method_get_stream_playback:
- .. rst-class:: classref-method
- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback**\ (\ ) :ref:`🔗<class_AudioStreamPlayer_method_get_stream_playback>`
- Returns the latest :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` of this node, usually the most recently created by :ref:`play()<class_AudioStreamPlayer_method_play>`. If no sounds are playing, this method fails and returns an empty playback.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_method_has_stream_playback:
- .. rst-class:: classref-method
- :ref:`bool<class_bool>` **has_stream_playback**\ (\ ) :ref:`🔗<class_AudioStreamPlayer_method_has_stream_playback>`
- Returns ``true`` if any sound is active, even if :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` is set to ``true``. See also :ref:`playing<class_AudioStreamPlayer_property_playing>` and :ref:`get_stream_playback()<class_AudioStreamPlayer_method_get_stream_playback>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_method_play:
- .. rst-class:: classref-method
- |void| **play**\ (\ from_position\: :ref:`float<class_float>` = 0.0\ ) :ref:`🔗<class_AudioStreamPlayer_method_play>`
- Plays a sound from the beginning, or the given ``from_position`` in seconds.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_method_seek:
- .. rst-class:: classref-method
- |void| **seek**\ (\ to_position\: :ref:`float<class_float>`\ ) :ref:`🔗<class_AudioStreamPlayer_method_seek>`
- Restarts all sounds to be played from the given ``to_position``, in seconds. Does nothing if no sounds are playing.
- .. rst-class:: classref-item-separator
- ----
- .. _class_AudioStreamPlayer_method_stop:
- .. rst-class:: classref-method
- |void| **stop**\ (\ ) :ref:`🔗<class_AudioStreamPlayer_method_stop>`
- Stops all sounds from this node.
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
- .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
- .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
- .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
- .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
- .. |void| replace:: :abbr:`void (No return value.)`
|