欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

WebRTC基础知识体系构建-媒体定义

程序员文章站 2022-06-26 14:51:46
WebRTC既定义了如何传输媒体,又定义了媒体该如何表示。一、轨道1、定义:MedaiStreamTrack ,是WebRTC中媒体的基本单元。2、源:代表某录制设备或录制内容能返回的单一类型媒体,如 手机摄像头可录制的视频,可以作为一个源,手机Mic录制的音频也可以作为一个源。一段录好的mp4视频,其中的视频可以作为一个源,音频也可以作为一个源。每个WebRTC轨道都有一个源与之关联,通过WebRTC不能直接访问或控制源,对源的一切操作,都要通过轨道。不同的MedaiStrea...

WebRTC既定义了如何传输媒体,又定义了媒体该如何表示。

一、轨道

1、定义:MedaiStreamTrack ,是WebRTC中媒体的基本单元。

2、源:代表某录制设备或录制内容能返回的单一类型媒体,

如 手机摄像头可录制的视频,可以作为一个源,手机Mic录制的音频也可以作为一个源。

一段录好的mp4视频,其中的视频可以作为一个源,音频也可以作为一个源。

每个WebRTC轨道都有一个源与之关联,通过WebRTC不能直接访问或控制源,对源的一切操作,都要通过轨道。

不同的MedaiStreamTrack对象,可以代表统一媒体源。

3、暂停轨道媒体的两种方式

1)静音

     表示轨道的底层媒体源,暂时无法提供媒体。

     应用程序无法控制轨道何时静音,但是可以检查轨道的muted属性值。

     静音后,音频轨道将不再发声,视频轨道将显示黑屏

2)禁用

     将轨道对象的enabled属性设置为false,可以单独逐一禁止每条轨道。

3 )readyState属性表示轨道的状态

      new:尚未连接至媒体

     enabled:其源当前没有,且永远无法再提供更多数据,如 拔掉正在使用的摄像头的电源。

     live:表示可以生成媒体。

静音和禁用独立于轨道的readyState属性,可以同时设置三者中的任何一个值。

二、流

1、定义:MediaStream 是 MedaiStreamTrack对象的集合,

2、创建MediaStream对象的两种方式

1)请求访问本地媒体 getUserMedia(未来可能存在在复制现有本地MediaStream的内容来构建信息的MediaStream,但这种方式目前未能得到广泛支持)

2)使用对等连接来接收新流

3、MediaStream的enable属性

    所有的轨道的enable属性都为true的时候,MediaStream的enable属性为true.

三、捕获本地媒体

这里参考官方demo中各平台的api

四、媒体选择和控制

WebRTC api不能直接控制源,但可以通过约束来选择源和控制其属性。

1、可约束属性分为两种类型

1)枚举

如:"faceMode":{"user","environment"}

2)范围

2、约束机制的目的

让应用程(浏览器中的模块和客户端应用程序(android ,ios 等))的优化,在设备支持的合理范围内进行,

如为了控制网络拥塞,通过设置一些参数来控制视频的大小。但必须在在合理的参数范围内进行修改。

3、约束机制的工作原理

例子

constraints={

    "mandatory":{"aspectRatio":1.33333333}

    "optional":[

        {"width":{"max":640},

        {"height": {"min":400}}

    ]

}

约束结构是一个对象,有两个可以选择的属性,可以给二者和其中任意一个属性赋值。

1、mandatory

属性的值是一个对象,必须满足其中所有的值才能完成回调。

2、optional

属性的值是一个列表,表中的每个值不用必须得到满足,前面的会优先得到满足。

本文地址:https://blog.csdn.net/ydjjcdd/article/details/110630583

相关标签: webrtc