问题标签 [android-mediaprojection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
861 浏览

android - 保存录制的电话屏幕

我正在尝试使用MediaProjection在 Android 5.0 Lollipop 中录制手机屏幕并保存录制的视频。

我尝试了这段代码,但是在我添加saveFile(uri)onActivityResult应用程序后,当我开始录制时崩溃。

获取录制的视频并保存它的正确方法是什么?

日志猫:

0 投票
1 回答
1648 浏览

android - 用户从通知栏取消投影时的 Android MediaProjection API 回调

我目前正在使用 Android 5.0 MediaProjection API。我已经成功地从我的应用程序启动了投影会话,但是我注意到用户可以随时转到通知栏并停止媒体投影。我的目标是捕获此事件并执行一些清理操作。我已经在我的 MediaProjection 对象中注册了一个 MediaProjection.Callback,但是,当我从通知栏手动取消投影并且系统尝试调用我的 MediaProjection.Callback 的 onStop 方法时,我收到一个空指针异常,如下所示:

我的 MediaProjection.Callback 在这一点上几乎什么也没做,我粘贴它是为了完整性:

任何想法为什么会发生这种情况?

提前谢谢了!

0 投票
3 回答
13857 浏览

android - 如何在 android 中使用 Mediaprojection 库捕获屏幕并转换为 mp4 文件?

从 android 5.0 开始,他们提供了 mediaprojection 库来捕获屏幕内容。但他们提供的示例演示应用程序尚不清楚。你可以在这里找到示例应用程序。在该应用程序中,他们使用 virtualdisplay 方法投影捕获的屏幕

我想将捕获的屏幕转换为我的屏幕录制应用程序的 mp4 文件。请帮助我度过难关。

0 投票
1 回答
1431 浏览

android - How to capture a screenshot programmatically with Lollipop

The Media Projection package is new Lollipop, and allows an app to capture the device's screen in realtime for streaming to video. I was hoping this could also be used to capture a single still screenshot, but so far I have not been successful. Of course, the first frame of a captured video could work, but I'm aiming for a perfect, lossless screenshot matching the pixel resolution of the device. A still from a captured video cannot provide that.

I've tried a lot of things, but the closest I came to a solution was to first launch an invisible activity. This activity then follows the API example for starting screen capture, which can include asking the user's permission. Once screen capture is enabled, the screen image is live in a SurfaceView. However, I cannot find a way to capture a bitmap from the SurfaceView. There are lots of questions and discussions about this, but no solutions seem to work, and there is some evidence that it is impossible.

Any ideas?

0 投票
1 回答
3312 浏览

android - 使用后台服务的屏幕截图

我开始使用 Lollipop & Media.Projection 类来实现屏幕共享应用程序。Google 的演示项目足以让我了解 Lollipop 的这个新功能。但是后来我发现很难让屏幕捕获进入后台,因为一直按下 Home 或 Back 按钮时,表面活动被破坏,因此捕获线程将不再工作。这种情况有什么提示吗?

0 投票
1 回答
5293 浏览

android - Android - 从 Surface / virtualDisplay 获取字节 []

projection API我正在尝试使用and将我的 android 设备屏幕投射到网络浏览器Webrtc

Projection API将其输出呈现给 aSurface并返回 virtualDisplay。我已经做到了。我看到了 android 的 webrtc 库。他们已经让它只接收来自设备相机的输入。我正在尝试阅读和修改 webrtc 代码以流式传输显示在表面上的任何内容。

我的问题是如何surface定期从Camera.PreviewCallback函数中接收字节 [] 数据。我还有哪些其他可用选项?

0 投票
0 回答
3124 浏览

android - 尝试捕获屏幕时,来自 ImageReader 的位图始终为空白

使用 MediaProjection API 进行屏幕捕获,我创建了一个 ImageReader 并将其用作捕获屏幕的访问点,如下所示:

mImageReader = ImageReader.newInstance(mWidth, mHeight, ImageFormat.JPEG, 2);

但是生成的图像始终是空白透明图像,并且生成的位图中的所有像素都设置为 #00000000 :(

我已经坚持了一段时间,真的可以使用一些帮助,所以欢迎任何建议。(而且我已经尝试过这些帖子,但结果都是一样的——这个这个这个

编辑:我在这一行通过图像阅读器表面:

0 投票
1 回答
1148 浏览

android - 如何将媒体投影用于较旧的 api?

我想记录屏幕内容 1 分钟。google了一下,发现api level 21里面有MediaProjecionclass。我的应用程序是为 api level 18构建的。

我可以使用这个类吗?有没有这方面的支持库?

0 投票
2 回答
888 浏览

android - android 5,将屏幕捕获为原始 rgb 缓冲区

如何使用 MediaProjectionManager 将屏幕捕获为原始 rgba 缓冲区(无编码)?

我已经看到了许多如何使用 MediaCodec 捕获屏幕并对其进行编码的示例,但我想使用我自己的编码器。

0 投票
0 回答
1054 浏览

android - Android 媒体投影产生一个空的电影文件

我正在尝试创建一个简单的截屏应用程序,它可以捕获屏幕并将其保存到电影文件中。到目前为止,我的应用程序只生成了正确长度和大小的空电影文件(黑屏)。我不确定这是否有帮助,但是当我运行应用程序时,我会在 logcat 中收到这些消息

除此之外,这些消息似乎无关紧要。我会发布一些代码,也许它会有所帮助。我得到了表面

所以我正在创建虚拟显示:

然后这个方法被调用:

然后,当用户单击停止录制时,我会释放如下编码器:

感谢帮助。希望你们能够发现我错过的东西。