use_user_media
Reactive mediaDevices.getUserMedia streaming.
Demo
Usage
use leptos::prelude::*;
use leptos::logging::{log, error};
use leptos_use::{use_user_media, UseUserMediaReturn};
#[component]
fn Demo() -> impl IntoView {
let video_ref = NodeRef::<leptos::html::Video>::new();
let UseUserMediaReturn { stream, start, .. } = use_user_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> }
}
Server-Side Rendering
Make sure you follow the instructions in 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_user_mediais enabled
Types
struct UseUserMediaOptionsstruct UseUserMediaReturnenum ConstraintExactIdealenum ConstraintRangeenum FacingModeenum AudioConstraintsenum VideoConstraintsstruct VecMarkerstruct AudioTrackConstraintsstruct VideoTrackConstraints