我正在寻找一些示例代码,向我展示如何将元数据添加到我们创建的wav文件中。 任何人吗?
答案 0 :(得分:2)
尝试以下代码
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
答案 1 :(得分:1)
一个选项是添加您自己的具有唯一ID的块。大多数WAV玩家都会忽视它。
另一个想法是使用labl
块,与文件开头或结尾处的que设置相关联。你还需要一个que
块。 See here for a reference
如何编写数据很简单
"RIFF"
。 如果要向现有的list
块添加内容,这会稍微复杂一些,但同样的原则适用。
答案 2 :(得分:0)
如果您检查wave file spec,您会发现似乎没有任何类型的注释空间。一个选项是使用您自己的包含自定义信息的格式包装wave文件,但实际上您将创建一个全新的格式,而这些格式是没有您的应用程序的用户无法读取的。但你可能会对此感到满意。
答案 3 :(得分:0)