Android原生項目中涉及到錄屏相關的內容(MediaProjectionManager),就嘗試寫了Forms版本的錄屏功能,系統(tǒng)要求Android 5.0+楔脯,iOS 9.0+。
iOS錄屏實現
iOS下實現錄屏比較簡單,通過RPScreenRecorder.SharedRecorder.StartRecording
方法調用iOS9.0中加入的錄屏功能供屉。
首次調用錄屏會提示用戶是否允許錄屏,用戶允許后接下來的8分鐘都不會再提示溺蕉。
調用RPScreenRecorder.SharedRecorder.StopRecording
停止錄屏伶丐,錄屏結束后可以通過RPPreviewViewController
來預覽錄制的視頻內容,也可以調用RPScreenRecorder.SharedRecorder.DiscardRecording
丟棄錄制的視頻疯特。
結束錄屏后的預覽界面:
預覽界面點擊Cancel或者Save都會調用iOS中RPPreviewViewControllerDelegate
委托 的兩個DidFinish
方法哗魂。點擊Cancel操作調用DidFinish(RPPreviewViewController previewController)
方法,保存和分享操作調用重載方法DidFinish(RPPreviewViewController previewController, Foundation.NSSet<Foundation.NSString> activityTypes)
漓雅。
Android錄屏
原生參考:http://www.truiton.com/2015/05/capture-record-android-screen-using-mediaprojection-apis/
初始化MediaProjectionManager
對象录别,調用MediaProjectionManager對象的CreateScreenCaptureIntent
方法創(chuàng)建意圖,通過StartActivityForResult
方法啟動系統(tǒng)提供的錄屏功能邻吞。
屏蔽麥克風聲音沒有實現
在Activity的OnActivityResult
方法中接收錄屏數據庶灿。
Android項目中通過繼承DialogFragment
自定義了兩個Dialog,PromptDialog
和PreviewDialog
吃衅,PromptDialog用來確認用戶的操作往踢,是否放棄以錄制視頻。PreviewDialog模仿iOS端實現的視頻預覽徘层,以達到相似的用戶體驗峻呕。
目前已知的問題是VideoView被Toolbar遮擋,布局無效趣效。MediaController播放控制不能顯示瘦癌。
項目地址:https://github.com/MyueX/ScreenRecorder
獲取最新咨詢請關注公眾號:XamarinTop或掃描如下二維碼