java - 如何为 Java 剪辑使用 ID3 标记(音频文件详细信息和信息)

标签 java audio playback id3

编辑

特别感谢 Manoj Khanna 提醒我,我在这个问题中提到的“细节”实际上称为 ID3 Tags .我需要社区帮助的部分原因是因为我不知道这些标签的名称,所以感谢您回答我的问题!你们是一个巨大的帮助!

原始问题

我创建了一个简单的 Java 应用程序 (在 Java 8 中)播放 .WAV Audio Files 存储在我的电脑上。我使用 javax.sound.sampled.AudioSystem玩一个javax.sound.sampled.Clip使用此代码:

Clip l = AudioSystem.getClip();
l.open(AudioSystem.getAudioInputStream(new File("song.wav")));
l.setFramePosition(0);
l.start();

该代码运行良好,我对它的运行方式非常满意。我得到文件的名称来识别歌曲,并且效果很好。但是,我寻求帮助的是如何使用 .WAV Audio File的歌曲《详情》和《信息》。

这有点难以解释,所以我将使用包含图片和特定应用程序来澄清。

其他音频应用程序(例如,我将在 Windows 10 中使用微软的“Groove Music”应用程序)将轨道的“细节”发送到扬声器和操作系统。

IMAGE ONE: You can set the "details" of an audio track in the properties of a file, or set them when you create the file. This hyperlink links to a screenshot showing the "details" of the song (the title and contributing artists).
请注意,文件的名称与链接图像中显示的详细信息无关(即使我将它们命名为相同)。

IMAGE TWO: The "details" of the track are reflected while the song is playing in most audio playing applications (in this case "Groove Music"). The details are also reflected in the volume changing menu on the top left of the screen. This hyperlink links to a screenshot showing how the "details" are reflected while the track is playing.
相同的“详细信息”将发送到蓝牙音频播放设备(例如汽车或扬声器),并可能显示在设备的屏幕上(如果设备具有该功能)。

截至目前,我的Clip不会从 .WAV Audio Files 的属性中获取任何信息并且不会将它们传递给我的操作系统或我测试过的任何扬声器。他们都很好地播放音乐,只是没有按照我的意愿显示信息。

在播放音频时,我有什么方法可以使用这些 ID3 标签吗?
我可以使用必须手动设置歌曲名称和艺术家的解决方案,或者更改自动从文件属性中收集信息的设置。

澄清(编辑 2)

我已经在我的音频文件中设置了 ID3 标签,但我想在使用 Clip 播放时将这些标签传递给操作系统和扬声器。我希望我的剪辑以使用图 2 所示信息的方式播放。我希望在播放音频文件时使用之前已设置的 ID3 标签;我希望在播放时将标签传递给扬声器和操作系统。

我宁愿不使用外部库,但如果必须,我可以满足于使用一个。

这可能吗?如果可以,怎么做?

最佳答案

您要读取或修改的属性称为 ID3 标记。

一个快速的谷歌搜索给了我这个库 JAudiotagger .它也可以用于读取或修改其他几种格式的 ID3 标签。

用法

AudioFile file = AudioFileIO.read(new File("filename.wav"));
Tag tag = file.getTag();
tag.setField(FieldKey.ARTIST,"Kings of Leon");
AudioFileIO.write(file);

更多示例可查看here .

关于java - 如何为 Java 剪辑使用 ID3 标记(音频文件详细信息和信息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753679/

相关文章:

ios - 将音频流保存到 mp3 文件 (iOS)

javascript - HTML5 音频的 jQuery 全局播放和暂停

java - Intellij Live 模板使用常量和值填充映射

java - 无法理解 : "Scope ' session' is not active for the current thread"

c# - 从WAV文件中检索振幅数组,不返回完整数据

java - 使用pjsip播放mp3文件

c# - 启用和禁用播放和记录设备

ruby - 如何播放 mp3 文件?

java - 附加到 JComboBox 的 ItemListener 的问题

java - fragment Popbackstack 调用替换我的根 fragment