- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试像这样使用 jaudiotagger但是它崩溃了
主要的 app.java : 导入java.io.文件; 导入 java.io.IOException;
import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.AudioHeader;
import org.jaudiotagger.audio.exceptions.CannotReadException;
import org.jaudiotagger.audio.exceptions.CannotWriteException;
import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
import org.jaudiotagger.tag.FieldDataInvalidException;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.KeyNotFoundException;
import org.jaudiotagger.tag.Tag;
import org.jaudiotagger.tag.TagException;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class App extends Activity {
/** Called when the activity is first created. */
private TextView txt1;
private TextView txt2;
private TextView txt3;
private TextView txt4;
private TextView txt5;
private TextView txt6;
private TextView txt7;
private TextView txt8;
private TextView txt9;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// try
//{
File mp3 = new File("/sdcard/test.mp3");
AudioFile f = null;
try {
f = AudioFileIO.read(mp3);
} catch (CannotReadException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
} catch (TagException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
} catch (ReadOnlyFileException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
} catch (InvalidAudioFrameException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
}
Tag tag = f.getTag();
AudioHeader AudioHeader = f.getAudioHeader();
txt1.setText(tag.getFirst(FieldKey.ARTIST));
txt2.setText(tag.getFirst(FieldKey.ALBUM));
txt3.setText(tag.getFirst(FieldKey.TITLE));
txt4.setText(tag.getFirst(FieldKey.COMMENT));
txt5.setText(tag.getFirst(FieldKey.YEAR));
txt6.setText(tag.getFirst(FieldKey.TRACK));
txt7.setText(tag.getFirst(FieldKey.DISC_NO));
txt8.setText(tag.getFirst(FieldKey.COMPOSER));
txt9.setText(tag.getFirst(FieldKey.ARTIST_SORT));
try {
tag.setField(FieldKey.ARTIST,"Kings of Leon");
} catch (KeyNotFoundException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
} catch (FieldDataInvalidException e) {
// TODO Auto-generated catch block
txt1.setText(e.toString());
}
try {
AudioFileIO.write(f);
} catch (CannotWriteException e) {
txt1.setText(e.toString());
}
/* }
catch(Exception x)
{
txt1.setText(x.toString());
}
*/
}
}
日志:
02-22 21:12:22.546: E/AndroidRuntime(19738): FATAL EXCEPTION: main 02-22 21:12:22.546: E/AndroidRuntime(19738): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mp3.tag.editor.alexander.fuchs/com.mp3.tag.editor.alexander.fuchs.App}: java.lang.NullPointerException 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.os.Handler.dispatchMessage(Handler.java:99) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.os.Looper.loop(Looper.java:130) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread.main(ActivityThread.java:3691) 02-22 21:12:22.546: E/AndroidRuntime(19738): at java.lang.reflect.Method.invokeNative(Native Method) 02-22 21:12:22.546: E/AndroidRuntime(19738): at java.lang.reflect.Method.invoke(Method.java:507) 02-22 21:12:22.546: E/AndroidRuntime(19738): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 02-22 21:12:22.546: E/AndroidRuntime(19738): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 02-22 21:12:22.546: E/AndroidRuntime(19738): at dalvik.system.NativeStart.main(Native Method) 02-22 21:12:22.546: E/AndroidRuntime(19738): Caused by: java.lang.NullPointerException 02-22 21:12:22.546: E/AndroidRuntime(19738): at com.mp3.tag.editor.alexander.fuchs.App.onCreate(App.java:72) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 02-22 21:12:22.546: E/AndroidRuntime(19738): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 02-22 21:12:22.546: E/AndroidRuntime(19738): ... 11 more
最佳答案
有两个拦截器在 Android 上使用 jaudiotagger:
android 不支持这两个类,jaudiotagger 使用它们
解决您的问题:修复源代码,使它们不再依赖于这两个 JAVAX 类
关于java - Android 使用 jaudiotagger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402245/
我正在构建一个使用 JAudioTagger 编辑 mp3 文件标签的应用程序.唯一的问题是当我在 Google Music 中打开文件时,mp3 文件的文件不会改变。应用程序。
我正在使用 JAudioTagger 库从我的音乐文件中读取元数据。我能够检索信息,但查看标签映射规范 http://www.jthink.net/jaudiotagger/tagmapping.ht
所以我正在尝试在我的应用程序中编辑音乐文件的标签。这是代码 TagOptionSingleton.getInstance().setAndroid(true); AudioFile f = Audio
我正在尝试在类似应用程序的媒体播放器中使用 JAudioTagger 来链接每首歌曲的元数据,但我没有看到轨道持续时间的字段。我敢肯定肯定有一个,但我似乎找不到它,而且几次搜索都没有找到任何结果。我在
一直在用JAudioTagger现在图书馆 2 年了,我不知道如何禁用它的记录器。 又问了项目主:https://bitbucket.org/ijabz/jaudiotagger/issues/257
我尝试像这样使用 jaudiotagger但是它崩溃了 主要的 app.java : 导入java.io.文件; 导入 java.io.IOException; import org.jaudiota
有人知道如何使用 Java 的 jaudiotagger 库获取 mp3 频率(以 Hz 为单位)? jaudiotagger site 最佳答案 未经测试,但这看起来可能有帮助: AudioFile
这个问题已经有答案了: Importing JAR (JAudioTagger) in Eclipse Android (1 个回答) 已关闭10 年前。 我正在开发一个加载 mp3 文件的歌曲数据的
我想创建/添加自定义 ID3 标签到 MP3(ID3v2.3 或 ID3v2.4)。有一个用于此目的的 TXXX 标记,但我不知道如何使用 jAudiotagger 库创建它。 最佳答案 我自己刚刚发
我是 Java 环境的新手,最近我一直在尝试创建一个简单的 mp3 标签读取文件。一切都很顺利,直到我尝试从 m4a 文件中读取标签。遗憾地阅读了所有 API 文档和示例后,我仍然不知道如何使用 sc
我正在使用 JAudioTagger 从音乐文件中获取元数据,获取标题、年份等工作正常,但我在获取封面艺术时遇到问题。我在网上搜索找不到任何示例,任何帮助都会很棒! 这是我当前的代码,在调试时 cov
我是 Java 编程的新手。在这里,我正在尝试使用 Jaudiotagger 库为 mp3 更改/创建新的 ID3 标签,而不是我的 android 项目之一。但是,我真的无法设置使库正常工作。那是,
我想使用 jaudiotagger 在 mp4 文件中写入自定义/用户定义的字段 对于 FLAC 文件,我可以使用 VorbisCommentTagField 来完成此操作。 对于使用 ID3v24T
我有以下错误但无法解决问题,我正在读取 MP3 文件,并且在尝试写入 MP4 文件时似乎出现以下错误。 AudioFile f = AudioFileIO.read(m_file.get(x)); 调
我正在尝试创建一个引用这些的音频标签编辑器 http://www.jthink.net/jaudiotagger/ 和 JAudioTagger and Android - Change a valu
我正在使用 JAudiotagger 构建一个 mp3 标记应用程序图书馆。我的应用程序可以很好地读取 mp3 元数据,也可以很好地写入元数据,艺术作品除外。所以我的问题如下: 当我在 mp3 文件中
我正在开发一个加载 mp3 文件的歌曲数据的程序。我正在尝试导入 JAudioTagger 以帮助加载歌曲信息。 JAudioTagger 是一个 .jar 文件。我进入了导入窗口,但面临着许多我不确
我可以从音频文件中读取标题、艺术家、专辑封面和其他信息等元信息,但我从未能够成功写入元信息。 有人有这方面的经验吗?有比 JAudioTagger 更好的库吗? 我会提供一些示例代码,但我已经尝试了很
我是一个(非常)业余程序员。我正在使用 Groovy 编辑 MP3 文件标签。之前(大约两年前),我添加了 JAudiotagger使用 JAudiotagger 中给出的详细说明将类库添加到我的 J
我已经使用 jaudiotagger 成功读取/写入 mp3 标签 ARTIST、TITLE、COMPOSER。我还想读取/写入原始 mp3 标签,例如发布者、编码者、作者 URL、版权和字幕。 这是
我是一名优秀的程序员,十分优秀!