safari 10 開始支援 webRTC
2015年 9月 份, safari 10 終於開始支援 WebRTC 了, 值得慶祝啊, H5 的一個重要功能終於獲得了 Apple 的支援, 儘管遲了點, 還是值得歡呼的!
http://webrtcbydralex.com/index.php/2015/08/29/webrtc-in-safari/
2015/08/29
This morning I tweeted about apple finally adding support to safari in webkit, and I have been flooded by questions ever since, so I thought I’d write a post.
WebRTC和WebKit
WebRTC是基於瀏覽器的實時通訊介面,主要支援通過瀏覽器進行點對點的音訊以及視訊通訊。WebRTC規範由W3C和IETF共同制定。通過這些API,Web開發者可以通過標準的JavaScript API在網頁中嵌入視訊、音訊通訊功能。
WebKit是一個開源的瀏覽器引擎,它由WebCore排版引擎、JSCore JavaScript引擎和各種平臺移植程式碼組成。WebKit目前缺乏對WebRTC標準的支援,因此開發者構建了webrtcinwebkit.org網站,開始在WebKit上加入對WebRTC的支援。最初,該專案在WebKit的GTK移植中使用
這些工作會使蘋果公司更容易的在Safari上實現WebRTC功能。
蘋果公司做了什麼?
WebKit只是一個瀏覽器引擎,每個使用它的瀏覽器,都是一個移植版本(port)。webrtcinwebkit專案,最早在WebKit的GTK移植上進行了測試,在7月的時候,Linux版瀏覽器實現了對getUserMedia介面的支援。
針對不同瀏覽器針對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兩個標籤的輸入來源,支援視訊抓取等等功能。