Skip to main content

pryty_rustbrowser/
lib.rs

1// Example
2//
3// ```
4// use pryty_rustbrowser::*;
5//
6// fn App() -> Element {
7//     let rec = use_recording();
8//     let (name, set_name) = use_storage("username".to_string());
9//
10//     rsx! {
11//         button { onclick: move |_| rec.start(), "录音" }
12//         input { value: "{name}", oninput: move |e| set_name(e.value()) }
13//     }
14// }
15// ```
16// src/lib.rs
17mod audio;
18mod camera;
19mod clipboard;
20mod storage;
21
22pub use audio::{
23    use_recording,
24    AudioQualityConfig,
25    Recording,
26    RecordingError,
27    RecordingState,
28};
29pub use camera::{
30    use_camera,
31    Camera,
32    CameraError,
33    CameraQualityConfig,
34    CameraState,
35};
36pub use clipboard::{use_clipboard, Clipboard, ClipboardError};
37pub use storage::{read_storage, use_storage, write_storage, StorageError};
38/*
39use dioxus::prelude::*;
40use pryty_rustbrowser::{use_camera, use_clipboard, use_recording, use_storage};
41
42fn main() {
43    dioxus::launch(App);
44}
45
46#[component]
47fn App() -> Element {
48    let camera = use_camera();
49    let recording = use_recording();
50    let (name, set_name) = use_storage("username".to_string());
51    let clipboard = use_clipboard();
52
53    let on_copy = {
54        let name = name.clone();
55        move |_| {
56            clipboard.write(&name.read());
57        }
58    };
59
60    rsx! {
61        div {
62            h1 { "pryty-rustbrowser demo" }
63
64            div {
65                input {
66                    value: "{name}",
67                    oninput: move |e| set_name.call(e.value())
68                }
69                button { onclick: on_copy, "Copy Username" }
70            }
71
72            div {
73                button {
74                    onclick: move |_| camera.start.call(()),
75                    disabled: *camera.active.read(),
76                    "Start Camera"
77                    
78                }
79                button {
80                    onclick: move |_| camera.stop.call(()),
81                    disabled: !*camera.active.read(),
82                    "Stop Camera"
83                }
84                p { "camera active: {camera.active.read()}" }
85            }
86
87            div {
88                button {
89                    onclick: move |_| recording.start.call(()),
90                    disabled: *recording.active.read(),
91                    "Start Recording"
92                }
93                button {
94                    onclick: move |_| recording.start_with_quality.call(AudioQualityConfig::high()),
95                    "Start Recording"
96                }
97                button {
98                    onclick: move |_| recording.stop.call(()),
99                    disabled: !*recording.active.read(),
100                    "Stop Recording"
101                }
102                p { "recording active: {recording.active.read()}" }
103                p {
104                    "bytes: {
105                        recording
106                            .data
107                            .read()
108                            .as_ref()
109                            .map(|v| v.len().to_string())
110                            .unwrap_or_else(|| \"0\".to_string())
111                    }"
112                }
113            }
114        }
115    }
116} */