C# retrieve the duration of media files such as .avi, wmv, wma, wav, etc

Is there a way of retrieving the duration of media files (avi, wmv, wma, wav, etc) from a command line application? At the moment I can use an instance of AxWindowsMediaPlayer, but this only seems to work for audio .wma.
AxWMPLib.AxWindowsMediaPlayer objPlayer = new AxWMPLib.AxWindowsMediaPlayer();
               WMPLib.IWMPMedia media = objPlayer.newMedia(strMediaFilePath);
                dblDuration = media.duration;

Open in new window

ttnetworksAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
williamcampbellConnect With a Mentor Commented:

With DirectShow, you can use IGraphBuilder::RenderFile() to create a graph
and then use IMediaSeeking::GetDuration().

Otherwise, you can use the IMediaDet interface (which does the above
internally).

So you could create a C++ DLL and then use p/Invoke too grab the result form C# land.

Google the above and you may find some code.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.