从云 URL (Amazon S3 URL) 获取视频或音频持续时间

Shu*_*avi 5 c# media model-view-controller duration

我需要存储在 Amazon S3 云存储中的音频和视频 URL 的媒体长度。我尝试过 wmplib 和 directshow lib,但两者都用于获取文件临时存储在文件系统中时的持续时间或长度。我需要通过直接传递云URL来获取媒体长度。

我还使用过 Windows APICodePack.Shell 库。所有这些库都可用于获取本地存储文件的持续时间。

如何实现这一目标?

使用 Windows APICodePack.Shell

using Microsoft.WindowsAPICodePack.Shell;
ShellFile so = ShellFile.FromFilePath(file);
            double nanoseconds;
            double.TryParse(so.Properties.System.Media.Duration.Value.ToString(), 
            out nanoseconds);
            Console.WriteLine("NanaoSeconds: {0}", nanoseconds);
Run Code Online (Sandbox Code Playgroud)

使用 WMPLib

WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
    IWMPMedia mediaInfo = wmp.newMedia(filePath);
    return mediaInfo.durationString
Run Code Online (Sandbox Code Playgroud)