如何使用媒体播放器拍照和录像并保存到存储器
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.
中找到使用相机作为视频源的各种示例
我正在使用 rtsp 协议将来自 IP 摄像机的视频流式传输到我的 android 应用程序。布局中有一个SurfaceView
。创建了一个 SurfaceHolder
,然后从 SurfaceView
中获取持有者,然后使用 MediaPlayer
对象查看它。
我的问题是 1) 如何做我对 SurfaceView/SurfaceHolder/MediaPlayer 中显示的内容拍照并将其保存到外部存储器中,而不必只截取整个屏幕的屏幕截图,以及 2) 如何记录最多 15 秒的提要并保存它也到外部存储。
您无法将帧从 SurfaceView 拉回。 Surface是一个生产者-消费者对的生产者端,而消费者端在不同的进程(SurfaceFlinger,系统图形合成器)。
如果您改为将视频输入 SurfaceTexture,则可以将每个帧作为 "external" OpenGL ES 纹理进行访问。然后,您可以将其渲染到屏幕或保存到磁盘或视频编码器的屏幕外缓冲区。
可以在Grafika.
中找到使用相机作为视频源的各种示例