You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin/JS中无需自行声明类即可正常使用RTCPeerConnection?

解决方案

方案1:使用Kotlin官方维护的浏览器API绑定(推荐)

JetBrains官方已经维护了完整的浏览器原生API的Kotlin/JS外部声明,直接引入依赖就可以开箱即用WebRTC所有能力,完全保留类型安全和智能提示:

  1. 在build.gradle.kts的依赖块中添加kotlin-browser包:
implementation("org.jetbrains.kotlin-wrappers:kotlin-browser:1.0.0-pre.630") // 可替换为最新版本
  1. 同步项目后即可直接实例化RTCPeerConnection,示例代码:
val config = RTCConfiguration(
    iceServers = listOf(RTCIceServer(urls = listOf("stun:stun.l.google.com:19302")))
)
val peerConnection = RTCPeerConnection(config)

所有WebRTC相关的接口、方法、类型都已经内置,不需要额外声明或依赖其他NPM包。

方案2:补全现有@types/webrtc生成的声明

如果不想引入全量浏览器API绑定,只需要在Dukat生成的@types/webrtc声明基础上,额外补充一行构造函数声明即可解决接口无法实例化的问题:

// 导入Dukat生成的RTCPeerConnection接口
import web.RTCPeerConnection
// 补充全局构造函数声明
external val RTCPeerConnection: JsClass<RTCPeerConnection>

补充后就可以正常实例化,原有自动生成的所有类型声明、智能提示都完全保留,不需要手动重写整个RTC规范。


内容的提问来源于stack exchange,提问作者Some random IT boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:54:02