gpt4 book ai didi

android - 如何使用JaudioTagger写入数据?

转载 作者:行者123 更新时间:2023-12-03 01:39:38 24 4
gpt4 key购买 nike

我正在尝试使用JaudioTagger 2.2.3编辑音频文件的标签,但到目前为止,我还没有取得任何成功。
这是用于更改内部存储中mp3文件的Artist标签的测试代码

String path;
try
{
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile f=AudioFileIO.read(new File(path));
Tag t=f.getTag();
t.setField(FieldKey.ARTIST,Str);
AudioFileIO.write(f);
}catch(CannotReadException e){}
catch(TagException e){}
catch(ReadOnlyException e){}
catch(InvalidAudioFrameException e){}
catch(CannotWriteException e){}
android.permission.WRITE_EXTERNAL_STORAGEandroid.permission.READ_EXTERNAL_STORAGE很好地提升了我的应用程序
我正在测试Android版本 Android 6.0此代码将 InvalidAudioFrameException与消息一起抛出

No audio header found within example.mp3



它不是音频已损坏,因为它也显示了与其他mp3相似的错误
另外,如果有人还有其他标签用于音频标记,请告诉我,我还使用了 mp3agic,该代码重复显示:线上的 example.mp3:open failed :EROFS(Read only file system)
Mp3File mp3file = new Mp3File(filePathStr+"example.mp3");
ID3v1 id3v1Tag;
if (mp3file.hasId3v1Tag()) {
id3v1Tag = mp3file.getId3v1Tag();
} else {
// mp3 does not have an ID3v1 tag, let's create one..
id3v1Tag = new ID3v1Tag();
mp3file.setId3v1Tag(id3v1Tag);
}
id3v1Tag.setTrack("5");
id3v1Tag.setArtist("An Artist");
id3v1Tag.setTitle("The Title");
id3v1Tag.setAlbum("The Album");
id3v1Tag.setYear("2001");
id3v1Tag.setGenre(12);
id3v1Tag.setComment("Some comment");
mp3file.save("example.mp3")//error showing in this line

我的问题
  • 如何纠正Jaudiotagger?
  • 是否可以使用Mp3agic替代Jaudiotagger?
  • 还是还有其他有效的方法可以保留这两个?

  • 我也使用过 JaudioTagger-android,但同样的问题仍然存在。
    提前致谢!

    最佳答案

    对于做时的错误

    mp3file.save("example.mp3")

    我建议不要直接覆盖旧文件。尝试创建一个新文件,然后删除并重命名以恢复原始文件设置。
    song.save(location + "intermed");
    File from = new File(location + "intermed");
    File file = new File(location);
    file.delete();
    File to = new File(location);
    from.renameTo(to);

    当然,您需要添加异常处理,而不能添加异常处理,如果没有写权限,这也会失败。如果您使用的是较新的Android版本(我认为是4.4以上版本),并且尝试访问SD卡,则可能是这种情况。然后,需要在运行时授予特定文件夹的写许可权,但 list 写许可权还不够。请参阅Android的存储访问框架。

    关于android - 如何使用JaudioTagger写入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48438250/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com