2012-07-16 5 views
1

다운로드 한 mp3에 표지 아트 (앨범 아트)를 프로그래밍 방식으로 추가하려면 어떻게해야합니까?Android에서 다운로드 한 MP3에 표지 아트 추가

아래 그림과 같이 내 앱이 안드로이드 APIS에서 DownloadManager를 통해 MP3 파일을 다운로드시키고있다 :

private void startDownload(){ 
    Uri uri = Uri.parse(BASE_URL+DOWNLOAD+mp3+".mp3"); 

    filename = title+".mp3"; 

    Request request = new DownloadManager.Request(uri) 
    .setDestinationInExternalPublicDir(MUSIC_PATH, filename); 

    DOWNLOAD_MANAGER.enqueue(request); 
} 

이 가능가 다운로드 한 MP3 파일에 coverart을 추가의 MP3 플레이어 있도록 노래를 재생하는 동안 전화기에 이미지가 표시됩니까?

+1

이러한 MP3 파일에 표지 아트가 삽입되어 있습니까? 그렇다면 음악/미디어 플레이어 앱이 나 자신을 위해이를 정렬 할 수있을 것이라고 생각합니다. 표지가 삽입되지 않은 경우 : 1) 표지 이미지 파일을 다른 곳에서 구하거나, 2) [MP3 파일에 포함 시키십시오.] (http://www.richardfarrar.com/embedding-album-art-in- mp3 파일 /). – tiguchi

답변

9

이 jar 파일 MyID3_for_android을 다운로드하여 프로젝트의 빌드 경로에 추가하십시오. 여기 당신은 또한 Jakarta Regex jar

ReadFile을해야합니까

 File src = new File("filepath"); 
     MusicMetadataSet src_set = new MyID3().read(src); 

     File img = (new File("imagePath")); 


     Vector<ImageData> fileList = new Vector<ImageData>(); 
     ImageData data = new ImageData(readFile(img), "", "", 3); 
     fileList.add(data); 

     MusicMetadata metadata = (MusicMetadata) src_set.getSimplified(); 
     metadata.setPictureList(fileList); 

     File dst = new File("destinationPath"); 

     new MyID3().write(src, dst, src_set, metadata); 

커버를 변경하는 방법의 샘플 코드는 바이트 [] 파일에서

public static byte[] readFile (File file) throws IOException { 
    // Open file 
    RandomAccessFile f = new RandomAccessFile(file, "r"); 

    try { 
     // Get and check length 
     long longlength = f.length(); 
     int length = (int) longlength; 
     if (length != longlength) throw new IOException("File size >= 2 GB"); 

     // Read file and return data 
     byte[] data = new byte[length]; 
     f.readFully(data); 
     return data; 
    } 
    finally { 
     f.close(); 
    } 
} 

이있어 얻기 위해 단지 기능입니다 stackOverflow에서 누가 알지 못합니다 :

+1

예를 들어 주셔서 감사합니다. 나는 이것에 대한 답을 찾을 수 없었다. 내가 할 수 있으면 여러 줄의 상향 줄을 줄거야. –

+0

동일하지만 오디오 파일을 재생할 수 없습니다. 이유가 무엇입니까? –

관련 문제