這些改變將使chromium和許多其他chromium/應(yīng)用程序更容易使用!
在2019年,我第一次嘗試對有關(guān)WebRTC的內(nèi)容進(jìn)行貢獻(xiàn)。這全部的內(nèi)容都是支持dg-desktop-portal和PipeWire在Linux Wayland上關(guān)于屏幕共享的資訊。在那個(gè)時(shí)候,我們所面臨的情況是非常簡單的,我們只有PipeWire 0.2,并且所有門戶網(wǎng)站后端僅支持屏幕共享(不支持窗口共享)。盡管這相對容易,但是它并不理想,因?yàn)槊總€(gè)屏幕共享請求都涉及兩個(gè)門戶對話框,以獲取web頁面本身的屏幕內(nèi)容。對我而言,這是一個(gè)巨大的成功,因?yàn)槲覟檫@樣一個(gè)被許多人使用、所有現(xiàn)代瀏覽器都在使用的大型項(xiàng)目做出了相當(dāng)重要的貢獻(xiàn)。 在2020年初,也就是每個(gè)人都想從記憶中抹除這段回憶的一年,我們獲得了PipeWire 0.3(API略有不同),后來又有了xdg-desktop-portal-gtk和xdg-desktop-portal-kde(在今年晚些時(shí)候)人們終于能夠共享應(yīng)用程序窗口。WebRTC缺少對所有這些功能的支持,因?yàn)樵谀菚r(shí)這些功能不可用。我想立即解決所有問題,提供對窗口共享的支持,并擺脫門戶網(wǎng)站的“dialog hell”,而門戶網(wǎng)站后端的新窗口共享功能則更加糟糕。
大概的情況就是上圖這樣。每次發(fā)出請求共享一個(gè)屏幕時(shí),你都會(huì)從Chromium中獲得預(yù)覽的對話框。該對話框由三頁組成。一頁是用于屏幕共享,以發(fā)出一個(gè)門戶請求,第二頁是用于窗口共享,這是另一個(gè)門戶請求,最后一頁是允許共享已打開的web頁面。您必須確認(rèn)兩個(gè)門戶對話框,然后確認(rèn)Chromium對話框,最后你還會(huì)得到一個(gè)額外的門戶對話框來獲取web頁面本身的內(nèi)容。 我有一個(gè)解決方案。我用一個(gè)ID進(jìn)行了所有的門戶調(diào)用,并在Chromium預(yù)覽對話框的兩個(gè)頁面之間以及對網(wǎng)頁本身的請求中用Chromium共享了這個(gè)ID(門戶調(diào)用)。使用此解決方案,我們只有一個(gè)門戶對話框。這是一個(gè)完美的解決方案(至少看起來是這樣)。我從今年年初開始研究這個(gè)問題,我們與Chromium UX團(tuán)隊(duì)的人員之間互通了很多電子郵件,因?yàn)槲疫€想在預(yù)覽對話框中嘗試進(jìn)行一些小的UI更改。不幸的是,由于為了保持與所有平臺(tái)的一致性,這些請求都被拒絕了。但是這也沒什么大不了的,我提交了我的更改以供審查,并保持UI的原樣不變,只是在Chromium和WebRTC中添加了所有必要的部分,以使其能夠正常工作。 我想說,雖然看起來從那以后事情進(jìn)展順利,但事實(shí)恰恰相反。雖然我花了一段時(shí)間才將所有內(nèi)容都看完,但這也并不奇怪,很多人在家的工作條件都不太理想。無論如何,幾個(gè)月過去了,我最終多次重寫了我的修改,甚至還沒來得及算上我花在這上面的時(shí)間。這一切都讓我沉迷于這種改變,我一直在思考如何做得更好,并且我常常在晚上解決一些問題,而不是花時(shí)間陪伴家人。把時(shí)間浪費(fèi)在我心愛的Playstation上會(huì)更好。這對我的心理健康產(chǎn)生了非常負(fù)面的影響,我意識(shí)到這種情況必須停止,于是我干脆放棄了,因?yàn)槲也荒茉龠@樣下去了,我需要休息一下。我放棄了兩個(gè)更改(WebRTC和Chromium),并決定只選擇我能夠完成的更改。我可能把我的改變做得太過雄心勃勃,太過復(fù)雜,或者可能只是Chromium還沒有準(zhǔn)備好接受這種改變,因?yàn)橛行┱{(diào)整是針對我的用例的。我也不希望上游開發(fā)者能給我更多的幫助,因?yàn)殛P(guān)于Wayland, portals和PipeWire以及如何將它們整合在一起還有許多需要理解的內(nèi)容。 無論如何,我有了一個(gè)新的開始,在放棄改變后沒有壓力的情況下,我選擇了最重要的變更并將其分別提交。現(xiàn)在讓我感到驚訝的是,事情進(jìn)展得如此順利,而這些變更的上傳速度如此之快。這些更改很簡單,易于理解且易于審核。我沒有完全放棄解決“dialog hell”的問題,我還有一些其他的想法,但是下次我將嘗試一步一步地提交它們,并在不占用我過多空閑時(shí)間的前提下。
在即將于2021年發(fā)布的Chromium中,你期待有什么變化?
支持PipeWire 0.3
你現(xiàn)在可以用PipeWire 0.2和PipeWire 0.3來構(gòu)建Chromium/WebRTC。有一個(gè)新的“rtc_pipewire_version”選項(xiàng)可以傳遞給構(gòu)建配置。
窗口共享支持
這個(gè)可能是不需要描述的。如果你不想共享整個(gè)屏幕,你可以共享應(yīng)用程序窗口。
支持DmaBuf和MemFd緩沖區(qū)類型
這應(yīng)該可以讓你的屏幕內(nèi)容更快地從Wayland排版器通過管道傳輸?shù)綖g覽器。
更少的門戶對話框
如果回頭看一下我上面發(fā)布的屏幕截圖,你會(huì)發(fā)現(xiàn)有兩個(gè)門戶對話框只為Chromium預(yù)覽對話框打開。我至少嘗試將其簡化為一個(gè)門戶對話框。這是通過刪除用于窗口共享的頁面來完成的,因?yàn)槠聊还蚕碚埱髮⑼瑫r(shí)處理屏幕和窗口。 我想您可以期待Chromium 89的上述更改,并且希望您至少能欣賞其中的一些改進(jìn),即使我沒有提供我想要的一切。此外,感謝我們的Firefox團(tuán)隊(duì)的MartinStránsky,您可以期望所有這些更改也將成為Firefox的一部分。
責(zé)任編輯:lq
-
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3283瀏覽量
57756 -
WebRTC
+關(guān)注
關(guān)注
0文章
57瀏覽量
11264
原文標(biāo)題:WebRTC/Chromium在2020年的更新
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論