pub struct MovieManager { /* private fields */ }Expand description
Minimal movie state holder.
The original Siglus engine plays MOV via a native playback pipeline. Here we provide a deterministic, cross-platform metadata path:
- MPEG2 (
.mpg/.mpeg) viasiglus_assets::mpeg2 - OMV (
.omv) viasiglus_assets::omv
Implementations§
Source§impl MovieManager
impl MovieManager
pub fn new(project_dir: PathBuf) -> Self
pub fn current(&self) -> Option<&MovieInfo>
pub fn set_current_append_dir(&mut self, append_dir: impl Into<String>)
pub fn stop(&mut self)
pub fn prepare(&mut self, file_name: &str) -> Result<MovieInfo>
pub fn prepare_omv(&mut self, file_name: &str) -> Result<MovieInfo>
pub fn play( &mut self, file_name: &str, _wait: bool, _key_skip: bool, ) -> Result<MovieInfo>
Sourcepub fn ensure_asset(&mut self, file_name: &str) -> Result<(&MovieAsset, bool)>
pub fn ensure_asset(&mut self, file_name: &str) -> Result<(&MovieAsset, bool)>
Resolve and decode a movie asset into RGBA frames (cached).
pub fn ensure_omv_asset( &mut self, file_name: &str, ) -> Result<(&MovieAsset, bool)>
pub fn poll_asset( &mut self, file_name: &str, ) -> Result<Option<(&MovieAsset, bool)>>
pub fn poll_omv_asset( &mut self, file_name: &str, ) -> Result<Option<(&MovieAsset, bool)>>
pub fn poll_global_movie_frame( &mut self, file_name: &str, timer_ms: u64, ) -> Result<Option<MovieStreamFrame>>
pub fn poll_global_movie_frame_with_loop( &mut self, file_name: &str, timer_ms: u64, loop_flag: bool, ) -> Result<Option<MovieStreamFrame>>
pub fn ensure_preview_frame( &mut self, file_name: &str, ) -> Result<Arc<RgbaImage>>
pub fn ensure_omv_preview_frame( &mut self, file_name: &str, ) -> Result<Arc<RgbaImage>>
pub fn start_audio( &mut self, audio: &mut AudioHub, track: &MovieAudio, offset_ms: u64, ) -> Result<u64>
pub fn pause_audio(&mut self, id: u64)
pub fn resume_audio(&mut self, id: u64)
pub fn stop_audio(&mut self, id: u64)
pub fn audio_playback_finished(&mut self, id: u64) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MovieManager
impl !RefUnwindSafe for MovieManager
impl Send for MovieManager
impl !Sync for MovieManager
impl Unpin for MovieManager
impl UnsafeUnpin for MovieManager
impl !UnwindSafe for MovieManager
Blanket Implementations§
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.