Fast0n

paste.txt

Mar 19th, 2018
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 108.92 KB | None | 0 0
  1. package com.fast0n.mp3agic;
  2.  
  3. import android.Manifest;
  4. import android.content.Intent;
  5. import android.content.pm.PackageManager;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.media.MediaMetadataRetriever;
  9. import android.os.Build;
  10. import android.os.Environment;
  11. import android.support.v4.app.ActivityCompat;
  12. import android.support.v7.app.AppCompatActivity;
  13. import android.os.Bundle;
  14. import android.view.View;
  15. import android.widget.Button;
  16. import android.widget.ImageView;
  17. import android.widget.TextView;
  18.  
  19. import com.mpatric.mp3agic.ID3v1;
  20. import com.mpatric.mp3agic.ID3v1Tag;
  21. import com.mpatric.mp3agic.ID3v2;
  22. import com.mpatric.mp3agic.ID3v24Tag;
  23. import com.mpatric.mp3agic.InvalidDataException;
  24. import com.mpatric.mp3agic.Mp3File;
  25. import com.mpatric.mp3agic.NotSupportedException;
  26. import com.mpatric.mp3agic.UnsupportedTagException;
  27.  
  28. import java.io.ByteArrayOutputStream;
  29. import java.io.File;
  30. import java.io.FileInputStream;
  31. import java.io.FileNotFoundException;
  32. import java.io.FileOutputStream;
  33. import java.io.IOException;
  34. import java.io.InputStream;
  35. import java.io.RandomAccessFile;
  36. import java.nio.file.Files;
  37. import java.nio.file.Path;
  38. import java.nio.file.Paths;
  39.  
  40.  
  41. public class MainActivity extends AppCompatActivity {
  42.  
  43.     TextView Artist,Album,Title;
  44.     ImageView Cover;
  45.     Button Set;
  46.  
  47.     String artist = "Massimiliano Montaleone";
  48.     String album = "Fast0n";
  49.     String title = "DeepMusic";
  50.  
  51.     @Override
  52.     protected void onCreate(Bundle savedInstanceState) {
  53.         super.onCreate(savedInstanceState);
  54.         setContentView(R.layout.activity_main);
  55.  
  56.         Artist = (TextView)findViewById(R.id.artist);
  57.         Album = (TextView)findViewById(R.id.album);
  58.         Title = (TextView)findViewById(R.id.title);
  59.         Cover = (ImageView)findViewById(R.id.cover);
  60.         Set = (Button)findViewById(R.id.button);
  61.  
  62.  
  63.  
  64.  
  65.         if (Build.VERSION.SDK_INT >= 23) {
  66.             if (checkSelfPermission(
  67.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  68.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  69.             }
  70.         }
  71.  
  72.  
  73.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  74.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  75.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  76.  
  77.         getImage(file_original);
  78.  
  79.         final File file = new File(file_original);
  80.         final File file2 = new File(file_copy);
  81.  
  82.  
  83.         Mp3File mp3file = null;
  84.         try {
  85.             mp3file = new Mp3File(file_original);
  86.  
  87.  
  88.         } catch (IOException e) {
  89.             e.printStackTrace();
  90.         } catch (UnsupportedTagException e) {
  91.             e.printStackTrace();
  92.         } catch (InvalidDataException e) {
  93.             e.printStackTrace();
  94.         }
  95.         ID3v1 id3v1Tag;
  96.         if (mp3file.hasId3v1Tag()) {
  97.             id3v1Tag =  mp3file.getId3v1Tag();
  98.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  99.             Title.setText("Title: "+id3v1Tag.getTitle());
  100.             Album.setText("Album: "+id3v1Tag.getAlbum());
  101.  
  102.         }
  103.  
  104.         Set.setOnClickListener(new View.OnClickListener() {
  105.             @Override
  106.             public void onClick(View v) {
  107.  
  108.  
  109.                 /**
  110.                  * Setta i metadati solo per Artista, album e titolo
  111.                  */
  112.  
  113.                 Mp3File mp3file = null;
  114.                 try {
  115.                     mp3file = new Mp3File(file_original);
  116.                 } catch (IOException e) {
  117.                     e.printStackTrace();
  118.                 } catch (UnsupportedTagException e) {
  119.                     e.printStackTrace();
  120.                 } catch (InvalidDataException e) {
  121.                     e.printStackTrace();
  122.                 }
  123.                 ID3v1 id3v1Tag;
  124.                 if (mp3file.hasId3v1Tag()) {
  125.                     id3v1Tag = mp3file.getId3v1Tag();
  126.                 } else {
  127.                     // mp3 does not have an ID3v1 tag, let's create one..
  128.                     id3v1Tag = new ID3v1Tag();
  129.                     mp3file.setId3v1Tag(id3v1Tag);
  130.                 }
  131.                 id3v1Tag.setArtist(artist);
  132.                 id3v1Tag.setTitle(title);
  133.                 id3v1Tag.setAlbum(album);
  134.  
  135.                 ID3v2 id3v2Tag;
  136.  
  137.                 if (mp3file.hasId3v2Tag()) {
  138.                     id3v2Tag = mp3file.getId3v2Tag();
  139.                 } else {
  140.                     // mp3 does not have an ID3v2 tag, let's create one..
  141.                     id3v2Tag = new ID3v24Tag();
  142.                     mp3file.setId3v2Tag(id3v2Tag);
  143.                 }
  144.  
  145.  
  146.  
  147.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  148.  
  149.  
  150.  
  151.                 /**
  152.                  * Crea nuovo file, elimino il vecchio
  153.                  * rinomino il nuovo come il vecchio
  154.                  *
  155.                  *          (a > b > a)
  156.                  *
  157.                  */
  158.  
  159.                 try {
  160.                     mp3file.save(file_copy);
  161.                     file.delete();
  162.                     file2.renameTo(file);
  163.                     Intent intent = getIntent();
  164.                     finish();
  165.                     startActivity(intent);
  166.  
  167.                 } catch (IOException e) {
  168.                     e.printStackTrace();
  169.                 } catch (NotSupportedException e) {
  170.                     e.printStackTrace();
  171.                 }
  172.  
  173.             }
  174.             });
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. }
  188.  
  189.     private byte[] getByte(String path) {
  190.         byte[] getBytes = {};
  191.         try {
  192.             File file = new File(path);
  193.             getBytes = new byte[(int) file.length()];
  194.             InputStream is = new FileInputStream(file);
  195.             is.read(getBytes);
  196.             is.close();
  197.         } catch (FileNotFoundException e) {
  198.             e.printStackTrace();
  199.         } catch (IOException e) {
  200.             e.printStackTrace();
  201.         }
  202.         return getBytes;
  203.     }
  204.  
  205.  
  206.     public void getImage(String path){
  207.         if(path != null){
  208.  
  209.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  210.             mmr.setDataSource(path);
  211.             byte [] data = mmr.getEmbeddedPicture();
  212.  
  213.             if(data != null)
  214.             {
  215.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  216.                 Cover.setImageBitmap(bitmap);
  217.                 Cover.setAdjustViewBounds(true);
  218.             }else
  219.             {
  220.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  221.                 Cover.setAdjustViewBounds(true);
  222.             }
  223.         }
  224.     }
  225. }
  226. package com.fast0n.mp3agic;
  227.  
  228. import android.Manifest;
  229. import android.content.Intent;
  230. import android.content.pm.PackageManager;
  231. import android.graphics.Bitmap;
  232. import android.graphics.BitmapFactory;
  233. import android.media.MediaMetadataRetriever;
  234. import android.os.Build;
  235. import android.os.Environment;
  236. import android.support.v4.app.ActivityCompat;
  237. import android.support.v7.app.AppCompatActivity;
  238. import android.os.Bundle;
  239. import android.view.View;
  240. import android.widget.Button;
  241. import android.widget.ImageView;
  242. import android.widget.TextView;
  243.  
  244. import com.mpatric.mp3agic.ID3v1;
  245. import com.mpatric.mp3agic.ID3v1Tag;
  246. import com.mpatric.mp3agic.ID3v2;
  247. import com.mpatric.mp3agic.ID3v24Tag;
  248. import com.mpatric.mp3agic.InvalidDataException;
  249. import com.mpatric.mp3agic.Mp3File;
  250. import com.mpatric.mp3agic.NotSupportedException;
  251. import com.mpatric.mp3agic.UnsupportedTagException;
  252.  
  253. import java.io.ByteArrayOutputStream;
  254. import java.io.File;
  255. import java.io.FileInputStream;
  256. import java.io.FileNotFoundException;
  257. import java.io.FileOutputStream;
  258. import java.io.IOException;
  259. import java.io.InputStream;
  260. import java.io.RandomAccessFile;
  261. import java.nio.file.Files;
  262. import java.nio.file.Path;
  263. import java.nio.file.Paths;
  264.  
  265.  
  266. public class MainActivity extends AppCompatActivity {
  267.  
  268.     TextView Artist,Album,Title;
  269.     ImageView Cover;
  270.     Button Set;
  271.  
  272.     String artist = "Massimiliano Montaleone";
  273.     String album = "Fast0n";
  274.     String title = "DeepMusic";
  275.  
  276.     @Override
  277.     protected void onCreate(Bundle savedInstanceState) {
  278.         super.onCreate(savedInstanceState);
  279.         setContentView(R.layout.activity_main);
  280.  
  281.         Artist = (TextView)findViewById(R.id.artist);
  282.         Album = (TextView)findViewById(R.id.album);
  283.         Title = (TextView)findViewById(R.id.title);
  284.         Cover = (ImageView)findViewById(R.id.cover);
  285.         Set = (Button)findViewById(R.id.button);
  286.  
  287.  
  288.  
  289.  
  290.         if (Build.VERSION.SDK_INT >= 23) {
  291.             if (checkSelfPermission(
  292.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  293.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  294.             }
  295.         }
  296.  
  297.  
  298.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  299.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  300.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  301.  
  302.         getImage(file_original);
  303.  
  304.         final File file = new File(file_original);
  305.         final File file2 = new File(file_copy);
  306.  
  307.  
  308.         Mp3File mp3file = null;
  309.         try {
  310.             mp3file = new Mp3File(file_original);
  311.  
  312.  
  313.         } catch (IOException e) {
  314.             e.printStackTrace();
  315.         } catch (UnsupportedTagException e) {
  316.             e.printStackTrace();
  317.         } catch (InvalidDataException e) {
  318.             e.printStackTrace();
  319.         }
  320.         ID3v1 id3v1Tag;
  321.         if (mp3file.hasId3v1Tag()) {
  322.             id3v1Tag =  mp3file.getId3v1Tag();
  323.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  324.             Title.setText("Title: "+id3v1Tag.getTitle());
  325.             Album.setText("Album: "+id3v1Tag.getAlbum());
  326.  
  327.         }
  328.  
  329.         Set.setOnClickListener(new View.OnClickListener() {
  330.             @Override
  331.             public void onClick(View v) {
  332.  
  333.  
  334.                 /**
  335.                  * Setta i metadati solo per Artista, album e titolo
  336.                  */
  337.  
  338.                 Mp3File mp3file = null;
  339.                 try {
  340.                     mp3file = new Mp3File(file_original);
  341.                 } catch (IOException e) {
  342.                     e.printStackTrace();
  343.                 } catch (UnsupportedTagException e) {
  344.                     e.printStackTrace();
  345.                 } catch (InvalidDataException e) {
  346.                     e.printStackTrace();
  347.                 }
  348.                 ID3v1 id3v1Tag;
  349.                 if (mp3file.hasId3v1Tag()) {
  350.                     id3v1Tag = mp3file.getId3v1Tag();
  351.                 } else {
  352.                     // mp3 does not have an ID3v1 tag, let's create one..
  353.                     id3v1Tag = new ID3v1Tag();
  354.                     mp3file.setId3v1Tag(id3v1Tag);
  355.                 }
  356.                 id3v1Tag.setArtist(artist);
  357.                 id3v1Tag.setTitle(title);
  358.                 id3v1Tag.setAlbum(album);
  359.  
  360.                 ID3v2 id3v2Tag;
  361.  
  362.                 if (mp3file.hasId3v2Tag()) {
  363.                     id3v2Tag = mp3file.getId3v2Tag();
  364.                 } else {
  365.                     // mp3 does not have an ID3v2 tag, let's create one..
  366.                     id3v2Tag = new ID3v24Tag();
  367.                     mp3file.setId3v2Tag(id3v2Tag);
  368.                 }
  369.  
  370.  
  371.  
  372.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  373.  
  374.  
  375.  
  376.                 /**
  377.                  * Crea nuovo file, elimino il vecchio
  378.                  * rinomino il nuovo come il vecchio
  379.                  *
  380.                  *          (a > b > a)
  381.                  *
  382.                  */
  383.  
  384.                 try {
  385.                     mp3file.save(file_copy);
  386.                     file.delete();
  387.                     file2.renameTo(file);
  388.                     Intent intent = getIntent();
  389.                     finish();
  390.                     startActivity(intent);
  391.  
  392.                 } catch (IOException e) {
  393.                     e.printStackTrace();
  394.                 } catch (NotSupportedException e) {
  395.                     e.printStackTrace();
  396.                 }
  397.  
  398.             }
  399.             });
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412. }
  413.  
  414.     private byte[] getByte(String path) {
  415.         byte[] getBytes = {};
  416.         try {
  417.             File file = new File(path);
  418.             getBytes = new byte[(int) file.length()];
  419.             InputStream is = new FileInputStream(file);
  420.             is.read(getBytes);
  421.             is.close();
  422.         } catch (FileNotFoundException e) {
  423.             e.printStackTrace();
  424.         } catch (IOException e) {
  425.             e.printStackTrace();
  426.         }
  427.         return getBytes;
  428.     }
  429.  
  430.  
  431.     public void getImage(String path){
  432.         if(path != null){
  433.  
  434.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  435.             mmr.setDataSource(path);
  436.             byte [] data = mmr.getEmbeddedPicture();
  437.  
  438.             if(data != null)
  439.             {
  440.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  441.                 Cover.setImageBitmap(bitmap);
  442.                 Cover.setAdjustViewBounds(true);
  443.             }else
  444.             {
  445.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  446.                 Cover.setAdjustViewBounds(true);
  447.             }
  448.         }
  449.     }
  450. }
  451. package com.fast0n.mp3agic;
  452.  
  453. import android.Manifest;
  454. import android.content.Intent;
  455. import android.content.pm.PackageManager;
  456. import android.graphics.Bitmap;
  457. import android.graphics.BitmapFactory;
  458. import android.media.MediaMetadataRetriever;
  459. import android.os.Build;
  460. import android.os.Environment;
  461. import android.support.v4.app.ActivityCompat;
  462. import android.support.v7.app.AppCompatActivity;
  463. import android.os.Bundle;
  464. import android.view.View;
  465. import android.widget.Button;
  466. import android.widget.ImageView;
  467. import android.widget.TextView;
  468.  
  469. import com.mpatric.mp3agic.ID3v1;
  470. import com.mpatric.mp3agic.ID3v1Tag;
  471. import com.mpatric.mp3agic.ID3v2;
  472. import com.mpatric.mp3agic.ID3v24Tag;
  473. import com.mpatric.mp3agic.InvalidDataException;
  474. import com.mpatric.mp3agic.Mp3File;
  475. import com.mpatric.mp3agic.NotSupportedException;
  476. import com.mpatric.mp3agic.UnsupportedTagException;
  477.  
  478. import java.io.ByteArrayOutputStream;
  479. import java.io.File;
  480. import java.io.FileInputStream;
  481. import java.io.FileNotFoundException;
  482. import java.io.FileOutputStream;
  483. import java.io.IOException;
  484. import java.io.InputStream;
  485. import java.io.RandomAccessFile;
  486. import java.nio.file.Files;
  487. import java.nio.file.Path;
  488. import java.nio.file.Paths;
  489.  
  490.  
  491. public class MainActivity extends AppCompatActivity {
  492.  
  493.     TextView Artist,Album,Title;
  494.     ImageView Cover;
  495.     Button Set;
  496.  
  497.     String artist = "Massimiliano Montaleone";
  498.     String album = "Fast0n";
  499.     String title = "DeepMusic";
  500.  
  501.     @Override
  502.     protected void onCreate(Bundle savedInstanceState) {
  503.         super.onCreate(savedInstanceState);
  504.         setContentView(R.layout.activity_main);
  505.  
  506.         Artist = (TextView)findViewById(R.id.artist);
  507.         Album = (TextView)findViewById(R.id.album);
  508.         Title = (TextView)findViewById(R.id.title);
  509.         Cover = (ImageView)findViewById(R.id.cover);
  510.         Set = (Button)findViewById(R.id.button);
  511.  
  512.  
  513.  
  514.  
  515.         if (Build.VERSION.SDK_INT >= 23) {
  516.             if (checkSelfPermission(
  517.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  518.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  519.             }
  520.         }
  521.  
  522.  
  523.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  524.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  525.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  526.  
  527.         getImage(file_original);
  528.  
  529.         final File file = new File(file_original);
  530.         final File file2 = new File(file_copy);
  531.  
  532.  
  533.         Mp3File mp3file = null;
  534.         try {
  535.             mp3file = new Mp3File(file_original);
  536.  
  537.  
  538.         } catch (IOException e) {
  539.             e.printStackTrace();
  540.         } catch (UnsupportedTagException e) {
  541.             e.printStackTrace();
  542.         } catch (InvalidDataException e) {
  543.             e.printStackTrace();
  544.         }
  545.         ID3v1 id3v1Tag;
  546.         if (mp3file.hasId3v1Tag()) {
  547.             id3v1Tag =  mp3file.getId3v1Tag();
  548.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  549.             Title.setText("Title: "+id3v1Tag.getTitle());
  550.             Album.setText("Album: "+id3v1Tag.getAlbum());
  551.  
  552.         }
  553.  
  554.         Set.setOnClickListener(new View.OnClickListener() {
  555.             @Override
  556.             public void onClick(View v) {
  557.  
  558.  
  559.                 /**
  560.                  * Setta i metadati solo per Artista, album e titolo
  561.                  */
  562.  
  563.                 Mp3File mp3file = null;
  564.                 try {
  565.                     mp3file = new Mp3File(file_original);
  566.                 } catch (IOException e) {
  567.                     e.printStackTrace();
  568.                 } catch (UnsupportedTagException e) {
  569.                     e.printStackTrace();
  570.                 } catch (InvalidDataException e) {
  571.                     e.printStackTrace();
  572.                 }
  573.                 ID3v1 id3v1Tag;
  574.                 if (mp3file.hasId3v1Tag()) {
  575.                     id3v1Tag = mp3file.getId3v1Tag();
  576.                 } else {
  577.                     // mp3 does not have an ID3v1 tag, let's create one..
  578.                     id3v1Tag = new ID3v1Tag();
  579.                     mp3file.setId3v1Tag(id3v1Tag);
  580.                 }
  581.                 id3v1Tag.setArtist(artist);
  582.                 id3v1Tag.setTitle(title);
  583.                 id3v1Tag.setAlbum(album);
  584.  
  585.                 ID3v2 id3v2Tag;
  586.  
  587.                 if (mp3file.hasId3v2Tag()) {
  588.                     id3v2Tag = mp3file.getId3v2Tag();
  589.                 } else {
  590.                     // mp3 does not have an ID3v2 tag, let's create one..
  591.                     id3v2Tag = new ID3v24Tag();
  592.                     mp3file.setId3v2Tag(id3v2Tag);
  593.                 }
  594.  
  595.  
  596.  
  597.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  598.  
  599.  
  600.  
  601.                 /**
  602.                  * Crea nuovo file, elimino il vecchio
  603.                  * rinomino il nuovo come il vecchio
  604.                  *
  605.                  *          (a > b > a)
  606.                  *
  607.                  */
  608.  
  609.                 try {
  610.                     mp3file.save(file_copy);
  611.                     file.delete();
  612.                     file2.renameTo(file);
  613.                     Intent intent = getIntent();
  614.                     finish();
  615.                     startActivity(intent);
  616.  
  617.                 } catch (IOException e) {
  618.                     e.printStackTrace();
  619.                 } catch (NotSupportedException e) {
  620.                     e.printStackTrace();
  621.                 }
  622.  
  623.             }
  624.             });
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637. }
  638.  
  639.     private byte[] getByte(String path) {
  640.         byte[] getBytes = {};
  641.         try {
  642.             File file = new File(path);
  643.             getBytes = new byte[(int) file.length()];
  644.             InputStream is = new FileInputStream(file);
  645.             is.read(getBytes);
  646.             is.close();
  647.         } catch (FileNotFoundException e) {
  648.             e.printStackTrace();
  649.         } catch (IOException e) {
  650.             e.printStackTrace();
  651.         }
  652.         return getBytes;
  653.     }
  654.  
  655.  
  656.     public void getImage(String path){
  657.         if(path != null){
  658.  
  659.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  660.             mmr.setDataSource(path);
  661.             byte [] data = mmr.getEmbeddedPicture();
  662.  
  663.             if(data != null)
  664.             {
  665.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  666.                 Cover.setImageBitmap(bitmap);
  667.                 Cover.setAdjustViewBounds(true);
  668.             }else
  669.             {
  670.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  671.                 Cover.setAdjustViewBounds(true);
  672.             }
  673.         }
  674.     }
  675. }
  676. package com.fast0n.mp3agic;
  677.  
  678. import android.Manifest;
  679. import android.content.Intent;
  680. import android.content.pm.PackageManager;
  681. import android.graphics.Bitmap;
  682. import android.graphics.BitmapFactory;
  683. import android.media.MediaMetadataRetriever;
  684. import android.os.Build;
  685. import android.os.Environment;
  686. import android.support.v4.app.ActivityCompat;
  687. import android.support.v7.app.AppCompatActivity;
  688. import android.os.Bundle;
  689. import android.view.View;
  690. import android.widget.Button;
  691. import android.widget.ImageView;
  692. import android.widget.TextView;
  693.  
  694. import com.mpatric.mp3agic.ID3v1;
  695. import com.mpatric.mp3agic.ID3v1Tag;
  696. import com.mpatric.mp3agic.ID3v2;
  697. import com.mpatric.mp3agic.ID3v24Tag;
  698. import com.mpatric.mp3agic.InvalidDataException;
  699. import com.mpatric.mp3agic.Mp3File;
  700. import com.mpatric.mp3agic.NotSupportedException;
  701. import com.mpatric.mp3agic.UnsupportedTagException;
  702.  
  703. import java.io.ByteArrayOutputStream;
  704. import java.io.File;
  705. import java.io.FileInputStream;
  706. import java.io.FileNotFoundException;
  707. import java.io.FileOutputStream;
  708. import java.io.IOException;
  709. import java.io.InputStream;
  710. import java.io.RandomAccessFile;
  711. import java.nio.file.Files;
  712. import java.nio.file.Path;
  713. import java.nio.file.Paths;
  714.  
  715.  
  716. public class MainActivity extends AppCompatActivity {
  717.  
  718.     TextView Artist,Album,Title;
  719.     ImageView Cover;
  720.     Button Set;
  721.  
  722.     String artist = "Massimiliano Montaleone";
  723.     String album = "Fast0n";
  724.     String title = "DeepMusic";
  725.  
  726.     @Override
  727.     protected void onCreate(Bundle savedInstanceState) {
  728.         super.onCreate(savedInstanceState);
  729.         setContentView(R.layout.activity_main);
  730.  
  731.         Artist = (TextView)findViewById(R.id.artist);
  732.         Album = (TextView)findViewById(R.id.album);
  733.         Title = (TextView)findViewById(R.id.title);
  734.         Cover = (ImageView)findViewById(R.id.cover);
  735.         Set = (Button)findViewById(R.id.button);
  736.  
  737.  
  738.  
  739.  
  740.         if (Build.VERSION.SDK_INT >= 23) {
  741.             if (checkSelfPermission(
  742.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  743.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  744.             }
  745.         }
  746.  
  747.  
  748.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  749.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  750.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  751.  
  752.         getImage(file_original);
  753.  
  754.         final File file = new File(file_original);
  755.         final File file2 = new File(file_copy);
  756.  
  757.  
  758.         Mp3File mp3file = null;
  759.         try {
  760.             mp3file = new Mp3File(file_original);
  761.  
  762.  
  763.         } catch (IOException e) {
  764.             e.printStackTrace();
  765.         } catch (UnsupportedTagException e) {
  766.             e.printStackTrace();
  767.         } catch (InvalidDataException e) {
  768.             e.printStackTrace();
  769.         }
  770.         ID3v1 id3v1Tag;
  771.         if (mp3file.hasId3v1Tag()) {
  772.             id3v1Tag =  mp3file.getId3v1Tag();
  773.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  774.             Title.setText("Title: "+id3v1Tag.getTitle());
  775.             Album.setText("Album: "+id3v1Tag.getAlbum());
  776.  
  777.         }
  778.  
  779.         Set.setOnClickListener(new View.OnClickListener() {
  780.             @Override
  781.             public void onClick(View v) {
  782.  
  783.  
  784.                 /**
  785.                  * Setta i metadati solo per Artista, album e titolo
  786.                  */
  787.  
  788.                 Mp3File mp3file = null;
  789.                 try {
  790.                     mp3file = new Mp3File(file_original);
  791.                 } catch (IOException e) {
  792.                     e.printStackTrace();
  793.                 } catch (UnsupportedTagException e) {
  794.                     e.printStackTrace();
  795.                 } catch (InvalidDataException e) {
  796.                     e.printStackTrace();
  797.                 }
  798.                 ID3v1 id3v1Tag;
  799.                 if (mp3file.hasId3v1Tag()) {
  800.                     id3v1Tag = mp3file.getId3v1Tag();
  801.                 } else {
  802.                     // mp3 does not have an ID3v1 tag, let's create one..
  803.                     id3v1Tag = new ID3v1Tag();
  804.                     mp3file.setId3v1Tag(id3v1Tag);
  805.                 }
  806.                 id3v1Tag.setArtist(artist);
  807.                 id3v1Tag.setTitle(title);
  808.                 id3v1Tag.setAlbum(album);
  809.  
  810.                 ID3v2 id3v2Tag;
  811.  
  812.                 if (mp3file.hasId3v2Tag()) {
  813.                     id3v2Tag = mp3file.getId3v2Tag();
  814.                 } else {
  815.                     // mp3 does not have an ID3v2 tag, let's create one..
  816.                     id3v2Tag = new ID3v24Tag();
  817.                     mp3file.setId3v2Tag(id3v2Tag);
  818.                 }
  819.  
  820.  
  821.  
  822.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  823.  
  824.  
  825.  
  826.                 /**
  827.                  * Crea nuovo file, elimino il vecchio
  828.                  * rinomino il nuovo come il vecchio
  829.                  *
  830.                  *          (a > b > a)
  831.                  *
  832.                  */
  833.  
  834.                 try {
  835.                     mp3file.save(file_copy);
  836.                     file.delete();
  837.                     file2.renameTo(file);
  838.                     Intent intent = getIntent();
  839.                     finish();
  840.                     startActivity(intent);
  841.  
  842.                 } catch (IOException e) {
  843.                     e.printStackTrace();
  844.                 } catch (NotSupportedException e) {
  845.                     e.printStackTrace();
  846.                 }
  847.  
  848.             }
  849.             });
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. }
  863.  
  864.     private byte[] getByte(String path) {
  865.         byte[] getBytes = {};
  866.         try {
  867.             File file = new File(path);
  868.             getBytes = new byte[(int) file.length()];
  869.             InputStream is = new FileInputStream(file);
  870.             is.read(getBytes);
  871.             is.close();
  872.         } catch (FileNotFoundException e) {
  873.             e.printStackTrace();
  874.         } catch (IOException e) {
  875.             e.printStackTrace();
  876.         }
  877.         return getBytes;
  878.     }
  879.  
  880.  
  881.     public void getImage(String path){
  882.         if(path != null){
  883.  
  884.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  885.             mmr.setDataSource(path);
  886.             byte [] data = mmr.getEmbeddedPicture();
  887.  
  888.             if(data != null)
  889.             {
  890.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  891.                 Cover.setImageBitmap(bitmap);
  892.                 Cover.setAdjustViewBounds(true);
  893.             }else
  894.             {
  895.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  896.                 Cover.setAdjustViewBounds(true);
  897.             }
  898.         }
  899.     }
  900. }
  901. package com.fast0n.mp3agic;
  902.  
  903. import android.Manifest;
  904. import android.content.Intent;
  905. import android.content.pm.PackageManager;
  906. import android.graphics.Bitmap;
  907. import android.graphics.BitmapFactory;
  908. import android.media.MediaMetadataRetriever;
  909. import android.os.Build;
  910. import android.os.Environment;
  911. import android.support.v4.app.ActivityCompat;
  912. import android.support.v7.app.AppCompatActivity;
  913. import android.os.Bundle;
  914. import android.view.View;
  915. import android.widget.Button;
  916. import android.widget.ImageView;
  917. import android.widget.TextView;
  918.  
  919. import com.mpatric.mp3agic.ID3v1;
  920. import com.mpatric.mp3agic.ID3v1Tag;
  921. import com.mpatric.mp3agic.ID3v2;
  922. import com.mpatric.mp3agic.ID3v24Tag;
  923. import com.mpatric.mp3agic.InvalidDataException;
  924. import com.mpatric.mp3agic.Mp3File;
  925. import com.mpatric.mp3agic.NotSupportedException;
  926. import com.mpatric.mp3agic.UnsupportedTagException;
  927.  
  928. import java.io.ByteArrayOutputStream;
  929. import java.io.File;
  930. import java.io.FileInputStream;
  931. import java.io.FileNotFoundException;
  932. import java.io.FileOutputStream;
  933. import java.io.IOException;
  934. import java.io.InputStream;
  935. import java.io.RandomAccessFile;
  936. import java.nio.file.Files;
  937. import java.nio.file.Path;
  938. import java.nio.file.Paths;
  939.  
  940.  
  941. public class MainActivity extends AppCompatActivity {
  942.  
  943.     TextView Artist,Album,Title;
  944.     ImageView Cover;
  945.     Button Set;
  946.  
  947.     String artist = "Massimiliano Montaleone";
  948.     String album = "Fast0n";
  949.     String title = "DeepMusic";
  950.  
  951.     @Override
  952.     protected void onCreate(Bundle savedInstanceState) {
  953.         super.onCreate(savedInstanceState);
  954.         setContentView(R.layout.activity_main);
  955.  
  956.         Artist = (TextView)findViewById(R.id.artist);
  957.         Album = (TextView)findViewById(R.id.album);
  958.         Title = (TextView)findViewById(R.id.title);
  959.         Cover = (ImageView)findViewById(R.id.cover);
  960.         Set = (Button)findViewById(R.id.button);
  961.  
  962.  
  963.  
  964.  
  965.         if (Build.VERSION.SDK_INT >= 23) {
  966.             if (checkSelfPermission(
  967.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  968.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  969.             }
  970.         }
  971.  
  972.  
  973.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  974.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  975.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  976.  
  977.         getImage(file_original);
  978.  
  979.         final File file = new File(file_original);
  980.         final File file2 = new File(file_copy);
  981.  
  982.  
  983.         Mp3File mp3file = null;
  984.         try {
  985.             mp3file = new Mp3File(file_original);
  986.  
  987.  
  988.         } catch (IOException e) {
  989.             e.printStackTrace();
  990.         } catch (UnsupportedTagException e) {
  991.             e.printStackTrace();
  992.         } catch (InvalidDataException e) {
  993.             e.printStackTrace();
  994.         }
  995.         ID3v1 id3v1Tag;
  996.         if (mp3file.hasId3v1Tag()) {
  997.             id3v1Tag =  mp3file.getId3v1Tag();
  998.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  999.             Title.setText("Title: "+id3v1Tag.getTitle());
  1000.             Album.setText("Album: "+id3v1Tag.getAlbum());
  1001.  
  1002.         }
  1003.  
  1004.         Set.setOnClickListener(new View.OnClickListener() {
  1005.             @Override
  1006.             public void onClick(View v) {
  1007.  
  1008.  
  1009.                 /**
  1010.                  * Setta i metadati solo per Artista, album e titolo
  1011.                  */
  1012.  
  1013.                 Mp3File mp3file = null;
  1014.                 try {
  1015.                     mp3file = new Mp3File(file_original);
  1016.                 } catch (IOException e) {
  1017.                     e.printStackTrace();
  1018.                 } catch (UnsupportedTagException e) {
  1019.                     e.printStackTrace();
  1020.                 } catch (InvalidDataException e) {
  1021.                     e.printStackTrace();
  1022.                 }
  1023.                 ID3v1 id3v1Tag;
  1024.                 if (mp3file.hasId3v1Tag()) {
  1025.                     id3v1Tag = mp3file.getId3v1Tag();
  1026.                 } else {
  1027.                     // mp3 does not have an ID3v1 tag, let's create one..
  1028.                     id3v1Tag = new ID3v1Tag();
  1029.                     mp3file.setId3v1Tag(id3v1Tag);
  1030.                 }
  1031.                 id3v1Tag.setArtist(artist);
  1032.                 id3v1Tag.setTitle(title);
  1033.                 id3v1Tag.setAlbum(album);
  1034.  
  1035.                 ID3v2 id3v2Tag;
  1036.  
  1037.                 if (mp3file.hasId3v2Tag()) {
  1038.                     id3v2Tag = mp3file.getId3v2Tag();
  1039.                 } else {
  1040.                     // mp3 does not have an ID3v2 tag, let's create one..
  1041.                     id3v2Tag = new ID3v24Tag();
  1042.                     mp3file.setId3v2Tag(id3v2Tag);
  1043.                 }
  1044.  
  1045.  
  1046.  
  1047.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  1048.  
  1049.  
  1050.  
  1051.                 /**
  1052.                  * Crea nuovo file, elimino il vecchio
  1053.                  * rinomino il nuovo come il vecchio
  1054.                  *
  1055.                  *          (a > b > a)
  1056.                  *
  1057.                  */
  1058.  
  1059.                 try {
  1060.                     mp3file.save(file_copy);
  1061.                     file.delete();
  1062.                     file2.renameTo(file);
  1063.                     Intent intent = getIntent();
  1064.                     finish();
  1065.                     startActivity(intent);
  1066.  
  1067.                 } catch (IOException e) {
  1068.                     e.printStackTrace();
  1069.                 } catch (NotSupportedException e) {
  1070.                     e.printStackTrace();
  1071.                 }
  1072.  
  1073.             }
  1074.             });
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087. }
  1088.  
  1089.     private byte[] getByte(String path) {
  1090.         byte[] getBytes = {};
  1091.         try {
  1092.             File file = new File(path);
  1093.             getBytes = new byte[(int) file.length()];
  1094.             InputStream is = new FileInputStream(file);
  1095.             is.read(getBytes);
  1096.             is.close();
  1097.         } catch (FileNotFoundException e) {
  1098.             e.printStackTrace();
  1099.         } catch (IOException e) {
  1100.             e.printStackTrace();
  1101.         }
  1102.         return getBytes;
  1103.     }
  1104.  
  1105.  
  1106.     public void getImage(String path){
  1107.         if(path != null){
  1108.  
  1109.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  1110.             mmr.setDataSource(path);
  1111.             byte [] data = mmr.getEmbeddedPicture();
  1112.  
  1113.             if(data != null)
  1114.             {
  1115.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  1116.                 Cover.setImageBitmap(bitmap);
  1117.                 Cover.setAdjustViewBounds(true);
  1118.             }else
  1119.             {
  1120.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  1121.                 Cover.setAdjustViewBounds(true);
  1122.             }
  1123.         }
  1124.     }
  1125. }
  1126. package com.fast0n.mp3agic;
  1127.  
  1128. import android.Manifest;
  1129. import android.content.Intent;
  1130. import android.content.pm.PackageManager;
  1131. import android.graphics.Bitmap;
  1132. import android.graphics.BitmapFactory;
  1133. import android.media.MediaMetadataRetriever;
  1134. import android.os.Build;
  1135. import android.os.Environment;
  1136. import android.support.v4.app.ActivityCompat;
  1137. import android.support.v7.app.AppCompatActivity;
  1138. import android.os.Bundle;
  1139. import android.view.View;
  1140. import android.widget.Button;
  1141. import android.widget.ImageView;
  1142. import android.widget.TextView;
  1143.  
  1144. import com.mpatric.mp3agic.ID3v1;
  1145. import com.mpatric.mp3agic.ID3v1Tag;
  1146. import com.mpatric.mp3agic.ID3v2;
  1147. import com.mpatric.mp3agic.ID3v24Tag;
  1148. import com.mpatric.mp3agic.InvalidDataException;
  1149. import com.mpatric.mp3agic.Mp3File;
  1150. import com.mpatric.mp3agic.NotSupportedException;
  1151. import com.mpatric.mp3agic.UnsupportedTagException;
  1152.  
  1153. import java.io.ByteArrayOutputStream;
  1154. import java.io.File;
  1155. import java.io.FileInputStream;
  1156. import java.io.FileNotFoundException;
  1157. import java.io.FileOutputStream;
  1158. import java.io.IOException;
  1159. import java.io.InputStream;
  1160. import java.io.RandomAccessFile;
  1161. import java.nio.file.Files;
  1162. import java.nio.file.Path;
  1163. import java.nio.file.Paths;
  1164.  
  1165.  
  1166. public class MainActivity extends AppCompatActivity {
  1167.  
  1168.     TextView Artist,Album,Title;
  1169.     ImageView Cover;
  1170.     Button Set;
  1171.  
  1172.     String artist = "Massimiliano Montaleone";
  1173.     String album = "Fast0n";
  1174.     String title = "DeepMusic";
  1175.  
  1176.     @Override
  1177.     protected void onCreate(Bundle savedInstanceState) {
  1178.         super.onCreate(savedInstanceState);
  1179.         setContentView(R.layout.activity_main);
  1180.  
  1181.         Artist = (TextView)findViewById(R.id.artist);
  1182.         Album = (TextView)findViewById(R.id.album);
  1183.         Title = (TextView)findViewById(R.id.title);
  1184.         Cover = (ImageView)findViewById(R.id.cover);
  1185.         Set = (Button)findViewById(R.id.button);
  1186.  
  1187.  
  1188.  
  1189.  
  1190.         if (Build.VERSION.SDK_INT >= 23) {
  1191.             if (checkSelfPermission(
  1192.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  1193.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  1194.             }
  1195.         }
  1196.  
  1197.  
  1198.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  1199.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  1200.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  1201.  
  1202.         getImage(file_original);
  1203.  
  1204.         final File file = new File(file_original);
  1205.         final File file2 = new File(file_copy);
  1206.  
  1207.  
  1208.         Mp3File mp3file = null;
  1209.         try {
  1210.             mp3file = new Mp3File(file_original);
  1211.  
  1212.  
  1213.         } catch (IOException e) {
  1214.             e.printStackTrace();
  1215.         } catch (UnsupportedTagException e) {
  1216.             e.printStackTrace();
  1217.         } catch (InvalidDataException e) {
  1218.             e.printStackTrace();
  1219.         }
  1220.         ID3v1 id3v1Tag;
  1221.         if (mp3file.hasId3v1Tag()) {
  1222.             id3v1Tag =  mp3file.getId3v1Tag();
  1223.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  1224.             Title.setText("Title: "+id3v1Tag.getTitle());
  1225.             Album.setText("Album: "+id3v1Tag.getAlbum());
  1226.  
  1227.         }
  1228.  
  1229.         Set.setOnClickListener(new View.OnClickListener() {
  1230.             @Override
  1231.             public void onClick(View v) {
  1232.  
  1233.  
  1234.                 /**
  1235.                  * Setta i metadati solo per Artista, album e titolo
  1236.                  */
  1237.  
  1238.                 Mp3File mp3file = null;
  1239.                 try {
  1240.                     mp3file = new Mp3File(file_original);
  1241.                 } catch (IOException e) {
  1242.                     e.printStackTrace();
  1243.                 } catch (UnsupportedTagException e) {
  1244.                     e.printStackTrace();
  1245.                 } catch (InvalidDataException e) {
  1246.                     e.printStackTrace();
  1247.                 }
  1248.                 ID3v1 id3v1Tag;
  1249.                 if (mp3file.hasId3v1Tag()) {
  1250.                     id3v1Tag = mp3file.getId3v1Tag();
  1251.                 } else {
  1252.                     // mp3 does not have an ID3v1 tag, let's create one..
  1253.                     id3v1Tag = new ID3v1Tag();
  1254.                     mp3file.setId3v1Tag(id3v1Tag);
  1255.                 }
  1256.                 id3v1Tag.setArtist(artist);
  1257.                 id3v1Tag.setTitle(title);
  1258.                 id3v1Tag.setAlbum(album);
  1259.  
  1260.                 ID3v2 id3v2Tag;
  1261.  
  1262.                 if (mp3file.hasId3v2Tag()) {
  1263.                     id3v2Tag = mp3file.getId3v2Tag();
  1264.                 } else {
  1265.                     // mp3 does not have an ID3v2 tag, let's create one..
  1266.                     id3v2Tag = new ID3v24Tag();
  1267.                     mp3file.setId3v2Tag(id3v2Tag);
  1268.                 }
  1269.  
  1270.  
  1271.  
  1272.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  1273.  
  1274.  
  1275.  
  1276.                 /**
  1277.                  * Crea nuovo file, elimino il vecchio
  1278.                  * rinomino il nuovo come il vecchio
  1279.                  *
  1280.                  *          (a > b > a)
  1281.                  *
  1282.                  */
  1283.  
  1284.                 try {
  1285.                     mp3file.save(file_copy);
  1286.                     file.delete();
  1287.                     file2.renameTo(file);
  1288.                     Intent intent = getIntent();
  1289.                     finish();
  1290.                     startActivity(intent);
  1291.  
  1292.                 } catch (IOException e) {
  1293.                     e.printStackTrace();
  1294.                 } catch (NotSupportedException e) {
  1295.                     e.printStackTrace();
  1296.                 }
  1297.  
  1298.             }
  1299.             });
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312. }
  1313.  
  1314.     private byte[] getByte(String path) {
  1315.         byte[] getBytes = {};
  1316.         try {
  1317.             File file = new File(path);
  1318.             getBytes = new byte[(int) file.length()];
  1319.             InputStream is = new FileInputStream(file);
  1320.             is.read(getBytes);
  1321.             is.close();
  1322.         } catch (FileNotFoundException e) {
  1323.             e.printStackTrace();
  1324.         } catch (IOException e) {
  1325.             e.printStackTrace();
  1326.         }
  1327.         return getBytes;
  1328.     }
  1329.  
  1330.  
  1331.     public void getImage(String path){
  1332.         if(path != null){
  1333.  
  1334.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  1335.             mmr.setDataSource(path);
  1336.             byte [] data = mmr.getEmbeddedPicture();
  1337.  
  1338.             if(data != null)
  1339.             {
  1340.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  1341.                 Cover.setImageBitmap(bitmap);
  1342.                 Cover.setAdjustViewBounds(true);
  1343.             }else
  1344.             {
  1345.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  1346.                 Cover.setAdjustViewBounds(true);
  1347.             }
  1348.         }
  1349.     }
  1350. }
  1351. package com.fast0n.mp3agic;
  1352.  
  1353. import android.Manifest;
  1354. import android.content.Intent;
  1355. import android.content.pm.PackageManager;
  1356. import android.graphics.Bitmap;
  1357. import android.graphics.BitmapFactory;
  1358. import android.media.MediaMetadataRetriever;
  1359. import android.os.Build;
  1360. import android.os.Environment;
  1361. import android.support.v4.app.ActivityCompat;
  1362. import android.support.v7.app.AppCompatActivity;
  1363. import android.os.Bundle;
  1364. import android.view.View;
  1365. import android.widget.Button;
  1366. import android.widget.ImageView;
  1367. import android.widget.TextView;
  1368.  
  1369. import com.mpatric.mp3agic.ID3v1;
  1370. import com.mpatric.mp3agic.ID3v1Tag;
  1371. import com.mpatric.mp3agic.ID3v2;
  1372. import com.mpatric.mp3agic.ID3v24Tag;
  1373. import com.mpatric.mp3agic.InvalidDataException;
  1374. import com.mpatric.mp3agic.Mp3File;
  1375. import com.mpatric.mp3agic.NotSupportedException;
  1376. import com.mpatric.mp3agic.UnsupportedTagException;
  1377.  
  1378. import java.io.ByteArrayOutputStream;
  1379. import java.io.File;
  1380. import java.io.FileInputStream;
  1381. import java.io.FileNotFoundException;
  1382. import java.io.FileOutputStream;
  1383. import java.io.IOException;
  1384. import java.io.InputStream;
  1385. import java.io.RandomAccessFile;
  1386. import java.nio.file.Files;
  1387. import java.nio.file.Path;
  1388. import java.nio.file.Paths;
  1389.  
  1390.  
  1391. public class MainActivity extends AppCompatActivity {
  1392.  
  1393.     TextView Artist,Album,Title;
  1394.     ImageView Cover;
  1395.     Button Set;
  1396.  
  1397.     String artist = "Massimiliano Montaleone";
  1398.     String album = "Fast0n";
  1399.     String title = "DeepMusic";
  1400.  
  1401.     @Override
  1402.     protected void onCreate(Bundle savedInstanceState) {
  1403.         super.onCreate(savedInstanceState);
  1404.         setContentView(R.layout.activity_main);
  1405.  
  1406.         Artist = (TextView)findViewById(R.id.artist);
  1407.         Album = (TextView)findViewById(R.id.album);
  1408.         Title = (TextView)findViewById(R.id.title);
  1409.         Cover = (ImageView)findViewById(R.id.cover);
  1410.         Set = (Button)findViewById(R.id.button);
  1411.  
  1412.  
  1413.  
  1414.  
  1415.         if (Build.VERSION.SDK_INT >= 23) {
  1416.             if (checkSelfPermission(
  1417.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  1418.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  1419.             }
  1420.         }
  1421.  
  1422.  
  1423.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  1424.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  1425.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  1426.  
  1427.         getImage(file_original);
  1428.  
  1429.         final File file = new File(file_original);
  1430.         final File file2 = new File(file_copy);
  1431.  
  1432.  
  1433.         Mp3File mp3file = null;
  1434.         try {
  1435.             mp3file = new Mp3File(file_original);
  1436.  
  1437.  
  1438.         } catch (IOException e) {
  1439.             e.printStackTrace();
  1440.         } catch (UnsupportedTagException e) {
  1441.             e.printStackTrace();
  1442.         } catch (InvalidDataException e) {
  1443.             e.printStackTrace();
  1444.         }
  1445.         ID3v1 id3v1Tag;
  1446.         if (mp3file.hasId3v1Tag()) {
  1447.             id3v1Tag =  mp3file.getId3v1Tag();
  1448.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  1449.             Title.setText("Title: "+id3v1Tag.getTitle());
  1450.             Album.setText("Album: "+id3v1Tag.getAlbum());
  1451.  
  1452.         }
  1453.  
  1454.         Set.setOnClickListener(new View.OnClickListener() {
  1455.             @Override
  1456.             public void onClick(View v) {
  1457.  
  1458.  
  1459.                 /**
  1460.                  * Setta i metadati solo per Artista, album e titolo
  1461.                  */
  1462.  
  1463.                 Mp3File mp3file = null;
  1464.                 try {
  1465.                     mp3file = new Mp3File(file_original);
  1466.                 } catch (IOException e) {
  1467.                     e.printStackTrace();
  1468.                 } catch (UnsupportedTagException e) {
  1469.                     e.printStackTrace();
  1470.                 } catch (InvalidDataException e) {
  1471.                     e.printStackTrace();
  1472.                 }
  1473.                 ID3v1 id3v1Tag;
  1474.                 if (mp3file.hasId3v1Tag()) {
  1475.                     id3v1Tag = mp3file.getId3v1Tag();
  1476.                 } else {
  1477.                     // mp3 does not have an ID3v1 tag, let's create one..
  1478.                     id3v1Tag = new ID3v1Tag();
  1479.                     mp3file.setId3v1Tag(id3v1Tag);
  1480.                 }
  1481.                 id3v1Tag.setArtist(artist);
  1482.                 id3v1Tag.setTitle(title);
  1483.                 id3v1Tag.setAlbum(album);
  1484.  
  1485.                 ID3v2 id3v2Tag;
  1486.  
  1487.                 if (mp3file.hasId3v2Tag()) {
  1488.                     id3v2Tag = mp3file.getId3v2Tag();
  1489.                 } else {
  1490.                     // mp3 does not have an ID3v2 tag, let's create one..
  1491.                     id3v2Tag = new ID3v24Tag();
  1492.                     mp3file.setId3v2Tag(id3v2Tag);
  1493.                 }
  1494.  
  1495.  
  1496.  
  1497.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  1498.  
  1499.  
  1500.  
  1501.                 /**
  1502.                  * Crea nuovo file, elimino il vecchio
  1503.                  * rinomino il nuovo come il vecchio
  1504.                  *
  1505.                  *          (a > b > a)
  1506.                  *
  1507.                  */
  1508.  
  1509.                 try {
  1510.                     mp3file.save(file_copy);
  1511.                     file.delete();
  1512.                     file2.renameTo(file);
  1513.                     Intent intent = getIntent();
  1514.                     finish();
  1515.                     startActivity(intent);
  1516.  
  1517.                 } catch (IOException e) {
  1518.                     e.printStackTrace();
  1519.                 } catch (NotSupportedException e) {
  1520.                     e.printStackTrace();
  1521.                 }
  1522.  
  1523.             }
  1524.             });
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537. }
  1538.  
  1539.     private byte[] getByte(String path) {
  1540.         byte[] getBytes = {};
  1541.         try {
  1542.             File file = new File(path);
  1543.             getBytes = new byte[(int) file.length()];
  1544.             InputStream is = new FileInputStream(file);
  1545.             is.read(getBytes);
  1546.             is.close();
  1547.         } catch (FileNotFoundException e) {
  1548.             e.printStackTrace();
  1549.         } catch (IOException e) {
  1550.             e.printStackTrace();
  1551.         }
  1552.         return getBytes;
  1553.     }
  1554.  
  1555.  
  1556.     public void getImage(String path){
  1557.         if(path != null){
  1558.  
  1559.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  1560.             mmr.setDataSource(path);
  1561.             byte [] data = mmr.getEmbeddedPicture();
  1562.  
  1563.             if(data != null)
  1564.             {
  1565.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  1566.                 Cover.setImageBitmap(bitmap);
  1567.                 Cover.setAdjustViewBounds(true);
  1568.             }else
  1569.             {
  1570.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  1571.                 Cover.setAdjustViewBounds(true);
  1572.             }
  1573.         }
  1574.     }
  1575. }
  1576. package com.fast0n.mp3agic;
  1577.  
  1578. import android.Manifest;
  1579. import android.content.Intent;
  1580. import android.content.pm.PackageManager;
  1581. import android.graphics.Bitmap;
  1582. import android.graphics.BitmapFactory;
  1583. import android.media.MediaMetadataRetriever;
  1584. import android.os.Build;
  1585. import android.os.Environment;
  1586. import android.support.v4.app.ActivityCompat;
  1587. import android.support.v7.app.AppCompatActivity;
  1588. import android.os.Bundle;
  1589. import android.view.View;
  1590. import android.widget.Button;
  1591. import android.widget.ImageView;
  1592. import android.widget.TextView;
  1593.  
  1594. import com.mpatric.mp3agic.ID3v1;
  1595. import com.mpatric.mp3agic.ID3v1Tag;
  1596. import com.mpatric.mp3agic.ID3v2;
  1597. import com.mpatric.mp3agic.ID3v24Tag;
  1598. import com.mpatric.mp3agic.InvalidDataException;
  1599. import com.mpatric.mp3agic.Mp3File;
  1600. import com.mpatric.mp3agic.NotSupportedException;
  1601. import com.mpatric.mp3agic.UnsupportedTagException;
  1602.  
  1603. import java.io.ByteArrayOutputStream;
  1604. import java.io.File;
  1605. import java.io.FileInputStream;
  1606. import java.io.FileNotFoundException;
  1607. import java.io.FileOutputStream;
  1608. import java.io.IOException;
  1609. import java.io.InputStream;
  1610. import java.io.RandomAccessFile;
  1611. import java.nio.file.Files;
  1612. import java.nio.file.Path;
  1613. import java.nio.file.Paths;
  1614.  
  1615.  
  1616. public class MainActivity extends AppCompatActivity {
  1617.  
  1618.     TextView Artist,Album,Title;
  1619.     ImageView Cover;
  1620.     Button Set;
  1621.  
  1622.     String artist = "Massimiliano Montaleone";
  1623.     String album = "Fast0n";
  1624.     String title = "DeepMusic";
  1625.  
  1626.     @Override
  1627.     protected void onCreate(Bundle savedInstanceState) {
  1628.         super.onCreate(savedInstanceState);
  1629.         setContentView(R.layout.activity_main);
  1630.  
  1631.         Artist = (TextView)findViewById(R.id.artist);
  1632.         Album = (TextView)findViewById(R.id.album);
  1633.         Title = (TextView)findViewById(R.id.title);
  1634.         Cover = (ImageView)findViewById(R.id.cover);
  1635.         Set = (Button)findViewById(R.id.button);
  1636.  
  1637.  
  1638.  
  1639.  
  1640.         if (Build.VERSION.SDK_INT >= 23) {
  1641.             if (checkSelfPermission(
  1642.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  1643.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  1644.             }
  1645.         }
  1646.  
  1647.  
  1648.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  1649.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  1650.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  1651.  
  1652.         getImage(file_original);
  1653.  
  1654.         final File file = new File(file_original);
  1655.         final File file2 = new File(file_copy);
  1656.  
  1657.  
  1658.         Mp3File mp3file = null;
  1659.         try {
  1660.             mp3file = new Mp3File(file_original);
  1661.  
  1662.  
  1663.         } catch (IOException e) {
  1664.             e.printStackTrace();
  1665.         } catch (UnsupportedTagException e) {
  1666.             e.printStackTrace();
  1667.         } catch (InvalidDataException e) {
  1668.             e.printStackTrace();
  1669.         }
  1670.         ID3v1 id3v1Tag;
  1671.         if (mp3file.hasId3v1Tag()) {
  1672.             id3v1Tag =  mp3file.getId3v1Tag();
  1673.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  1674.             Title.setText("Title: "+id3v1Tag.getTitle());
  1675.             Album.setText("Album: "+id3v1Tag.getAlbum());
  1676.  
  1677.         }
  1678.  
  1679.         Set.setOnClickListener(new View.OnClickListener() {
  1680.             @Override
  1681.             public void onClick(View v) {
  1682.  
  1683.  
  1684.                 /**
  1685.                  * Setta i metadati solo per Artista, album e titolo
  1686.                  */
  1687.  
  1688.                 Mp3File mp3file = null;
  1689.                 try {
  1690.                     mp3file = new Mp3File(file_original);
  1691.                 } catch (IOException e) {
  1692.                     e.printStackTrace();
  1693.                 } catch (UnsupportedTagException e) {
  1694.                     e.printStackTrace();
  1695.                 } catch (InvalidDataException e) {
  1696.                     e.printStackTrace();
  1697.                 }
  1698.                 ID3v1 id3v1Tag;
  1699.                 if (mp3file.hasId3v1Tag()) {
  1700.                     id3v1Tag = mp3file.getId3v1Tag();
  1701.                 } else {
  1702.                     // mp3 does not have an ID3v1 tag, let's create one..
  1703.                     id3v1Tag = new ID3v1Tag();
  1704.                     mp3file.setId3v1Tag(id3v1Tag);
  1705.                 }
  1706.                 id3v1Tag.setArtist(artist);
  1707.                 id3v1Tag.setTitle(title);
  1708.                 id3v1Tag.setAlbum(album);
  1709.  
  1710.                 ID3v2 id3v2Tag;
  1711.  
  1712.                 if (mp3file.hasId3v2Tag()) {
  1713.                     id3v2Tag = mp3file.getId3v2Tag();
  1714.                 } else {
  1715.                     // mp3 does not have an ID3v2 tag, let's create one..
  1716.                     id3v2Tag = new ID3v24Tag();
  1717.                     mp3file.setId3v2Tag(id3v2Tag);
  1718.                 }
  1719.  
  1720.  
  1721.  
  1722.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  1723.  
  1724.  
  1725.  
  1726.                 /**
  1727.                  * Crea nuovo file, elimino il vecchio
  1728.                  * rinomino il nuovo come il vecchio
  1729.                  *
  1730.                  *          (a > b > a)
  1731.                  *
  1732.                  */
  1733.  
  1734.                 try {
  1735.                     mp3file.save(file_copy);
  1736.                     file.delete();
  1737.                     file2.renameTo(file);
  1738.                     Intent intent = getIntent();
  1739.                     finish();
  1740.                     startActivity(intent);
  1741.  
  1742.                 } catch (IOException e) {
  1743.                     e.printStackTrace();
  1744.                 } catch (NotSupportedException e) {
  1745.                     e.printStackTrace();
  1746.                 }
  1747.  
  1748.             }
  1749.             });
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762. }
  1763.  
  1764.     private byte[] getByte(String path) {
  1765.         byte[] getBytes = {};
  1766.         try {
  1767.             File file = new File(path);
  1768.             getBytes = new byte[(int) file.length()];
  1769.             InputStream is = new FileInputStream(file);
  1770.             is.read(getBytes);
  1771.             is.close();
  1772.         } catch (FileNotFoundException e) {
  1773.             e.printStackTrace();
  1774.         } catch (IOException e) {
  1775.             e.printStackTrace();
  1776.         }
  1777.         return getBytes;
  1778.     }
  1779.  
  1780.  
  1781.     public void getImage(String path){
  1782.         if(path != null){
  1783.  
  1784.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  1785.             mmr.setDataSource(path);
  1786.             byte [] data = mmr.getEmbeddedPicture();
  1787.  
  1788.             if(data != null)
  1789.             {
  1790.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  1791.                 Cover.setImageBitmap(bitmap);
  1792.                 Cover.setAdjustViewBounds(true);
  1793.             }else
  1794.             {
  1795.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  1796.                 Cover.setAdjustViewBounds(true);
  1797.             }
  1798.         }
  1799.     }
  1800. }
  1801. package com.fast0n.mp3agic;
  1802.  
  1803. import android.Manifest;
  1804. import android.content.Intent;
  1805. import android.content.pm.PackageManager;
  1806. import android.graphics.Bitmap;
  1807. import android.graphics.BitmapFactory;
  1808. import android.media.MediaMetadataRetriever;
  1809. import android.os.Build;
  1810. import android.os.Environment;
  1811. import android.support.v4.app.ActivityCompat;
  1812. import android.support.v7.app.AppCompatActivity;
  1813. import android.os.Bundle;
  1814. import android.view.View;
  1815. import android.widget.Button;
  1816. import android.widget.ImageView;
  1817. import android.widget.TextView;
  1818.  
  1819. import com.mpatric.mp3agic.ID3v1;
  1820. import com.mpatric.mp3agic.ID3v1Tag;
  1821. import com.mpatric.mp3agic.ID3v2;
  1822. import com.mpatric.mp3agic.ID3v24Tag;
  1823. import com.mpatric.mp3agic.InvalidDataException;
  1824. import com.mpatric.mp3agic.Mp3File;
  1825. import com.mpatric.mp3agic.NotSupportedException;
  1826. import com.mpatric.mp3agic.UnsupportedTagException;
  1827.  
  1828. import java.io.ByteArrayOutputStream;
  1829. import java.io.File;
  1830. import java.io.FileInputStream;
  1831. import java.io.FileNotFoundException;
  1832. import java.io.FileOutputStream;
  1833. import java.io.IOException;
  1834. import java.io.InputStream;
  1835. import java.io.RandomAccessFile;
  1836. import java.nio.file.Files;
  1837. import java.nio.file.Path;
  1838. import java.nio.file.Paths;
  1839.  
  1840.  
  1841. public class MainActivity extends AppCompatActivity {
  1842.  
  1843.     TextView Artist,Album,Title;
  1844.     ImageView Cover;
  1845.     Button Set;
  1846.  
  1847.     String artist = "Massimiliano Montaleone";
  1848.     String album = "Fast0n";
  1849.     String title = "DeepMusic";
  1850.  
  1851.     @Override
  1852.     protected void onCreate(Bundle savedInstanceState) {
  1853.         super.onCreate(savedInstanceState);
  1854.         setContentView(R.layout.activity_main);
  1855.  
  1856.         Artist = (TextView)findViewById(R.id.artist);
  1857.         Album = (TextView)findViewById(R.id.album);
  1858.         Title = (TextView)findViewById(R.id.title);
  1859.         Cover = (ImageView)findViewById(R.id.cover);
  1860.         Set = (Button)findViewById(R.id.button);
  1861.  
  1862.  
  1863.  
  1864.  
  1865.         if (Build.VERSION.SDK_INT >= 23) {
  1866.             if (checkSelfPermission(
  1867.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  1868.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  1869.             }
  1870.         }
  1871.  
  1872.  
  1873.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  1874.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  1875.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  1876.  
  1877.         getImage(file_original);
  1878.  
  1879.         final File file = new File(file_original);
  1880.         final File file2 = new File(file_copy);
  1881.  
  1882.  
  1883.         Mp3File mp3file = null;
  1884.         try {
  1885.             mp3file = new Mp3File(file_original);
  1886.  
  1887.  
  1888.         } catch (IOException e) {
  1889.             e.printStackTrace();
  1890.         } catch (UnsupportedTagException e) {
  1891.             e.printStackTrace();
  1892.         } catch (InvalidDataException e) {
  1893.             e.printStackTrace();
  1894.         }
  1895.         ID3v1 id3v1Tag;
  1896.         if (mp3file.hasId3v1Tag()) {
  1897.             id3v1Tag =  mp3file.getId3v1Tag();
  1898.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  1899.             Title.setText("Title: "+id3v1Tag.getTitle());
  1900.             Album.setText("Album: "+id3v1Tag.getAlbum());
  1901.  
  1902.         }
  1903.  
  1904.         Set.setOnClickListener(new View.OnClickListener() {
  1905.             @Override
  1906.             public void onClick(View v) {
  1907.  
  1908.  
  1909.                 /**
  1910.                  * Setta i metadati solo per Artista, album e titolo
  1911.                  */
  1912.  
  1913.                 Mp3File mp3file = null;
  1914.                 try {
  1915.                     mp3file = new Mp3File(file_original);
  1916.                 } catch (IOException e) {
  1917.                     e.printStackTrace();
  1918.                 } catch (UnsupportedTagException e) {
  1919.                     e.printStackTrace();
  1920.                 } catch (InvalidDataException e) {
  1921.                     e.printStackTrace();
  1922.                 }
  1923.                 ID3v1 id3v1Tag;
  1924.                 if (mp3file.hasId3v1Tag()) {
  1925.                     id3v1Tag = mp3file.getId3v1Tag();
  1926.                 } else {
  1927.                     // mp3 does not have an ID3v1 tag, let's create one..
  1928.                     id3v1Tag = new ID3v1Tag();
  1929.                     mp3file.setId3v1Tag(id3v1Tag);
  1930.                 }
  1931.                 id3v1Tag.setArtist(artist);
  1932.                 id3v1Tag.setTitle(title);
  1933.                 id3v1Tag.setAlbum(album);
  1934.  
  1935.                 ID3v2 id3v2Tag;
  1936.  
  1937.                 if (mp3file.hasId3v2Tag()) {
  1938.                     id3v2Tag = mp3file.getId3v2Tag();
  1939.                 } else {
  1940.                     // mp3 does not have an ID3v2 tag, let's create one..
  1941.                     id3v2Tag = new ID3v24Tag();
  1942.                     mp3file.setId3v2Tag(id3v2Tag);
  1943.                 }
  1944.  
  1945.  
  1946.  
  1947.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  1948.  
  1949.  
  1950.  
  1951.                 /**
  1952.                  * Crea nuovo file, elimino il vecchio
  1953.                  * rinomino il nuovo come il vecchio
  1954.                  *
  1955.                  *          (a > b > a)
  1956.                  *
  1957.                  */
  1958.  
  1959.                 try {
  1960.                     mp3file.save(file_copy);
  1961.                     file.delete();
  1962.                     file2.renameTo(file);
  1963.                     Intent intent = getIntent();
  1964.                     finish();
  1965.                     startActivity(intent);
  1966.  
  1967.                 } catch (IOException e) {
  1968.                     e.printStackTrace();
  1969.                 } catch (NotSupportedException e) {
  1970.                     e.printStackTrace();
  1971.                 }
  1972.  
  1973.             }
  1974.             });
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987. }
  1988.  
  1989.     private byte[] getByte(String path) {
  1990.         byte[] getBytes = {};
  1991.         try {
  1992.             File file = new File(path);
  1993.             getBytes = new byte[(int) file.length()];
  1994.             InputStream is = new FileInputStream(file);
  1995.             is.read(getBytes);
  1996.             is.close();
  1997.         } catch (FileNotFoundException e) {
  1998.             e.printStackTrace();
  1999.         } catch (IOException e) {
  2000.             e.printStackTrace();
  2001.         }
  2002.         return getBytes;
  2003.     }
  2004.  
  2005.  
  2006.     public void getImage(String path){
  2007.         if(path != null){
  2008.  
  2009.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  2010.             mmr.setDataSource(path);
  2011.             byte [] data = mmr.getEmbeddedPicture();
  2012.  
  2013.             if(data != null)
  2014.             {
  2015.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  2016.                 Cover.setImageBitmap(bitmap);
  2017.                 Cover.setAdjustViewBounds(true);
  2018.             }else
  2019.             {
  2020.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  2021.                 Cover.setAdjustViewBounds(true);
  2022.             }
  2023.         }
  2024.     }
  2025. }
  2026. package com.fast0n.mp3agic;
  2027.  
  2028. import android.Manifest;
  2029. import android.content.Intent;
  2030. import android.content.pm.PackageManager;
  2031. import android.graphics.Bitmap;
  2032. import android.graphics.BitmapFactory;
  2033. import android.media.MediaMetadataRetriever;
  2034. import android.os.Build;
  2035. import android.os.Environment;
  2036. import android.support.v4.app.ActivityCompat;
  2037. import android.support.v7.app.AppCompatActivity;
  2038. import android.os.Bundle;
  2039. import android.view.View;
  2040. import android.widget.Button;
  2041. import android.widget.ImageView;
  2042. import android.widget.TextView;
  2043.  
  2044. import com.mpatric.mp3agic.ID3v1;
  2045. import com.mpatric.mp3agic.ID3v1Tag;
  2046. import com.mpatric.mp3agic.ID3v2;
  2047. import com.mpatric.mp3agic.ID3v24Tag;
  2048. import com.mpatric.mp3agic.InvalidDataException;
  2049. import com.mpatric.mp3agic.Mp3File;
  2050. import com.mpatric.mp3agic.NotSupportedException;
  2051. import com.mpatric.mp3agic.UnsupportedTagException;
  2052.  
  2053. import java.io.ByteArrayOutputStream;
  2054. import java.io.File;
  2055. import java.io.FileInputStream;
  2056. import java.io.FileNotFoundException;
  2057. import java.io.FileOutputStream;
  2058. import java.io.IOException;
  2059. import java.io.InputStream;
  2060. import java.io.RandomAccessFile;
  2061. import java.nio.file.Files;
  2062. import java.nio.file.Path;
  2063. import java.nio.file.Paths;
  2064.  
  2065.  
  2066. public class MainActivity extends AppCompatActivity {
  2067.  
  2068.     TextView Artist,Album,Title;
  2069.     ImageView Cover;
  2070.     Button Set;
  2071.  
  2072.     String artist = "Massimiliano Montaleone";
  2073.     String album = "Fast0n";
  2074.     String title = "DeepMusic";
  2075.  
  2076.     @Override
  2077.     protected void onCreate(Bundle savedInstanceState) {
  2078.         super.onCreate(savedInstanceState);
  2079.         setContentView(R.layout.activity_main);
  2080.  
  2081.         Artist = (TextView)findViewById(R.id.artist);
  2082.         Album = (TextView)findViewById(R.id.album);
  2083.         Title = (TextView)findViewById(R.id.title);
  2084.         Cover = (ImageView)findViewById(R.id.cover);
  2085.         Set = (Button)findViewById(R.id.button);
  2086.  
  2087.  
  2088.  
  2089.  
  2090.         if (Build.VERSION.SDK_INT >= 23) {
  2091.             if (checkSelfPermission(
  2092.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  2093.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  2094.             }
  2095.         }
  2096.  
  2097.  
  2098.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  2099.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  2100.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  2101.  
  2102.         getImage(file_original);
  2103.  
  2104.         final File file = new File(file_original);
  2105.         final File file2 = new File(file_copy);
  2106.  
  2107.  
  2108.         Mp3File mp3file = null;
  2109.         try {
  2110.             mp3file = new Mp3File(file_original);
  2111.  
  2112.  
  2113.         } catch (IOException e) {
  2114.             e.printStackTrace();
  2115.         } catch (UnsupportedTagException e) {
  2116.             e.printStackTrace();
  2117.         } catch (InvalidDataException e) {
  2118.             e.printStackTrace();
  2119.         }
  2120.         ID3v1 id3v1Tag;
  2121.         if (mp3file.hasId3v1Tag()) {
  2122.             id3v1Tag =  mp3file.getId3v1Tag();
  2123.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  2124.             Title.setText("Title: "+id3v1Tag.getTitle());
  2125.             Album.setText("Album: "+id3v1Tag.getAlbum());
  2126.  
  2127.         }
  2128.  
  2129.         Set.setOnClickListener(new View.OnClickListener() {
  2130.             @Override
  2131.             public void onClick(View v) {
  2132.  
  2133.  
  2134.                 /**
  2135.                  * Setta i metadati solo per Artista, album e titolo
  2136.                  */
  2137.  
  2138.                 Mp3File mp3file = null;
  2139.                 try {
  2140.                     mp3file = new Mp3File(file_original);
  2141.                 } catch (IOException e) {
  2142.                     e.printStackTrace();
  2143.                 } catch (UnsupportedTagException e) {
  2144.                     e.printStackTrace();
  2145.                 } catch (InvalidDataException e) {
  2146.                     e.printStackTrace();
  2147.                 }
  2148.                 ID3v1 id3v1Tag;
  2149.                 if (mp3file.hasId3v1Tag()) {
  2150.                     id3v1Tag = mp3file.getId3v1Tag();
  2151.                 } else {
  2152.                     // mp3 does not have an ID3v1 tag, let's create one..
  2153.                     id3v1Tag = new ID3v1Tag();
  2154.                     mp3file.setId3v1Tag(id3v1Tag);
  2155.                 }
  2156.                 id3v1Tag.setArtist(artist);
  2157.                 id3v1Tag.setTitle(title);
  2158.                 id3v1Tag.setAlbum(album);
  2159.  
  2160.                 ID3v2 id3v2Tag;
  2161.  
  2162.                 if (mp3file.hasId3v2Tag()) {
  2163.                     id3v2Tag = mp3file.getId3v2Tag();
  2164.                 } else {
  2165.                     // mp3 does not have an ID3v2 tag, let's create one..
  2166.                     id3v2Tag = new ID3v24Tag();
  2167.                     mp3file.setId3v2Tag(id3v2Tag);
  2168.                 }
  2169.  
  2170.  
  2171.  
  2172.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  2173.  
  2174.  
  2175.  
  2176.                 /**
  2177.                  * Crea nuovo file, elimino il vecchio
  2178.                  * rinomino il nuovo come il vecchio
  2179.                  *
  2180.                  *          (a > b > a)
  2181.                  *
  2182.                  */
  2183.  
  2184.                 try {
  2185.                     mp3file.save(file_copy);
  2186.                     file.delete();
  2187.                     file2.renameTo(file);
  2188.                     Intent intent = getIntent();
  2189.                     finish();
  2190.                     startActivity(intent);
  2191.  
  2192.                 } catch (IOException e) {
  2193.                     e.printStackTrace();
  2194.                 } catch (NotSupportedException e) {
  2195.                     e.printStackTrace();
  2196.                 }
  2197.  
  2198.             }
  2199.             });
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212. }
  2213.  
  2214.     private byte[] getByte(String path) {
  2215.         byte[] getBytes = {};
  2216.         try {
  2217.             File file = new File(path);
  2218.             getBytes = new byte[(int) file.length()];
  2219.             InputStream is = new FileInputStream(file);
  2220.             is.read(getBytes);
  2221.             is.close();
  2222.         } catch (FileNotFoundException e) {
  2223.             e.printStackTrace();
  2224.         } catch (IOException e) {
  2225.             e.printStackTrace();
  2226.         }
  2227.         return getBytes;
  2228.     }
  2229.  
  2230.  
  2231.     public void getImage(String path){
  2232.         if(path != null){
  2233.  
  2234.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  2235.             mmr.setDataSource(path);
  2236.             byte [] data = mmr.getEmbeddedPicture();
  2237.  
  2238.             if(data != null)
  2239.             {
  2240.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  2241.                 Cover.setImageBitmap(bitmap);
  2242.                 Cover.setAdjustViewBounds(true);
  2243.             }else
  2244.             {
  2245.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  2246.                 Cover.setAdjustViewBounds(true);
  2247.             }
  2248.         }
  2249.     }
  2250. }
  2251. package com.fast0n.mp3agic;
  2252.  
  2253. import android.Manifest;
  2254. import android.content.Intent;
  2255. import android.content.pm.PackageManager;
  2256. import android.graphics.Bitmap;
  2257. import android.graphics.BitmapFactory;
  2258. import android.media.MediaMetadataRetriever;
  2259. import android.os.Build;
  2260. import android.os.Environment;
  2261. import android.support.v4.app.ActivityCompat;
  2262. import android.support.v7.app.AppCompatActivity;
  2263. import android.os.Bundle;
  2264. import android.view.View;
  2265. import android.widget.Button;
  2266. import android.widget.ImageView;
  2267. import android.widget.TextView;
  2268.  
  2269. import com.mpatric.mp3agic.ID3v1;
  2270. import com.mpatric.mp3agic.ID3v1Tag;
  2271. import com.mpatric.mp3agic.ID3v2;
  2272. import com.mpatric.mp3agic.ID3v24Tag;
  2273. import com.mpatric.mp3agic.InvalidDataException;
  2274. import com.mpatric.mp3agic.Mp3File;
  2275. import com.mpatric.mp3agic.NotSupportedException;
  2276. import com.mpatric.mp3agic.UnsupportedTagException;
  2277.  
  2278. import java.io.ByteArrayOutputStream;
  2279. import java.io.File;
  2280. import java.io.FileInputStream;
  2281. import java.io.FileNotFoundException;
  2282. import java.io.FileOutputStream;
  2283. import java.io.IOException;
  2284. import java.io.InputStream;
  2285. import java.io.RandomAccessFile;
  2286. import java.nio.file.Files;
  2287. import java.nio.file.Path;
  2288. import java.nio.file.Paths;
  2289.  
  2290.  
  2291. public class MainActivity extends AppCompatActivity {
  2292.  
  2293.     TextView Artist,Album,Title;
  2294.     ImageView Cover;
  2295.     Button Set;
  2296.  
  2297.     String artist = "Massimiliano Montaleone";
  2298.     String album = "Fast0n";
  2299.     String title = "DeepMusic";
  2300.  
  2301.     @Override
  2302.     protected void onCreate(Bundle savedInstanceState) {
  2303.         super.onCreate(savedInstanceState);
  2304.         setContentView(R.layout.activity_main);
  2305.  
  2306.         Artist = (TextView)findViewById(R.id.artist);
  2307.         Album = (TextView)findViewById(R.id.album);
  2308.         Title = (TextView)findViewById(R.id.title);
  2309.         Cover = (ImageView)findViewById(R.id.cover);
  2310.         Set = (Button)findViewById(R.id.button);
  2311.  
  2312.  
  2313.  
  2314.  
  2315.         if (Build.VERSION.SDK_INT >= 23) {
  2316.             if (checkSelfPermission(
  2317.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  2318.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  2319.             }
  2320.         }
  2321.  
  2322.  
  2323.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  2324.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  2325.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  2326.  
  2327.         getImage(file_original);
  2328.  
  2329.         final File file = new File(file_original);
  2330.         final File file2 = new File(file_copy);
  2331.  
  2332.  
  2333.         Mp3File mp3file = null;
  2334.         try {
  2335.             mp3file = new Mp3File(file_original);
  2336.  
  2337.  
  2338.         } catch (IOException e) {
  2339.             e.printStackTrace();
  2340.         } catch (UnsupportedTagException e) {
  2341.             e.printStackTrace();
  2342.         } catch (InvalidDataException e) {
  2343.             e.printStackTrace();
  2344.         }
  2345.         ID3v1 id3v1Tag;
  2346.         if (mp3file.hasId3v1Tag()) {
  2347.             id3v1Tag =  mp3file.getId3v1Tag();
  2348.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  2349.             Title.setText("Title: "+id3v1Tag.getTitle());
  2350.             Album.setText("Album: "+id3v1Tag.getAlbum());
  2351.  
  2352.         }
  2353.  
  2354.         Set.setOnClickListener(new View.OnClickListener() {
  2355.             @Override
  2356.             public void onClick(View v) {
  2357.  
  2358.  
  2359.                 /**
  2360.                  * Setta i metadati solo per Artista, album e titolo
  2361.                  */
  2362.  
  2363.                 Mp3File mp3file = null;
  2364.                 try {
  2365.                     mp3file = new Mp3File(file_original);
  2366.                 } catch (IOException e) {
  2367.                     e.printStackTrace();
  2368.                 } catch (UnsupportedTagException e) {
  2369.                     e.printStackTrace();
  2370.                 } catch (InvalidDataException e) {
  2371.                     e.printStackTrace();
  2372.                 }
  2373.                 ID3v1 id3v1Tag;
  2374.                 if (mp3file.hasId3v1Tag()) {
  2375.                     id3v1Tag = mp3file.getId3v1Tag();
  2376.                 } else {
  2377.                     // mp3 does not have an ID3v1 tag, let's create one..
  2378.                     id3v1Tag = new ID3v1Tag();
  2379.                     mp3file.setId3v1Tag(id3v1Tag);
  2380.                 }
  2381.                 id3v1Tag.setArtist(artist);
  2382.                 id3v1Tag.setTitle(title);
  2383.                 id3v1Tag.setAlbum(album);
  2384.  
  2385.                 ID3v2 id3v2Tag;
  2386.  
  2387.                 if (mp3file.hasId3v2Tag()) {
  2388.                     id3v2Tag = mp3file.getId3v2Tag();
  2389.                 } else {
  2390.                     // mp3 does not have an ID3v2 tag, let's create one..
  2391.                     id3v2Tag = new ID3v24Tag();
  2392.                     mp3file.setId3v2Tag(id3v2Tag);
  2393.                 }
  2394.  
  2395.  
  2396.  
  2397.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  2398.  
  2399.  
  2400.  
  2401.                 /**
  2402.                  * Crea nuovo file, elimino il vecchio
  2403.                  * rinomino il nuovo come il vecchio
  2404.                  *
  2405.                  *          (a > b > a)
  2406.                  *
  2407.                  */
  2408.  
  2409.                 try {
  2410.                     mp3file.save(file_copy);
  2411.                     file.delete();
  2412.                     file2.renameTo(file);
  2413.                     Intent intent = getIntent();
  2414.                     finish();
  2415.                     startActivity(intent);
  2416.  
  2417.                 } catch (IOException e) {
  2418.                     e.printStackTrace();
  2419.                 } catch (NotSupportedException e) {
  2420.                     e.printStackTrace();
  2421.                 }
  2422.  
  2423.             }
  2424.             });
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437. }
  2438.  
  2439.     private byte[] getByte(String path) {
  2440.         byte[] getBytes = {};
  2441.         try {
  2442.             File file = new File(path);
  2443.             getBytes = new byte[(int) file.length()];
  2444.             InputStream is = new FileInputStream(file);
  2445.             is.read(getBytes);
  2446.             is.close();
  2447.         } catch (FileNotFoundException e) {
  2448.             e.printStackTrace();
  2449.         } catch (IOException e) {
  2450.             e.printStackTrace();
  2451.         }
  2452.         return getBytes;
  2453.     }
  2454.  
  2455.  
  2456.     public void getImage(String path){
  2457.         if(path != null){
  2458.  
  2459.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  2460.             mmr.setDataSource(path);
  2461.             byte [] data = mmr.getEmbeddedPicture();
  2462.  
  2463.             if(data != null)
  2464.             {
  2465.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  2466.                 Cover.setImageBitmap(bitmap);
  2467.                 Cover.setAdjustViewBounds(true);
  2468.             }else
  2469.             {
  2470.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  2471.                 Cover.setAdjustViewBounds(true);
  2472.             }
  2473.         }
  2474.     }
  2475. }
  2476. package com.fast0n.mp3agic;
  2477.  
  2478. import android.Manifest;
  2479. import android.content.Intent;
  2480. import android.content.pm.PackageManager;
  2481. import android.graphics.Bitmap;
  2482. import android.graphics.BitmapFactory;
  2483. import android.media.MediaMetadataRetriever;
  2484. import android.os.Build;
  2485. import android.os.Environment;
  2486. import android.support.v4.app.ActivityCompat;
  2487. import android.support.v7.app.AppCompatActivity;
  2488. import android.os.Bundle;
  2489. import android.view.View;
  2490. import android.widget.Button;
  2491. import android.widget.ImageView;
  2492. import android.widget.TextView;
  2493.  
  2494. import com.mpatric.mp3agic.ID3v1;
  2495. import com.mpatric.mp3agic.ID3v1Tag;
  2496. import com.mpatric.mp3agic.ID3v2;
  2497. import com.mpatric.mp3agic.ID3v24Tag;
  2498. import com.mpatric.mp3agic.InvalidDataException;
  2499. import com.mpatric.mp3agic.Mp3File;
  2500. import com.mpatric.mp3agic.NotSupportedException;
  2501. import com.mpatric.mp3agic.UnsupportedTagException;
  2502.  
  2503. import java.io.ByteArrayOutputStream;
  2504. import java.io.File;
  2505. import java.io.FileInputStream;
  2506. import java.io.FileNotFoundException;
  2507. import java.io.FileOutputStream;
  2508. import java.io.IOException;
  2509. import java.io.InputStream;
  2510. import java.io.RandomAccessFile;
  2511. import java.nio.file.Files;
  2512. import java.nio.file.Path;
  2513. import java.nio.file.Paths;
  2514.  
  2515.  
  2516. public class MainActivity extends AppCompatActivity {
  2517.  
  2518.     TextView Artist,Album,Title;
  2519.     ImageView Cover;
  2520.     Button Set;
  2521.  
  2522.     String artist = "Massimiliano Montaleone";
  2523.     String album = "Fast0n";
  2524.     String title = "DeepMusic";
  2525.  
  2526.     @Override
  2527.     protected void onCreate(Bundle savedInstanceState) {
  2528.         super.onCreate(savedInstanceState);
  2529.         setContentView(R.layout.activity_main);
  2530.  
  2531.         Artist = (TextView)findViewById(R.id.artist);
  2532.         Album = (TextView)findViewById(R.id.album);
  2533.         Title = (TextView)findViewById(R.id.title);
  2534.         Cover = (ImageView)findViewById(R.id.cover);
  2535.         Set = (Button)findViewById(R.id.button);
  2536.  
  2537.  
  2538.  
  2539.  
  2540.         if (Build.VERSION.SDK_INT >= 23) {
  2541.             if (checkSelfPermission(
  2542.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  2543.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  2544.             }
  2545.         }
  2546.  
  2547.  
  2548.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  2549.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  2550.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  2551.  
  2552.         getImage(file_original);
  2553.  
  2554.         final File file = new File(file_original);
  2555.         final File file2 = new File(file_copy);
  2556.  
  2557.  
  2558.         Mp3File mp3file = null;
  2559.         try {
  2560.             mp3file = new Mp3File(file_original);
  2561.  
  2562.  
  2563.         } catch (IOException e) {
  2564.             e.printStackTrace();
  2565.         } catch (UnsupportedTagException e) {
  2566.             e.printStackTrace();
  2567.         } catch (InvalidDataException e) {
  2568.             e.printStackTrace();
  2569.         }
  2570.         ID3v1 id3v1Tag;
  2571.         if (mp3file.hasId3v1Tag()) {
  2572.             id3v1Tag =  mp3file.getId3v1Tag();
  2573.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  2574.             Title.setText("Title: "+id3v1Tag.getTitle());
  2575.             Album.setText("Album: "+id3v1Tag.getAlbum());
  2576.  
  2577.         }
  2578.  
  2579.         Set.setOnClickListener(new View.OnClickListener() {
  2580.             @Override
  2581.             public void onClick(View v) {
  2582.  
  2583.  
  2584.                 /**
  2585.                  * Setta i metadati solo per Artista, album e titolo
  2586.                  */
  2587.  
  2588.                 Mp3File mp3file = null;
  2589.                 try {
  2590.                     mp3file = new Mp3File(file_original);
  2591.                 } catch (IOException e) {
  2592.                     e.printStackTrace();
  2593.                 } catch (UnsupportedTagException e) {
  2594.                     e.printStackTrace();
  2595.                 } catch (InvalidDataException e) {
  2596.                     e.printStackTrace();
  2597.                 }
  2598.                 ID3v1 id3v1Tag;
  2599.                 if (mp3file.hasId3v1Tag()) {
  2600.                     id3v1Tag = mp3file.getId3v1Tag();
  2601.                 } else {
  2602.                     // mp3 does not have an ID3v1 tag, let's create one..
  2603.                     id3v1Tag = new ID3v1Tag();
  2604.                     mp3file.setId3v1Tag(id3v1Tag);
  2605.                 }
  2606.                 id3v1Tag.setArtist(artist);
  2607.                 id3v1Tag.setTitle(title);
  2608.                 id3v1Tag.setAlbum(album);
  2609.  
  2610.                 ID3v2 id3v2Tag;
  2611.  
  2612.                 if (mp3file.hasId3v2Tag()) {
  2613.                     id3v2Tag = mp3file.getId3v2Tag();
  2614.                 } else {
  2615.                     // mp3 does not have an ID3v2 tag, let's create one..
  2616.                     id3v2Tag = new ID3v24Tag();
  2617.                     mp3file.setId3v2Tag(id3v2Tag);
  2618.                 }
  2619.  
  2620.  
  2621.  
  2622.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  2623.  
  2624.  
  2625.  
  2626.                 /**
  2627.                  * Crea nuovo file, elimino il vecchio
  2628.                  * rinomino il nuovo come il vecchio
  2629.                  *
  2630.                  *          (a > b > a)
  2631.                  *
  2632.                  */
  2633.  
  2634.                 try {
  2635.                     mp3file.save(file_copy);
  2636.                     file.delete();
  2637.                     file2.renameTo(file);
  2638.                     Intent intent = getIntent();
  2639.                     finish();
  2640.                     startActivity(intent);
  2641.  
  2642.                 } catch (IOException e) {
  2643.                     e.printStackTrace();
  2644.                 } catch (NotSupportedException e) {
  2645.                     e.printStackTrace();
  2646.                 }
  2647.  
  2648.             }
  2649.             });
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662. }
  2663.  
  2664.     private byte[] getByte(String path) {
  2665.         byte[] getBytes = {};
  2666.         try {
  2667.             File file = new File(path);
  2668.             getBytes = new byte[(int) file.length()];
  2669.             InputStream is = new FileInputStream(file);
  2670.             is.read(getBytes);
  2671.             is.close();
  2672.         } catch (FileNotFoundException e) {
  2673.             e.printStackTrace();
  2674.         } catch (IOException e) {
  2675.             e.printStackTrace();
  2676.         }
  2677.         return getBytes;
  2678.     }
  2679.  
  2680.  
  2681.     public void getImage(String path){
  2682.         if(path != null){
  2683.  
  2684.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  2685.             mmr.setDataSource(path);
  2686.             byte [] data = mmr.getEmbeddedPicture();
  2687.  
  2688.             if(data != null)
  2689.             {
  2690.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  2691.                 Cover.setImageBitmap(bitmap);
  2692.                 Cover.setAdjustViewBounds(true);
  2693.             }else
  2694.             {
  2695.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  2696.                 Cover.setAdjustViewBounds(true);
  2697.             }
  2698.         }
  2699.     }
  2700. }
  2701. package com.fast0n.mp3agic;
  2702.  
  2703. import android.Manifest;
  2704. import android.content.Intent;
  2705. import android.content.pm.PackageManager;
  2706. import android.graphics.Bitmap;
  2707. import android.graphics.BitmapFactory;
  2708. import android.media.MediaMetadataRetriever;
  2709. import android.os.Build;
  2710. import android.os.Environment;
  2711. import android.support.v4.app.ActivityCompat;
  2712. import android.support.v7.app.AppCompatActivity;
  2713. import android.os.Bundle;
  2714. import android.view.View;
  2715. import android.widget.Button;
  2716. import android.widget.ImageView;
  2717. import android.widget.TextView;
  2718.  
  2719. import com.mpatric.mp3agic.ID3v1;
  2720. import com.mpatric.mp3agic.ID3v1Tag;
  2721. import com.mpatric.mp3agic.ID3v2;
  2722. import com.mpatric.mp3agic.ID3v24Tag;
  2723. import com.mpatric.mp3agic.InvalidDataException;
  2724. import com.mpatric.mp3agic.Mp3File;
  2725. import com.mpatric.mp3agic.NotSupportedException;
  2726. import com.mpatric.mp3agic.UnsupportedTagException;
  2727.  
  2728. import java.io.ByteArrayOutputStream;
  2729. import java.io.File;
  2730. import java.io.FileInputStream;
  2731. import java.io.FileNotFoundException;
  2732. import java.io.FileOutputStream;
  2733. import java.io.IOException;
  2734. import java.io.InputStream;
  2735. import java.io.RandomAccessFile;
  2736. import java.nio.file.Files;
  2737. import java.nio.file.Path;
  2738. import java.nio.file.Paths;
  2739.  
  2740.  
  2741. public class MainActivity extends AppCompatActivity {
  2742.  
  2743.     TextView Artist,Album,Title;
  2744.     ImageView Cover;
  2745.     Button Set;
  2746.  
  2747.     String artist = "Massimiliano Montaleone";
  2748.     String album = "Fast0n";
  2749.     String title = "DeepMusic";
  2750.  
  2751.     @Override
  2752.     protected void onCreate(Bundle savedInstanceState) {
  2753.         super.onCreate(savedInstanceState);
  2754.         setContentView(R.layout.activity_main);
  2755.  
  2756.         Artist = (TextView)findViewById(R.id.artist);
  2757.         Album = (TextView)findViewById(R.id.album);
  2758.         Title = (TextView)findViewById(R.id.title);
  2759.         Cover = (ImageView)findViewById(R.id.cover);
  2760.         Set = (Button)findViewById(R.id.button);
  2761.  
  2762.  
  2763.  
  2764.  
  2765.         if (Build.VERSION.SDK_INT >= 23) {
  2766.             if (checkSelfPermission(
  2767.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  2768.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  2769.             }
  2770.         }
  2771.  
  2772.  
  2773.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  2774.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  2775.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  2776.  
  2777.         getImage(file_original);
  2778.  
  2779.         final File file = new File(file_original);
  2780.         final File file2 = new File(file_copy);
  2781.  
  2782.  
  2783.         Mp3File mp3file = null;
  2784.         try {
  2785.             mp3file = new Mp3File(file_original);
  2786.  
  2787.  
  2788.         } catch (IOException e) {
  2789.             e.printStackTrace();
  2790.         } catch (UnsupportedTagException e) {
  2791.             e.printStackTrace();
  2792.         } catch (InvalidDataException e) {
  2793.             e.printStackTrace();
  2794.         }
  2795.         ID3v1 id3v1Tag;
  2796.         if (mp3file.hasId3v1Tag()) {
  2797.             id3v1Tag =  mp3file.getId3v1Tag();
  2798.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  2799.             Title.setText("Title: "+id3v1Tag.getTitle());
  2800.             Album.setText("Album: "+id3v1Tag.getAlbum());
  2801.  
  2802.         }
  2803.  
  2804.         Set.setOnClickListener(new View.OnClickListener() {
  2805.             @Override
  2806.             public void onClick(View v) {
  2807.  
  2808.  
  2809.                 /**
  2810.                  * Setta i metadati solo per Artista, album e titolo
  2811.                  */
  2812.  
  2813.                 Mp3File mp3file = null;
  2814.                 try {
  2815.                     mp3file = new Mp3File(file_original);
  2816.                 } catch (IOException e) {
  2817.                     e.printStackTrace();
  2818.                 } catch (UnsupportedTagException e) {
  2819.                     e.printStackTrace();
  2820.                 } catch (InvalidDataException e) {
  2821.                     e.printStackTrace();
  2822.                 }
  2823.                 ID3v1 id3v1Tag;
  2824.                 if (mp3file.hasId3v1Tag()) {
  2825.                     id3v1Tag = mp3file.getId3v1Tag();
  2826.                 } else {
  2827.                     // mp3 does not have an ID3v1 tag, let's create one..
  2828.                     id3v1Tag = new ID3v1Tag();
  2829.                     mp3file.setId3v1Tag(id3v1Tag);
  2830.                 }
  2831.                 id3v1Tag.setArtist(artist);
  2832.                 id3v1Tag.setTitle(title);
  2833.                 id3v1Tag.setAlbum(album);
  2834.  
  2835.                 ID3v2 id3v2Tag;
  2836.  
  2837.                 if (mp3file.hasId3v2Tag()) {
  2838.                     id3v2Tag = mp3file.getId3v2Tag();
  2839.                 } else {
  2840.                     // mp3 does not have an ID3v2 tag, let's create one..
  2841.                     id3v2Tag = new ID3v24Tag();
  2842.                     mp3file.setId3v2Tag(id3v2Tag);
  2843.                 }
  2844.  
  2845.  
  2846.  
  2847.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  2848.  
  2849.  
  2850.  
  2851.                 /**
  2852.                  * Crea nuovo file, elimino il vecchio
  2853.                  * rinomino il nuovo come il vecchio
  2854.                  *
  2855.                  *          (a > b > a)
  2856.                  *
  2857.                  */
  2858.  
  2859.                 try {
  2860.                     mp3file.save(file_copy);
  2861.                     file.delete();
  2862.                     file2.renameTo(file);
  2863.                     Intent intent = getIntent();
  2864.                     finish();
  2865.                     startActivity(intent);
  2866.  
  2867.                 } catch (IOException e) {
  2868.                     e.printStackTrace();
  2869.                 } catch (NotSupportedException e) {
  2870.                     e.printStackTrace();
  2871.                 }
  2872.  
  2873.             }
  2874.             });
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887. }
  2888.  
  2889.     private byte[] getByte(String path) {
  2890.         byte[] getBytes = {};
  2891.         try {
  2892.             File file = new File(path);
  2893.             getBytes = new byte[(int) file.length()];
  2894.             InputStream is = new FileInputStream(file);
  2895.             is.read(getBytes);
  2896.             is.close();
  2897.         } catch (FileNotFoundException e) {
  2898.             e.printStackTrace();
  2899.         } catch (IOException e) {
  2900.             e.printStackTrace();
  2901.         }
  2902.         return getBytes;
  2903.     }
  2904.  
  2905.  
  2906.     public void getImage(String path){
  2907.         if(path != null){
  2908.  
  2909.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  2910.             mmr.setDataSource(path);
  2911.             byte [] data = mmr.getEmbeddedPicture();
  2912.  
  2913.             if(data != null)
  2914.             {
  2915.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  2916.                 Cover.setImageBitmap(bitmap);
  2917.                 Cover.setAdjustViewBounds(true);
  2918.             }else
  2919.             {
  2920.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  2921.                 Cover.setAdjustViewBounds(true);
  2922.             }
  2923.         }
  2924.     }
  2925. }
  2926. package com.fast0n.mp3agic;
  2927.  
  2928. import android.Manifest;
  2929. import android.content.Intent;
  2930. import android.content.pm.PackageManager;
  2931. import android.graphics.Bitmap;
  2932. import android.graphics.BitmapFactory;
  2933. import android.media.MediaMetadataRetriever;
  2934. import android.os.Build;
  2935. import android.os.Environment;
  2936. import android.support.v4.app.ActivityCompat;
  2937. import android.support.v7.app.AppCompatActivity;
  2938. import android.os.Bundle;
  2939. import android.view.View;
  2940. import android.widget.Button;
  2941. import android.widget.ImageView;
  2942. import android.widget.TextView;
  2943.  
  2944. import com.mpatric.mp3agic.ID3v1;
  2945. import com.mpatric.mp3agic.ID3v1Tag;
  2946. import com.mpatric.mp3agic.ID3v2;
  2947. import com.mpatric.mp3agic.ID3v24Tag;
  2948. import com.mpatric.mp3agic.InvalidDataException;
  2949. import com.mpatric.mp3agic.Mp3File;
  2950. import com.mpatric.mp3agic.NotSupportedException;
  2951. import com.mpatric.mp3agic.UnsupportedTagException;
  2952.  
  2953. import java.io.ByteArrayOutputStream;
  2954. import java.io.File;
  2955. import java.io.FileInputStream;
  2956. import java.io.FileNotFoundException;
  2957. import java.io.FileOutputStream;
  2958. import java.io.IOException;
  2959. import java.io.InputStream;
  2960. import java.io.RandomAccessFile;
  2961. import java.nio.file.Files;
  2962. import java.nio.file.Path;
  2963. import java.nio.file.Paths;
  2964.  
  2965.  
  2966. public class MainActivity extends AppCompatActivity {
  2967.  
  2968.     TextView Artist,Album,Title;
  2969.     ImageView Cover;
  2970.     Button Set;
  2971.  
  2972.     String artist = "Massimiliano Montaleone";
  2973.     String album = "Fast0n";
  2974.     String title = "DeepMusic";
  2975.  
  2976.     @Override
  2977.     protected void onCreate(Bundle savedInstanceState) {
  2978.         super.onCreate(savedInstanceState);
  2979.         setContentView(R.layout.activity_main);
  2980.  
  2981.         Artist = (TextView)findViewById(R.id.artist);
  2982.         Album = (TextView)findViewById(R.id.album);
  2983.         Title = (TextView)findViewById(R.id.title);
  2984.         Cover = (ImageView)findViewById(R.id.cover);
  2985.         Set = (Button)findViewById(R.id.button);
  2986.  
  2987.  
  2988.  
  2989.  
  2990.         if (Build.VERSION.SDK_INT >= 23) {
  2991.             if (checkSelfPermission(
  2992.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  2993.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  2994.             }
  2995.         }
  2996.  
  2997.  
  2998.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  2999.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  3000.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  3001.  
  3002.         getImage(file_original);
  3003.  
  3004.         final File file = new File(file_original);
  3005.         final File file2 = new File(file_copy);
  3006.  
  3007.  
  3008.         Mp3File mp3file = null;
  3009.         try {
  3010.             mp3file = new Mp3File(file_original);
  3011.  
  3012.  
  3013.         } catch (IOException e) {
  3014.             e.printStackTrace();
  3015.         } catch (UnsupportedTagException e) {
  3016.             e.printStackTrace();
  3017.         } catch (InvalidDataException e) {
  3018.             e.printStackTrace();
  3019.         }
  3020.         ID3v1 id3v1Tag;
  3021.         if (mp3file.hasId3v1Tag()) {
  3022.             id3v1Tag =  mp3file.getId3v1Tag();
  3023.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  3024.             Title.setText("Title: "+id3v1Tag.getTitle());
  3025.             Album.setText("Album: "+id3v1Tag.getAlbum());
  3026.  
  3027.         }
  3028.  
  3029.         Set.setOnClickListener(new View.OnClickListener() {
  3030.             @Override
  3031.             public void onClick(View v) {
  3032.  
  3033.  
  3034.                 /**
  3035.                  * Setta i metadati solo per Artista, album e titolo
  3036.                  */
  3037.  
  3038.                 Mp3File mp3file = null;
  3039.                 try {
  3040.                     mp3file = new Mp3File(file_original);
  3041.                 } catch (IOException e) {
  3042.                     e.printStackTrace();
  3043.                 } catch (UnsupportedTagException e) {
  3044.                     e.printStackTrace();
  3045.                 } catch (InvalidDataException e) {
  3046.                     e.printStackTrace();
  3047.                 }
  3048.                 ID3v1 id3v1Tag;
  3049.                 if (mp3file.hasId3v1Tag()) {
  3050.                     id3v1Tag = mp3file.getId3v1Tag();
  3051.                 } else {
  3052.                     // mp3 does not have an ID3v1 tag, let's create one..
  3053.                     id3v1Tag = new ID3v1Tag();
  3054.                     mp3file.setId3v1Tag(id3v1Tag);
  3055.                 }
  3056.                 id3v1Tag.setArtist(artist);
  3057.                 id3v1Tag.setTitle(title);
  3058.                 id3v1Tag.setAlbum(album);
  3059.  
  3060.                 ID3v2 id3v2Tag;
  3061.  
  3062.                 if (mp3file.hasId3v2Tag()) {
  3063.                     id3v2Tag = mp3file.getId3v2Tag();
  3064.                 } else {
  3065.                     // mp3 does not have an ID3v2 tag, let's create one..
  3066.                     id3v2Tag = new ID3v24Tag();
  3067.                     mp3file.setId3v2Tag(id3v2Tag);
  3068.                 }
  3069.  
  3070.  
  3071.  
  3072.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  3073.  
  3074.  
  3075.  
  3076.                 /**
  3077.                  * Crea nuovo file, elimino il vecchio
  3078.                  * rinomino il nuovo come il vecchio
  3079.                  *
  3080.                  *          (a > b > a)
  3081.                  *
  3082.                  */
  3083.  
  3084.                 try {
  3085.                     mp3file.save(file_copy);
  3086.                     file.delete();
  3087.                     file2.renameTo(file);
  3088.                     Intent intent = getIntent();
  3089.                     finish();
  3090.                     startActivity(intent);
  3091.  
  3092.                 } catch (IOException e) {
  3093.                     e.printStackTrace();
  3094.                 } catch (NotSupportedException e) {
  3095.                     e.printStackTrace();
  3096.                 }
  3097.  
  3098.             }
  3099.             });
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112. }
  3113.  
  3114.     private byte[] getByte(String path) {
  3115.         byte[] getBytes = {};
  3116.         try {
  3117.             File file = new File(path);
  3118.             getBytes = new byte[(int) file.length()];
  3119.             InputStream is = new FileInputStream(file);
  3120.             is.read(getBytes);
  3121.             is.close();
  3122.         } catch (FileNotFoundException e) {
  3123.             e.printStackTrace();
  3124.         } catch (IOException e) {
  3125.             e.printStackTrace();
  3126.         }
  3127.         return getBytes;
  3128.     }
  3129.  
  3130.  
  3131.     public void getImage(String path){
  3132.         if(path != null){
  3133.  
  3134.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  3135.             mmr.setDataSource(path);
  3136.             byte [] data = mmr.getEmbeddedPicture();
  3137.  
  3138.             if(data != null)
  3139.             {
  3140.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  3141.                 Cover.setImageBitmap(bitmap);
  3142.                 Cover.setAdjustViewBounds(true);
  3143.             }else
  3144.             {
  3145.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  3146.                 Cover.setAdjustViewBounds(true);
  3147.             }
  3148.         }
  3149.     }
  3150. }
  3151. package com.fast0n.mp3agic;
  3152.  
  3153. import android.Manifest;
  3154. import android.content.Intent;
  3155. import android.content.pm.PackageManager;
  3156. import android.graphics.Bitmap;
  3157. import android.graphics.BitmapFactory;
  3158. import android.media.MediaMetadataRetriever;
  3159. import android.os.Build;
  3160. import android.os.Environment;
  3161. import android.support.v4.app.ActivityCompat;
  3162. import android.support.v7.app.AppCompatActivity;
  3163. import android.os.Bundle;
  3164. import android.view.View;
  3165. import android.widget.Button;
  3166. import android.widget.ImageView;
  3167. import android.widget.TextView;
  3168.  
  3169. import com.mpatric.mp3agic.ID3v1;
  3170. import com.mpatric.mp3agic.ID3v1Tag;
  3171. import com.mpatric.mp3agic.ID3v2;
  3172. import com.mpatric.mp3agic.ID3v24Tag;
  3173. import com.mpatric.mp3agic.InvalidDataException;
  3174. import com.mpatric.mp3agic.Mp3File;
  3175. import com.mpatric.mp3agic.NotSupportedException;
  3176. import com.mpatric.mp3agic.UnsupportedTagException;
  3177.  
  3178. import java.io.ByteArrayOutputStream;
  3179. import java.io.File;
  3180. import java.io.FileInputStream;
  3181. import java.io.FileNotFoundException;
  3182. import java.io.FileOutputStream;
  3183. import java.io.IOException;
  3184. import java.io.InputStream;
  3185. import java.io.RandomAccessFile;
  3186. import java.nio.file.Files;
  3187. import java.nio.file.Path;
  3188. import java.nio.file.Paths;
  3189.  
  3190.  
  3191. public class MainActivity extends AppCompatActivity {
  3192.  
  3193.     TextView Artist,Album,Title;
  3194.     ImageView Cover;
  3195.     Button Set;
  3196.  
  3197.     String artist = "Massimiliano Montaleone";
  3198.     String album = "Fast0n";
  3199.     String title = "DeepMusic";
  3200.  
  3201.     @Override
  3202.     protected void onCreate(Bundle savedInstanceState) {
  3203.         super.onCreate(savedInstanceState);
  3204.         setContentView(R.layout.activity_main);
  3205.  
  3206.         Artist = (TextView)findViewById(R.id.artist);
  3207.         Album = (TextView)findViewById(R.id.album);
  3208.         Title = (TextView)findViewById(R.id.title);
  3209.         Cover = (ImageView)findViewById(R.id.cover);
  3210.         Set = (Button)findViewById(R.id.button);
  3211.  
  3212.  
  3213.  
  3214.  
  3215.         if (Build.VERSION.SDK_INT >= 23) {
  3216.             if (checkSelfPermission(
  3217.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  3218.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  3219.             }
  3220.         }
  3221.  
  3222.  
  3223.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  3224.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  3225.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  3226.  
  3227.         getImage(file_original);
  3228.  
  3229.         final File file = new File(file_original);
  3230.         final File file2 = new File(file_copy);
  3231.  
  3232.  
  3233.         Mp3File mp3file = null;
  3234.         try {
  3235.             mp3file = new Mp3File(file_original);
  3236.  
  3237.  
  3238.         } catch (IOException e) {
  3239.             e.printStackTrace();
  3240.         } catch (UnsupportedTagException e) {
  3241.             e.printStackTrace();
  3242.         } catch (InvalidDataException e) {
  3243.             e.printStackTrace();
  3244.         }
  3245.         ID3v1 id3v1Tag;
  3246.         if (mp3file.hasId3v1Tag()) {
  3247.             id3v1Tag =  mp3file.getId3v1Tag();
  3248.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  3249.             Title.setText("Title: "+id3v1Tag.getTitle());
  3250.             Album.setText("Album: "+id3v1Tag.getAlbum());
  3251.  
  3252.         }
  3253.  
  3254.         Set.setOnClickListener(new View.OnClickListener() {
  3255.             @Override
  3256.             public void onClick(View v) {
  3257.  
  3258.  
  3259.                 /**
  3260.                  * Setta i metadati solo per Artista, album e titolo
  3261.                  */
  3262.  
  3263.                 Mp3File mp3file = null;
  3264.                 try {
  3265.                     mp3file = new Mp3File(file_original);
  3266.                 } catch (IOException e) {
  3267.                     e.printStackTrace();
  3268.                 } catch (UnsupportedTagException e) {
  3269.                     e.printStackTrace();
  3270.                 } catch (InvalidDataException e) {
  3271.                     e.printStackTrace();
  3272.                 }
  3273.                 ID3v1 id3v1Tag;
  3274.                 if (mp3file.hasId3v1Tag()) {
  3275.                     id3v1Tag = mp3file.getId3v1Tag();
  3276.                 } else {
  3277.                     // mp3 does not have an ID3v1 tag, let's create one..
  3278.                     id3v1Tag = new ID3v1Tag();
  3279.                     mp3file.setId3v1Tag(id3v1Tag);
  3280.                 }
  3281.                 id3v1Tag.setArtist(artist);
  3282.                 id3v1Tag.setTitle(title);
  3283.                 id3v1Tag.setAlbum(album);
  3284.  
  3285.                 ID3v2 id3v2Tag;
  3286.  
  3287.                 if (mp3file.hasId3v2Tag()) {
  3288.                     id3v2Tag = mp3file.getId3v2Tag();
  3289.                 } else {
  3290.                     // mp3 does not have an ID3v2 tag, let's create one..
  3291.                     id3v2Tag = new ID3v24Tag();
  3292.                     mp3file.setId3v2Tag(id3v2Tag);
  3293.                 }
  3294.  
  3295.  
  3296.  
  3297.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  3298.  
  3299.  
  3300.  
  3301.                 /**
  3302.                  * Crea nuovo file, elimino il vecchio
  3303.                  * rinomino il nuovo come il vecchio
  3304.                  *
  3305.                  *          (a > b > a)
  3306.                  *
  3307.                  */
  3308.  
  3309.                 try {
  3310.                     mp3file.save(file_copy);
  3311.                     file.delete();
  3312.                     file2.renameTo(file);
  3313.                     Intent intent = getIntent();
  3314.                     finish();
  3315.                     startActivity(intent);
  3316.  
  3317.                 } catch (IOException e) {
  3318.                     e.printStackTrace();
  3319.                 } catch (NotSupportedException e) {
  3320.                     e.printStackTrace();
  3321.                 }
  3322.  
  3323.             }
  3324.             });
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337. }
  3338.  
  3339.     private byte[] getByte(String path) {
  3340.         byte[] getBytes = {};
  3341.         try {
  3342.             File file = new File(path);
  3343.             getBytes = new byte[(int) file.length()];
  3344.             InputStream is = new FileInputStream(file);
  3345.             is.read(getBytes);
  3346.             is.close();
  3347.         } catch (FileNotFoundException e) {
  3348.             e.printStackTrace();
  3349.         } catch (IOException e) {
  3350.             e.printStackTrace();
  3351.         }
  3352.         return getBytes;
  3353.     }
  3354.  
  3355.  
  3356.     public void getImage(String path){
  3357.         if(path != null){
  3358.  
  3359.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  3360.             mmr.setDataSource(path);
  3361.             byte [] data = mmr.getEmbeddedPicture();
  3362.  
  3363.             if(data != null)
  3364.             {
  3365.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  3366.                 Cover.setImageBitmap(bitmap);
  3367.                 Cover.setAdjustViewBounds(true);
  3368.             }else
  3369.             {
  3370.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  3371.                 Cover.setAdjustViewBounds(true);
  3372.             }
  3373.         }
  3374.     }
  3375. }
  3376. package com.fast0n.mp3agic;
  3377.  
  3378. import android.Manifest;
  3379. import android.content.Intent;
  3380. import android.content.pm.PackageManager;
  3381. import android.graphics.Bitmap;
  3382. import android.graphics.BitmapFactory;
  3383. import android.media.MediaMetadataRetriever;
  3384. import android.os.Build;
  3385. import android.os.Environment;
  3386. import android.support.v4.app.ActivityCompat;
  3387. import android.support.v7.app.AppCompatActivity;
  3388. import android.os.Bundle;
  3389. import android.view.View;
  3390. import android.widget.Button;
  3391. import android.widget.ImageView;
  3392. import android.widget.TextView;
  3393.  
  3394. import com.mpatric.mp3agic.ID3v1;
  3395. import com.mpatric.mp3agic.ID3v1Tag;
  3396. import com.mpatric.mp3agic.ID3v2;
  3397. import com.mpatric.mp3agic.ID3v24Tag;
  3398. import com.mpatric.mp3agic.InvalidDataException;
  3399. import com.mpatric.mp3agic.Mp3File;
  3400. import com.mpatric.mp3agic.NotSupportedException;
  3401. import com.mpatric.mp3agic.UnsupportedTagException;
  3402.  
  3403. import java.io.ByteArrayOutputStream;
  3404. import java.io.File;
  3405. import java.io.FileInputStream;
  3406. import java.io.FileNotFoundException;
  3407. import java.io.FileOutputStream;
  3408. import java.io.IOException;
  3409. import java.io.InputStream;
  3410. import java.io.RandomAccessFile;
  3411. import java.nio.file.Files;
  3412. import java.nio.file.Path;
  3413. import java.nio.file.Paths;
  3414.  
  3415.  
  3416. public class MainActivity extends AppCompatActivity {
  3417.  
  3418.     TextView Artist,Album,Title;
  3419.     ImageView Cover;
  3420.     Button Set;
  3421.  
  3422.     String artist = "Massimiliano Montaleone";
  3423.     String album = "Fast0n";
  3424.     String title = "DeepMusic";
  3425.  
  3426.     @Override
  3427.     protected void onCreate(Bundle savedInstanceState) {
  3428.         super.onCreate(savedInstanceState);
  3429.         setContentView(R.layout.activity_main);
  3430.  
  3431.         Artist = (TextView)findViewById(R.id.artist);
  3432.         Album = (TextView)findViewById(R.id.album);
  3433.         Title = (TextView)findViewById(R.id.title);
  3434.         Cover = (ImageView)findViewById(R.id.cover);
  3435.         Set = (Button)findViewById(R.id.button);
  3436.  
  3437.  
  3438.  
  3439.  
  3440.         if (Build.VERSION.SDK_INT >= 23) {
  3441.             if (checkSelfPermission(
  3442.                     android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  3443.                 ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1);
  3444.             }
  3445.         }
  3446.  
  3447.  
  3448.         final String file_original = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/a.mp3";
  3449.         final String file_copy = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/ab.mp3";
  3450.         final String cover = Environment.getExternalStorageDirectory().toString() + "/Download/Deep/a/cover.png";
  3451.  
  3452.         getImage(file_original);
  3453.  
  3454.         final File file = new File(file_original);
  3455.         final File file2 = new File(file_copy);
  3456.  
  3457.  
  3458.         Mp3File mp3file = null;
  3459.         try {
  3460.             mp3file = new Mp3File(file_original);
  3461.  
  3462.  
  3463.         } catch (IOException e) {
  3464.             e.printStackTrace();
  3465.         } catch (UnsupportedTagException e) {
  3466.             e.printStackTrace();
  3467.         } catch (InvalidDataException e) {
  3468.             e.printStackTrace();
  3469.         }
  3470.         ID3v1 id3v1Tag;
  3471.         if (mp3file.hasId3v1Tag()) {
  3472.             id3v1Tag =  mp3file.getId3v1Tag();
  3473.             Artist.setText("Artist: " + id3v1Tag.getArtist());
  3474.             Title.setText("Title: "+id3v1Tag.getTitle());
  3475.             Album.setText("Album: "+id3v1Tag.getAlbum());
  3476.  
  3477.         }
  3478.  
  3479.         Set.setOnClickListener(new View.OnClickListener() {
  3480.             @Override
  3481.             public void onClick(View v) {
  3482.  
  3483.  
  3484.                 /**
  3485.                  * Setta i metadati solo per Artista, album e titolo
  3486.                  */
  3487.  
  3488.                 Mp3File mp3file = null;
  3489.                 try {
  3490.                     mp3file = new Mp3File(file_original);
  3491.                 } catch (IOException e) {
  3492.                     e.printStackTrace();
  3493.                 } catch (UnsupportedTagException e) {
  3494.                     e.printStackTrace();
  3495.                 } catch (InvalidDataException e) {
  3496.                     e.printStackTrace();
  3497.                 }
  3498.                 ID3v1 id3v1Tag;
  3499.                 if (mp3file.hasId3v1Tag()) {
  3500.                     id3v1Tag = mp3file.getId3v1Tag();
  3501.                 } else {
  3502.                     // mp3 does not have an ID3v1 tag, let's create one..
  3503.                     id3v1Tag = new ID3v1Tag();
  3504.                     mp3file.setId3v1Tag(id3v1Tag);
  3505.                 }
  3506.                 id3v1Tag.setArtist(artist);
  3507.                 id3v1Tag.setTitle(title);
  3508.                 id3v1Tag.setAlbum(album);
  3509.  
  3510.                 ID3v2 id3v2Tag;
  3511.  
  3512.                 if (mp3file.hasId3v2Tag()) {
  3513.                     id3v2Tag = mp3file.getId3v2Tag();
  3514.                 } else {
  3515.                     // mp3 does not have an ID3v2 tag, let's create one..
  3516.                     id3v2Tag = new ID3v24Tag();
  3517.                     mp3file.setId3v2Tag(id3v2Tag);
  3518.                 }
  3519.  
  3520.  
  3521.  
  3522.                 id3v2Tag.setAlbumImage(getByte(cover), "cover.png");
  3523.  
  3524.  
  3525.  
  3526.                 /**
  3527.                  * Crea nuovo file, elimino il vecchio
  3528.                  * rinomino il nuovo come il vecchio
  3529.                  *
  3530.                  *          (a > b > a)
  3531.                  *
  3532.                  */
  3533.  
  3534.                 try {
  3535.                     mp3file.save(file_copy);
  3536.                     file.delete();
  3537.                     file2.renameTo(file);
  3538.                     Intent intent = getIntent();
  3539.                     finish();
  3540.                     startActivity(intent);
  3541.  
  3542.                 } catch (IOException e) {
  3543.                     e.printStackTrace();
  3544.                 } catch (NotSupportedException e) {
  3545.                     e.printStackTrace();
  3546.                 }
  3547.  
  3548.             }
  3549.             });
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562. }
  3563.  
  3564.     private byte[] getByte(String path) {
  3565.         byte[] getBytes = {};
  3566.         try {
  3567.             File file = new File(path);
  3568.             getBytes = new byte[(int) file.length()];
  3569.             InputStream is = new FileInputStream(file);
  3570.             is.read(getBytes);
  3571.             is.close();
  3572.         } catch (FileNotFoundException e) {
  3573.             e.printStackTrace();
  3574.         } catch (IOException e) {
  3575.             e.printStackTrace();
  3576.         }
  3577.         return getBytes;
  3578.     }
  3579.  
  3580.  
  3581.     public void getImage(String path){
  3582.         if(path != null){
  3583.  
  3584.             android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
  3585.             mmr.setDataSource(path);
  3586.             byte [] data = mmr.getEmbeddedPicture();
  3587.  
  3588.             if(data != null)
  3589.             {
  3590.                 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
  3591.                 Cover.setImageBitmap(bitmap);
  3592.                 Cover.setAdjustViewBounds(true);
  3593.             }else
  3594.             {
  3595.                 Cover.setImageResource(R.drawable.ic_launcher_foreground); //default cover
  3596.                 Cover.setAdjustViewBounds(true);
  3597.             }
  3598.         }
  3599.     }
  3600. }
Advertisement
Add Comment
Please, Sign In to add comment