Files
godot-docs-l10n/classes/zh_CN/class_audiostream.rst
Max Hilbrunner 2ba6d25aa9 Revert "Rename zh_CN/zh_TW to zh_Hans/zh_Hant"
This reverts commit 57781dc0bc.
The rename, although in line with what we did in the engine, caused problems with RTD we need to fix (or push for a fix) first.
2025-12-24 07:14:31 +01:00

309 lines
16 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_AudioStream:
AudioStream
===========
**继承:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**派生:** :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`, :ref:`AudioStreamInteractive<class_AudioStreamInteractive>`, :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, :ref:`AudioStreamMP3<class_AudioStreamMP3>`, :ref:`AudioStreamOggVorbis<class_AudioStreamOggVorbis>`, :ref:`AudioStreamPlaylist<class_AudioStreamPlaylist>`, :ref:`AudioStreamPolyphonic<class_AudioStreamPolyphonic>`, :ref:`AudioStreamRandomizer<class_AudioStreamRandomizer>`, :ref:`AudioStreamSynchronized<class_AudioStreamSynchronized>`, :ref:`AudioStreamWAV<class_AudioStreamWAV>`
音频流的基类。
.. rst-class:: classref-introduction-group
描述
----
音频流的基类。音频流用于播放音效和音乐,支持 WAV通过 :ref:`AudioStreamWAV<class_AudioStreamWAV>`\ )和 Ogg通过 :ref:`AudioStreamOggVorbis<class_AudioStreamOggVorbis>`\ )文件格式。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`音频流 <../tutorials/audio/audio_streams>`
- `音频生成器演示 <https://godotengine.org/asset-library/asset/2759>`__
- `音频麦克风录音演示 <https://godotengine.org/asset-library/asset/2760>`__
- `音频频谱可视化演示 <https://godotengine.org/asset-library/asset/2762>`__
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_bar_beats<class_AudioStream_private_method__get_bar_beats>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_beat_count<class_AudioStream_private_method__get_beat_count>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`_get_bpm<class_AudioStream_private_method__get_bpm>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`_get_length<class_AudioStream_private_method__get_length>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] | :ref:`_get_parameter_list<class_AudioStream_private_method__get_parameter_list>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`_get_stream_name<class_AudioStream_private_method__get_stream_name>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`_get_tags<class_AudioStream_private_method__get_tags>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_has_loop<class_AudioStream_private_method__has_loop>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`_instantiate_playback<class_AudioStream_private_method__instantiate_playback>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_monophonic<class_AudioStream_private_method__is_monophonic>`\ (\ ) |virtual| |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`can_be_sampled<class_AudioStream_method_can_be_sampled>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`AudioSample<class_AudioSample>` | :ref:`generate_sample<class_AudioStream_method_generate_sample>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_length<class_AudioStream_method_get_length>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>`\ (\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_meta_stream<class_AudioStream_method_is_meta_stream>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_monophonic<class_AudioStream_method_is_monophonic>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
信号
----
.. _class_AudioStream_signal_parameter_list_changed:
.. rst-class:: classref-signal
**parameter_list_changed**\ (\ ) :ref:`🔗<class_AudioStream_signal_parameter_list_changed>`
当参数列表改变时被发出以通知的信号。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_AudioStream_private_method__get_bar_beats:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_bar_beats**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_bar_beats>`
覆盖该方法,返回音频流的节拍数。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_beat_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_beat_count**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_beat_count>`
可覆盖的方法。应返回该音频流的总节拍数。由引擎用来确定每个节拍的位置。
理想情况下,返回值应基于流的采样率(例如,\ :ref:`AudioStreamWAV.mix_rate<class_AudioStreamWAV_property_mix_rate>`\ )。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_bpm:
.. rst-class:: classref-method
:ref:`float<class_float>` **_get_bpm**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_bpm>`
可覆盖的方法。应返回该音频流的节奏以每分钟节拍数BPM为单位。由引擎用来确定每个节拍的位置。
理想情况下,返回值应基于流的采样率(例如,\ :ref:`AudioStreamWAV.mix_rate<class_AudioStreamWAV_property_mix_rate>`\ )。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **_get_length**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_length>`
覆盖此方法以自定义 :ref:`get_length()<class_AudioStream_method_get_length>` 所返回的值,应该返回这个音频流的长度,单位为秒。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_parameter_list:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] **_get_parameter_list**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_parameter_list>`
返回该流的可控制参数。该数组包含具有属性信息描述格式的字典(请参阅 :ref:`Object.get_property_list()<class_Object_method_get_property_list>`\ )。此外,必须将该参数的默认值添加到 “default_value” 字段中的每个字典中。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_stream_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **_get_stream_name**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_stream_name>`
覆盖该方法,以自定义分配给该音频流的名称。未被引擎使用。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__get_tags:
.. rst-class:: classref-method
:ref:`Dictionary<class_Dictionary>` **_get_tags**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__get_tags>`
覆盖该方法,自定义音频流的标签。应当返回字符串构成的 :ref:`Dictionary<class_Dictionary>`\ ,标签为键,对应的内容为值。
常用标签包括标题 ``title``\ 、艺术家 ``artist``\ 、专辑 ``album``\ 、音轨号 ``tracknumber``\ 、日期 ``date``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__has_loop:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_has_loop**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__has_loop>`
覆盖该方法,如果音频流中存在循环,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__instantiate_playback:
.. rst-class:: classref-method
:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **_instantiate_playback**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__instantiate_playback>`
覆盖该方法可以自定义 :ref:`instantiate_playback()<class_AudioStream_method_instantiate_playback>` 的返回值。应该返回一个在播放流(例如通过 :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`\ )时创建的新的 :ref:`AudioStreamPlayback<class_AudioStreamPlayback>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_private_method__is_monophonic:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_monophonic**\ (\ ) |virtual| |const| :ref:`🔗<class_AudioStream_private_method__is_monophonic>`
覆盖该方法以自定义 :ref:`is_monophonic()<class_AudioStream_method_is_monophonic>` 的返回值。如果该音频流仅支持一个通道,则应返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_can_be_sampled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **can_be_sampled**\ (\ ) |const| :ref:`🔗<class_AudioStream_method_can_be_sampled>`
**实验性:** 未来版本中可能会修改或移除该方法。
返回当前 **AudioStream** 是否可以用作样本。仅可对静态流进行采样。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_generate_sample:
.. rst-class:: classref-method
:ref:`AudioSample<class_AudioSample>` **generate_sample**\ (\ ) |const| :ref:`🔗<class_AudioStream_method_generate_sample>`
**实验性:** 未来版本中可能会修改或移除该方法。
根据当前流生成 :ref:`AudioSample<class_AudioSample>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_get_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_length**\ (\ ) |const| :ref:`🔗<class_AudioStream_method_get_length>`
返回音频流的长度,单位为秒。如果是 :ref:`AudioStreamRandomizer<class_AudioStreamRandomizer>`\ ,则返回最近一次播放的音频流的长度。如果音频流的长度无限(如 :ref:`AudioStreamGenerator<class_AudioStreamGenerator>` 和 :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`\ )则返回 ``0.0``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_instantiate_playback:
.. rst-class:: classref-method
:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **instantiate_playback**\ (\ ) :ref:`🔗<class_AudioStream_method_instantiate_playback>`
返回一个新创建的 :ref:`AudioStreamPlayback<class_AudioStreamPlayback>`\ ,用于播放该音频流。当想要扩展 :ref:`_instantiate_playback()<class_AudioStream_private_method__instantiate_playback>`\ ,但从一个内部持有的 AudioStream 子资源调用 :ref:`instantiate_playback()<class_AudioStream_method_instantiate_playback>` 时很有用。在 ``AudioStreamRandomPitch::instantiate_playback`` 的源代码中可以找到这方面的示例。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_is_meta_stream:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_meta_stream**\ (\ ) |const| :ref:`🔗<class_AudioStream_method_is_meta_stream>`
如果该流是其他流的集合,则返回 ``true``\ ,否则返回 ``false``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioStream_method_is_monophonic:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_monophonic**\ (\ ) |const| :ref:`🔗<class_AudioStream_method_is_monophonic>`
如果该音频流仅支持一个通道(\ *单声道*\ ),则返回 ``true``\ ;如果音频流支持两个或多个通道(\ *复调*\ ),则返回 ``false``\ 。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (本方法无副作用,不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,可直接使用类名进行调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效运算符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列位标志构成位掩码的整数。)`
.. |void| replace:: :abbr:`void (无返回值。)`