Files
godot-docs-l10n/classes/zh_Hant/class_audioserver.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

999 lines
54 KiB
ReStructuredText
Raw Permalink 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_AudioServer:
AudioServer
===========
**繼承:** :ref:`Object<class_Object>`
低階音訊存取的伺服器介面。
.. rst-class:: classref-introduction-group
說明
----
**AudioServer** 為低階音訊存取伺服器介面,負責建立樣本資料(可播放音訊)並透過語音介面進行播放。
.. rst-class:: classref-introduction-group
教學
----
- :doc:`音訊匯流排 <../tutorials/audio/audio_buses>`
- `音訊裝置切換範例 <https://godotengine.org/asset-library/asset/2758>`__
- `音訊麥克風錄音示範 <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:`bus_count<class_AudioServer_property_bus_count>` | ``1`` |
+-----------------------------+------------------------------------------------------------------------------+---------------+
| :ref:`String<class_String>` | :ref:`input_device<class_AudioServer_property_input_device>` | ``"Default"`` |
+-----------------------------+------------------------------------------------------------------------------+---------------+
| :ref:`String<class_String>` | :ref:`output_device<class_AudioServer_property_output_device>` | ``"Default"`` |
+-----------------------------+------------------------------------------------------------------------------+---------------+
| :ref:`float<class_float>` | :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>` | ``1.0`` |
+-----------------------------+------------------------------------------------------------------------------+---------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_bus<class_AudioServer_method_add_bus>`\ (\ at_position\: :ref:`int<class_int>` = -1\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect\: :ref:`AudioEffect<class_AudioEffect>`, at_position\: :ref:`int<class_int>` = -1\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AudioBusLayout<class_AudioBusLayout>` | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AudioEffect<class_AudioEffect>` | :ref:`get_bus_effect<class_AudioServer_method_get_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_bus_effect_count<class_AudioServer_method_get_bus_effect_count>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`get_bus_effect_instance<class_AudioServer_method_get_bus_effect_instance>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>` = 0\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_bus_index<class_AudioServer_method_get_bus_index>`\ (\ bus_name\: :ref:`StringName<class_StringName>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_bus_name<class_AudioServer_method_get_bus_name>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_bus_peak_volume_left_db<class_AudioServer_method_get_bus_peak_volume_left_db>`\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_bus_peak_volume_right_db<class_AudioServer_method_get_bus_peak_volume_right_db>`\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`StringName<class_StringName>` | :ref:`get_bus_send<class_AudioServer_method_get_bus_send>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_bus_volume_linear<class_AudioServer_method_get_bus_volume_linear>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_driver_name<class_AudioServer_method_get_driver_name>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_input_buffer_length_frames<class_AudioServer_method_get_input_buffer_length_frames>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_input_device_list<class_AudioServer_method_get_input_device_list>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_input_frames<class_AudioServer_method_get_input_frames>`\ (\ frames\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_input_frames_available<class_AudioServer_method_get_input_frames_available>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_input_mix_rate<class_AudioServer_method_get_input_mix_rate>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_output_device_list<class_AudioServer_method_get_output_device_list>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_output_latency<class_AudioServer_method_get_output_latency>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` | :ref:`get_speaker_mode<class_AudioServer_method_get_speaker_mode>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_time_since_last_mix<class_AudioServer_method_get_time_since_last_mix>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_time_to_next_mix<class_AudioServer_method_get_time_to_next_mix>`\ (\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_bus_bypassing_effects<class_AudioServer_method_is_bus_bypassing_effects>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_bus_effect_enabled<class_AudioServer_method_is_bus_effect_enabled>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_bus_mute<class_AudioServer_method_is_bus_mute>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_bus_solo<class_AudioServer_method_is_bus_solo>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_stream_registered_as_sample<class_AudioServer_method_is_stream_registered_as_sample>`\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`lock<class_AudioServer_method_lock>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`move_bus<class_AudioServer_method_move_bus>`\ (\ index\: :ref:`int<class_int>`, to_index\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`register_stream_as_sample<class_AudioServer_method_register_stream_as_sample>`\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_bus<class_AudioServer_method_remove_bus>`\ (\ index\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_bus_effect<class_AudioServer_method_remove_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_bypass_effects<class_AudioServer_method_set_bus_bypass_effects>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_effect_enabled<class_AudioServer_method_set_bus_effect_enabled>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_layout<class_AudioServer_method_set_bus_layout>`\ (\ bus_layout\: :ref:`AudioBusLayout<class_AudioBusLayout>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_mute<class_AudioServer_method_set_bus_mute>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_name<class_AudioServer_method_set_bus_name>`\ (\ bus_idx\: :ref:`int<class_int>`, name\: :ref:`String<class_String>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_send<class_AudioServer_method_set_bus_send>`\ (\ bus_idx\: :ref:`int<class_int>`, send\: :ref:`StringName<class_StringName>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_solo<class_AudioServer_method_set_bus_solo>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`, volume_db\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_bus_volume_linear<class_AudioServer_method_set_bus_volume_linear>`\ (\ bus_idx\: :ref:`int<class_int>`, volume_linear\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_enable_tagging_used_audio_streams<class_AudioServer_method_set_enable_tagging_used_audio_streams>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`set_input_device_active<class_AudioServer_method_set_input_device_active>`\ (\ active\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, by_effect_idx\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`unlock<class_AudioServer_method_unlock>`\ (\ ) |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
訊號
----
.. _class_AudioServer_signal_bus_layout_changed:
.. rst-class:: classref-signal
**bus_layout_changed**\ (\ ) :ref:`🔗<class_AudioServer_signal_bus_layout_changed>`
當音訊匯流排被新增、刪除或移動時發出。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_signal_bus_renamed:
.. rst-class:: classref-signal
**bus_renamed**\ (\ bus_index\: :ref:`int<class_int>`, old_name\: :ref:`StringName<class_StringName>`, new_name\: :ref:`StringName<class_StringName>`\ ) :ref:`🔗<class_AudioServer_signal_bus_renamed>`
當索引 ``bus_index`` 的音訊匯流排由 ``old_name`` 重新命名為 ``new_name`` 時發出。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
列舉
----
.. _enum_AudioServer_SpeakerMode:
.. rst-class:: classref-enumeration
enum **SpeakerMode**: :ref:`🔗<enum_AudioServer_SpeakerMode>`
.. _class_AudioServer_constant_SPEAKER_MODE_STEREO:
.. rst-class:: classref-enumeration-constant
:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_MODE_STEREO** = ``0``
偵測到兩個或更少的揚聲器。
.. _class_AudioServer_constant_SPEAKER_SURROUND_31:
.. rst-class:: classref-enumeration-constant
:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_31** = ``1``
偵測到 3.1 聲道環繞配置。
.. _class_AudioServer_constant_SPEAKER_SURROUND_51:
.. rst-class:: classref-enumeration-constant
:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_51** = ``2``
偵測到 5.1 聲道環繞配置。
.. _class_AudioServer_constant_SPEAKER_SURROUND_71:
.. rst-class:: classref-enumeration-constant
:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_71** = ``3``
偵測到 7.1 聲道環繞配置。
.. rst-class:: classref-item-separator
----
.. _enum_AudioServer_PlaybackType:
.. rst-class:: classref-enumeration
enum **PlaybackType**: :ref:`🔗<enum_AudioServer_PlaybackType>`
.. _class_AudioServer_constant_PLAYBACK_TYPE_DEFAULT:
.. rst-class:: classref-enumeration-constant
:ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_DEFAULT** = ``0``
**實驗性:** 此常數可能在未來版本中變更或移除。
播放將依 :ref:`ProjectSettings.audio/general/default_playback_type<class_ProjectSettings_property_audio/general/default_playback_type>` 所宣告的類型處理。
.. _class_AudioServer_constant_PLAYBACK_TYPE_STREAM:
.. rst-class:: classref-enumeration-constant
:ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_STREAM** = ``1``
**實驗性:** 此常數可能在未來版本中變更或移除。
強制將播放視為串流。
.. _class_AudioServer_constant_PLAYBACK_TYPE_SAMPLE:
.. rst-class:: classref-enumeration-constant
:ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_SAMPLE** = ``2``
**實驗性:** 此常數可能在未來版本中變更或移除。
強制將播放視為樣本,可降低延遲並提升穩定性(減少爆音風險),但靈活度較低。
\ **注意:**\ 目前僅網頁平台支援此功能。
\ **注意:**\ 當播放被視為樣本時,不支援 :ref:`AudioEffect<class_AudioEffect>`\ 。
.. _class_AudioServer_constant_PLAYBACK_TYPE_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_MAX** = ``3``
**實驗性:** 此常數可能在未來版本中變更或移除。
代表 :ref:`PlaybackType<enum_AudioServer_PlaybackType>` 列舉的大小。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
屬性說明
--------
.. _class_AudioServer_property_bus_count:
.. rst-class:: classref-property
:ref:`int<class_int>` **bus_count** = ``1`` :ref:`🔗<class_AudioServer_property_bus_count>`
.. rst-class:: classref-property-setget
- |void| **set_bus_count**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_bus_count**\ (\ )
可用音訊匯流排數量。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_property_input_device:
.. rst-class:: classref-property
:ref:`String<class_String>` **input_device** = ``"Default"`` :ref:`🔗<class_AudioServer_property_input_device>`
.. rst-class:: classref-property-setget
- |void| **set_input_device**\ (\ value\: :ref:`String<class_String>`\ )
- :ref:`String<class_String>` **get_input_device**\ (\ )
目前音訊輸入裝置名稱(參見 :ref:`get_input_device_list()<class_AudioServer_method_get_input_device_list>`\ 。當系統具有多個輸入例如類比、USB、HDMI可藉此選擇輸入裝置\ ``"Default"`` 會使用系統預設輸入。若設定無效名稱,將還原為 ``"Default"``\ 。
\ **注意:**\ 必須將 :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` 設為 ``true`` 才能啟用音訊輸入。隱私與權限相關限制請參閱該設定說明。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_property_output_device:
.. rst-class:: classref-property
:ref:`String<class_String>` **output_device** = ``"Default"`` :ref:`🔗<class_AudioServer_property_output_device>`
.. rst-class:: classref-property-setget
- |void| **set_output_device**\ (\ value\: :ref:`String<class_String>`\ )
- :ref:`String<class_String>` **get_output_device**\ (\ )
目前音訊輸出裝置名稱(參見 :ref:`get_output_device_list()<class_AudioServer_method_get_output_device_list>`\ 。當系統具有多個輸出例如類比、USB、HDMI可藉此選擇輸出裝置\ ``"Default"`` 會使用系統預設輸出。若設定無效名稱,將還原為 ``"Default"``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_property_playback_speed_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **playback_speed_scale** = ``1.0`` :ref:`🔗<class_AudioServer_property_playback_speed_scale>`
.. rst-class:: classref-property-setget
- |void| **set_playback_speed_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_playback_speed_scale**\ (\ )
調整音訊播放速度比例(如設為 ``0.5`` 則音訊以半速播放)。如需改變整體模擬速度,請參閱 :ref:`Engine.time_scale<class_Engine_property_time_scale>`\ ;兩者彼此獨立。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法說明
--------
.. _class_AudioServer_method_add_bus:
.. rst-class:: classref-method
|void| **add_bus**\ (\ at_position\: :ref:`int<class_int>` = -1\ ) :ref:`🔗<class_AudioServer_method_add_bus>`
``at_position`` 處新增匯流排。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_add_bus_effect:
.. rst-class:: classref-method
|void| **add_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect\: :ref:`AudioEffect<class_AudioEffect>`, at_position\: :ref:`int<class_int>` = -1\ ) :ref:`🔗<class_AudioServer_method_add_bus_effect>`
於索引 ``bus_idx`` 的匯流排上、位置 ``at_position`` 新增 :ref:`AudioEffect<class_AudioEffect>` 效果。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_generate_bus_layout:
.. rst-class:: classref-method
:ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_generate_bus_layout>`
使用現有匯流排與效果產生 :ref:`AudioBusLayout<class_AudioBusLayout>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_channels:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_bus_channels**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_channels>`
返回索引 ``bus_idx`` 的匯流排通道數。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_effect:
.. rst-class:: classref-method
:ref:`AudioEffect<class_AudioEffect>` **get_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_get_bus_effect>`
返回索引 ``bus_idx`` 匯流排上位置 ``effect_idx``:ref:`AudioEffect<class_AudioEffect>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_effect_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_bus_effect_count**\ (\ bus_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_get_bus_effect_count>`
返回索引 ``bus_idx`` 的匯流排所掛載效果數量。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_effect_instance:
.. rst-class:: classref-method
:ref:`AudioEffectInstance<class_AudioEffectInstance>` **get_bus_effect_instance**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>` = 0\ ) :ref:`🔗<class_AudioServer_method_get_bus_effect_instance>`
返回指定匯流排及效果索引(可選通道)的 :ref:`AudioEffectInstance<class_AudioEffectInstance>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_index:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_bus_index**\ (\ bus_name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_index>`
返回名稱為 ``bus_name`` 的匯流排索引;若不存在則返回 ``-1``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_bus_name**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_name>`
返回索引 ``bus_idx`` 的匯流排名稱。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_peak_volume_left_db:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_bus_peak_volume_left_db**\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_peak_volume_left_db>`
返回匯流排索引 ``bus_idx``\ 、通道索引 ``channel`` 的左聲道峰值音量。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_peak_volume_right_db:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_bus_peak_volume_right_db**\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_peak_volume_right_db>`
返回匯流排索引 ``bus_idx``\ 、通道索引 ``channel`` 的右聲道峰值音量。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_send:
.. rst-class:: classref-method
:ref:`StringName<class_StringName>` **get_bus_send**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_send>`
返回索引 ``bus_idx`` 的匯流排所送出的目標匯流排名稱。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_volume_db:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_bus_volume_db**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_volume_db>`
返回索引 ``bus_idx`` 的匯流排音量dB
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_bus_volume_linear:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_bus_volume_linear**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_get_bus_volume_linear>`
以線性值返回索引 ``bus_idx`` 的匯流排音量。
\ **注意:**\ 返回值等同於將 :ref:`get_bus_volume_db()<class_AudioServer_method_get_bus_volume_db>` 的結果傳入 :ref:`@GlobalScope.db_to_linear()<class_@GlobalScope_method_db_to_linear>` 的結果。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_driver_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_driver_name**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_driver_name>`
返回目前使用的音訊驅動名稱。預設值取決於作業系統,可透過 ``--audio-driver`` :doc:`指令列參數 <../tutorials/editor/command_line_tutorial>` 覆寫。使用 ``--headless`` 也會自動將音訊驅動設為 ``Dummy``\ 。另見 :ref:`ProjectSettings.audio/driver/driver<class_ProjectSettings_property_audio/driver/driver>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_input_buffer_length_frames:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_input_buffer_length_frames**\ (\ ) :ref:`🔗<class_AudioServer_method_get_input_buffer_length_frames>`
**實驗性:** 此方法可能在未來版本中變更或移除。
Returns the absolute size of the microphone input buffer. This is set to a multiple of the audio latency and can be used to estimate the minimum rate at which the frames need to be fetched.
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_input_device_list:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_input_device_list**\ (\ ) :ref:`🔗<class_AudioServer_method_get_input_device_list>`
返回系統偵測到的所有音訊輸入裝置名稱。
\ **注意:**\ 必須將 :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` 設為 ``true`` 才能啟用音訊輸入。更多權限與作業系統隱私限制請參閱該設定說明。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_input_frames:
.. rst-class:: classref-method
:ref:`PackedVector2Array<class_PackedVector2Array>` **get_input_frames**\ (\ frames\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_get_input_frames>`
**實驗性:** 此方法可能在未來版本中變更或移除。
Returns a :ref:`PackedVector2Array<class_PackedVector2Array>` containing exactly ``frames`` audio samples from the internal microphone buffer if available, otherwise returns an empty :ref:`PackedVector2Array<class_PackedVector2Array>`.
The buffer is filled at the rate of :ref:`get_input_mix_rate()<class_AudioServer_method_get_input_mix_rate>` frames per second when :ref:`set_input_device_active()<class_AudioServer_method_set_input_device_active>` has successfully been set to ``true``.
The samples are signed floating-point PCM values between ``-1`` and ``1``.
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_input_frames_available:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_input_frames_available**\ (\ ) :ref:`🔗<class_AudioServer_method_get_input_frames_available>`
**實驗性:** 此方法可能在未來版本中變更或移除。
Returns the number of frames available to read using :ref:`get_input_frames()<class_AudioServer_method_get_input_frames>`.
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_input_mix_rate:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_input_mix_rate**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_input_mix_rate>`
返回 **AudioServer** 輸入的取樣率。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_mix_rate:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_mix_rate**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_mix_rate>`
返回 **AudioServer** 輸出的取樣率。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_output_device_list:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_output_device_list**\ (\ ) :ref:`🔗<class_AudioServer_method_get_output_device_list>`
返回系統偵測到的所有音訊輸出裝置名稱。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_output_latency:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_output_latency**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_output_latency>`
返回音訊驅動的有效輸出延遲。此值基於 :ref:`ProjectSettings.audio/driver/output_latency<class_ProjectSettings_property_audio/driver/output_latency>`\ ,但最終結果會依作業系統與驅動不同而異。
\ **注意:**\ 此呼叫成本較高,請勿於每影格呼叫 :ref:`get_output_latency()<class_AudioServer_method_get_output_latency>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_speaker_mode:
.. rst-class:: classref-method
:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **get_speaker_mode**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_speaker_mode>`
返回揚聲器配置。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_time_since_last_mix:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_time_since_last_mix**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_time_since_last_mix>`
返回距離上次混音的相對時間。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_get_time_to_next_mix:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_time_to_next_mix**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_time_to_next_mix>`
返回距離下次混音的剩餘時間。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_is_bus_bypassing_effects:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_bus_bypassing_effects**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_is_bus_bypassing_effects>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將繞過所有效果。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_is_bus_effect_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_bus_effect_enabled**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_is_bus_effect_enabled>`
若為 ``true``\ ,索引 ``bus_idx`` 匯流排上索引 ``effect_idx`` 的效果為啟用狀態。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_is_bus_mute:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_bus_mute**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_is_bus_mute>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將被靜音。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_is_bus_solo:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_bus_solo**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_AudioServer_method_is_bus_solo>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將進入獨奏模式。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_is_stream_registered_as_sample:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_stream_registered_as_sample**\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) :ref:`🔗<class_AudioServer_method_is_stream_registered_as_sample>`
**實驗性:** 此方法可能在未來版本中變更或移除。
若為 ``true``\ ,此串流將被註冊為樣本,播放前無需再註冊。
若為 ``false``\ ,播放前必須先註冊;為避免延遲尖峰,可預先呼叫 :ref:`register_stream_as_sample()<class_AudioServer_method_register_stream_as_sample>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_lock:
.. rst-class:: classref-method
|void| **lock**\ (\ ) :ref:`🔗<class_AudioServer_method_lock>`
鎖定音訊驅動主迴圈。
\ **注意:**\ 請務必於操作完畢後解鎖。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_move_bus:
.. rst-class:: classref-method
|void| **move_bus**\ (\ index\: :ref:`int<class_int>`, to_index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_move_bus>`
將匯流排從索引 ``index`` 移至索引 ``to_index``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_register_stream_as_sample:
.. rst-class:: classref-method
|void| **register_stream_as_sample**\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) :ref:`🔗<class_AudioServer_method_register_stream_as_sample>`
**實驗性:** 此方法可能在未來版本中變更或移除。
強制將串流註冊為樣本。
\ **注意:**\ 在單執行緒版本中呼叫此方法可能造成延遲尖峰。建議於載入資源階段執行,以避免在播放前才註冊造成卡頓。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_remove_bus:
.. rst-class:: classref-method
|void| **remove_bus**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_remove_bus>`
移除索引 ``index`` 的匯流排。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_remove_bus_effect:
.. rst-class:: classref-method
|void| **remove_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_remove_bus_effect>`
自索引 ``bus_idx`` 的匯流排移除索引 ``effect_idx`` 的效果。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_bypass_effects:
.. rst-class:: classref-method
|void| **set_bus_bypass_effects**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_bypass_effects>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將繞過所有效果。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_effect_enabled:
.. rst-class:: classref-method
|void| **set_bus_effect_enabled**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_effect_enabled>`
若為 ``true``\ ,索引 ``bus_idx`` 匯流排上索引 ``effect_idx`` 的效果為啟用狀態。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_layout:
.. rst-class:: classref-method
|void| **set_bus_layout**\ (\ bus_layout\: :ref:`AudioBusLayout<class_AudioBusLayout>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_layout>`
覆寫目前使用的 :ref:`AudioBusLayout<class_AudioBusLayout>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_mute:
.. rst-class:: classref-method
|void| **set_bus_mute**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_mute>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將被靜音。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_name:
.. rst-class:: classref-method
|void| **set_bus_name**\ (\ bus_idx\: :ref:`int<class_int>`, name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_name>`
將索引 ``bus_idx`` 的匯流排名稱設為 ``name``\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_send:
.. rst-class:: classref-method
|void| **set_bus_send**\ (\ bus_idx\: :ref:`int<class_int>`, send\: :ref:`StringName<class_StringName>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_send>`
將索引 ``bus_idx`` 匯流排的輸出連接到名為 ``send`` 的匯流排。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_solo:
.. rst-class:: classref-method
|void| **set_bus_solo**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_solo>`
若為 ``true``\ ,索引 ``bus_idx`` 的匯流排將進入獨奏模式。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_volume_db:
.. rst-class:: classref-method
|void| **set_bus_volume_db**\ (\ bus_idx\: :ref:`int<class_int>`, volume_db\: :ref:`float<class_float>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_volume_db>`
將索引 ``bus_idx`` 的匯流排音量設為 ``volume_db`` dB。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_bus_volume_linear:
.. rst-class:: classref-method
|void| **set_bus_volume_linear**\ (\ bus_idx\: :ref:`int<class_int>`, volume_linear\: :ref:`float<class_float>`\ ) :ref:`🔗<class_AudioServer_method_set_bus_volume_linear>`
將索引 ``bus_idx`` 的匯流排音量設為線性值 ``volume_linear``\ 。
\ **注意:**\ 此方法等同於先將值傳入 :ref:`@GlobalScope.linear_to_db()<class_@GlobalScope_method_linear_to_db>`\ ,再呼叫 :ref:`set_bus_volume_db()<class_AudioServer_method_set_bus_volume_db>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_enable_tagging_used_audio_streams:
.. rst-class:: classref-method
|void| **set_enable_tagging_used_audio_streams**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_enable_tagging_used_audio_streams>`
若設為 ``true``\ ,所有 :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` 執行個體將於每次混音時呼叫 :ref:`AudioStreamPlayback._tag_used_streams()<class_AudioStreamPlayback_private_method__tag_used_streams>`\ 。
\ **注意:**\ 編輯器預設啟用此選項,以供外掛進行音訊預覽。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_set_input_device_active:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **set_input_device_active**\ (\ active\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_AudioServer_method_set_input_device_active>`
**實驗性:** 此方法可能在未來版本中變更或移除。
If ``active`` is ``true``, starts the microphone input stream specified by :ref:`input_device<class_AudioServer_property_input_device>` or returns an error if it failed.
If ``active`` is ``false``, stops the input stream if it is running.
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_swap_bus_effects:
.. rst-class:: classref-method
|void| **swap_bus_effects**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, by_effect_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioServer_method_swap_bus_effects>`
交換索引 ``bus_idx`` 匯流排中兩個效果的位置。
.. rst-class:: classref-item-separator
----
.. _class_AudioServer_method_unlock:
.. rst-class:: classref-method
|void| **unlock**\ (\ ) :ref:`🔗<class_AudioServer_method_unlock>`
解鎖音訊驅動主迴圈。(鎖定後務必解鎖。)
.. |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 (無回傳值。)`