Как добавить метаданные в WAV файл?

Я ищу пример кода, чтобы показать мне, как добавлять метаданные в создаваемые нами wav файлы. Кто-нибудь?

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);
 }
 }
}
</waveinfo,></waveinfo,></waveinfo,>

из http://alvas.net/alvas.audio,articles.aspx#id3-tags-for-wave-files


Один из вариантов - добавить свой собственный кусок с уникальным идентификатором. Большинство игроков WAV игнорируют это.

Еще одна идея - использовать фрагмент labl, связанный с набором que в начале или в конце файла. Вам также понадобится кусок que. См. здесь ссылку

Как написать данные просто

  • Напишите "RIFF".
  • сохранить позицию файла.
  • Напишите 4 байта 0
  • Напишите все существующие куски. Сохраняйте количество записанных байтов.
  • Добавьте свой кусок. Не забудьте получить право. Держать количество записанных байтов.
  • перемотайте назад в сохраненную позицию. Напишите новый размер (как 32-битный число).
  • Закройте файл.

Это немного сложнее, если вы добавляете вещи в существующий фрагмент list, но применяется тот же принцип.


Возможно, формат файла nist даст вам то, что вы хотите: NIST

Вот lib, который мог бы помочь, но я боюсь, что он выглядит старым. NIST Lib

Не могу найти более полезную информацию прямо сейчас, как именно ее использовать, и я боюсь, что информационные документы от моей компании должны оставаться там. L/


Если вы просмотрите спецификацию волнового файла, вы увидите, что не существует места для аннотаций любого типа. Вариант будет состоять в том, чтобы обернуть волновой файл своим собственным форматом, который содержит настраиваемую информацию, но вы фактически создадите совершенно новый формат, который не будет доступен для чтения пользователям, у которых нет вашего приложения. Но вы можете быть в порядке.

licensed under cc by-sa 3.0 with attribution.