Day29 使用 addTransceiver 单向接收串流

前面我们使用 RTCPeerConnection.addTrack() 来把我们的音视讯传送给对方

const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: true })
stream.getTracks().forEach((track) => {
  peerConn.addTrack(track, localStream)
})

以上方案虽然很适合做音视讯的聊天通话,但如果我们的设备没有镜头及麦克风,我们只是想观看对方的视讯,就没办法使用以上的方法了!

如果要完成上述的功能需要使用 addTransceiver

rtpTransceiver = RTCPeerConnection.addTransceiver(trackOrKind, init);
  • trackOrKind: 要接收视讯就传 'video', 要接收音讯就传 'audio'
  • init 为一个 object 型态这边我们只用 direction 这个key

详细参数请参考 addTransceiver

范例

建立一个 PeerConnection 只接收音视讯

const configuration = {
  iceServers: [
    {
      urls: 'stun:stun.l.google.com:19302',
    },
  ],
}
peerConn = new RTCPeerConnection(configuration)

peerConn.addTransceiver('video', { direction: 'recvonly' })
peerConn.addTransceiver('audio', { direction: 'recvonly' })

从 Github 抓下来测试

完整内容可以参考 Github

❯ git clone https://github.com/tc3oliver/one-way-broadcasting.git
❯ cd one-way-broadcasting
❯ npm install
❯ node server.js

启动

发送端

接收端


<<:  D33 - 用 Swift 和公开资讯,打造投资理财的 Apps { 台股申购功能扩充.4 }

>>:  Day28 Let's ODOO: ODOO.sh

【C# 群益 API 开发教学】取得商品报价、Tick、最佳 5 档教学 #CH3 (附范例)

群益 API 是利用自己开发的程序,结合群益 API 在群益券商下单的一种方式,通常是做程序交易下单...

企划实现(6)

甚麽是第三方支付? 第三方支付是指电子商务企业或是具实力及信用保障的独立机构,与银行之间建立一个中立...

【心得】checkbox表单实作-待办清单

上一次介绍了各种表单的使用 那麽实战练习必不可少呀! 今天就演练演练自制待办清单吧 首先来看一下想做...

bind, call, apply

在未经过绑定的this会指向Windows Bind 使用Bind会return 一个functio...

Day 5 ( 入门 ) 转动的眼球

转动的眼球 教学原文参考:转动的眼球 这篇文章会介绍,如何在 Scratch 3 里使用重复无限次、...