首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将AudioWorkletProcessor扩展到wasm bindgen?

将AudioWorkletProcessor扩展到wasm bindgen?
EN

Stack Overflow用户
提问于 2020-09-14 23:20:27
回答 1查看 296关注 0票数 1

关于如何在使用wasm-bindgen的rust -> wasm流中使用现有的javascript web系统的文档是非常直接的。简言之:

  1. 将所需的特性作为依赖项列出
代码语言:javascript
复制
// cargo.toml

[dependencies.web-sys]
version = "0.3.4"
features = [
  'AudioContext',
  'OscillatorNode'
]
  1. 通过web_sys进行访问,并在那里将它们视为正常。
代码语言:javascript
复制
// 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文档

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-15 15:45:25

您必须在JavaScript方面这样做。wasm-bindgen不支持扩展导入的类并将它们再导出到JavaScript;但是,它们最终想要支持它,并且有一个跟踪它的问题和一个相关的RFC

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63893000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档