Получить продолжительность аудиофайла с помощью Microsoft DLL или утилиты

Существует ли Windows dll или утилита, которую можно использовать для просмотра продолжительности (ЧЧ:ММ:СС) аудиофайла (WMA, MP3 или WAV), к которому можно получить доступ из сценария (в частности, JScript)?

Я знаю, что один или что-то еще может читать метаданные файла, но я не знаком с этим.


person Nathan R    schedule 14.05.2013    source источник


Ответы (1)


Вы можете использовать метод GetDetailsOf оболочки Windows Folder, чтобы получить длину аудиофайла. Этот метод поддерживает все типы аудиофайлов, чьи метаданные могут быть прочитаны и отображены проводником Windows.

Однако обратите внимание, что индекс атрибута длины отличается в разных версиях Windows: он равен 21 в Windows XP/2003 и 27 в Windows Vista+. См. эту страницу и это мой ответ для деталей. Вам нужно будет учесть это в своем сценарии.

Пример кода:

var LENGTH = 27; // Windows Vista+
// var LENGTH = 21; // Windows XP

var oShell = new ActiveXObject("Shell.Application");
var oFolder = oShell.Namespace("C:\Music");
var oFile   = oFolder.ParseName("Track.mp3");

WScript.Echo(oFolder.GetDetailsOf(oFile, LENGTH));

Пример вывода:

00:05:18

person Helen    schedule 15.05.2013
comment
Спасибо, это очень то, что мне было нужно. Я знал, что должен быть простой способ сделать это. Также +1 за указание на различия в ОС. - person Nathan R; 15.05.2013