Skip to content

Commit ab51784

Browse files
committed
feat(web): Web Audio support for RDP web clients
Enables RDP web clients to receive and play PCM audio from remote sessions through the browser's native Web Audio API, supporting various sample rates. Highlights: - Web Audio API backend with AudioContext management and sample buffering - PCM sample rate conversion - Extension helpers for web client session integration - Error handling for audio context creation and playback failures
1 parent aafd452 commit ab51784

File tree

6 files changed

+882
-3
lines changed

6 files changed

+882
-3
lines changed

crates/ironrdp-web/Cargo.toml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ironrdp = { path = "../ironrdp", features = [
3434
"cliprdr",
3535
"svc",
3636
"displaycontrol",
37+
"rdpsnd",
3738
] }
3839
ironrdp-core.path = "../ironrdp-core"
3940
ironrdp-cliprdr-format.path = "../ironrdp-cliprdr-format"
@@ -46,7 +47,23 @@ iron-remote-desktop.path = "../iron-remote-desktop"
4647
# WASM
4748
wasm-bindgen = "0.2"
4849
wasm-bindgen-futures = "0.4"
49-
web-sys = { version = "0.3", features = ["HtmlCanvasElement"] }
50+
web-sys = { version = "0.3", features = [
51+
"HtmlCanvasElement",
52+
"AudioContext",
53+
"AudioBuffer",
54+
"AudioBufferSourceNode",
55+
"AudioDestinationNode",
56+
"AudioNode",
57+
"GainNode",
58+
"AudioParam",
59+
"AudioContextState",
60+
"BaseAudioContext",
61+
"EventTarget",
62+
"Event",
63+
"Document",
64+
"Window",
65+
"Navigator",
66+
] }
5067
js-sys = "0.3"
5168
gloo-net = { version = "0.6", default-features = false, features = ["websocket", "http", "io-util"] }
5269
gloo-timers = { version = "0.3", default-features = false, features = ["futures"] }

0 commit comments

Comments
 (0)