当前位置:  开发笔记 > 编程语言 > 正文

使用tagLib sharp library添加自定义标记

如何解决《使用tagLibsharplibrary添加自定义标记》经验,为你挑选了1个好方法。

是否可以使用TagLib# libary 将自定义标签(例如"SongKey:Em")添加到mp3文件中?



1> Fᴀʀʜᴀɴ Aɴᴀᴍ..:

您可以通过在自定义(私有)帧中写入数据来为MP3添加自定义标签.

但首先:

如果使用ID3v1,则必须切换到ID3v2.任何版本的ID3v2都可以,但与大多数东西兼容的版本是ID3v2.3.

所需的使用指令:

using System.Text;
using TagLib;
using TagLib.Id3v2;

创建私人框架:

File f = File.Create(""); // Remember to change this...
TagLib.Id3v2.Tag t = (TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2); // You can add a true parameter to the GetTag function if the file doesn't already have a tag.
PrivateFrame p = PrivateFrame.Get(t, "CustomKey", true);
p.PrivateData = System.Text.Encoding.Unicode.GetBytes("Sample Value");
f.Save(); // This is optional.

在上面的代码中:

切换""到MP3文件的路径.

更改"CustomKey"为您想要密钥的名称.

更改"Sample Value"为您要存储的任何数据.

如果您有自定义保存方法,则可以省略最后一行.

阅读私人框架:

File f = File.Create("");
TagLib.Id3v2.Tag t = (TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2);
PrivateFrame p = PrivateFrame.Get(t, "CustomKey", false); // This is important. Note that the third parameter is false.
string data = Encoding.Unicode.GetString(p.PrivateData.Data);

在上面的代码中:

切换""到MP3文件的路径.

更改"CustomKey"为您想要密钥的名称.

读写之间的区别是PrivateFrame.Get()函数的第三个布尔参数.在阅读时,你通过false并在写作时通过true.

附加信息:

由于byte[]可以写入到帧,不仅是文字,但几乎任何对象类型可以保存在标签,只要你正确地转换(读取时转换回)的数据.

要将任何对象转换为a byte[],请参阅此答案,该答案使用a Binary Formatter来执行此操作.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有