pub struct Video { /* private fields */ }Expand description
Currently only supported on Android DSL Usage
source - determines the source for the video playback, can be either:
Network { url: "https://www.someurl.com/video.mkv" }. On Android it supports: HLS, DASH, RTMP, RTSP, and progressive HTTP downloadsFilesystem { path: "/storage/.../DCIM/Camera/video.mp4" }. On Android it requires read permissions that must be granted at runtime.Dependency { path: dep("crate://self/resources/video.mp4") }. For in-memory videos loaded through LiveDependencies
thumbnail_source - determines the source for the thumbnail image, currently only supports LiveDependencies.
is_looping - determines if the video should be played in a loop. defaults to false.
hold_to_pause - determines if the video should be paused when the user hold the pause button. defaults to false.
autoplay - determines if the video should start playback when the widget is created. defaults to false.
Not yet supported:
UI
- Playback controls
- Progress/seek-to bar Widget API
- Seek to timestamp
- Option to restart playback manually when not looping.
- Hotswap video source,
set_source(VideoDataSource)only works if video is in Unprepared state.
Trait Implementations§
Source§impl ImageCacheImpl for Video
impl ImageCacheImpl for Video
fn get_texture(&self, _id: usize) -> &Option<Texture>
fn set_texture(&mut self, texture: Option<Texture>, _id: usize)
fn lazy_create_image_cache(&mut self, cx: &mut Cx)
fn load_png_from_data( &mut self, cx: &mut Cx, data: &[u8], id: usize, ) -> Result<(), ImageError>
fn load_jpg_from_data( &mut self, cx: &mut Cx, data: &[u8], id: usize, ) -> Result<(), ImageError>
fn image_size_by_data( data: &[u8], image_path: &Path, ) -> Result<(usize, usize), ImageError>
fn image_size_by_path(image_path: &Path) -> Result<(usize, usize), ImageError>
fn process_async_image_load( &mut self, cx: &mut Cx, image_path: &Path, result: Result<ImageBuffer, ImageError>, ) -> bool
fn load_image_from_cache( &mut self, cx: &mut Cx, image_path: &Path, id: usize, ) -> bool
fn load_image_from_data_async_impl( &mut self, cx: &mut Cx, image_path: &Path, data: Arc<Vec<u8>>, id: usize, ) -> Result<AsyncLoadResult, ImageError>
fn load_image_file_by_path_async_impl( &mut self, cx: &mut Cx, image_path: &Path, id: usize, ) -> Result<AsyncLoadResult, ImageError>
fn load_image_file_by_path_and_data( &mut self, cx: &mut Cx, data: &[u8], id: usize, image_path: &Path, ) -> Result<(), ImageError>
fn load_image_file_by_path( &mut self, cx: &mut Cx, image_path: &Path, id: usize, ) -> Result<(), ImageError>
fn load_image_dep_by_path( &mut self, cx: &mut Cx, image_path: &str, id: usize, ) -> Result<(), ImageError>
Source§impl LiveApplyReset for Video
impl LiveApplyReset for Video
Source§impl LiveApplyValue for Video
impl LiveApplyValue for Video
Source§impl LiveHook for Video
impl LiveHook for Video
fn after_new_from_doc(&mut self, cx: &mut Cx)
fn after_apply( &mut self, cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, _index: usize, _nodes: &[LiveNode], )
fn apply_value_unknown( &mut self, cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, index: usize, nodes: &[LiveNode], ) -> usize
fn skip_apply_animator( &mut self, _cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, _index: usize, _nodes: &[LiveNode], ) -> bool
fn apply_value_instance( &mut self, _cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, index: usize, nodes: &[LiveNode], ) -> usize
fn skip_apply( &mut self, _cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, _index: usize, _nodes: &[LiveNode], ) -> Option<usize>
fn before_apply( &mut self, _cx: &mut Cx, _apply: &mut Apply<'_, '_, '_>, _index: usize, _nodes: &[LiveNode], )
fn after_apply_from(&mut self, cx: &mut Cx, apply: &mut Apply<'_, '_, '_>)
fn after_update_from_doc(&mut self, _cx: &mut Cx)
fn after_apply_from_doc(&mut self, _cx: &mut Cx)
fn after_new_before_apply(&mut self, _cx: &mut Cx)
Source§impl LiveHookDeref for Video
impl LiveHookDeref for Video
Source§impl LiveNew for Video
impl LiveNew for Video
fn live_type_info(cx: &mut Cx) -> LiveTypeInfo
fn live_design_with(cx: &mut Cx)
fn new(cx: &mut Cx) -> Self
fn new_apply(
cx: &mut Cx,
apply: &mut Apply<'_, '_, '_>,
index: usize,
nodes: &[LiveNode],
) -> Selfwhere
Self: Sized,
fn new_apply_over(cx: &mut Cx, nodes: &[LiveNode]) -> Selfwhere
Self: Sized,
fn new_apply_mut_index(
cx: &mut Cx,
apply: &mut Apply<'_, '_, '_>,
index: &mut usize,
nodes: &[LiveNode],
) -> Selfwhere
Self: Sized,
fn new_from_ptr(cx: &mut Cx, live_ptr: Option<LivePtr>) -> Selfwhere
Self: Sized,
fn update_from_ptr(&mut self, cx: &mut Cx, live_ptr: Option<LivePtr>)
fn update_from_ptr_with_scope( &mut self, cx: &mut Cx, live_ptr: Option<LivePtr>, scope: &mut Scope<'_, '_>, )
fn new_from_ptr_with_scope(
cx: &mut Cx,
live_ptr: Option<LivePtr>,
scope: &mut Scope<'_, '_>,
) -> Selfwhere
Self: Sized,
fn new_main(cx: &mut Cx) -> Option<Self>where
Self: Sized,
fn register_main_module(cx: &mut Cx)
fn update_main(&mut self, cx: &mut Cx)
fn new_local(cx: &mut Cx) -> Selfwhere
Self: Sized,
fn new_from_module(
cx: &mut Cx,
module_id: LiveModuleId,
id: LiveId,
) -> Option<Self>where
Self: Sized,
fn update_from_module( &mut self, cx: &mut Cx, module_id: LiveModuleId, id: LiveId, )
Source§impl LiveRegister for Video
impl LiveRegister for Video
fn live_register(cx: &mut Cx)
Source§impl Widget for Video
impl Widget for Video
fn draw_walk( &mut self, cx: &mut Cx2d<'_, '_>, _scope: &mut Scope<'_, '_>, walk: Walk, ) -> DrawStep
fn handle_event( &mut self, cx: &mut Cx, event: &Event, scope: &mut Scope<'_, '_>, )
fn handle_event_with( &mut self, cx: &mut Cx, event: &Event, scope: &mut Scope<'_, '_>, _sweep_area: Area, )
fn widget(&self, path: &[LiveId]) -> WidgetRef
fn widgets(&self, paths: &[&[LiveId]]) -> WidgetSet
fn widget_uid(&self) -> WidgetUid
fn widget_to_data( &self, _cx: &mut Cx, _actions: &Actions, _nodes: &mut LiveNodeVec, _path: &[LiveId], ) -> bool
fn data_to_widget( &mut self, _cx: &mut Cx, _nodes: &[LiveNode], _path: &[LiveId], )
fn draw_3d( &mut self, _cx: &mut Cx3d<'_, '_>, _scope: &mut Scope<'_, '_>, ) -> DrawStep
fn draw_3d_all(&mut self, cx: &mut Cx3d<'_, '_>, scope: &mut Scope<'_, '_>)
fn draw(&mut self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>) -> DrawStep
fn draw_walk_all( &mut self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, walk: Walk, )
fn draw_all(&mut self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>)
fn draw_unscoped(&mut self, cx: &mut Cx2d<'_, '_>) -> DrawStep
fn draw_all_unscoped(&mut self, cx: &mut Cx2d<'_, '_>)
fn text(&self) -> String
fn set_text(&mut self, _cx: &mut Cx, _v: &str)
fn set_key_focus(&self, cx: &mut Cx)
fn key_focus(&self, cx: &Cx) -> bool
fn set_disabled(&mut self, _cx: &mut Cx, _disabled: bool)
fn disabled(&self, _cx: &Cx) -> bool
fn ref_cast_type_id(&self) -> LiveTypewhere
Self: 'static,
fn ui_runner(&self) -> UiRunner<Self>where
Self: Sized + 'static,
Source§impl WidgetNode for Video
impl WidgetNode for Video
fn area(&self) -> Area
fn walk(&mut self, _cx: &mut Cx) -> Walk
fn redraw(&mut self, cx: &mut Cx)
fn find_widgets( &self, path: &[LiveId], cached: WidgetCache, results: &mut WidgetSet, )
fn uid_to_widget(&self, uid: WidgetUid) -> WidgetRef
fn widget_design(&mut self) -> Option<&mut dyn WidgetDesign>
fn set_action_data(&mut self, _data: Arc<dyn ActionTrait>)
fn action_data(&self) -> Option<Arc<dyn ActionTrait>>
fn set_visible(&mut self, _cx: &mut Cx, _visible: bool)
fn visible(&self) -> bool
Auto Trait Implementations§
impl Freeze for Video
impl !RefUnwindSafe for Video
impl !Send for Video
impl !Sync for Video
impl Unpin for Video
impl !UnwindSafe for Video
Blanket Implementations§
Source§impl<T> AdaptiveViewWidgetExt for Twhere
T: Widget,
impl<T> AdaptiveViewWidgetExt for Twhere
T: Widget,
fn adaptive_view(&self, path: &[LiveId]) -> AdaptiveViewRef
Source§impl<T> BareStepSetWidgetExt for Twhere
T: Widget,
impl<T> BareStepSetWidgetExt for Twhere
T: Widget,
fn bare_step_set(&mut self, paths: &[&[LiveId]]) -> BareStepSet
Source§impl<T> BareStepWidgetExt for Twhere
T: Widget,
impl<T> BareStepWidgetExt for Twhere
T: Widget,
fn bare_step(&self, path: &[LiveId]) -> BareStepRef
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more