回答
我認爲這是你正在尋找的MyID3 library設置和獲取媒體文件的標籤。
下載此jar文件MyID3_for_android並將其添加到項目的構建路徑。 這裏是示例代碼。這裏pathdata
是音頻文件的文件路徑。
File src = new File(pathdata);
MusicMetadataSet src_set = null;
try {
src_set = new MyID3().read(src);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // read metadata
if (src_set == null) // perhaps no metadata
{
Log.i("NULL", "NULL");
}
else
{
try{
IMusicMetadata metadata = src_set.getSimplified();
String artist = metadata.getArtist();
String album = metadata.getAlbum();
String song_title = metadata.getSongTitle();
Number track_number = metadata.getTrackNumber();
Log.i("artist", artist);
Log.i("album", album);
}catch (Exception e) {
e.printStackTrace();
}
File dst = new File(pathdata);
MusicMetadata meta = new MusicMetadata("name");
meta.setAlbum("Chirag");
meta.setArtist("CS");
try {
new MyID3().write(src, dst, src_set, meta);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ID3WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // write updated metadata
}
編碼快樂:)
最重要的一點是編輯後的ID3標籤只顯示在我的應用程序中。
如果您編輯該文件,然後任何人都會看到。您可以創建自己的媒體文件數據庫(如Android's database),並將修改後的數據存儲在那裏。
所以你說啥子,我不應該改變原有的數據,而不是將它們放置在sqlite的分貝,並顯示存儲的數據 – 2012-03-15 05:43:54
如果您不希望任何其他應用程序可以看到您修改的ID3標籤,那麼您唯一可以做到的方式是通過本地存儲信息一個數據庫。如果修改文件,那麼每個應用程序都可以看到,因爲只有一個文件。您在媒體播放器中看到的ID3標籤不會立即發生變化,因爲其他應用程序或Android的mediascanner必須先重新掃描這些文件,但在某個時間點可能會這樣做 – zapl 2012-03-15 10:07:03
@zapl是的,但是我在Soni的答案中找到了解決方案。 – 2012-03-19 13:03:16
事實上,FasteKerinns的代碼是相當不錯的。你應該改變
new MyID3()。write(src,dst,src_set,meta);
到
新MyID3()更新(SRC,src_set,間位)。
這意味着你根本不需要dst變量。
Additionaly,我有這樣的一段代碼,這刷新了在MediaStore修改歌曲:
scanner=new MediaScannerConnection(getApplicationContext(),
new MediaScannerConnectionClient() {
public void onScanCompleted(String path, Uri uri) {
scanner.disconnect();
}
public void onMediaScannerConnected() {
scanner.scanFile(path, "audio/*");
}
});
scanner.connect();
+1將嘗試更新 – MKJParekh 2012-07-30 11:17:18
- 1. 在Android中設置音頻文件媒體元數據(ID3)
- 2. 如何獲取超出正則表達式和id3標籤的Python中的音頻文件元數據
- 3. 視頻的標準元數據格式,如音頻的id3標籤?
- 4. 如何讀取和修改amr音頻文件數據?
- 5. 更新Google Play音樂ID3標記
- 6. ID3音頻流?
- 7. 節點 - 將ID3音樂元數據附加到音頻流
- 8. ID3標記提取
- 9. Java的ID3音頻標籤的lib
- 10. eyed3 for python - 如何從音頻文件加載選擇性的id3數據?
- 11. 如何讀取MP3文件,從音頻中分離元數據?
- 12. 更改SWF音頻文件
- 13. Python:更改音頻文件的音高
- 14. FFMPEG CLI語言元數據標記輸出MP4(視頻+音頻)文件
- 15. 如何獲取URL音樂的ID3標籤
- 16. 如何從wave文件中獲取音頻數據?
- 17. 音頻文件的元數據
- 18. 如何獲取FM音頻流記錄的音頻源?
- 19. 設置音頻文件的頻率
- 20. 如何從音頻設備ID獲取音頻設備號?
- 21. 獨立於ID3標籤訪問MP3音頻數據?
- 22. 調用音頻記錄和獲取生成的文件
- 23. 如何獲取音頻路徑播放音頻文件?
- 24. 如何在iPhone上獲取媒體文件的ID3標籤
- 25. jQuery的,獲取和設置標記值
- 26. 如何使用MediaPlayer獲取流媒體音頻元數據?
- 27. 如何從HTML5中的音頻標記中獲取FFT
- 28. 從mp3獲取沒有元數據(ID3)的數據的方式
- 29. 如何更改節點中音頻WAV文件的音高?
- 30. 在音頻和視頻文件中嵌入任意元數據
當我改變id3標籤,它會破壞mp3文件,並使其無法播放,如馬南所說。 – 2012-03-28 05:00:50
@MKJParekh你的答案是幫助這麼多的程序員,我是他們中的一員但是我有不同的問題,可能你有答案。我想連接多個mp3文件。用MyID3可以實現嗎? 如果你有答案我可以發表一個問題。 Thanx爲你的所有幫助 – Harsh 2012-07-30 10:05:48
坦率地說@哈爾斯,我沒有在那個ID3庫工作..只是用它來解決這個朋友的問題,但我建議你,你應該馬上開始一個問題在SO完整的細節你的問題,我相信你會從世界的任何角落得到你的答案。 – MKJParekh 2012-07-30 11:14:47