Android10-14的项目。功能一切正常
点击"开始"拍摄 点击"结束"并点击弹出框的"确定"的时候 把SurfaceView显示的图像 本地保存视频
注意是SurfaceView显示的图像
视频是通过调用C++代码绘制到SurfaceView的
不知道如何捕获这个视频
有无办法?
项目代码:
https://c.wss.cc/f/gge63uqay5x 复制链接到浏览器打开
apk安装包:
https://c.wss.cc/f/gge6ynr57qt 复制链接到浏览器打开
Android10-14的项目。功能一切正常
点击"开始"拍摄 点击"结束"并点击弹出框的"确定"的时候 把SurfaceView显示的图像 本地保存视频
注意是SurfaceView显示的图像
视频是通过调用C++代码绘制到SurfaceView的
不知道如何捕获这个视频
有无办法?
项目代码:
https://c.wss.cc/f/gge63uqay5x 复制链接到浏览器打开
apk安装包:
https://c.wss.cc/f/gge6ynr57qt 复制链接到浏览器打开
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你想要在 Android 10-14 项目中,使用 SurfaceView 显示的图像录制视频到本地,并且视频是通过 SurfaceView 显示的图像生成的。
可以使用 MediaRecorder 类来实现视频录制。首先,需要获取 SurfaceView 的 SurfaceHolder 对象,然后将其设置为 MediaRecorder 的 Surface 对象。
下面是一个简单的示例代码:
// 获取 SurfaceView 的 SurfaceHolder 对象
SurfaceView surfaceView = findViewById(R.id.surface_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
// 创建 MediaRecorder 对象
MediaRecorder mediaRecorder = new MediaRecorder();
// 设置 MediaRecorder 的 Surface 对象
mediaRecorder.setSurface(surfaceHolder.getSurface());
// 设置其他参数,例如音频源、视频编码等
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
// 开始录制
mediaRecorder.start();
// 停止录制
mediaRecorder.stop();
// 释放资源
mediaRecorder.release();
在上面的代码中,我们首先获取 SurfaceView 的 SurfaceHolder 对象,然后将其设置为 MediaRecorder 的 Surface 对象。然后,我们设置其他参数,例如音频源、视频编码等。最后,我们开始录制,停止录制,并释放资源。
需要注意的是,在 Android 10-14 项目中,需要在 AndroidManifest.xml 文件中添加以下权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
这两个权限是为了录制音频和视频的。