经过WebRTC实现实时视频通讯(二)

经过WebRTC实现实时视频通讯(一)html

经过WebRTC实现实时视频通讯(二)html5

经过WebRTC实现实时视频通讯(三)web

在上一篇文章中,咱们讲解了WebRTC的概述、历史、安全性和开发者工具。接下来咱们经过WebRTC的三个API来具体的讲解构建WebRTC的流程,这篇文章会对MediaStream进行讲解。数组

MediaStream (别名 getUserMedia)

MediaStream API 表明媒体数据流的同步。举个例子,从相机获取的视频流的同步和跟踪。安全

理解MediaStream最简单的方法应该就是看看它的实际应用:网络

  1. 在Chrome或Opera中, 打开这个demo simpl.info/gumide

  2. 打开命令行。工具

  3. 查看全局范围的数据流变量。命令行

每一个MediaStream都有一个输入,这个输入能够理解成MediaStream生成的一个导航器。getUserMedia()能够传输视频元素或者是RTCPeerConnection。视频

getUserMedia()方法有三个参数:

  • 一个 约束对象

  • 一个成功的回调,若是成功会回传一个MediaStream

  • 一个失败的回调,若是失败会回传一个error对象。

每一个MediaStream都有一个标签,像'Xk7EuLhsuHKbnjLWkW4yYGNJJ8ONsgwHBvLQ'同样,getAudioTradks()和getAudioTracks()方法会回传一个MediaStreamTracks对象的数组。

针对 simpl.info/gum 这 个例子来讲,stream.getAudioTracks() 返回了一个空数组 (由于没有音频) , 假设已经有一个摄像头链接成 功,getVideoTracks()会返回一个MediaStreamTrack对象的数组, 这个数组表明从摄像头获得的数据流。每一个 MediaStreamTrack都有一个类型 ('video' 或 'audio'), 和一个标签(表明一个或多个频道的音频或视频),在这个例子 中,只有video track,可是很容易想象到能够用到这个例子的地方,好比一个聊天应用程序的前置摄像头、后置摄像头,一个屏幕分享软件等等。

在Chrome或Opera中, URL.createObjectURL() 方法把MediaStream 转换成了一个 Blob URL,Blob URL能够当作一个视频元素的src。 (在Firefox和Opera中,视频的src能够经过数据流自己设定)。

getUserMedia 也能够做为网络音频API的输入节点

。。。。。

原文来自:经过WebRTC实现实时视频通讯(二)

相关文章
相关标签/搜索