FmodAudioStreamPlayer

FmodAudioStreamPlayer#

继承: Node < Object

用于播放 2D 非空间化音频流的节点

描述#

通过 FMOD 播放 FmodAudioStream ,支持分贝音量、音调倍率、播放控制、扬声器混音目标和总线路由。

属性#

方法#

void

set_stream(stream: FmodAudioStream)

FmodAudioStream

get_stream() const

bool

preload_stream()

void

play(from_position: float = 0.0)

void

seek(to_position: float)

void

stop()

void

set_playing(playing: bool)

bool

is_playing() const

void

set_stream_paused(paused: bool)

bool

get_stream_paused() const

float

get_playback_position() const

void

set_volume_db(volume_db: float)

float

get_volume_db() const

void

set_pitch_scale(pitch_scale: float)

float

get_pitch_scale() const

void

set_mix_target(mix_target: MixTarget)

MixTarget

get_mix_target() const

void

set_auto_play(enable: bool)

bool

is_autoplay_enabled() const

void

set_preload_on_set_stream(enable: bool)

bool

is_preload_on_set_stream_enabled() const

void

set_bus(bus: StringName)

StringName

get_bus() const


信号#

finished()

播放通道结束时发出。调用 stop() 或替换 stream 不会发出此信号。


枚举#

enum MixTarget:

MixTarget MIX_TARGET_STEREO = 0

将音频路由到前置左、右扬声器。

MixTarget MIX_TARGET_SURROUND = 1

将音频路由到所有可用的环绕扬声器。

MixTarget MIX_TARGET_CENTER = 2

将音频路由到中置和 LFE 扬声器。


属性说明#

FmodAudioStream stream

要播放的音频流资源 (参见 FmodAudioStream )


bool playing = false

  • void set_playing(playing: bool)

  • bool is_playing() const

设置为 true 开始播放,设置为 false 停止播放


bool stream_paused = false

  • void set_stream_paused(paused: bool)

  • bool get_stream_paused() const

是否暂停当前播放流


float volume_db = 0.0

  • void set_volume_db(volume_db: float)

  • float get_volume_db() const

播放音量,单位为分贝


float pitch_scale = 1.0

  • void set_pitch_scale(pitch_scale: float)

  • float get_pitch_scale() const

播放速度和音高缩放


MixTarget mix_target = 0

当前播放器使用的扬声器混音目标。


bool auto_play = false

  • void set_auto_play(enable: bool)

  • bool is_autoplay_enabled() const

为 true 时,在节点就绪后延迟开始播放,在编辑器中不生效。


bool preload_on_set_stream = false

  • void set_preload_on_set_stream(enable: bool)

  • bool is_preload_on_set_stream_enabled() const

设置 stream 时是否立即预加载内部 FmodSound


StringName bus = &"Master"

输出到的音频总线名称


方法说明#

void set_stream(stream: FmodAudioStream)

停止当前播放并设置 stream ,之后需调用 play() 开始播放。


FmodAudioStream get_stream() const

返回当前设置的音频流 (参见 FmodAudioStream )

未设置音频流时返回 null 。


bool preload_stream()

通过创建内部 FmodSound 预加载音频流。未设置音频流或声音创建失败时返回 false 。


void play(from_position: float = 0.0)

从 from_position 指定的位置开始或重新播放,单位为秒。位置应为非负数。


void seek(to_position: float)

跳转到指定播放位置,单位为秒

播放或暂停时均可调用。


void stop()

停止播放并清除暂停状态


void set_playing(playing: bool)

控制播放状态。设置为 true 会从头开始播放。

设为 false 会停止播放。


bool is_playing() const

播放通道处于活动状态时返回 true ,暂停时也返回 true 。


void set_stream_paused(paused: bool)

暂停或恢复当前播放流


bool get_stream_paused() const

返回当前播放流的暂停状态


float get_playback_position() const

返回播放位置,单位为秒,暂停时仍可查询。没有有效播放通道时返回 0.0 。


void set_volume_db(volume_db: float)

设置音量,单位为分贝

0.0 为单位增益;负值衰减,正值放大(若支持)。


float get_volume_db() const

返回当前音量,单位为分贝

默认值为 0.0 dB,即单位增益。


void set_pitch_scale(pitch_scale: float)

设置播放速度和音高缩放

1.0 为正常音高。较大的值会提高音高和播放速度。


float get_pitch_scale() const

返回当前播放速度和音高缩放

1.0 为默认音高, 0.5 降低一个八度, 2.0 升高一个八度。


void set_mix_target(mix_target: MixTarget)

设置混音目标。环绕输出下, MIX_TARGET_STEREO 路由到前置左右扬声器, MIX_TARGET_SURROUND 路由到所有扬声器位置, MIX_TARGET_CENTER 路由到中置和 LFE。


MixTarget get_mix_target() const

返回当前播放器用于向扬声器路由音频的混音目标。


void set_auto_play(enable: bool)

设置 auto_play 。自动播放会延迟到节点就绪后执行,在编辑器中不生效。


bool is_autoplay_enabled() const

返回是否启用了 auto_play 。


void set_preload_on_set_stream(enable: bool)

设置是否在赋值 stream 时立即预加载。


bool is_preload_on_set_stream_enabled() const

如果启用了赋值时预加载,则返回 true 。


void set_bus(bus: StringName)

设置下次创建播放通道时使用的总线。修改此值不会改变现有通道的路由。

在 FmodAudioBusLayout 中找不到该总线时,播放使用主通道组。


StringName get_bus() const

返回当前输出总线名称

默认值为 &"Master" 。