【问题标题】:Record video capture of Webview activity记录 Webview 活动的视频捕获
【发布时间】:2016-04-15 18:00:46
【问题描述】:

我正在尝试找到一种方法来记录应用程序的屏幕,更具体地说是应用程序内的 WebView 活动。

我已经进行了一些研究,人们建议为此使用 MediaProjectionManager 或 MediaRecorder API,但我不太确定哪一个以及如何实现它。

我查看了一些示例,MediaProjection 只记录了 SurfaceView 中的内容。但我的是 Webview,它还能工作吗?任何建议将不胜感激。

谢谢!

【问题讨论】:

    标签: android video webview record capture


    【解决方案1】:

    我查看了一些示例,MediaProjection 只记录了 SurfaceView 中的内容

    没有。使用媒体投影 API 的应用程序根本不需要 SurfaceView。例如,this sample app 捕获截屏视频,但它没有 SurfaceView。媒体投影 API 捕获屏幕上的内容。这可能是您的应用或您录制时屏幕上的其他应用。

    但我的是 Webview,它还能工作吗?

    一般来说,是的,请记住您正在录制屏幕上的内容,因此如果出现另一个应用程序(例如,来电),您将录制该其他应用程序。媒体投影 API 不记录View,它们记录屏幕

    媒体投影 API 的一个可能限制是 DRM。您可能无法记录所有内容,因为某些视图显示受 DRM 保护的内容(例如,播放电影),并且可能无法捕获。在这种情况下,我没有使用媒体投影 API 来了解它们的行为。

    【讨论】:

    • 感谢 CommonsWare 的投入。我使用 WebView 来显示来自摄像机的实时流。 MediaProjection 能否在不受 DRM 保护的情况下录制它?
    • @emenpy:嗯,可能。我将测试重点放在更普通的应用程序上。如果您遇到一些问题,例如生涩的输出,我不会感到震惊。从设备的摄像头到WebView 再到媒体投影似乎……不寻常。为什么不直接使用相机 API,加上MediaRecorder,然后只记录相机?
    • 我只想录制在我的应用程序内的 Webview 中播放的视频。你能多说一下我如何使用带有 MediaRecorder 的 Camera API 来记录相机吗?
    • 我想你可能对我打算做什么有错误的想法。我有一个 IP 摄像头,我正在将视频投影到应用程序中,我想录制正在播放的内容。我不想录制设备的摄像头。
    • @emenpy:好的。您的第一条评论说“用于显示来自相机的实时流”,并且在没有其他上下文的情况下,这将暗示设备相机。尽管如此,仍然会有更高效和有效的解决方案来捕获来自 IP 摄像机的流。您的方法类似于将水从一个桶转移到另一个桶,方法是加热第一个桶、煮沸水、捕获蒸汽并将蒸汽冷凝成另一个桶中的水。虽然这可行,但将水从一个桶倒到另一个桶会简单得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    相关资源
    最近更新 更多