Как прочитать метки ударов в минуту mp3-файла в приложениях магазина Windows C#?

Я пытаюсь прочитать bpm, встроенный в mp3-файл, как этот:

тег bpm я пытаюсь прочитать

я пытался использовать

Windows.Storage.FileProperties.MusicProperties

но он содержит только название, певца и т. д., он не может прочитать bpm, который я показывал раньше.

я смотрю в https://taglib.github.io/ они, похоже, тоже не имеют такой функции. есть ли обходной путь к этому?

1 ответ

Решение

Когда вы загрузили свой музыкальный файл в StorageFile, вы захотите сделать аналогичный вызов в вашем коде, например:

var fileProps = await file.Properties.RetrievePropertiesAsync(null);

Это даст вам список всех системных свойств, представленных как Dictionary<string, object>,

Затем вы можете получить значение BPM следующим образом:

if (fileProps.ContainsKey("System.Music.BeatsPerMinute"))
{
    var bpmObj = fileProps["System.Music.BeatsPerMinute"];
    if (bpmObj != null)
    {
        var bpm = bpmObj.ToString();
    }
}

Вы можете найти полный список доступных свойств файла здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/dd561977(v=vs.85).aspx

Другие вопросы по тегам