通过 Microsoft DLL 或实用程序获取音频文件持续时间

Nat*_*n R 2 audio mp3 metadata wma jscript

是否有 Windows dll 或实用程序可用于查看可从脚本(特别是 JScript)访问的音频文件(WMA、MP3 或 WAV)的持续时间(HH:MM:SS)?

我知道有一个或其他东西可以读取文件元数据,但我对此不熟悉。

Hel*_*len 5

您可以使用GetDetailsOfWindows ShellFolder对象的方法来获取音频文件的长度。此技术支持所有音频文件类型,其元数据可以由 Windows 资源管理器本机读取和显示。

但请注意,不同 Windows 版本上的 Length 属性的索引有所不同:在 Windows XP/2003 上为 21,在 Windows Vista+ 上为 27。有关详细信息,请参阅此页面我的答案。您需要在脚本中考虑到这一点。

示例代码:

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));
Run Code Online (Sandbox Code Playgroud)

输出示例:

00:05:18