Safari開始支持WebRTC

jopen 9年前發布 | 7K 次閱讀 webRTC

 

WebRTC和WebKit

WebRTC是基于瀏覽器的實時通信接口,主要支持通過瀏覽器進行點對點的音頻以及視頻通信。WebRTC規范由 W3CIETF 共同制定。通過這些API,Web開發者可以通過標準的JavaScript API在網頁中嵌入視頻、音頻通信功能。

WebKit 是一個開源的瀏覽器引擎,它由WebCore排版引擎、JSCore JavaScript引擎和各種平臺移植代碼組成。WebKit目前缺乏對WebRTC標準的支持,因此開發者構建了 webrtcinwebkit.org 網站,開始在WebKit上加入對WebRTC的支持。最初,該項目在WebKit的GTK移植中使用 OpenWebRTC 增加對WebRTC支持,后續的支持,將會逐漸放入到WebCore中,這樣基于WebKit的所有移植環境就能方便的使用。同時,該項目未來還將接入更多的WebRTC實現后段,比如 webrtc.org 等。

這些工作會使蘋果公司更容易的在Safari上實現WebRTC功能。

蘋果公司做了什么?

WebKit只是一個瀏覽器引擎,每個使用它的瀏覽器,都是一個移植版本(port)。webrtcinwebkit項目,最早在WebKit的GTK移植上進行了測試,在 7月 的時候,Linux版瀏覽器實現了對getUserMedia接口的支持。

針對不同瀏覽器針對WebRTC協議棧的實現,可以參見這個 幻燈片 。作為背景知識,它介紹了不同瀏覽器如何將WebRTC實現融合到自己的架構中去。

對于蘋果公司,mac平臺上的Safari和iOS平臺上的Safari是獨立的WebKit移植版本。它們沒法直接使用之前為GTK移植版本上使用的WebRTC接入代碼。因此蘋果公司需要單獨為這兩個移植版本實現WebRTC的接入。

截至8月底,通過的git倉庫的提交記錄的 篩選 ,蘋果公司的主要改動有:

  • 針對mac和iOS平臺上的改動
    • /platform/mediastream/mac
    • /platform/mac-mavericks/
    • /platform/mac-yosemite/
  • 針對AVFoundation接口的修改(AVVideoCaptureSource.h)
  • 針對蘋果平臺構建文件的修改(WebCore.xcodeproj/project.pbxproj)

從改動來看,目前蘋果已經實現了對GetUserMedia和MediaStream接口在mac和iOS兩個平臺上的支持。進而支持了對音頻、視頻設備的列舉和選擇,支持視頻、音頻流作為audio和video兩個標簽的輸入來源,支持視頻抓取等等功能。

不過,和webrtcinwebkit項目最初實現一樣,這些代碼改動主要在mac系統移植部分。這是由于WebRTC中的很多功能,涉及到平臺相關硬件設備交互、媒體流等需要在標簽頁之間共享,使得改動主要針對渲染層。

希望這些修改能夠讓我們能夠盡快的在Safari或者iOS的WebView中看見效果。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!