当前位置: 首页 > 知识库问答 >
问题:

如何在android中从API8以上获取流式mp3 url的id3tag

仰经武
2023-03-14

如何从API8获取mp3或mp4的元数据,但不想使用ffmpegMediametadataretriever库,因为这个库有13 mb大小,对我来说不是一个好的解决方案!有谁能帮我获取id3tag的一个URL吗?!!我尝试了很多方法,比如id3tag的可用java库,但我还是做不到。请帮助我。任何代码样本我欣赏。我使用的代码:

Mp3File Mp3File=null;尝试{mp3file=new mp3file(“http://www.stephaniequinn.com/music/commerical%20demo%20-%2009.mp3”);}catch(IOException e){e.printstacktrace();}catch(UnsupportedTagException e){e.printstacktrace();}catch(InvalidDataException e){e.printstacktrace();}

        if (mp3file.hasId3v1Tag()) {
            ID3v1 id3v1Tag = mp3file.getId3v1Tag();
            System.out.println("Track: " + id3v1Tag.getTrack());
            System.out.println("Artist: " + id3v1Tag.getArtist());
            System.out.println("Title: " + id3v1Tag.getTitle());
            System.out.println("Album: " + id3v1Tag.getAlbum());
            System.out.println("Year: " + id3v1Tag.getYear());
            System.out.println("Genre: " + id3v1Tag.getGenre() + " (" + id3v1Tag.getGenreDescription() + ")");
            System.out.println("Comment: " + id3v1Tag.getComment());
        }

共有1个答案

司寇星海
2023-03-14

尝试FFMPEGMediametadataretriever:

FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
mmr.setDataSource("some MP3 URL");
mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM);
mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST);
byte [] artwork = mmr.getEmbeddedPicture();

mmr.release();
 类似资料:
  • 问题内容: 当我发现有些奇怪的东西时,我正在学习如何使用Java 8流。 除了浮点数组外,其他所有方法都有: 类似地,也有用于int,double等的Stream实现,但没有float: 有什么理由吗? 推荐使用浮动流的方法是什么? 问题答案: 来自Cay S.Horstmann: 2.12。基本类型流 …如果要存储short,char,byte和boolean,请使用IntStream,对于fl

  • 我在学习如何使用java 8流时,发现了一些奇怪的事情。 <代码>数组。stream()具有除浮点数组之外的所有方法: <代码>数组。流(int[]):int流 同样,有int、双精度等的Stream实现,但没有浮点数: 有什么原因吗? 使用浮动流的推荐方法是什么?

  • 我想制作一个简单的共享按钮来获取TextView值并共享它,但我不知道怎么做。 代码如下: 而相关的布局是: 我在这里看了文档和一些类似的问题,但找不到我的答案。感谢你对此的帮助。

  • 我有一张图片上面有文字。我需要从图像中提取文本。 例如:假设我有一个图像,在图像之上我有一个标志“诺基亚”。我想从图像中提取作为文本的徽标。

  • 问题内容: 我有这样的网址: 如何获取章节和帖子的参数值​​? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;

  • 问题内容: 我可以使用来获取堆末尾的地址,但是除了解析内容之外,有什么方法可以以编程方式获取堆头的地址吗? 问题答案: 我认为解析是Linux上找到堆段的唯一可靠方法。并且不要忘记某些分配器(包括我的SLES中的分配器)确实用于大块,因此内存不再是堆的一部分,可以位于任何随机位置。 否则,通常添加一个符号,该符号标记elf中所有段的结尾,并且该符号称为。例如: 它与elf 的末尾(传统上是elf