问题标签 [taglib-sharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1524 浏览

.net - 在哪里可以找到 taglib-sharp 支持的所有音频文件类型的列表?

我不知道为什么这对我来说很难找到,但我根本找不到任何文档。我只是想确保我包含对 taglib-sharp 可以使用的所有音频文件类型的支持并排除所有其他类型。

我所能找到的只是源代码的链接,我真的不想为这样一个简单的问题而挖掘它。谢谢。

顺便问一下,“官方”网站在哪里?

编辑:经过更多研究,我能找到的最佳答案似乎在此处的文件类文档中:

http://taglib-sharp.sourcearchive.com/documentation/2.0.3.7plus-pdfsg/classTagLib_1_1File.html

我真的在寻找支持的音频文件扩展名列表,但这几乎给了我我需要的东西。

0 投票
1 回答
1432 浏览

c# - 如何使用 TagLib-Sharp 从 MP3 文件中读取 XingHeaders 和 VBRIHeaders

我需要使用 TagLib-Sharp 提取 MP3 文件的 Xing 和 Fraunhofer VBRI 标头中存储的信息。

我在网上搜索了一个示例,查看了源代码,但如何使用 XingHeader 和 VBRIHeader 类并不明显。它们看起来不是 MPEG 文件/音频文件属性的一部分。

构造函数需要一个在 TagLib 命名空间中定义的 ByteVector 类。

任何人都可以提供使用 XingHeader 和 VBRIHeader 类的示例吗?任何帮助将不胜感激。

0 投票
1 回答
1665 浏览

c# - id3 图像编辑后无法播放 mp3

由于硬件限制,我们制作的软件试图确保它导入到其库中的任何音频文件(准备复制到硬件上)都是可接受的比特率。

最近,我们开始使用 FFmpeg 将许多不同的音频类型转换为 mp3,以便将它们导入并在我们的硬件上使用。虽然转换工作正常并且之后 mp3 文件在我们的硬件上工作,但我们在将专辑封面添加到 mp3 的 ID3 标签时遇到了问题。该曲目不会在我们的软件中播放音频。Windows 似乎也无法在资源管理器中获取 ID3 标签的值,但 Windows Media Player 仍会播放该曲目。

此问题似乎仅在使用 FFmpeg 后更改新转换的 mp3 的 ID3 标签时出现。从其他来源或已经获得 ID3 标签专辑封面的 mp3 上更改标签是可以的。

从我们的软件中使用FFmpeg的代码如下:

要更改 ID3 标签,我们已经开始使用 TagLib-Sharp,更改 ID3 标签的代码是:

以及软件中用来播放曲目的代码(QuartzTypeLib中的FilgraphManager):

以及执行时的错误_mp3control.RenderFile(_tempFile)

我最大的问题是我不知道问题是否在于(我们的实现)FFmpeg(在许多其他地方都很好使用的大型库)、TagLib-Sharp 或音频播放。

编辑 1:按照 J. Andrew Laughlin 的建议,我一直在查看每个文件的十六进制中 ID3 标签的差异。这是我发现的:

初始输入是 ID3v2.3。用FFmpeg重新编码后,ID3数据为v2.4。这个初始重新编码的文件在媒体播放器和我们的软件中播放良好。在我们的软件中使用 TagLib# 添加专辑封面会保留 ID3v2.4,但标签只能使用 TagLib# 读取它们,并且只能在 Windows Media Player 等媒体播放器中播放。使用另一个工具更改 ID3 标签(在本例中为 AudioShell 标签编辑器)并添加相同的专辑封面将 ID3 版本更改为 2.3,这意味着 mp3 在我们的软件音频播放器以及其他媒体播放器上播放 - 但是更改标签之后在保存图像时产生异常。

我尝试的另一件事是在重新编码后完全撕掉 ID3v2.4 块,这会在所有媒体播放器中播放(如您所料)。在此未标记文件上使用 TagLib# 时,标记已正确应用 (v2.3),并且它继续在我们的软件和其他软件中正常播放。

除非有人可以提出一个优雅的解决方案(强制 TagLib# 编写一个新的 ID3v2.3 块或完全停止 FFmpeg 编写一个),否则我想我可能只是在编码后以编程方式从文件中删除 ID3v2.4 块,然后编写一个新的一个。

0 投票
1 回答
2760 浏览

c# - 您如何遍历 wpf TreeView 的项目,添加新项目(如果它们尚不存在和/或作为现有项目的子项)?

我正在为我的论文开发一个程序,希望在完成后,您可以使用标签数据对音乐文件进行排序。目前我有一个 wpf 树视图,我想显示程序找到的所有音乐的列表,按艺术家>专辑>标题排序。我有一个使用 taglib# 收集的标记文件列表,可用于为每个轨道创建 TreeViewItems,然后可以将它们添加到 TreeView。问题是我似乎无法避免添加艺术家/专辑的副本,而不是将曲目添加为已添加的艺术家/专辑的子项。我一直在尝试使用 foreach 遍历项目,如果标题(艺术家姓名)与要添加的新艺术家的标题相匹配,然后移至专辑并将其添加为当前项目的子项,然后对专辑进行相同的检查,然后转到曲目标题等等。尽管标题完全匹配,但我一直没有什么快乐,但它们似乎总是以不匹配的形式返回,因此添加了重复的艺术家。

我对使用 TreeViews 完全陌生,所以我不确定我是否会以最好的方式解决这个问题,或者它是否只是我的逻辑中的一个缺陷或其他任何帮助,将不胜感激。

附件是我用来创建和检查项目的代码。

创建 TreeViewItems 的函数

以及添加到 TreeView/检查重复项的代码

抱歉,这有点冗长,但再次感谢任何帮助:) 谢谢

0 投票
2 回答
2195 浏览

c# - 如何使 TagLib# 在扩展名错误的文件上工作?

我正在使用TagLib#从我的 MP4 文件中检索元数据。到目前为止,一切都很好,一切正常,直到我发现一个带有“错误”扩展名的文件导致 LagLib# 呕吐。我发现这个文件是用 jpg 扩展名保存的,它使 TagLib在开始时抛出异常 Expected SOI marker文件。经过一番谷歌搜索后,我发现这与读取 jpeg 文件有关。

如果我查看它返回的文件的幻数00 00 00 20 66 74 79 70,它对应于 mp4 的正确签名

我有以下问题:

  1. 如何在不重命名文件的情况下读取元数据。
  2. TagLib# 如何确定元数据?

有任何想法吗?

附言。我使用的代码是这样的:

0 投票
4 回答
5519 浏览

.net - 在 .Net 中使用 Taglib-sharp 2.0.4.0 编写 ArtWork 时遇到问题

我无法在 MP3 文件中编写图稿。我可以使用 Taglib-sharp 读取和显示 MP3 文件中的所有艺术品,但是当在 MP3 标签中插入超过 1 张图片(例如:FrontCover 和 BackCover)时,我遇到了问题.如果它只是一件艺术品...我可以做到有人可以给我扔骨头,并告诉我怎么做吗?(vb.net 会很棒,但 C# 也能做到这一点)。

再提出一个请求……并删除 mp3 标签内的图像??有人可以给我一个关于如何做到这一点的例子。

谢谢你的帮助

0 投票
1 回答
670 浏览

c# - 将值插入到包含括号/大括号的 Access 数据库中

使用 taglib-sharp 和 OleDb,我正在尝试索引音乐文件的文件夹并将所述文件中的所有元数据存储在 Access 数据库中(我可能稍后会切换到 SQL Compact 或其他东西,但我拥有的书使用 Access) . 以下代码应检索并存储给定文件夹和子文件夹中的前 1000 个文件的元数据

但是,当其中一个标签的标题中有方括号时,就会出现问题。我可以看到为什么这会导致问题,但不知道如何解决/避免它。我尝试过字符串文字等,但看不到它们是如何工作的(它们没有:/)。有更好的想法吗?

0 投票
1 回答
344 浏览

c# - Data Binding with TagLib#

So I'm trying to use the TagLib library with Databinding but I'm having trouble turning it into a property that is bindable. Any help is appreciated, thanks. Here is what I have so far, I don't understand what I'm doing wrong:

#xA;
0 投票
1 回答
1376 浏览

mp3 - TagLib-sharp:从 HttpPostedFile 对象中读取元数据

用户将他们的 MP3 发布到我的网站,我想在文件存储到 CDN 之前从文件中读取元数据。TagLib-Sharp 似乎是为此而设计的库,但我看不到任何打开 HttPostedFile 的方法,我不想将其保存到磁盘并检索元数据。

有人有一个关于如何使用 taglib-sharp 做到这一点的例子吗?

编辑:似乎 IFileAbstraction 可以解决这个问题。有人知道如何使用 IFileAbstraction 吗?

0 投票
2 回答
2246 浏览

save - Taglib 锐利保存仅 ID3v2

我是使用 TagLib 的新手。我正在尝试仅在文件中保存特定版本的标签。每次我保存标签时都会创建 ID3v1 和 ID3v2。有没有办法阻止这种情况发生?我可以选择我想保存哪一个。save 函数不接受任何参数,所以有什么想法吗?