相关文章推荐
慷慨的蜡烛  ·  两行 CSS ...·  1 年前    · 
聪明的小狗  ·  Can I use #include ...·  1 年前    · 
  1. try {
  2. MP3File file = new MP3File( "mmt/sdcard2/Music/大艺术家.mp3" );
  3. String songName=file.getID3v2Tag().frameMap.get( "TIT2" ).toString();
  4. String singer=file.getID3v2Tag().frameMap.get( "TPE1" ).toString();
  5. String author=file.getID3v2Tag().frameMap.get( "TALB" ).toString();
  6. System.out.println( new String(songName.getBytes( "ISO-8859-1" ), "GB2312" ));
  7. System.out.println( new String(singer.getBytes( "ISO-8859-1" ), "GB2312" ));
  8. System.out.println( new String(author.getBytes( "ISO-8859-1" ), "GB2312" ));
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. } catch (TagException e) {
  12. e.printStackTrace();
  13. } catch (ReadOnlyFileException e) {
  14. e.printStackTrace();
  15. } catch (InvalidAudioFrameException e) {
  16. e.printStackTrace();
  17. }

这样输出的格式为:

Text="大艺术家";
Text="蔡依林";
Text="MUSE";

下面是用Jaudiotagger提取MP3图片,并将图片显示出来的代码:

Java代码
  1. import java.awt.Image;
  2. import java.awt.Toolkit;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import javax.swing.ImageIcon;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
  10. import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
  11. import org.jaudiotagger.audio.mp3.MP3File;
  12. import org.jaudiotagger.tag.TagException;
  13. import org.jaudiotagger.tag.id3.AbstractID3v2Frame;
  14. import org.jaudiotagger.tag.id3.AbstractID3v2Tag;
  15. import org.jaudiotagger.tag.id3.framebody.FrameBodyAPIC;
  16. public class Main {
  17. public static void main(String args[]) throws IOException, TagException, ReadOnlyFileException, InvalidAudioFrameException {
  18. String url = "D:\\Paparazzi.mp3" ;
  19. File sourceFile = new File(url);
  20. MP3File mp3file = new MP3File(sourceFile);
  21. AbstractID3v2Tag tag = mp3file.getID3v2Tag();
  22. AbstractID3v2Frame frame = (AbstractID3v2Frame) tag.getFrame( "APIC" );
  23. FrameBodyAPIC body = (FrameBodyAPIC) frame.getBody();
  24. byte [] imageData = body.getImageData();
  25. Image img=Toolkit.getDefaultToolkit().createImage(imageData, 0 ,imageData.length);
  26. System.out.println( "img----" + imageData);
  27. ImageIcon icon = new ImageIcon(img);
  28. FileOutputStream fos = new FileOutputStream( "D://test1.jpg" );
  29. fos.write(imageData);
  30. fos.close();
  31. System.out.println( "width:" +icon.getIconWidth());
  32. System.out.println( "height:" +icon.getIconHeight());
  33. getImg(icon);
  34. }
  35. public static void getImg(ImageIcon img){
  36. JFrame f = new JFrame();
  37. JLabel l = new JLabel();
  38. l.setIcon(img);
  39. l.setVisible( true );
  40. f.add(l);
  41. f.setSize( 500 , 500 );
  42. f.setVisible( true );
  43. }
  44. }
Jaudiotagger是jid3lib的扩展,比jlid3lib强大更多,支持更多格式。MP3信息的读取: Java代码  try {      MP3File file = new MP3File("mmt/sdcard2/Music/大艺术家.mp3");              String songName=file.getI <manifest xmlns: android =http://schemas. android .com/apk/res/ android package=com.work.mediaplay> <uses android :name= android .p er mission.READ_EXT ER NAL_STORAGE></uses> <uses android :name= android .p er mission.WRITE_EXT ER NAL_STORAGE></uses> 为所有完全支持的格式提供最流行的50个字段的通用接口 支持 读取 和写入mp4,m4a和m4p(受保护)文件,包括多个图像和反向dns字段 完全支持Dsf,Aif和Wav格式的ID3标签 还支持旧式Wav Info标记 支持多页Ogg Vorbis评论 支持 MP3 ID3v1,ID3v11,ID3v2.2,v2.3和v2.4是透明的 允许在ID3标签版本之间轻松转换 支持 Flac ,包括嵌入式和链接图像支持 提供大多数字段的正确对象表示,而不是简单的字节表示 完全支持Unicode文本编码
最近在玩mvn打包遇到如下问题 1.本地jar包没引入,进行maven打包报了空指针。 2.打包成功,但是都是配置在本地,maven仓库里都没有,以后要用的话还有手动 操作 jar包就很麻烦了,所以把需要jar包打入maven a.解决打本jar包目录层级如下 配置文件的配置 <dependency> <groupId>j audio t agg er </groupId> <artifactId>2.2.6</artifactId>
你好,这里是一段可以使用 Visual Basic (VB) 编写的 读取 MP3 音频 并显示频谱的代码。 首先,在你的 VB 项目中添加一个按钮,并将下面的代码添加到按钮的单击事件处理程序中。 ```vb Private Sub Button1_Click(send er As Object, e As EventArgs) Handles Button1.Click ' 读取 MP3 文件 Dim filePath As String = "C:\path\to\your\ audio . mp3 " Dim audio As Byte() = File.ReadAllBytes(filePath) ' 创建 FFT 对象 Dim fft As New FFT() ' 获取频谱数据 Dim spectrum As Single() = fft.GetSpectrumData( audio ) ' 在图表中显示频谱数据 Dim chart As New Chart() chart.S er ies.Add("Spectrum") For i As Integ er = 0 To spectrum.Length - 1 chart.S er ies("Spectrum").Points.AddY(spectrum(i)) End Sub 在上面的代码中,我们使用了 `FFT` 类来获取频谱数据。这个类需要你自己实现,具体实现方法可以参考这篇文章: https://www.cnblogs.com/ZhouYi/p/4536809.html。 然后,我们将获取的频谱数据添加到图表中,并使用图表控件来显示频谱。 我希望这段代码能够对你有所帮助。如果你有其他问题,请随时联系我。