build: 🚚 moving to workspace structure
This commit is contained in:
parent
0f34554797
commit
7434d131c4
9 changed files with 72 additions and 29 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,4 +1,4 @@
|
||||||
/target
|
**/target
|
||||||
/dist
|
**/dist
|
||||||
|
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
|
|
28
Cargo.toml
28
Cargo.toml
|
@ -1,22 +1,8 @@
|
||||||
[package]
|
[workspace]
|
||||||
name = "rust_communication"
|
members = [
|
||||||
version = "0.1.0"
|
"client",
|
||||||
edition = "2024"
|
"server",
|
||||||
|
]
|
||||||
|
|
||||||
[dependencies]
|
[workspace.dependencies]
|
||||||
console_error_panic_hook = "0.1.7"
|
serde = "1.0.219"
|
||||||
leptos = { version = "0.7.8", features = ["csr"] }
|
|
||||||
wasm-bindgen-futures = "0.4.50"
|
|
||||||
web-sys = { version = "0.3.77", features = ["AudioBuffer", "AudioBufferSourceNode", "AudioContext", "HtmlAudioElement","MediaDevices", "MediaStream", "MediaStreamConstraints", "MediaStreamTrack", "Navigator", "Window"] }
|
|
||||||
|
|
||||||
[profile]
|
|
||||||
|
|
||||||
[profile.wasm-dev]
|
|
||||||
inherits = "dev"
|
|
||||||
opt-level = 1
|
|
||||||
|
|
||||||
[profile.server-dev]
|
|
||||||
inherits = "dev"
|
|
||||||
|
|
||||||
[profile.android-dev]
|
|
||||||
inherits = "dev"
|
|
||||||
|
|
22
client/Cargo.toml
Normal file
22
client/Cargo.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[package]
|
||||||
|
name = "rust_communication"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
console_error_panic_hook = "0.1.7"
|
||||||
|
leptos = { version = "0.7.8", features = ["csr"] }
|
||||||
|
wasm-bindgen-futures = "0.4.50"
|
||||||
|
web-sys = { version = "0.3.77", features = ["AudioBuffer", "AudioBufferSourceNode", "AudioContext", "HtmlAudioElement","MediaDevices", "MediaStream", "MediaStreamConstraints", "MediaStreamTrack", "MediaTrackConstraints", "MediaTrackConstraintSet", "Navigator", "Window"] }
|
||||||
|
|
||||||
|
[profile]
|
||||||
|
|
||||||
|
[profile.wasm-dev]
|
||||||
|
inherits = "dev"
|
||||||
|
opt-level = 1
|
||||||
|
|
||||||
|
[profile.server-dev]
|
||||||
|
inherits = "dev"
|
||||||
|
|
||||||
|
[profile.android-dev]
|
||||||
|
inherits = "dev"
|
|
@ -8,7 +8,7 @@ use leptos::{
|
||||||
};
|
};
|
||||||
use wasm_bindgen_futures::JsFuture;
|
use wasm_bindgen_futures::JsFuture;
|
||||||
use web_sys::{
|
use web_sys::{
|
||||||
HtmlAudioElement, MediaStream, MediaStreamConstraints,
|
HtmlAudioElement, MediaStream, MediaStreamConstraints, MediaStreamTrack, MediaTrackConstraints,
|
||||||
wasm_bindgen::{JsCast, JsValue},
|
wasm_bindgen::{JsCast, JsValue},
|
||||||
window,
|
window,
|
||||||
};
|
};
|
||||||
|
@ -43,16 +43,42 @@ pub fn app() -> impl IntoView {
|
||||||
|
|
||||||
async fn media() -> MediaStream {
|
async fn media() -> MediaStream {
|
||||||
let media_devices = window().unwrap().navigator().media_devices().unwrap();
|
let media_devices = window().unwrap().navigator().media_devices().unwrap();
|
||||||
let constraints = MediaStreamConstraints::new();
|
let media_stream_constraints = MediaStreamConstraints::new();
|
||||||
constraints.set_audio(&JsValue::TRUE);
|
let media_track_constraints = MediaTrackConstraints::new();
|
||||||
|
|
||||||
|
media_stream_constraints.set_audio(&JsValue::TRUE);
|
||||||
|
|
||||||
|
media_track_constraints.set_echo_cancellation(&JsValue::FALSE);
|
||||||
|
media_track_constraints.set_noise_suppression(&JsValue::FALSE);
|
||||||
|
media_track_constraints.set_auto_gain_control(&JsValue::FALSE);
|
||||||
|
|
||||||
let media_stream_promise = media_devices
|
let media_stream_promise = media_devices
|
||||||
.get_user_media_with_constraints(&constraints)
|
.get_user_media_with_constraints(&media_stream_constraints)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let media_stream = JsFuture::from(media_stream_promise)
|
let media_stream = JsFuture::from(media_stream_promise)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.dyn_into::<MediaStream>()
|
.dyn_into::<MediaStream>()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let audio_tracks = media_stream.get_audio_tracks();
|
let audio_stream_tracks = media_stream.get_audio_tracks();
|
||||||
MediaStream::new_with_tracks(&audio_tracks).unwrap()
|
let audio_stream_tracks = audio_stream_tracks
|
||||||
|
.iter()
|
||||||
|
.map(|audio_track| audio_track.dyn_into::<MediaStreamTrack>().unwrap())
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
log!(
|
||||||
|
"{:#?}\n audio_stream_track_count = {}",
|
||||||
|
audio_stream_tracks,
|
||||||
|
audio_stream_tracks.len()
|
||||||
|
);
|
||||||
|
let audio_stream_track = audio_stream_tracks.first().unwrap();
|
||||||
|
let audio_stream_track_apply_constraints_promise = audio_stream_track
|
||||||
|
.apply_constraints_with_constraints(&media_track_constraints)
|
||||||
|
.unwrap();
|
||||||
|
JsFuture::from(audio_stream_track_apply_constraints_promise)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let audio_stream = MediaStream::new().unwrap();
|
||||||
|
log!("{:#?}", audio_stream_track.get_constraints());
|
||||||
|
audio_stream.add_track(audio_stream_track);
|
||||||
|
audio_stream
|
||||||
}
|
}
|
6
server/Cargo.toml
Normal file
6
server/Cargo.toml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[package]
|
||||||
|
name = "server"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
3
server/src/main.rs
Normal file
3
server/src/main.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue