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 🔗
返回由调用 _play() 和 _stop() 决定的播放状态。
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 required 🔗
将视频播放推进 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。