經過WebRTC實現實時視頻通訊(二)

經過WebRTC實現實時視頻通訊(一)html

經過WebRTC實現實時視頻通訊(二)html5

經過WebRTC實現實時視頻通訊(三)web

在上一篇文章中,咱們講解了WebRTC的概述、歷史、安全性和開發者工具。接下來咱們經過WebRTC的三個API來具體的講解構建WebRTC的流程,這篇文章會對MediaStream進行講解。數組

MediaStream (別名 getUserMedia)

MediaStream API 表明媒體數據流的同步。舉個例子,從相機獲取的視頻流的同步和跟蹤。安全

理解MediaStream最簡單的方法應該就是看看它的實際應用:網絡

  1. 在Chrome或Opera中, 打開這個demo simpl.info/gumide

  2. 打開命令行。工具

  3. 查看全局範圍的數據流變量。命令行

每一個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實現實時視頻通訊(二)

相關文章
相關標籤/搜索