前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC 之媒体流与轨道

WebRTC 之媒体流与轨道

作者头像
前端小鑫同学
发布2022-12-26 12:40:48
1.1K0
发布2022-12-26 12:40:48
举报
文章被收录于专栏:小鑫同学编程历险记

媒体流指的是访问设备后产生的数据流,轨道指的是 WebRTC 中的基本媒体单元。

当开始采集音频或视频设备后就会源源不断的产生媒体数据(媒体流),比如从摄像头,画布,桌面捕获到的视频流,从麦克风捕获到的音频流。只有当我们不停的接收到媒体流才能看到视频和听到音乐。

在实际应用场景中这些媒体流将由更多种数据组成,WebRTC 将其划分成了多个轨道,我们可以得到不同轨道对应的设备信息,也可以对其进行控制,如麦克风静音或网络不优秀的时候关掉视频。

媒体流与轨道相关 API:

函数名

参数

描述

MediaStream

通过 getUserMedia 或 getDisplayMedia 接口获取媒体流

MediaStreamTrack

通过 MediaStream.getVideoTracks 获取所有视频轨道通过 MediaStream.getAudioTracks 获取所有音频轨道

Video.captureStream

fps 帧率

捕获 Video 对象播放的媒体流,通过传入更大的帧率得到更清晰流畅的画面,也需要更高的宽带支持

Canvas.captureStream

fps 帧率

捕获 Canvas 中的媒体数据,可以动态的播放画布中的数据,同样传入更大的帧率得到的效果将更加流畅清晰

媒体流介绍:

媒体流是通过 MediaStream 接口得到后进行操作的,在一个媒体流中可以包含多个轨道,如同时支持视频和音频后得到的视频轨道和音频轨道,在前面的学习中我们将其输出显示为视频或音频元素,其实我们还可以将其发送到 RTCPeerConnection 对象,然后将其发送到远程计算机。

媒体流有多少中获取的方式呢?如何得到媒体流?

  1. 摄像头:捕获用户设备中所支持的摄像头硬件设备;
  2. 麦克风:捕获用户设备中所支持的麦克风硬件设备;
  3. 计算机屏幕,窗口:捕获用户计算机屏幕、窗口等;
  4. Canvas:捕获在 Canvas 中的内容;
  5. 视频源 Video:捕获 Video 播放中视频的内容;
  6. 远端流:使用对等连接来接收新的流。

MediaStream API:

序号

属性

描述

1

active

当 MediaStream 处于激活状态时返回 true,反之返回 false。

2

ended

当媒体流读取完毕触发结束事件后返回 true,反之返回 false。

3

id

对象的唯一标识符

4

label

用户代理分配的唯一标识符

通过事件来监听流处理及活动状态的变化:

序号

事件

描述

1

onactive

当 MediaStream 对象变为活动状态时触发此事件。

2

onaddtrack

当添加新的 MediaStreamTrack 对象时触发该事件。

3

onended

当流终止是触发该事件。

4

oninactive

当 MediaStream 对象变为不活动状态时触发该事件。

5

onremovetrack

当有轨道从 MediaStreamTrack 移除时触发该事件。

通过方法来添加、删除、克隆及获取音视频轨道数据:

序号

方法

描述

1

addTrack()

从 MediaStream 添加作为参数的 MediaStreamTrack 对象,多次添加则只响应第一次的操作

2

clone()

返回一份 MediaStream 的克隆后的对象(新 id)

3

getAudioTracks()

从 MediaStream 得到音频 MediaStreamTrack 列表

4

getTrackById()

通过 id 得到对应的轨道数据,相同 id 的多个轨道会得到第一个

5

getTracks()

从 MediaStream 得到所有 MediaStreamTrack 列表

6

getVideoTracks()

从 MediaStream 得到视频 MediaStreamTrack 列表

7

removeTracks()

从 MediaStream 删除作为参数的 MediaStreamTrack 对象,已删除后执行将不会发生任何操作

结语:

今天先了解一下对于媒体流和对象的各种操作,为后续的实验做准备,明天继续~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 媒体流介绍:
  • MediaStream API:
  • 结语:
相关产品与服务
对等连接
对等连接(Peering Connection,PC)是一种大带宽、高质量的云上资源互通服务,可以帮助您打通腾讯云上的资源通信链路。 对等连接具有多区域、多账户、多种网络异构互通等特点,轻松实现云上两地三中心、游戏同服等复杂网络场景;支持 VPC 网络与基础网络、黑石网络互通,满足您不同业务的部署需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档