22

次のようなオーディオファイルのメタデータであるID3タグの変更に取り組んでいます。

  • アーティスト
  • タイトル
  • アルバム

そしてコアポイント、。編集したID3タグは私のアプリにのみ表示されます。

4

4 に答える 4

28

これが、メディアファイルのタグを設定および取得するためのMyID3ライブラリを探しているものだと思います。

この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
            }

ハッピーコーディング:)

于 2012-03-19T12:59:37.873 に答える
18

実際、FasteKerinnsのコードは非常に優れています。あなたはただ変えるべきです

new MyID3()。write(src、dst、src_set、meta);

new MyID3()。update(src、src_set、meta);

つまり、dst変数はまったく必要ありません。

さらに、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();
于 2012-06-14T14:53:03.283 に答える
5

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

ファイルを編集すると、誰でもそれを見ることができます。メディアファイルの独自のデータベース(Androidのデータベースなど)を作成し、変更したデータをそこに保存することができます。

于 2012-03-14T18:21:46.457 に答える
1

上記の回答に基づいてサンプルアプリを作成しました。サンプルの実装はこちらからダウンロードできますhttps://github.com/mickyarun/AndroidSongMetaDataUpdate.git

于 2019-02-20T04:42:06.397 に答える