在上一篇文章中,我们讲解了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 JavaScript API为例,使用WebRTC实现实时通信 1. 介绍WebRTC整体架构,WebRTC JavaScript API 2. 如何获取webcam摄像头音视频数据 3. WebRTC peer之间建联流程 4. 介绍WebRTC信令,使用socket.IO...
jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo
WEBRTC多人视频通话,可以支持多人视频通话,目前是三人的,因为视频通话的信令用到的是websocket,所以代码里面也放入了单独websocket通信的demo,解释也比较详细了,原来有一个列子是两人的,后面改成三人的,多人...
webRTC技术的应用,通过启动浏览器调用设备的视频和音频流实现实时通信。
基于WebRTC技术的多人视频通信系统,才鑫,双锴,WebRTC技术使浏览器具备了实时音视频通信能力,开发者通过调用其API,可以实现一对一的WebRTC连接,完成音视频通信。目前,已经有很多
本课程讲述如何使用OC 实现1V1 Android端实时音视频通信包括如何使用nodejs开发WebSocket信令服务器理解WebRTC媒体的交互流程coturn服务器搭建Android音视频客户端开发
SipSorcery WPF实现(用于C#和.NET的WebRTC、SIP和VoIP库 专为实时通信应用程序设计)
android 实现webrtc,示例 github 资源的google开源的webrtc 视频通信对话 协议 rtp / rtcp webview 等 ,视频,聊天等
一种实现WebRTC和IMS之间视频会议的解决方案,宋洋,双锴,WebRTC技术是一项在浏览器内部进行实时视频和音频通信的技术。通过该项技术,开发Web的实时通信技术只需要调用简单的JavaScr&
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下...基于JavaScript WebRTC实现跨平台音视频通话(源码+项目说明)(实现1对1视频,多人视频,视频直播,视频会议,房间管理,权限管理等).zip
WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。 WebRTC(Web Real-Time Communication)项目的最终目的...
本课程讲述如何使用Flutter-WebRTC实现1V1移动端跨平台实时音视频通信 包括如何使用nodejs开发WebSocket信令服务器 理解WebRTC媒体的交互流程 coturn服务器搭建 Flutter客户端开发
基于webrtc的unity多人游戏实时语音(基于WEBRTC的Mutiplayer中Impl实时游戏语音的Unity演示) 简介 MutiRTC_Unity unity工程,基于版本5.3.3f1。包含一个简单的多人实时语音聊天室场景。语音模块以平台sdk形式集成...
本课程讲述如何使用OC 实现1V1 iOS端实时音视频通信包括如何使用nodejs开发WebSocket信令服务器理解WebRTC媒体的交互流程coturn服务器搭建iOS音视频客户端开发
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C...
WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。 WebRTC(Web Real-Time Communication)项目的最终目的...
WebRTC是基于浏览器的Web技术,而移动智 能终端的最大共同点是都具备浏览器,因此WebRTC 几乎可以同时覆盖所有的移动智能...WebRTC技术实现视频通信更为容易,且开发成本 低,绝大多数智能终端均可以使用并实现互通。
基于webrtc实现数据通道P2P私聊群聊、视频、多用户屏幕共享功能源码+使用说明.zip 基于webrtc实现的数据通道(datachannel)实现p2p私聊和群聊,实现多用户屏幕共享和多用户视频,后端纯nodejs实现,简单实用,适合新手...
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。...
毕业设计 基于WebRTC的在线视频会议源码+部署文档+全部数据资料(优秀项目).zip毕业设计 基于WebRTC的在线视频会议源码+部署文档+全部数据资料(优秀项目).zip毕业设计 基于WebRTC的在线视频会议源码+部署文档+...