java - 编辑 MP3 标签
问题描述
你们中有人知道编辑 mp3 文件标签的方法吗?
我尝试了 Mp3agic,但是当我尝试声明MP3File对象时它崩溃了,我还尝试了 tha jaudiotagger 库,但它也崩溃了。
我需要帮助。
更新:
这是应用程序崩溃的代码片段:
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = AudioFileIO.read(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
应用程序崩溃在行
AudioFile audioFile = AudioFileIO.read(testFile);
毫无例外。
按照上述行中的所有调试步骤,应用程序在 JAudioTagger 的 MP3File 类的第 246 行崩溃。这是行:
..
finally {
if(newFile != null) {
newFile.close();
}
..
所以我尝试在这里更改我的代码(我更改了 AudioFile 声明):
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = new AudioFile();
audioFile.setFile(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
并在线
AudioFile audioFile = new AudioFile();
它在 MP3File 类的第 232 行抛出 NullPointerException (该行试图找到文件的标题):
audioFile: Method threw 'java.lang.NullPointerException' exception. Cannot evaluate org.jaudiotagger.audio.AudioFile.toString()
此异常在下一行中导致此异常:
java.lang.NullPointerException: Attempt to invoke interface method 'void org.jaudiotagger.tag.Tag.setField(org.jaudiotagger.tag.FieldKey, java.lang.String)' on a null object reference
在线:
newTag.setField(FieldKey.ALBUM, this.album);
更新:
我也尝试更改线路:
Tag newTag = audioFile.getTag();
至:
Tag newTag = audioFile.getTagOrCreateAndSetDefault();
但它抛出了这个异常:
java.lang.RuntimeException: Unable to create default tag for this file format
解决方案
推荐阅读
- python - 在 selenium python 中移动 web 元素的偏移量
- excel - 如何“单击”图像中显示的绿色箭头 [SAP 欢迎屏幕]
- python - 如何在 python-ldap 中解决“没有名为 'pyasn1_modules.rfc2251' 的模块”
- python - 相同的 Python 代码似乎具有不同的性能特征
- file - How to associate static files with user in Express?
- sql - 如何在 CLOB 列中插入数据(Oracle)
- jquery - 重复jquery函数
- c# - 在 Blazor 中获取子组件列表的最佳方法
- java - 将 DTO 转换为 DTO 数组
- kubernetes - 如何从外部访问位于 minikube 中的服务