2017-08-25 111 views
2

我想檢索視頻的高度和寬度,我正在使用MediaMetadataRetriever類。它在大多數情況下正常工作,但少數情況下高度和寬度互換。Android MediaMetadataRetriever錯誤的視頻高度和寬度

我想這可能是因爲方向改變而發生的。

我當前的代碼:

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever(); 
     metaRetriever.setDataSource(videoPath); 
     videoHeight = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); 
     videoWidth = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); 

我怎樣才能得到正確的價值觀?謝謝

+0

請分享媒體文件。分析文件元數據更有幫助。 – lucky1928

回答

0

我一直試圖弄清楚自己在最後一天左右,我最終不得不通過實驗來解決它。

  File file = new File(path); 
      if (file.exists()) { 
       MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
       retriever.setDataSource(file.getAbsolutePath()); 
       String metaRotation = retriever.extractMetadata(METADATA_KEY_VIDEO_ROTATION); 
       int rotation = metaRotation == null ? 0 : Integer.parseInt(metaRotation); 
       Log.i("Test", "Rotation = " + rotation); 
      } 

如果旋轉角度爲90°或270°,則寬度和高度將被調換。