2017-03-14 46 views
2

我是新來的Android,我想從文件系統加載的音頻文件(WAV或MP3),並顯示音頻信息,如採樣率等獲取有關音頻文件的信息在Android中

我該怎麼辦這個?你知道任何例子嗎?

+0

您可能需要使用第三方Java庫這樣做。您可以使用'AudioManager'來獲取藝術家和專輯等信息。 –

+1

從Android本身沒有任何庫嗎? – Javiator

回答

3

您可以通過將文件大小在秒的音頻的長度,例如,從隨機AAC接近它在我的圖書館編碼M4A:

File Size: 10.3MB (87013064 bits) 
Length: 5:16 (316 Seconds) 
Which gives: 87013064 bits/316 seconds = 273426.147 bits/sec or ~273kbps 
Actual Bitrate: 259kbps 

由於大多數的音頻文件都有一組已知的有效比特率級別,您可以使用它來將比特率調整到適當的級別進行顯示。

Link to original answer by Jake Basile

或者使用此代碼,讓它更準確:

MediaExtractor mex = new MediaExtractor(); 
try { 
    mex.setDataSource(path);// the adresss location of the sound on sdcard. 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

MediaFormat mf = mex.getTrackFormat(0); 
int bitRate = mf.getInteger(MediaFormat.KEY_BIT_RATE); 
int sampleRate = mf.getInteger(MediaFormat.KEY_SAMPLE_RATE); 

Link to original answer by architjn

+0

非常感謝。第二個例子正是我正在尋找的。 – Javiator

+0

它有可能在Android上使用java.media?你也可以在java.media中使用一些類來完成。 – Javiator

相關問題