关于如何在使用wasm-bindgen的rust -> wasm流中使用现有的javascript web系统的文档是非常直接的。简言之:
// cargo.toml
[dependencies.web-sys]
version = "0.3.4"
features = [
'AudioContext',
'OscillatorNode'
]// lib.rs
#[wasm_bindgen]
impl FmOsc {
#[wasm_bindgen(constructor)]
pub fn new() -> Result<FmOsc, JsValue> {
let ctx = web_sys::AudioContext::new()?;
let primary = ctx.create_oscillator()?;
let fm_osc = ctx.create_oscillator()?;链接到全例
虽然这种方法适用于大多数web系统,但对于那些需要扩展类的系统,它并不是那么简单。在这种情况下,我试图使用wasm-bindgen
在标准用法中,您应该扩展AudioWorkletProcessor类,然后注册它。MDN实例
我如何处理这个问题?首先,我需要在Rust中扩展AudioWorkletProcessor (它不执行普通类和继承),重写它的process()函数。然后我需要确保registerProcessor()被注入我的生锈空间。
编辑:扩展上的WASM文档
https://stackoverflow.com/questions/63893000
复制相似问题