我Microsoft.WindowsAPICodePack.Shell.ShellFile
用来从文件路径获取视频大小(宽度和高度)。
public Size GetVideoSize(string videoFullPath)
{
if (File.Exists(videoFullPath))
{
ShellFile shellFile = ShellFile.FromFilePath(videoFullPath);
int videoWidth = (int)shellFile.Properties.System.Video.FrameWidth.Value;
int videoHeight = (int)shellFile.Properties.System.Video.FrameHeight.Value;
return new Size(videoWidth, videoHeight);
}
return Size.Empty;
}
问题是此方法无法检索 m4v 文件的正确大小。你有什么建议吗?我可以使用什么来获得实际的宽度/高度?
示例:我有一个 m4v 视频,其实际尺寸为 856x480
- 如果我在 Windows 资源管理器中查看文件的属性,大小为 720x480(错误)
- 如果我在视频播放器中打开视频,视频将以正确的大小呈现,即使视频细节仍显示 720x480 的大小
- 如果我在 WPF 中的 MediaElement 控件中加载视频,我会通过 获得正确的大小,
mediaElement.NaturalVideoWidth, mediaElement.NaturalVideoHeight
但问题是我需要在没有任何 WPF 引用的类库中获取大小。