videoItem property
MovieEntity?
get
videoItem
Implementation
MovieEntity? get videoItem => _videoItem;
set
videoItem
(MovieEntity? value)
Implementation
set videoItem(MovieEntity? value) {
assert(!_isDisposed, '$this has been disposed!');
if (_isDisposed || identical(_videoItem, value)) return;
value?.validate();
if (isAnimating) {
stop();
}
if (value == null) {
clear();
}
_disposeAudioLayers();
if (_videoItem != null && _videoItem!.autorelease) {
_videoItem!.dispose();
}
_videoItem = value;
if (value != null) {
final movieParams = value.params;
int fps = movieParams.fps;
// avoid dividing by 0, use 20 by default
// see https://github.com/svga/SVGAPlayer-Web/blob/1c5711db068a25006316f9890b11d6666d531c39/src/videoEntity.js#L51
if (fps == 0) fps = 20;
duration = Duration(
microseconds: max(1, (movieParams.frames / fps * 1000000).round()),
);
for (final audio in value.audios) {
final layer = SVGAAudioLayer(audio, value);
layer.setVolume(_effectiveVolume);
_audioLayers.add(layer);
}
} else {
duration = Duration.zero;
}
// reset progress after videoitem changed
reset();
_canvasNeedsClear = value == null;
}