Xamarin.Forms 录屏介绍

Android原生项目中涉及到录屏相关的内容(MediaProjectionManager),就尝试写了Forms版本的录屏功能,系统要求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方法创建意图,通过StartActivityForResult方法启动系统提供的录屏功能。

屏蔽麦克风声音没有实现

在Activity的OnActivityResult方法中接收录屏数据。

MainActivity的OnActivityResult方法

Android项目中通过继承DialogFragment自定义了两个Dialog,PromptDialogPreviewDialog,PromptDialog用来确认用户的操作,是否放弃以录制视频。PreviewDialog模仿iOS端实现的视频预览,以达到相似的用户体验。

PromptDialog
PreviewDialog

目前已知的问题是VideoView被Toolbar遮挡,布局无效。MediaController播放控制不能显示。

项目地址:https://github.com/MyueX/ScreenRecorder


获取最新咨询请关注公众号:XamarinTop或扫描如下二维码

XamarinTop
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,532评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 常常穿着黑衣裳, 叫声悲催心难畅。 天生喜臭食渣屑, 美化环境声名扬。 注1:图片窃自文友张小吹,谢谢文友!谢谢原...
    亮靓_27d5阅读 322评论 25 39
  • 你有没有这样的时候,你和爸妈一块出门,遇到了熟人,然后就开始了夸孩模式的,你在身边,身为被夸的孩子是什么感觉?你在...
    茶幺阅读 967评论 2 1