【发布时间】:2021-03-11 08:26:11
【问题描述】:
我正在尝试将第三方 JS 库用于某些 WebRTC 功能,并且我希望能够使用我已经在基于 Dart 的音频应用程序中生成的 MediaStreamTrack 对象。我遇到的问题是 Dart 中的 MediaStreamTrack 对象不是原生 JavaScript MediaStreamTrack 对象,当通过 JsObject.callMethod() 传递给 JS 时,它带有一个不显示预期方法的 DartObject 类型,并且MediaStreamTrack 的属性,使其在 JS 代码中不起作用。我首先尝试通过构造一个新的 JsObject 来传递给 JS 代码来解决这个问题,然后我将必要的公共方法/道具映射回原始 Dart MediaStreamTrack 的属性和方法。但是,我现在遇到了 JS 代码构造一个新的 MediaStream 对象的地方,将它希望我提供的 MediaStreamTrack 传递给它的构造函数。因此,当 JS 代码尝试创建 MediaStream 并获取这个不是真正的 JS MediaStreamTrack 的 JsObject 时,事情就会爆发。
我不确定我还能尝试什么。我在想象 Dart 类必须本质上“包装”这些原生 MediaStream 和 MediaStreamTrack 对象。而且我认为可能有一些方法可以访问那些在 JS 代码中使用的底层对象。但是我没有发现任何类似的东西,我怀疑我走错了方向。
【问题讨论】:
标签: javascript dart interop mediastream