【发布时间】:2010-08-09 21:21:34
【问题描述】:
我正在寻找一些示例代码来向我展示如何将元数据添加到我们创建的 wav 文件中。 有人吗?
【问题讨论】:
我正在寻找一些示例代码来向我展示如何将元数据添加到我们创建的 wav 文件中。 有人吗?
【问题讨论】:
一种选择是添加您自己的具有唯一 ID 的块。大多数 WAV 播放器会忽略它。
另一个想法是使用labl 块,与文件开头或结尾的que 集相关联。您还需要一个que 块。 See here for a reference
数据的写法很简单
"RIFF"。 如果您要向现有的 list 块添加内容,情况会稍微复杂一些,但原理相同。
【讨论】:
如果您检查wave file spec,您会发现似乎没有任何注释空间。一种选择是使用您自己的包含自定义信息的格式来包装波形文件,但实际上您将创建一个全新的格式,没有您的应用程序的用户将无法读取该格式。但你可能会接受。
【讨论】:
试试下面的代码
private void WaveTag()
{
string fileName = "in.wav";
WaveReadWriter wrw = new WaveReadWriter(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite));
//removes INFO tags from audio stream
wrw.WriteInfoTag(null);
//writes INFO tags into audio stream
Dictionary<WaveInfo, string> tag = new Dictionary<WaveInfo, string>();
tag[WaveInfo.Comments] = "Comments...";
wrw.WriteInfoTag(tag);
wrw.Close();
//reads INFO tags from audio stream
WaveReader wr = new WaveReader(File.OpenRead(fileName));
Dictionary<WaveInfo, string> dir = wr.ReadInfoTag();
wr.Close();
if (dir.Count > 0)
{
foreach (string val in dir.Values)
{
Console.WriteLine(val);
}
}
}
来自http://alvas.net/alvas.audio,articles.aspx#id3-tags-for-wave-files
【讨论】: