use_display_media
Reactive mediaDevices.getDisplayMedia
streaming.
Demo
Usage
use leptos::prelude::*;
use leptos::logging::{log, error};
use leptos_use::{use_display_media, UseDisplayMediaReturn};
#[component]
fn Demo() -> impl IntoView {
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
.
Feature
This function is only available if the crate feature
use_display_media
is enabled