android 视频录制添加时间水印
时间: 2023-10-23 14:08:30 浏览: 513
要在 Android 视频录制中添加时间水印,可以使用 MediaRecorder 类来录制视频,并使用 Canvas 类来绘制时间水印。以下是一个简单的示例:
1. 在布局文件中添加一个 SurfaceView 元素,用于显示摄像头预览和录制的视频:
```xml
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 在 Activity 中获取 SurfaceView,并设置它作为 MediaRecorder 的预览:
```java
SurfaceView surfaceView = findViewById(R.id.surfaceView);
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
```
3. 在 SurfaceView 上绘制时间水印,可以在 SurfaceView 的回调方法 surfaceCreated() 中获取 Canvas 对象,并在其中绘制水印:
```java
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
Canvas canvas = holder.lockCanvas();
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(50);
canvas.drawText(getCurrentTime(), 100, 100, paint);
holder.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// do nothing
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// do nothing
}
});
private String getCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(new Date());
}
```
4. 开始录制视频:
```java
mediaRecorder.start();
```
这样就可以在 Android 视频录制中添加时间水印了。当然,还可以通过调整 Paint 对象的属性来改变水印的样式。
阅读全文