Function use_display_media

Source
pub fn use_display_media() -> UseDisplayMediaReturn<impl Fn() + Clone + Send + Sync, impl Fn() + Clone + Send + Sync>
Expand description

Reactive mediaDevices.getDisplayMedia streaming.

§Demo

Link to Demo

§Usage

let video_ref = NodeRef::<leptos::html::Video>::new();

let UseDisplayMediaReturn { stream, start, .. } = use_display_media();

start();

Effect::new(move |_|
    video_ref.get().map(|v| {
        match stream.get() {
            Some(Ok(s)) => v.set_src_object(Some(&s)),
            Some(Err(e)) => error!("Failed to get media stream: {:?}", e),
            None => log!("No stream yet"),
        }
    })
);

view! { <video node_ref=video_ref controls=false autoplay=true muted=true></video> }

§SendWrapped Return

The returned closures start and stop are sendwrapped functions. They can only be called from the same thread that called use_display_media.

§Server-Side Rendering

On the server calls to start or any other way to enable the stream will be ignored and the stream will always be None.