webRTC API
WebRTC API
包括媒体捕获、音频视频的编码和解码、传输层和会话管理。
getUserMedia()
:捕获音频和视频。MediaRecorder
:录制音频和视频。RTCPeerConnection
:在用户之间传输音频和视频。RTCDataChannel
:用户之间的流数据。
1.媒体捕获MediaStream(又名getUserMedia)
MediaStream
接口是一个媒体内容的流.,一个流包含几个轨道,比如视频和音频轨道。作用是从用户本地摄像机和麦克风访问媒体流。getUserMedia()
方法是访问本机输入设备的主要方式。
第一步是访问用户设备的摄像头和麦克风。我们检测可用设备的类型,获得用户访问这些设备的权限,并管理数据流。
注意:
- 实时音视频以流对象的形式表示
- 通过询问用户是否授权,有安全控制,只允许授予一次权限,此后不再要求访问
- 输入设备选择由
mediaStream
处理 - 每个
mediaStream
对象包括几个mediaStreamTRack
对象,代表来自不同设备的音视频 - 每个
mediaStreamTrack
对象可能包括几个信道(左声道和右声道) - 两种方法输出
mediaStream
对象。首先将音视频输出显示,设置srcObject
属性将MediaStream
附加到视频元素,然后将输出发送到RTCPeerConnection
对象,然后传送到远程对象。
(1)获取本地媒体流,并检测浏览器是否支持
navigator.mediaDevices.getUserMedia = navigator.mediaDevices.getUserMedia ||
navigator