前言
? ? ? ? 最近項目開會時,領導提出某視頻要求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+"秒");
如有欠缺或需要修改的地方,歡迎補充
新手勿噴