Module workflow_nw::media

source ·
Expand description

Media control helpers

§Synopsis

use workflow_log::log_info;
use workflow_nw::prelude::*;
use workflow_nw::result::Result;
use nw_sys::prelude::OptionsTrait;

fn choose_desktop_media()->Result<()>{
    // create Application instance
    let app = Application::new()?;

    // choose desktop media
    app.choose_desktop_media(
        nw_sys::screen::MediaSources::ScreenAndWindow,
        move |stream_id: Option<String>|->Result<()>{
            if let Some(stream_id) = stream_id{
                render_media(stream_id)?;
            }
            Ok(())
        }
    )?;
     
    Ok(())
}

fn render_media(stream_id:String)->Result<()>{
    log_info!("stream_id: {:?}", stream_id);
      
    let video_element_id = "video_el".to_string();
    let video_constraints = VideoConstraints::new()
        .source_id(&stream_id)
        .max_height(1000);

    workflow_nw::media::render_media(
        video_element_id,
        video_constraints,
        None,
        move |stream|->Result<()>{
            workflow_nw::application::app().unwrap().set_media_stream(stream)?;
            Ok(())
        }
    )?;
      
    Ok(())
}

Structs§

Enums§

Functions§