【问题标题】:Adding Cover Art to downloaded mp3 on Android将封面艺术添加到 Android 上下载的 mp3
【发布时间】:2012-07-15 15:23:10
【问题描述】:

如何以编程方式将封面艺术(专辑艺术)添加到下载的 mp3?

我让我的应用通过 Android APIS 的 DownloadManager 下载一个 mp3 文件,如下所示:

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

    filename = title+".mp3";

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

    DOWNLOAD_MANAGER.enqueue(request);
}

是否可以在下载的 mp3 文件中添加封面,以便手机上的 mp3 播放器在播放歌曲时显示图像?

【问题讨论】:

  • 这些 MP3 文件中是否嵌入了封面艺术?如果是这样,那么我认为音乐/媒体播放器应用程序将能够自己解决这个问题。如果未嵌入封面,您必须:1) 从某处获取封面图像文件,2) embed it into your MP3 file.

标签: android mp3 id3 download-manager id3-tag


【解决方案1】:

下载此 jar 文件MyID3_for_android 并将其添加到项目的构建路径中。这是如何更改封面的示例代码

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

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


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

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

        File dst = new File("destinationPath");

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

您还需要Jakarta Regex jar

readFile 只是一个从 File 中获取 byte[] 的函数

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

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

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

从 stackOverflow 得到的,不知道是谁 :)

【讨论】:

  • 感谢您的示例。我找不到这个问题的答案。如果可以的话,我会给你几票。
  • 做了同样的事情但无法播放音频文件。知道为什么吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 2022-01-03
  • 2010-09-25
  • 2012-03-20
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多