2012-03-14 2 views

답변

25

나는 이것이 당신이 찾고있는 것이라고 생각합니다 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 
      } 

해피 코딩 :) 사실

+3

이 나올 거라고 생각합니다. mp3 파일이 손상되어 마난 (manan)이 말한 것처럼 재생할 수 없게 만듭니다. –

+0

@MKJParekh 당신의 대답은 많은 코더들과 제가 그들 중 하나입니다. 그러나 나는 다른 문제를 가지고 있습니다, 당신은 대답 할 수 있습니다.여러 mp3 파일을 연결하고 싶습니다. MyID3으로 달성 할 수 있습니까? 당신은 대답이 있으면에 대한 질문을 게시 할 수 있습니다. 고맙습니다. 당신의 모든 도움을 위해 고맙습니다. – Harsh

+0

솔직하게 말해서 @Harsh, 저는 ID3 라이브러리에서 일하지 않았습니다.이 문제를 친구의 문제를 해결하는 데 사용했지만, 당신은 즉시 완전한 세부 사항으로 질문을 시작해야한다고 제안합니다. 당신의 문제에 대해 나는 당신이 세상의 모든 구석에서 당신의 답을 얻을 것이라고 확신합니다. – MKJParekh

4

가장 중요한 점은 편집 된 ID3 태그가 내 앱에만 표시된다는 것입니다.

파일을 편집하면 누구나 볼 수 있습니다. 자신 만의 미디어 파일 데이터베이스 (예 : Android's database)를 만들고 거기에 수정 된 데이터를 저장할 수 있습니다.

+0

, 그리고 디스플레이를 그 저장된 데이터 –

+0

다른 앱이 수정 된 ID3 태그를 볼 수 없도록하려는 경우이를 수행 할 수있는 유일한 방법은 정보를 로컬에 저장하는 것입니다. 데이터베이스. 파일을 수정하면 그 파일 하나만 있기 때문에 모든 응용 프로그램에서 볼 수 있습니다. 미디어 플레이어에 표시되는 ID3 태그는 다른 앱이나 Android의 중재자가 먼저 파일을 다시 검색해야하기 때문에 즉시 변경되지는 않지만 어떤 시점에서는 가능할 것입니다. – zapl

+0

@zapl 예,하지만 Soni의 답은 더 나은 해결책을 찾았습니다. –

14

, FasteKerinns의 코드는 매우 좋다. 그냥 변경해야합니다.

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

새로운 MyID3() 업데이트 (SRC, src_set, 메타)

에;

즉, dst 변수가 전혀 필요 없음을 의미합니다.

Additionaly,이 미디어 스토어 MediaStore에서 수정 노래 갱신 코드 조각이 : 당신은 내가 대신, 원래의 데이터를 변경 SQLite는 DB에 배치하지 말아야 말을 원하든 그래서

scanner=new MediaScannerConnection(getApplicationContext(), 
      new MediaScannerConnectionClient() {  

     public void onScanCompleted(String path, Uri uri) { 
       scanner.disconnect(); 
     } 

     public void onMediaScannerConnected() { 
       scanner.scanFile(path, "audio/*");  
     } 
    }); 

    scanner.connect(); 
+0

+1 업데이트를 시도합니다. – MKJParekh