Windows Server 2012内のASP(VBScript)において、動画や音声ファイルのなどの情報を取得する場合に、これらの情報が取得できない場合の対処方法です。
下記のサンプルプログラムで、動画ファイルの長さが秒で取得できるはずが取得できずに0が帰ってきてしまいます。
Set objShell = server.CreateObject("Shell.Application")
FilePath = "D:\inetpub\Demo\DemoMove.mp4"
Set objFolder = objShell.Namespace(filePath)
tmpStr = Mid(filePath, InStrRev(filePath, "\", -1, vbTextCompare) + 1)
For Each objItem In objFolder.Items
If StrComp(objItem.Name, tmpStr, vbTextCompare) = 0 Then
GetDuration = CDbl(objItem.ExtendedProperty("Duration"))
GetDuration = Int(GetDuration / 1000 / 1000 / 10)
Exit For
End If
Next
response.write(GetDuration)
Windows Server 2012の標準インストールでは、動画や音声に関するソフトウェアがインストールされていません。「役割と機能の追加」から「機能」の「Media Foundation」を追加することで、動画や音声ファイルの情報を取得できるようになります。