WMPLib に WindowsMediaPlayer が見つかりましたが、TimeCode は見つかりませんでした。
その方法を知っている人はいますか?
あなたの質問に対する答えは、ファイル内のストリームごとにIWMReaderTimecode::GetTimecodeRangeCountを呼び出す必要があるということだと思います。次に、各ストリームの各範囲に対してIWMReaderTimecode :: GetTimecodeRangeBoundsを呼び出して、各範囲のstartTimecodeとendTimecodeを取得します。
これらの2つの記事を見て、C#でWMA / WMVメタ情報を取得し、C#でWindows Media Playerクラスを使用して現在のタイムコードを取得すると、次のことを試すことができます。
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);