Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取/写入音频/视频文件的元数据_C#_Taglib Sharp - Fatal编程技术网

C# 读取/写入音频/视频文件的元数据

C# 读取/写入音频/视频文件的元数据,c#,taglib-sharp,C#,Taglib Sharp,我需要一些帮助来读/写音频/视频文件的元数据信息。我找了很多,但没有找到任何有用的东西。Taglib sharp是一个开放源代码库,它在读取/写入元数据方面提供帮助。使用标记库,我可以编辑一些值,但不是全部 TagLib.File videoFile = TagLib.File.Create("test.mp4"); videoFile.Tag.Title = "Test"; videoFile.Tag.Comment = "Nothing"; 但我无法编辑以下属性,如作者url、制作人等。我

我需要一些帮助来读/写音频/视频文件的元数据信息。我找了很多,但没有找到任何有用的东西。Taglib sharp是一个开放源代码库,它在读取/写入元数据方面提供帮助。使用标记库,我可以编辑一些值,但不是全部

TagLib.File videoFile = TagLib.File.Create("test.mp4");
videoFile.Tag.Title = "Test";
videoFile.Tag.Comment = "Nothing";

但我无法编辑以下属性,如作者url、制作人等。我如何编辑这些属性???

我以前从未对视频文件进行过编辑,但我对mp3文件进行过编辑。您可以通过以下方式访问这些帧:

TagLib.File file = TagLib.File.Create(mp3FileName);
file.Tag.Title = "some title"; // you've got this
TagLib.Id3v2.Tag tag = (TagLib.Id3v2.Tag)file.GetTag(TagTypes.Id3v2);
tag.SetTextFrame("WOAR", "some url"); // WOAR = Official artist/performer webpage
file.Save();
var tokenValue = customTag.GetDashBox("Producer", "Producer1");
您可以在维基百科上找到文本框标识符列表:

我不知道视频文件是否提供与ID3相同的帧范围,但请注意维基百科也说()

MP4还允许嵌入ID3标记,这得到了广泛的支持


因此,我想这也适用于您正在尝试的mp4文件。

您需要使用AppleTag。这会奏效的。对于mp4文件,必须将值写入dashbox。像这样:

TagLib.File videoFile = TagLib.File.Create("test.mp4");
TagLib.Mpeg4.AppleTag customTag = (TagLib.Mpeg4.AppleTag)f.GetTag(TagLib.TagTypes.Apple);
customTag.SetDashBox("Producer","Producer1", "value");
f.Save();
f.Dispose();
您可以得到如下值:

TagLib.File file = TagLib.File.Create(mp3FileName);
file.Tag.Title = "some title"; // you've got this
TagLib.Id3v2.Tag tag = (TagLib.Id3v2.Tag)file.GetTag(TagTypes.Id3v2);
tag.SetTextFrame("WOAR", "some url"); // WOAR = Official artist/performer webpage
file.Save();
var tokenValue = customTag.GetDashBox("Producer", "Producer1");

我想答案就在这里:谢谢,如果有任何问题,我会检查并返回给你。使用mp4文件,id3v2标记总是返回null。另一个标记类型呢,比如TagType。Id3v1?Id3v1不包含SetTextFrame function。mp4文件包含标记类型Apple no id3v2和Id3v1。对于mp4文件,它工作正常。你救了我一天,谢谢