ios webRTC 和 replaykit2屏幕共享

iOS 出了replaykit2 后實現(xiàn)了系統(tǒng)屏幕錄制功能,終于不在只能應用內錄制了,在外部宣講ppt,變的容易了許多,如何創(chuàng)建使用這個網上有很多extension使用的方法,我在這里也不想多贅述,畢竟是固定方式方法

        我這里想講講關于如何將在extension中錄制的視頻流傳回主app并將視頻流發(fā)送到遠端,這才是最關鍵,也是replaykit2這個功能的難點

主要需要解決的問題

1.extension app 和主app 間的通信問題,涉及到進程間的通信

2.將共享的視頻轉換成可以傳輸的數據類型,在轉回CMSampleBufferRef,用于編碼或者其他

3.共享與攝像頭之間的切換問題 即 攝像頭 與錄制的開關問題

4.extension app共享屏幕 只有50M的內存,峰值超過就會被系統(tǒng)殺死,結束共享

首先說第一個問題 :

1.通信問題 使用socket 連接 主app做server端 extension做client端 ,用于將錄制的視頻數據傳回到主app

使用 CFNotificationCenterRef 做狀態(tài)消息的通知傳遞

2.將錄制的視頻數據轉為NSData 類型通過socket 發(fā)送到 主應用在轉換成CMSampleBufferRef,其中在轉為NSData類型的過程中可以將視頻方向 錄制的分辨率一起帶上,錄制時就可以橫豎屏無感切換了

3.錄制視頻時需要暫停攝像頭的采集,停止在開啟視頻,需要調用系統(tǒng)的stopCapture 和 finishBroadcastWithError 來開啟暫停

說說我的項目 我的項目是使用 webRTC實現(xiàn)音視頻的通話,與會議功能,使用replaykit2 實現(xiàn)屏幕共享功能,共享的屏幕傳到遠端的通話中或者會議中,目前實現(xiàn)了使用ios原生開發(fā),和使用reactive-native開發(fā)ios和安卓端的,這一塊的功能都已經完整實現(xiàn),并且已經使用半年,目前運行和反饋良好,穩(wěn)定

代碼部分的問題和使用可以私信聯(lián)系我

** 應用內共享**

image

** 系統(tǒng) 屏幕共享**

81620466891_.pic_hd.jpg

其他應用內容屏幕共享

image
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容