Как добавить метаданные в файл WAV? - PullRequest
6 голосов
/ 10 августа 2010

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

Ответы [ 4 ]

2 голосов
/ 30 января 2014

Попробуйте код ниже

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 голос
/ 10 августа 2010

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

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

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

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

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

0 голосов
/ 10 августа 2010

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

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

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

0 голосов
/ 10 августа 2010

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

...