VideoStreamPlayback
继承: Resource < RefCounted < Object
VideoStream 使用的内部类,用于管理其在 VideoStreamPlayer 中的播放状态。
描述
该类旨在被具有 VideoStream 自定义实现的视频解码器扩展所覆盖。
方法
_get_channels() virtual const | |
_get_length() virtual const | |
_get_mix_rate() virtual const | |
_get_playback_position() virtual const | |
_get_texture() virtual const | |
_is_paused() virtual const | |
_is_playing() virtual const | |
void | _play() virtual |
void | |
void | _set_audio_track(idx: int) virtual |
void | _set_paused(paused: bool) virtual |
void | _stop() virtual |
void | |
mix_audio(num_frames: int, buffer: PackedFloat32Array = PackedFloat32Array(), offset: int = 0) |
方法说明
int _get_channels() virtual const 🔗
返回音频通道的数量。
float _get_length() virtual const 🔗
视频时长已知时返回视频时长,未知时返回 0。
int _get_mix_rate() virtual const 🔗
返回用于混音的音频采样率。
float _get_playback_position() virtual const 🔗
返回当前播放时间戳。获取 VideoStreamPlayer.stream_position 时会被调用。
Texture2D _get_texture() virtual const 🔗
分配一个 Texture2D,解码得到的视频帧会在其中绘制。
bool _is_paused() virtual const 🔗
返回暂停状态,由 _set_paused 设置。
bool _is_playing() virtual const 🔗
void _play() virtual 🔗
VideoStreamPlayer.autoplay 或 VideoStreamPlayer.play 时会被调用。请注意,手动播放在这个方法被调用前也可能多次调用 _stop。开始播放后 _is_playing 就应该返回 true。
void _seek(time: float) virtual 🔗
检索至第 time
秒。设置 VideoStreamPlayer.stream_position 时会被调用。
void _set_audio_track(idx: int) virtual 🔗
选择 idx
音轨。播放开始时,或者设置 VideoStreamPlayer.audio_track 时会被调用。
void _set_paused(paused: bool) virtual 🔗
设置视频播放的暂停状态。_is_paused 必须返回 paused
。设置 VideoStreamPlayer.paused 时会被调用。
void _stop() virtual 🔗
停止播放。可能在 _play 多次调用,也可能与 VideoStreamPlayer.stop 对应。停止后 _is_playing 应返回 false。
void _update(delta: float) virtual 🔗
将视频播放推进 delta
秒。只要 _is_paused 和 _is_playing 返回 true,就会为每一帧调用。
int mix_audio(num_frames: int, buffer: PackedFloat32Array = PackedFloat32Array(), offset: int = 0) 🔗
从数组中的索引 offset
开始,从 buffer
渲染 num_frames
个音频帧(每帧 _get_channels 个浮点数)。返回渲染的音频帧数,如果出错则返回 -1。