AudioStreamPlayback

继承: RefCounted < Object

派生: AudioStreamPlaybackInteractive, AudioStreamPlaybackPlaylist, AudioStreamPlaybackPolyphonic, AudioStreamPlaybackResampled, AudioStreamPlaybackSynchronized

用于播放音频的元类。

描述

可以播放、循环、暂停滚动音频。有关用法,请参阅AudioStreamAudioStreamOggVorbis

方法

int

_get_loop_count() virtual const

Variant

_get_parameter(name: StringName) virtual const

float

_get_playback_position() virtual const

bool

_is_playing() virtual const

int

_mix(buffer: AudioFrame*, rate_scale: float, frames: int) virtual

void

_seek(position: float) virtual

void

_set_parameter(name: StringName, value: Variant) virtual

void

_start(from_pos: float) virtual

void

_stop() virtual

void

_tag_used_streams() virtual

int

get_loop_count() const

float

get_playback_position() const

AudioSamplePlayback

get_sample_playback() const

bool

is_playing() const

PackedVector2Array

mix_audio(rate_scale: float, frames: int)

void

seek(time: float = 0.0)

void

set_sample_playback(playback_sample: AudioSamplePlayback)

void

start(from_pos: float = 0.0)

void

stop()


方法说明

int _get_loop_count() virtual const 🔗

可覆盖的方法。应该返回这个音频流循环了多少次。大多数内置播放总是返回0


Variant _get_parameter(name: StringName) virtual const 🔗

按名称返回播放参数的当前值(参见AudioStream._get_parameter_list())。


float _get_playback_position() virtual const 🔗

可覆盖的方法。应该返回音频流的当前进度,以秒为单位。


bool _is_playing() virtual const 🔗

可覆盖的方法。如果此播放处于活动状态并播放其音频流,则应返回true


int _mix(buffer: AudioFrame*, rate_scale: float, frames: int) virtual 🔗

重写此方法以自定义音频流的混合方式。即使播放未激活,也会调用此方法。

注意:在S3Script或C#中覆盖此方法没有用。只有S3Extension可以利用它。


void _seek(position: float) virtual 🔗

重写此方法以自定义在给定position查找此音频流时会发生什么,例如调用AudioStreamPlayer.seek()


void _set_parameter(name: StringName, value: Variant) virtual 🔗

按名称设置播放参数的当前值(参见AudioStream._get_parameter_list())。


void _start(from_pos: float) virtual 🔗

重写此方法以自定义在给定位置开始播放时会发生什么,例如通过调用AudioStreamPlayer.play()


void _stop() virtual 🔗

重写此方法以自定义播放停止时会发生什么,例如调用AudioStreamPlayer.stop()


void _tag_used_streams() virtual 🔗

可覆盖的方法。如果播放处于活动状态并且AudioServer.set_enable_tagging_used_audio_streams()已设置为true,则在混合音频流时调用。编辑器插件可以使用此方法“标记”音频流的当前位置并在预览中显示它。


int get_loop_count() const 🔗

返回流循环的次数。


float get_playback_position() const 🔗

返回流中的当前位置,以秒为单位。


AudioSamplePlayback get_sample_playback() const 🔗

实验性: 未来版本中可能会修改或移除该方法。

返回与此AudioStreamPlayback关联的AudioSamplePlayback,用于播放此流的音频样本。


bool is_playing() const 🔗

如果流正在播放,则返回true


PackedVector2Array mix_audio(rate_scale: float, frames: int) 🔗

rate_scale的速率从当前位置混合来自流的音频,推进流。

返回一个PackedVector2Array,其中每个元素保存每帧的左右通道音量级别。

注意:可以返回比请求更少的帧,请确保使用返回值的大小。


void seek(time: float = 0.0) 🔗

在给定time处查找流,以秒为单位。


void set_sample_playback(playback_sample: AudioSamplePlayback) 🔗

实验性: 未来版本中可能会修改或移除该方法。

AudioSamplePlayback关联到此AudioStreamPlayback以播放此流的音频样本。


void start(from_pos: float = 0.0) 🔗

从给定的from_pos开始流,以秒为单位。


void stop() 🔗

停止流。