跳转至

GFAudioEmitterHandle

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/utilities/audio/gf_audio_emitter_handle.gd
  • 模块:Standard
  • 继承:RefCounted
  • API:public
  • 类别:运行时句柄 (runtime_handle)
  • 首次版本:3.17.0

一次音频播放的轻量控制句柄。 句柄只包装底层 AudioStreamPlayer 节点的通用生命周期和播放属性, 不规定音频事件、混音策略或业务含义。

成员概览

类型 名称 签名
信号 player_attached signal player_attached(handle: GFAudioEmitterHandle, player: Node)
信号 stopped signal stopped(handle: GFAudioEmitterHandle)
属性 channel var channel: StringName = &""
属性 metadata var metadata: Dictionary = {}
方法 set_player func set_player(player: Node) -> void:
方法 set_release_callback func set_release_callback(release_callback: Callable) -> void:
方法 bind_to_owner func bind_to_owner(owner: Node, fade_seconds: float = 0.0) -> void:
方法 unbind_owner func unbind_owner() -> void:
方法 get_player func get_player() -> Node:
方法 is_valid func is_valid() -> bool:
方法 is_stop_requested func is_stop_requested() -> bool:
方法 is_playing func is_playing() -> bool:
方法 stop func stop(fade_seconds: float = 0.0) -> void:
方法 fade_to func fade_to(volume_db: float, fade_seconds: float) -> void:
方法 set_volume_db func set_volume_db(volume_db: float) -> void:
方法 get_volume_db func get_volume_db() -> float:
方法 set_pitch_scale func set_pitch_scale(pitch_scale: float) -> void:
方法 get_pitch_scale func get_pitch_scale() -> float:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

信号

player_attached

  • API:public
signal player_attached(handle: GFAudioEmitterHandle, player: Node)

句柄绑定到底层播放器时发出。

参数:

名称 说明
handle 当前句柄。
player 绑定的播放器节点。

stopped

  • API:public
signal stopped(handle: GFAudioEmitterHandle)

句柄主动停止并释放绑定时发出。

参数:

名称 说明
handle 当前句柄。

属性

channel

  • API:public
var channel: StringName = &""

可选通道标识。框架不解释该字段。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: 句柄元数据 Dictionary;键和值由调用方或后端约定。

方法

set_player

  • API:public
func set_player(player: Node) -> void:

绑定底层播放器。

参数:

名称 说明
player 要绑定的播放器节点。

set_release_callback

  • API:public
func set_release_callback(release_callback: Callable) -> void:

设置释放回调。

参数:

名称 说明
release_callback 停止完成时调用的释放回调。

bind_to_owner

  • API:public
func bind_to_owner(owner: Node, fade_seconds: float = 0.0) -> void:

绑定一个拥有者节点,节点退出树时自动停止当前播放。

参数:

名称 说明
owner 生命周期拥有者。
fade_seconds 自动停止时使用的淡出秒数。

unbind_owner

  • API:public
func unbind_owner() -> void:

取消拥有者生命周期绑定。

get_player

  • API:public
func get_player() -> Node:

获取底层播放器。

返回:播放器节点;不存在或已释放时返回 null。

is_valid

  • API:public
func is_valid() -> bool:

检查句柄是否仍绑定有效播放器。

返回:有效时返回 true。

is_stop_requested

  • API:public
func is_stop_requested() -> bool:

检查该句柄是否已经收到停止请求。

返回:已请求停止时返回 true。

is_playing

  • API:public
func is_playing() -> bool:

检查播放器是否正在播放。

返回:正在播放时返回 true。

stop

  • API:public
func stop(fade_seconds: float = 0.0) -> void:

停止播放;传入淡出秒数时先淡出再释放。

参数:

名称 说明
fade_seconds 淡出秒数。

fade_to

  • API:public
func fade_to(volume_db: float, fade_seconds: float) -> void:

淡入淡出到指定音量。

参数:

名称 说明
volume_db 目标音量,单位 dB。
fade_seconds 淡入淡出秒数。

set_volume_db

  • API:public
func set_volume_db(volume_db: float) -> void:

设置当前音量。

参数:

名称 说明
volume_db 音量,单位 dB。

get_volume_db

  • API:public
func get_volume_db() -> float:

获取当前音量。

返回:音量,单位 dB;无播放器时返回 0。

set_pitch_scale

  • API:public
func set_pitch_scale(pitch_scale: float) -> void:

设置当前音高。

参数:

名称 说明
pitch_scale 音高缩放。

get_pitch_scale

  • API:public
func get_pitch_scale() -> float:

获取当前音高。

返回:音高缩放;无播放器时返回 1。

get_debug_snapshot

  • API:public
func get_debug_snapshot() -> Dictionary:

获取调试快照。

返回:调试快照。

结构:

  • return: 调试快照 Dictionary,包含 valid、playing、channel、volume_db、pitch_scale、owner_valid 和 metadata 字段。