前言
最近项目开会时,领导提出某视频要求15/20秒的倍数,但不可超过多少分钟需求,但是要求前端实现,然后我也处理了一下,这里记录一下。
视频获取时长其实官方已经提供其方法,得到的是毫秒,我们只需要对应的计算一下就可以了。
正题:
MediaPlayer playe = new MediaPlayer();//这个是众所周知的不多解释
AssetFileDescriptor afd = getAssets().openFd("test.mp4");//我测试把视频文件放在了assets下,这是获取方式
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());//把文件的信息配置到MediaPlayer中
player.prepare();//这里需要准备一下了
ok,下面可以得到需要的东西了
double mediaDuration = player.getDuration();//这里得到的是毫秒数
整合一下公式(其实感觉没必要说这些):
总秒数 = 总毫秒数/1000;
分钟数 = 总秒数/60;
秒数 = 总秒数%60;
以下得到结果:
double media_S = (mediaDuration/1000);//总秒数
int media_m = (int)media_ms/60;分钟数
int media_s = (int)media_ms%60;秒数
下面是打印结果:
LogUtils("总毫秒数:"+ mediaDuration +",全部秒数:"+ media_S +" ,"+ media_m +"分"+ media_s+"秒");
如有欠缺或需要修改的地方,欢迎补充
新手勿喷