Web APIs

您所在的位置:网站首页 实时数据流传输 Web APIs

Web APIs

2023-03-10 02:27| 来源: 网络整理| 查看: 265

WebRTC API

WebRTC(Web 实时通信)是一种技术,它使 Web 应用程序和站点能够捕获和可选地流式传输音频和/或视频媒体,以及在不需要中介的情况下在浏览器之间交换任意数据。包含 WebRTC 的一组标准使得共享数据和执行点对点电话会议成为可能,而无需用户安装插件或任何其他第三方软件。

WebRTC由多个相互关联的API和协议组成,这些API和协议共同工作以实现这一目标。你在这里找到的文档将帮助你了解WebRTC的基本原理,如何设置和使用数据和媒体连接等。

Interoperability

由于 WebRTC 的实现仍在不断发展,并且每个浏览器对编解码器和 WebRTC 功能的支持程度不同,因此在开始编写代码之前,您应该强烈考虑使用Google 提供的 Adapter.js 库。

Adapter.js 使用 shims 和 polyfills 来消除支持它的环境中 WebRTC 实现之间的差异。Adapter.js 还处理前缀和其他命名差异,使整个 WebRTC 开发过程更容易,结果更广泛兼容。该库也可作为 NPM 包使用。

要了解有关 Adapter.js 的更多信息,请参阅使用 WebRTC adapter.js 提高兼容性。

WebRTC的概念和用法

WebRTC 有多种用途;与Media Capture 和 Streams API 一起,它们为 Web 提供强大的多媒体功能,包括支持音频和视频会议、文件交换、屏幕共享、身份管理以及与传统电话系统的接口,包括支持发送DTMF(按键拨号)信号。可以在不需要任何特殊驱动程序或插件的情况下建立对等点之间的连接,并且通常可以在没有任何中间服务器的情况下建立。

两个对等点之间的连接由 RTCPeerConnection 接口表示。一旦使用 RTCPeerConnection 建立并打开连接,就可以将媒体流( MediaStream )和/或数据通道( RTCDataChannel )添加到连接中。

媒体流可以包含任意数量的媒体信息轨道;由基于 MediaStreamTrack 接口的对象表示的轨道可能包含多种类型的媒体数据之一,包括音频,视频和文本(例如,字幕甚至章节名称)。大多数流至少包括一个音频轨道,也可能包括一个视频轨道,并且可以用于发送和接收实时媒体或存储的媒体信息(例如流电影)。

您还可以使用两个对等方之间的连接来使用 RTCDataChannel 接口交换任意二进制数据。它可以用于反向通道信息,元数据交换,游戏状态数据包,文件传输,甚至可以用作数据传输的主要通道。

需要更多详细信息和相关指南和教程的链接

WebRTC reference

由于WebRTC提供的接口可以共同完成各种任务,我们将参考资料按类别划分。请看侧边栏中按字母顺序排列的列表。

连接设置和管理

这些接口、字典和类型被用来设置、打开和管理WebRTC连接。包括代表对等媒体连接的接口、数据通道,以及在交换每个对等体的能力信息时使用的接口,以便为双向媒体连接选择可能的最佳配置。

Interfaces RTCPeerConnection

代表本地计算机和远程对等体之间的WebRTC连接。它用于处理两个对等体之间的高效数据流。

RTCDataChannel

表示连接的两个对等体之间的双向数据通道。

RTCDataChannelEvent

表示将 RTCDataChannel 附加到 RTCDataChannel 时 RTCPeerConnection 的事件。使用此接口发送的唯一事件是 datachannel 。

RTCSessionDescription

代表会话的参数。每个 RTCSessionDescription 包含一个描述 type ,该类型指示它描述的提议/答案协商过程的哪一部分以及会话的SDP描述符。

RTCStatsReport

提供连接或连接上单个轨道的详细统计信息;该报告可以通过调用 RTCPeerConnection.getStats() 获得。有关使用 WebRTC 统计的详细信息可以在WebRTC Statistics API 中找到。

RTCIceCandidate

表示用于建立 RTCPeerConnection 的候选交互式连接建立 ( ICE ) 服务器。

RTCIceTransport

表示有关ICE传输的信息。

RTCPeerConnectionIceEvent

表示与目标相关的 ICE 候选发生的事件,通常是 RTCPeerConnection 。只有一个事件属于这种类型: icecandidate 。

RTCRtpSender

管理 RTCPeerConnection 上 MediaStreamTrack 的数据编码和传输。

RTCRtpReceiver

管理 RTCPeerConnection 上 MediaStreamTrack 的数据接收和解码。

RTCTrackEvent

用于表示该接口 track 事件,其指示 RTCRtpReceiver 对象加入到 RTCPeerConnection 对象,表明新的传入 MediaStreamTrack 被创建并添加到 RTCPeerConnection 。

RTCSctpTransport

