pub struct PreviewPlayer { /* private fields */ }Expand description
Thin builder for a (PlayerRunner, PlayerHandle) pair.
§Usage
ⓘ
let (mut runner, handle) = PreviewPlayer::open("clip.mp4")?.split();
runner.set_sink(Box::new(MySink::new()));
let handle_audio = handle.clone();
std::thread::spawn(move || { let _ = runner.run(); });
handle.seek(Duration::from_secs(30));
handle.play();
// cpal audio callback:
device.build_output_stream(&cfg, move |buf: &mut [f32], _| {
let s = handle_audio.pop_audio_samples(buf.len());
buf[..s.len()].copy_from_slice(&s);
}, ...);Implementations§
Source§impl PreviewPlayer
impl PreviewPlayer
Sourcepub fn open(path: impl AsRef<Path>) -> Result<Self, PreviewError>
pub fn open(path: impl AsRef<Path>) -> Result<Self, PreviewError>
Open a media file and prepare for playback.
Probes the file to detect audio/video streams, opens a
DecodeBuffer for the video stream (when present), and spawns a
background audio decode thread (when present). Returns
PreviewError if the file is missing or contains neither stream.
§Errors
Returns PreviewError if the file cannot be probed or decoded.
Sourcepub fn split(self) -> (PlayerRunner, PlayerHandle)
pub fn split(self) -> (PlayerRunner, PlayerHandle)
Consume self and return an exclusive PlayerRunner and a shared
PlayerHandle.
The runner owns the decode pipeline; move it to a background thread
and call PlayerRunner::run.
The handle is Clone + Send + Sync and can be shared freely.
§Panics
Never panics in practice — the internal clock is always Some when
split is first called.
Trait Implementations§
Source§impl Drop for PreviewPlayer
impl Drop for PreviewPlayer
Auto Trait Implementations§
impl !RefUnwindSafe for PreviewPlayer
impl !Sync for PreviewPlayer
impl !UnwindSafe for PreviewPlayer
impl Freeze for PreviewPlayer
impl Send for PreviewPlayer
impl Unpin for PreviewPlayer
impl UnsafeUnpin for PreviewPlayer
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