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

6 files changed

Lines changed: 882 additions & 3 deletions

File tree

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)