在上一篇文章中,我们讲解了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的核心技术和实践应用,旨在帮助读者深入理解这一实时通信技术。以下是对大纲中重要知识点的详细解释: 1. 音视频服务质量: - 带宽管理:为了确保高质量的音视频...
4. **WebRTC**:WebRTC(Web Real-Time Communication)是浏览器之间的实时通信技术,无需插件或额外的软件即可实现音频、视频和数据共享。在本项目中,WebRTC将用于处理视频和音频的捕获、编码、解码和传输,确保两...
【标题】:基于Chrome、Java、WebSocket、WebRTC实现浏览器视频通话 【正文】: 在当今互联网技术高速发展的时代,实时通信(Real-Time Communication,RTC)已成为用户需求的一部分,尤其是在远程工作、在线教育...
用户可以在浏览器中直接参与视频通话,得益于WebRTC的API,开发者可以轻松获取用户的摄像头和麦克风权限,并实现视频流的发送和接收。 后端则采用了Java和WebSocket技术。WebSocket是一种在客户端和服务器之间建立...
WebRTC(Web Real-Time...通过深入学习和分析`WebRTCDemo`中的代码,开发者不仅可以理解WebRTC的工作原理,还能掌握如何在Android应用中集成实时音视频通信功能,为开发聊天、会议、在线教育等应用场景打下坚实的基础。
jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo
本教程主要以WebRTC JavaScript API为例,使用WebRTC实现实时通信 1. 介绍WebRTC整体架构,WebRTC JavaScript API 2. 如何获取webcam摄像头音视频数据 3. WebRTC peer之间建联流程 4. 介绍WebRTC信令,使用socket.IO...
WebRTC(Web Real-Time Communication)是一种开放的网络通信标准,允许在浏览器之间进行实时的音频、视频和数据共享,无需插件或额外的应用程序。它包括了三个主要组件:信令、媒体引擎和数据通道。在本文中,我们...
在Android平台上,WebRTC(Web Real-Time Communication)是一种强大的开源框架,用于实现浏览器和移动设备之间的实时通信,包括音视频通话、数据共享等功能。在这个场景中,我们将探讨如何使用WebRTC从SRS(Simple ...
webRTC技术的应用,通过启动浏览器调用设备的视频和音频流实现实时通信。
在本文中,我们将深入探讨如何使用Flutter和WebRTC技术实现在移动应用中进行桌面共享和视频通信。首先,让我们简要了解一下Flutter、Dart和WebRTC这三个关键概念。 Flutter是Google开发的一个开源UI工具包,用于...
WEBRTC多人视频通话,可以支持多人视频通话,目前是三人的,因为视频通话的信令用到的是websocket,所以代码里面也放入了单独websocket通信的demo,解释也比较详细了,原来有一个列子是两人的,后面改成三人的,多人...
在音视频直播系统中,WebRTC 是一种关键的技术,它允许在浏览器中实现实时的音视频通信。本篇文章主要探讨了如何通过 WebRTC 实现直播视频的实时录制、回放和下载,特别是针对油气储运中级工技能理论考试的相关知识...
在本项目中,我们探索的是一个基于Vue.js前端框架、Node.js后端(利用socket.io进行信令传输)以及WebRTC技术实现的一对一视频通信的示例应用。这个demo涵盖了多个关键知识点,让我们逐一深入解析。 首先,**WebRTC...