<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內(nèi)容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java獲取視頻時長

    文檔

    java獲取視頻時長

    java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。
    推薦度:
    導讀java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。

    很多朋友都想知道java怎么獲取視頻時長?下面就一起來了解一下吧~

    可以通過視頻的url地址或者是上傳視頻 文件有類型為(MultipartFile)的來獲取視頻的時長。

    通過MultipartFile?的文件類型獲取視頻時長:

    這個方式的獲取比較好辦;直接上碼:類名=》VideoUtil.java

    /**
    ?????*?通過MultipartFile?的文件類型獲取視頻時長
    ?????*?@param?file
    ?????*?@return
    ?????*/
    ????public?Integer?ReadVideoTimeMs(MultipartFile?file)?{
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????//?獲取文件類型
    ????????????String?fileName?=?file.getContentType();
    ????????????//?獲取文件后綴
    ????????????String?pref?=?fileName.indexOf("/")?!=?-1???fileName.substring(fileName.lastIndexOf("/")?+?1,?fileName.length())?:?null;
    ????????????String?prefix?=?"."?+?pref;
    ????????????//?用uuid作為文件名,防止生成的臨時文件重復
    ????????????final?File?excelFile?=?File.createTempFile(UUID.randomUUID().toString().replace("-",?""),?prefix);
    ????????????//?MultipartFile?to?File
    ????????????file.transferTo(excelFile);
    ????????????MultimediaInfo?m?=?encoder.getInfo(excelFile);
    ????????????ms?=?m.getDuration();
    ????????????//程序結(jié)束時,刪除臨時文件
    ????????????VideoUtil.deleteFile(excelFile);
    ????????}?catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}
    ????/**
    ?????*?通過url地址獲取視頻時長
    ?????*?@param?fileName
    ?????*?@return
    ?????*/
    ????public?Integer?FileVideoTimeMs(String?fileName){
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????File?file?=?getFileByUrl(fileName);
    ????????????MultimediaInfo?m?=?encoder.getInfo(file);
    ????????????ms?=?m.getDuration();
    ????????????VideoUtil.deleteFile(file);
    ????????}catch?(Exception?e){
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}

    通過url地址獲取視頻時長

    url地址來獲取的時長需要做一定的轉(zhuǎn)換,要先獲取文件

    主要的方法代碼:類名 =》VideoUtil.java

    /**
    ?????*?通過url地址獲取視頻時長
    ?????*?@param?fileName
    ?????*?@return
    ?????*/
    ????public?Integer?FileVideoTimeMs(String?fileName){
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????File?file?=?getFileByUrl(fileName);
    ????????????MultimediaInfo?m?=?encoder.getInfo(file);
    ????????????ms?=?m.getDuration();
    ????????????VideoUtil.deleteFile(file);
    ????????}catch?(Exception?e){
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}

    getFileByUrl()方法 :類名 =》VideoUtil.java

    public?static?File?getFileByUrl(String?url)?throws??IOException?{
    ????????File?tmpFile?=?File.createTempFile("temp",?".tmp");//創(chuàng)建臨時文件
    ????????VideoUrl.toBDFile(url,?tmpFile.getCanonicalPath());
    ????????return?tmpFile;
    ????}

    toBDFile() 方法:類名 =》VideoUrl.java

    public?static?void?toBDFile(String?urlStr,?String?bdUrl)?throws?IOException,?UnknownHostException?{
    ????????URL?url?=?new?URL(urlStr);
    ????????HttpURLConnection?conn?=?(HttpURLConnection)?url.openConnection();
    ????????DataInputStream?in?=?new?DataInputStream(conn.getInputStream());
    ????????byte[]?data?=?toByteArray(in);
    ????????in.close();
    ????????FileOutputStream?out?=?new?FileOutputStream(bdUrl);
    ????????out.write(data);
    ????????out.close();
    ????}
    toByteArray()方法:類名?=》VideoUrl.java
    public?static?byte[]?toByteArray(InputStream?in)?throws?IOException?{
    ????????ByteArrayOutputStream?out?=?new?ByteArrayOutputStream();
    ????????byte[]?buffer?=?new?byte[1024?*?4];
    ????????int?n?=?0;
    ????????while?((n?=?in.read(buffer))?!=?-1)?{
    ????????????out.write(buffer,?0,?n);
    ????????}
    ????????return?out.toByteArray();
    ????}

    不要忘記刪除自己生成的臨時文件:類名 =》VideoUtil.java

    /**
    ?????*?刪除臨時文件
    ?????*?@param?files
    ?????*/
    ????private?static?void?deleteFile(File...?files)?{
    ????????for?(File?file?:?files)?{
    ????????????if?(file.exists())?{
    ????????????????file.delete();
    ????????????}
    ????????}
    ????}

    總結(jié)

    兩個方法的獲取視頻的時長,最后讀取的數(shù)據(jù)單位都是s(秒)。

    以上就是小編今天的分享,希望能夠幫到大家。

    文檔

    java獲取視頻時長

    java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java csrf java獲取請求域名 java獲取路徑 java cssbox java獲取運行時間 java ctp java獲取隨機字符串 java daemon java獲取隨機數(shù) java dashboard java獲得當前路徑 java表單校驗 java dataframe java規(guī)則引擎 java dataset java讀取json java讀取本地excel java decaf java調(diào)python java decode java crontab java獲取網(wǎng)絡時間 java crash java獲取秒級時間戳 java core java獲取泛型class java corba java cookie java獲取本地ip java controller java獲取本周日期 java context japanese java 微信怎么群發(fā)消息 java獲取時間差 java獲取文件名后綴 微博賬號怎么注銷 excel如何換行 java獲取當月最后一天日期 excel去重
    Top 香蕉久久夜色精品国产小说| 精品乱码久久久久久中文字幕| 免费精品国产自产拍观看| 无码人妻精品一区二区三区久久| 免费视频精品一区二区| 8AV国产精品爽爽ⅴa在线观看| 精品国产亚洲一区二区三区| 国产精品第一页爽爽影院| 91精品视频观看| 国产麻豆一精品一AV一免费| 七月婷婷精品视频在线观看| 精品成在人线AV无码免费看| 久久久精品免费国产四虎| caoporn国产精品免费| 午夜精品在线视频| 精品亚洲国产成人| 国产毛片片精品天天看视频| 久久午夜精品视频| 国产在线无码精品电影网| 动漫精品第一区二区三区| 亚洲精品无码高潮喷水A片软| 99久久国产综合精品swag| 国产午夜精品一区二区三区 | 国产韩国精品一区二区三区| 久久99精品视免费看| 久久久WWW免费人成精品| 日本精品αv中文字幕| 国产精品视频分类一区| 久久永久免费人妻精品下载| 亚洲精品无码高潮喷水在线| 国产乱人伦偷精品视频免观看| 国产在线观看91精品不卡| 亚洲精品色在线网站| 亚洲国产欧美日韩精品一区二区三区| 亚洲精品日韩中文字幕久久久| 日韩精品久久久久久免费| 国产精品免费AV片在线观看| 国内精品久久久久久不卡影院| 惠民福利中文字幕人妻无码乱精品| 一区二区日韩国产精品| 午夜精品久久久久久影视777|