提供描述流控制传输协议(SCTP)传输的信息,还提供一种访问基础数据报传输层安全性(DTLS)传输的方法,通过该方法发送和接收所有 RTCPeerConnection 数据通道的SCTP数据包。

Dictionaries RTCIceServer

定义如何连接到单个ICE服务器(例如STUN或TURN服务器)。

RTCRtpContributingSource

包含有关给定贡献源(CSRC)的信息,包括该源贡献的数据包最近一次播放的时间。

Events bufferedamountlow

数据通道当前缓冲的数据量(由其 bufferedAmount 属性指示)已减少到等于或低于通道的最小缓冲数据大小,由 bufferedAmountLowThreshold 指定。

close

数据通道已完成关闭过程,现在处于 closed 状态。此时其底层数据传输已完全关闭。您可以通过监视 closing 事件在关闭完成之前收到通知。

closing

该 RTCDataChannel 已转变为 closing 状态,这表明它即将关闭。您可以通过观察 close 事件来检测关闭过程的完成。

connectionstatechange

可以在 connectionState 中访问的连接状态已更改。

datachannel

在远程对等方打开新数据通道后,新的 RTCDataChannel 可用。此事件的类型是 RTCDataChannelEvent 。

error

指示数据通道上发生错误的 RTCErrorEvent 。

error

一个 RTCErrorEvent 表明在发生错误 RTCDtlsTransport 。此错误将是 dtls-failure 或 fingerprint-failure 。

gatheringstatechange

该 RTCIceTransport 的聚集状态发生了变化。

icecandidate

一个 RTCPeerConnectionIceEvent 每当本地设备已经识别一个新的候选ICE需要由调用被添加到本地对等被发送 setLocalDescription() 。

icecandidateerror

一个 RTCPeerConnectionIceErrorEvent 指示在收集 ICE 候选时发生错误。

iceconnectionstatechange

当它的 ICE 连接状态(在 iceconnectionstate 属性中找到)发生变化时发送到 RTCPeerConnection 。

icegatheringstatechange

当它的 ICE 收集状态(在 icegatheringstate 属性中找到)发生变化时发送到 RTCPeerConnection 。

message

已在数据通道上接收到一条消息。该事件的类型为 MessageEvent 。

negotiationneeded

通过调用 createOffer() 后跟 setLocalDescription() 通知 RTCPeerConnection 它需要执行会话协商。

open

RTCDataChannel 的底层数据传输已成功打开或重新打开。

selectedcandidatepairchange

当前选择的 ICE 候选对已针对触发事件的 RTCIceTransport 更改。

track

该 track 事件,类型 RTCTrackevent 被发送到 RTCPeerConnection 当一个新的轨道被添加到下面的媒体流的成功谈判的连接。

signalingstatechange

当它的 signalingstate 改变时发送到对等连接。这是调用 setLocalDescription() 或 setRemoteDescription() 的结果。

statechange

RTCDtlsTransport 的状态已更改。

statechange

RTCIceTransport 的状态已更改。

statechange

RTCSctpTransport 的状态已更改。

Types RTCSctpTransport.state

指示 RTCSctpTransport 实例的状态。

身份和安全

这些API用于管理用户身份和安全,以便对用户进行连接认证。

RTCIdentityProvider

使用户代理能够请求生成或验证身份断言。

RTCIdentityAssertion

表示当前连接的远程对等方的身份。如果尚未设置和验证对等点,则此接口返回 null 。一旦设置就无法更改。

RTCIdentityProviderRegistrar

注册一个身份提供者(idP)。

RTCCertificate

表示 RTCPeerConnection 用于认证的证书。

Telephony

这些接口和事件与公共交换电话网络(PTSN)的交互性有关。它们主要用于将音调拨号的声音或代表这些音调的数据包通过网络发送到远程对等体。

Interfaces RTCDTMFSender

管理 RTCPeerConnection 的双音多频 ( DTMF ) 信令的编码和传输。

RTCDTMFToneChangeEvent

由 tonechange 事件使用以指示DTMF 音已开始或结束。此事件不会冒泡(除非另有说明)且不可取消(除非另有说明)。

Events tonechange

新的DTMF音调已经开始通过连接播放,或者 RTCDTMFSender 的 toneBuffer 中的最后一个音调已经发送并且缓冲区现在是空的。事件的类型是 RTCDTMFToneChangeEvent 。

© 2005–2021 MDN contributors.Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later. https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API Web APIs Point 废弃的。该功能不再被推荐。 WebOTP API 安全上下文。该功能仅在上下文(HTTPS)中可用,部分或所有支持的浏览器。 Guides 本文介绍了WebRTC API所基于的协议。 使用WebRTC adapter.js提高兼容性 WebRTC 适配器是 JavaScript shim,可让您编写符合规范的代码,并在所有支持的浏览器中“正常工作”。

1 … 5432 5433 5434 5435 5436 … 6050 Next



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3