如何使用媒体播放器拍照和录像并保存到存储器

How to take picture and video of media player and save to storage

我正在使用 rtsp 协议将来自 IP 摄像机的视频流式传输到我的 android 应用程序。布局中有一个SurfaceView。创建了一个 SurfaceHolder,然后从 SurfaceView 中获取持有者,然后使用 MediaPlayer 对象查看它。

我的问题是 1) 如何做我对 SurfaceView/SurfaceHolder/MediaPlayer 中显示的内容拍照并将其保存到外部存储器中,而不必只截取整个屏幕的屏幕截图,以及 2) 如何记录最多 15 秒的提要并保存它也到外部存储。

您无法将帧从 SurfaceView 拉回。 Surface是一个生产者-消费者对的生产者端,而消费者端在不同的进程(SurfaceFlinger,系统图形合成器)。

如果您改为将视频输入 SurfaceTexture,则可以将每个帧作为 "external" OpenGL ES 纹理进行访问。然后,您可以将其渲染到屏幕或保存到磁盘或视频编码器的屏幕外缓冲区。

可以在Grafika.

中找到使用相机作为视频源的各种示例