android利用EpMedia给录像添加时间水印

做出来的例子效果如下:
这里写图片描述

第一步:集成EpMedia,

步骤在大神的github上都有,地址如下:
https://github.com/yangjie10930/EpMedia

添加时间水印,我的方法是我认为的笨方法,如果有别的好方法,可以告诉我一下。

首先在手机录屏开始的时候记录下开始时间,录屏结束的时候记录下结束时间,

然后把开始时间转换成String字符串,然后在用EpMedia 在视频的指定位置添加文字,让文字显示到时间为一秒。

再把开始时间加一秒,然后重复以上步骤,这样达到添加时间水印的效果。
代码入下:

String str1 = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TTF/msyh.ttf";
EpVideo epVideo = new EpVideo(videoUrl);
outPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/out1.mp4";
//根据开始时间还有视频的长度来添加文字
setText(epVideo, str1, duration);

EpEditor.exec(epVideo, new EpEditor.OutputOption(outPath), new OnEditorListener() {
         @Override
         public void onSuccess() {
              Log.e("aaa", "onSuccess-->");
         }

         @Override
         public void onFailure() {
              Log.e("aaa", "onFailure-->");
         }

         @Override
         public void onProgress(float v) {
              int i = (int) (v * 100);
              Log.e("aaa", "onProgress-->" + i);
         }
     });

    private void setText(EpVideo epVideo, String str1, int duration) {

        long start_mm = System.currentTimeMillis();

        if (duration > 0) {
            for (int i = 0; i < (duration + 1); i++) {
             //把时间转换成字符串
                String s = setStringDate(start_mm);
                start_mm = start_mm + 1000;
                epVideo.addText(new EpText(10, 10, 70, EpText.Color.Red, str1, s, new EpText.Time(i, (i + 1))));
            }
        }

    }
注意:

在把时间装换成String字符串的时候,要先根据冒号(:)分割字符串,把冒号(:)使用转义符如下,不然会报错:

String[] split1 = split[1].split(":");
String str = split1[0] + "\\:" + split1[1] + "\\:" + split1[2];

还有就是经过测试发现 那个添加文字的时候 new EpText.Time(3,5),3和5分别代表开始时间 和 结束时间,5不是持续时间。

//参数分别是添加位置的X,Y坐标,文字的字号(单位px),文字颜色,字体文件的路径,内容,Time类为显示的起始时间和结束时间
epVideo.addText(new EpText(10,10,35,"red",ttfPath,text,new EpText.Time(3,5)));

在手机根目录新建一个名为TTF 的文件夹里面放一个为ttf格式的字体。就可以了,添加好时间水印的视屏放在了手机根目录里 名为 out1.MP4.

想看例子的的点击这里

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ljp345775

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值