-
try
{
-
MP3File file =
new
MP3File(
"mmt/sdcard2/Music/大艺术家.mp3"
);
-
-
-
String songName=file.getID3v2Tag().frameMap.get(
"TIT2"
).toString();
-
String singer=file.getID3v2Tag().frameMap.get(
"TPE1"
).toString();
-
String author=file.getID3v2Tag().frameMap.get(
"TALB"
).toString();
-
System.out.println(
new
String(songName.getBytes(
"ISO-8859-1"
),
"GB2312"
));
-
System.out.println(
new
String(singer.getBytes(
"ISO-8859-1"
),
"GB2312"
));
-
System.out.println(
new
String(author.getBytes(
"ISO-8859-1"
),
"GB2312"
));
-
}
catch
(IOException e) {
-
e.printStackTrace();
-
}
catch
(TagException e) {
-
e.printStackTrace();
-
}
catch
(ReadOnlyFileException e) {
-
e.printStackTrace();
-
}
catch
(InvalidAudioFrameException e) {
-
e.printStackTrace();
-
}
这样输出的格式为:
Text="大艺术家";
Text="蔡依林";
Text="MUSE";
下面是用Jaudiotagger提取MP3图片,并将图片显示出来的代码:
Java代码
-
import
java.awt.Image;
-
import
java.awt.Toolkit;
-
import
java.io.File;
-
import
java.io.FileOutputStream;
-
import
java.io.IOException;
-
-
import
javax.swing.ImageIcon;
-
import
javax.swing.JFrame;
-
import
javax.swing.JLabel;
-
-
import
org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
-
import
org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
-
import
org.jaudiotagger.audio.mp3.MP3File;
-
import
org.jaudiotagger.tag.TagException;
-
import
org.jaudiotagger.tag.id3.AbstractID3v2Frame;
-
import
org.jaudiotagger.tag.id3.AbstractID3v2Tag;
-
import
org.jaudiotagger.tag.id3.framebody.FrameBodyAPIC;
-
-
public
class
Main {
-
-
public
static
void
main(String args[])
throws
IOException, TagException, ReadOnlyFileException, InvalidAudioFrameException {
-
-
String url =
"D:\\Paparazzi.mp3"
;
-
File sourceFile =
new
File(url);
-
MP3File mp3file =
new
MP3File(sourceFile);
-
-
AbstractID3v2Tag tag = mp3file.getID3v2Tag();
-
AbstractID3v2Frame frame = (AbstractID3v2Frame) tag.getFrame(
"APIC"
);
-
FrameBodyAPIC body = (FrameBodyAPIC) frame.getBody();
-
byte
[] imageData = body.getImageData();
-
Image img=Toolkit.getDefaultToolkit().createImage(imageData,
0
,imageData.length);
-
System.out.println(
"img----"
+ imageData);
-
ImageIcon icon =
new
ImageIcon(img);
-
FileOutputStream fos =
new
FileOutputStream(
"D://test1.jpg"
);
-
fos.write(imageData);
-
fos.close();
-
-
System.out.println(
"width:"
+icon.getIconWidth());
-
System.out.println(
"height:"
+icon.getIconHeight());
-
getImg(icon);
-
}
-
-
public
static
void
getImg(ImageIcon img){
-
JFrame f =
new
JFrame();
-
JLabel l =
new
JLabel();
-
l.setIcon(img);
-
l.setVisible(
true
);
-
f.add(l);
-
f.setSize(
500
,
500
);
-
f.setVisible(
true
);
-
}
-
-
}
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。
然后,我们将获取的频谱数据添加到图表中,并使用图表控件来显示频谱。
我希望这段代码能够对你有所帮助。如果你有其他问题,请随时联系我。