我在 WMPLib 中找到了 WindowsMediaPlayer,但没有找到 TimeCode!
任何人都知道如何做到这一点?
我相信您的问题的答案是您需要为文件中的每个流调用 IWMReaderTimecode::GetTimecodeRangeCount 。然后为每个流中的每个范围调用 IWMReaderTimecode::GetTimecodeRangeBounds 以获取每个范围的 startTimecode 和 endTimecode。
查看这两篇文章Get WMA/WMV meta information in C#和Getting Current Time Code Using Windows Media Player Class in C#,您可以尝试以下操作:
using WMPLib; // this file is called Interop.WMPLib.dll
WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
IWMPMedia mediaInfo = wmp.newMedia("myfile.wmv");
Console.WriteLine("Duration = " + mediaInfo.duration);
for (int i=0; i<mediaInfo.attributeCount; i++) {
Console.WriteLine(mediaInfo.getAttributeName(i) + " = " +
mediaInfo.getItemInfo(mediaInfo.getAttributeName(i)) );
}
或使用该Controls.CurrentPositionString
属性获取当前时间。
Console.WriteLine(wmp.controls.currentPositionString);