WebRTC音视频开发读书笔记(三)

当采集音频或视频时,设备会源源不断地产生媒体数据,这些数据就是媒体流,从Canvas,桌面,摄像头捕获的流为视频流,从麦克风捕获的的流称为音频流,媒体流中混入的可能是多种数据 ,因此WebRTC又将其划分成多个轨道,每个轨道对应于具体的设备。

五、媒体流与轨道

本文涉及的API如表所示:

1、媒体流

通过MediaStream接口处理媒体流,一个流包含多个视频流轨道和音频轨道,有两种方法可以输出 媒体流,其一,可以将输出显示为视频或者音频元素; 其二,可以将输出发送到RTCPeerConection对象,然后将其发送到远程计算机。媒体流可以通过摄像头、麦克风、屏幕、画布、视频源、远端流等方式获取。下面简要介绍属性、事件、方法。

        (1)属性

                active: 流的活动状态,活动为true ,否则为false

                ended: 结束状态,结束为true,否则为false

               id:  唯一标识符

        (2)事件

              onactive: 当MediaStream对象变为活动状态时触发活动状态。

             onended: 当媒体流终止时触发此事件。

            oninactive: 当流变为非活动状态时,触发此事件。

           onremovetrack: 从它移除MediaStreamTrack 对象时触发此事件。

       (3)方法

              addTrack :增加MediaStreamTrack

              clone: 使用新id 返回MediaStream对象的克隆。

              getAudioTracks: 获取音频轨道列表

               getTrackById :    通过id返回媒体流轨道。

         2、媒体轨道

                     MediaStreamTrack表示一段媒体源,是WebRTC的基本媒体单元,每一个轨道都有一个源与之关联。媒体流有两个输出渠道,一是video标签,二是通过RTCPeerConnection发送到远端。 

(1)属性

        enabled:  布尔值, 轨道有效性

       kind:  字符值,audio为音频,video为视频。

      muted: 布尔值 :静音状态,true为静音。

      readyState: 布尔值,轨道当前状态。

           remote:  布尔值,数据通过RTCPeerConnection提供状态,true是远端传输数据。

(2) 事件

            started:  轨道开始事件

           ended:   l轨道结束事件

 (3) 方法 

           getConstraints : 获取轨道采用的约束条件。

          applyConstraints: 应用约束条件至轨道。        

     3、流与轨道API测试示例

此示例用于测试音视频轨道的获取和删除等方法,主要有以下步骤:

          (1)设置约束条件,启用音频和视频。

         &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值