【问题标题】:How to add metadata to WAV file?如何将元数据添加到 WAV 文件?
【发布时间】:2010-08-09 21:21:34
【问题描述】:

我正在寻找一些示例代码来向我展示如何将元数据添加到我们创建的 wav 文件中。 有人吗?

【问题讨论】:

    标签: metadata wav


    【解决方案1】:

    一种选择是添加您自己的具有唯一 ID 的块。大多数 WAV 播放器会忽略它。

    另一个想法是使用labl 块,与文件开头或结尾的que 集相关联。您还需要一个que 块。 See here for a reference

    数据的写法很简单

    1. "RIFF"
    2. 保存文件位置。
    3. 写入 4 个字节的 0
    4. 写入所有现有块。保持写入的字节数。
    5. 添加你的区块。确保获得正确的块大小。保持 写入的字节数。
    6. 倒回保存的位置。写入新大小(作为 32 位 号)。
    7. 关闭文件。

    如果您要向现有的 list 块添加内容,情况会稍微复杂一些,但原理相同。

    【讨论】:

    • 请注意,所有块的字节数必须是偶数。如果需要,用 NULL 填充!
    【解决方案2】:

    如果您检查wave file spec,您会发现似乎没有任何注释空间。一种选择是使用您自己的包含自定义信息的格式来包装波形文件,但实际上您将创建一个全新的格式,没有您的应用程序的用户将无法读取该格式。但你可能会接受。

    【讨论】:

    • 根据我的阅读,我可以将它作为 RIFF 结构的一部分嵌入,我只是不知道要使用哪些结构和标签。
    【解决方案3】:

    也许 nist 文件格式会给你你想要的: NIST

    这是一个可以提供帮助的库,但恐怕它看起来很旧。 NIST Lib

    目前找不到更多有用的信息,具体如何使用,恐怕我公司的资料文件必须留在那里。 :L/

    【讨论】:

      【解决方案4】:

      试试下面的代码

      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

      【讨论】:

      • 如果没有“Alvas Audio”的许可,此代码将无法使用,至少需要 500 美元的许可...
      猜你喜欢
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多