通过WebRTC实现实时视频通信(二)
2014-09-23 16:36
706 查看
在上一篇文章中,我们讲解了WebRTC的概述、历史、安全性和开发者工具。接下来我们通过WebRTC的三个API来具体的讲解构建WebRTC的流程,这篇文章会对MediaStream进行讲解。
MediaStream (别名 getUserMedia)
MediaStream API 代表媒体数据流的同步。举个例子,从相机获取的视频流的同步和跟踪。理解MediaStream最简单的方法应该就是看看它的实际应用:
在Chrome或Opera中, 打开这个demo simpl.info/gum。
打开命令行。
查看全局范围的数据流变量。
每个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实现实时视频通信(二)
相关文章推荐
- 通过WebRTC实现实时视频通信(二)
- 通过WebRTC实现实时视频通信(二)
- 通过WebRTC实现实时视频通信(三)
- 通过WebRTC实现实时视频通信(一)
- 通过WebRTC实现实时视频通信(三)
- 通过WebRTC实现实时视频通信(一)
- 通过WebRTC实现实时视频通信(三)
- 通过WebRTC实现实时视频通信(一)
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输1
- WebRTC 整理 (安卓IOS微信端实现实时视频通话)
- WCF服务通过TCP实时监控客户端状态,并可以向客户端广播推送消息,实现双向通信
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)
- Android平台下通过JNI快速实现音视频通信
- Laravel通过Guzzel使用LeanCloud实现 实时通信
- 通过 SignalR 类库,实现 ASP.NET MVC 的实时通信
- WebRtc音视频实时通信--NACK丢包重传消息格式详解
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)
- iOS下音视频通信的实现-基于WebRTC