feat: implement input stream support for web backends #1044
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements missing microphone/input support for WebAudio and Emscripten backends. Previously, calling any input-related methods would return empty results or panic.
Implementation
Uses
navigator.mediaDevices.getUserMedia()to request microphone access, then creates aMediaStreamAudioSourceNodeconnected to aScriptProcessorNodefor audio capture. The async getUserMedia Promise is handled viawasm_bindgen_futures::spawn_local(), allowing the synchronous API to return immediately while permission is requested in the background.Status
This is very preliminary and mostly untested code. Please test and report back here.