2012-03-14 25 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あなたの答えは非常に多くのコーダーと私はそれらの1つですが、私は別の問題を抱えています、あなたは答えがあるかもしれません。複数のmp3ファイルを連結したいMyID3で達成することは可能ですか? あなたは私が質問を投稿できる答えがある場合。すべてのあなたの助けのためにThanx – Harsh

+0

正直言って@Harsh、私はそのID3のライブラリで働いていない..ちょうど友人のこの問題を解決するために使用されますが、私はあなたがすぐに完全な詳細あなたの問題の私はあなたが世界のどこからでもあなたの答えを得ることを確信しています。 – MKJParekh

4

最も重要な点は、編集したID3タグがmyアプリにのみ表示されていたことです。

ファイルを編集すると、誰でもそのファイルが表示されます。あなたはメディアファイル(Android's databaseのような)の独自のデータベースを作成し、変更されたデータをそこに保存することができます。

+0

は、あなたが代わりにsqliteのDBの中に置いて、私は元のデータを変更しないでくださいと言って、その表示されているWAHT保存されたデータ –

+0

他のアプリがあなたの変更したID3タグを見ることができないようにするには、それを行うための唯一の方法は、データベース。ファイルを変更すると、そのファイルが1つしかないため、すべてのアプリケーションがそのファイルを見ることができます。他のアプリやAndroidのmediascannerが最初にファイルを再スキャンする必要があるため、メディアプレイヤーに表示されるID3タグはすぐに変更されませんが、 – zapl

+0

@zaplはいですが、Soniの答えでベターの解決策が見つかりました。 –

14

、FasteKerinnsのコードはかなり良いです。変更する必要があります

新しいMyID3()。write(src、dst、src_set、meta); 。

に新しいMyID3()更新(SRC、src_set、メタ)。

これは、変数dstをまったく必要としないことを意味します。

Additionaly、私はメディアストアに変更された曲をリフレッシュし、コードのこの部分を持っている:

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

関連する問題