1. Android端实现录屏功能非常简单.详情可以参考 Android实现录屏直播(一)ScreenRecorder的简单分析
  2. 这篇文章主要介绍了如何用Unity调用Android实现录屏. 难点在于之前没作用,不理解. 当实现了之后发现还挺简单的.

普通Android程序实现录屏

  • ActivityT1正常情况下为我们的MainActivity。
  • ActivityT2为录屏申请的系统会自己去调用的Activity,不可见。那么很快T2就自己结束掉了,finish后会调用T1的OnActivityResult
  • 一般情况下就是在这个回调函数中,我们获得了MediaProjection,它在屏幕刷新时,我们将获得屏幕是Surface,接着使用MediaCodec进行编码写文件。
    在这里插入图片描述
    而这样在Unity实现的时候就出现了问题.
    原因在于我们的MainActivity继承了Unity的Activity,这个父类实现了自己的OnActivityResult回调,进行了自己的一些处理,导致无法进入MainActivity中的回调。

Unity-Android实现录屏

所以更新了一下实现方式:

  • Unity调用Android. 但是MainActivity不直接申请录屏的权限.
  • 而是启动一个新的Activity去申请录屏启动.然后通过T1的OnActivityResult获得结果.
    在这里插入图片描述

其中的难点就是一开始不知道存在的这些问题。真正实现起来还算简单。
关键的几个点:
1)Unity-Android调用;
2)Android的MainActivity要使用Unity传入的上下文;
3)ActivityT1这个子Activity配置问题,如去掉UI等。
通过以上的方法,成功实现了Unity-Android录屏。

【1】 Using a child activity to wait for onActivityResult with Unity3D
【2】 unity-android-plugins-and-onactivityresult-callback

记录原因Android端实现录屏功能非常简单.详情可以参考Android实现录屏直播(一)ScreenRecorder的简单分析这篇文章主要介绍了如何用Unity调用Android实现录屏. 难点在于之前没作用,不理解. 当实现了之后发现还挺简单的.普通Android程序实现录屏ActivityT1正常情况下为我们的MainActivity。ActivityT2为录屏申请的系统会自...
分享一个 录屏 插件,国外大牛写的。 插件名字:NatCorder,插件地址是:链接:https://pan.baidu.com/s/15HkaSKowVrlTWlO-RGq1PQ 提取码:lb9m 支持录制平台:Mac,Windows, Android ,Ios 支持录制视频格式:Mp4,可以自定义录制视频的分辨率 Unity 版本: Unity 2018.3.2以及以上 支持录制方法:1:录...
参考文献: https://bbs.csdn.net/topics/391895974 https://blog.csdn.net/cuoban/article/details/50556044 在 Unity 中通过C#代码调用FFMPEG简单地实现了录制Windows屏幕的功能,顺便解决了每次录制后如果不退出程序就不能再次正常...
Unity 截屏保存到 Android 相册 Unity 端截屏代码 Unity 需要的 Android Jar及Java代码(由于之前是找的一个Jar库因不支持鸿蒙所以自己动手二次开发的Java调用库) Unity JAR库(支持 Android 系统) Unity 录屏 代码 Unity 端截屏代码 string date = System.DateTime.Now.ToString("dd-MM-yy"); string fileName="XXXXX"; string screenshotFilename = fil
Vue- Unity -WebGL 是一个具有极高可扩展性和灵活性的 Unity 3D web 端开发框架,它将 Vue.js 与 Unity Web Player 和 WebGL 等技术相结合,为开发者提供了最佳的解决方案。 Vue- Unity -WebGL 框架具有很高的兼容性和易用性,开发者可以更加灵活地应用该框架来定制自己的 项目 。由于该框架具备了许多优秀的特性,如自适应布局、多平台支持等,使得开发者可以轻松地实现用户体验和开发效率的提升。此外,Vue- Unity -WebGL 框架不仅提供了可视化开发工具,还提供了完整的运行环境,为开发者提供了优秀的开发体验。 Vue- Unity -WebGL 框架的另一个重要特点是其大量的插件与扩展功能,这些插件和扩展可以为 项目 的开发和管理提供坚强的技术支持。比如,通过 vue-router 可以控制路由,Vue- Unity -WebGL 可以协作处理组件数据和 Unity 3D 渲染等复杂的操作,而 Vuex 则可以使开发者方便地处理应用数据流和组件状态的管理。这些插件和扩展功能极大地提高了 Vue- Unity -WebGL 框架的可扩展性和灵活性,使得开发者可以更加容易地进行定制。 综上所述,Vue- Unity -WebGL 框架是一个快速、可靠且强大的解决方案,这使得开发者能够轻松地编写出高质量的 Unity 3D web 应用程序。该框架具有大量的功能,实现可扩展性、灵活性、易用性和可维护性,比其他框架更具有竞争力。在未来的发展中,Vue- Unity -WebGL 框架将会被更多的开发者喜爱和应用,并在技术社区中拥有更广泛的影响力。
// KeyShot material file - KeyShot [64 bit] v11.1.0 ....省略..... #define shader 1 lux_toon { "color" 1 1 1, "alpha" 1, "contour color" 0 0 0, "shadow multiplier" 1, "shadow strength" 0, "shadow color" 0.0399939 0.0399939 0.0399939, "contour angle" 30, "contour width" 0.5, "contour quality" 2, "transparency" 0, "contour width is in pixels" on, "outline width multiplier" 2, "part width multiplier" 1, "outline contour" on, "material contour" on, "part contour" off, "interior edge contour" on, "environment shadows" on, "light source shadows" off, #define material xXe58da1e9809ae8bdaee5bb93e9bb91e889b220546f6f6e204f75746c696e6520426c61636b { flags 4096 surface 1 id 784936802 数据结构: 链表中哨兵(头结点)的作用 programmecantrun: 所以头节点就是哨兵,删除一个节点时,让他上一个指针,指向他的下一个节点,为什么还要删除了,防止变成野指针,为什么会变成野指针? 图形学基础|皮肤渲染 xxx159753xxx: 爱了爱了 一看就懂 C#中is和as操作符的用法 Heart_clear: C#中子类可以继承父类的私有字段,只是不能够访问