什么是MediaStream?

MediaStream是Web API中用于表示音视频的对象。一个MediaStream可以包含一个或者多个媒体轨道(MediaStreamTrack)比如:视频轨道,音频轨道,并且每一个轨道中也可以包含多个通道通道是媒体流的最小单位,即传入信号,左声道等具体的信息。

MediaStream的特性

  • 同步性:音视频的轨道是在时间上同步的。
  • 动态性:在运行时可用添加或删除轨道。
  • 只读性:不存储数据仅仅如指针一般引用实时的数据。
  • 不可序列化:不能跨页面共享,不能通过JSON.stringify()传输。

MediaStream的“输入”与“输出“

MediaStream对象只有一个输入和输出(在源头只能有一个输入,如摄像头,但是输出可以是多个的比如屏幕或者其他的屏幕)

input -> MediaStream -> output

MediaStream的来源

本地(local),非本地(remote)

本地:自身源头,是否允许调用本地摄像头,麦克风

非本地:来源一般有三种,

  • “cover”(默认):放大视频填满容器,保持宽高比,可能裁剪

  • “contain”:完整显示视频,保持宽高比,可能有黑边

  • “fill”:拉伸视频填满容器,不保持宽高比,可能变形