Я испытал трудности с примером MediaPlayer-класса выше. Это могло занять время, прежде чем плеер открыл файл. В "реальном мире" необходимо зарегистрироваться для MediaOpened-события, после этого стрелял, NaturalDuration допустим. В консольном приложении просто необходимо ожидать спустя несколько секунд после открытого.
using System;
using System.Text;
using System.Windows.Media;
using System.Windows;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
if (args.Length == 0)
return;
Console.Write(args[0] + ": ");
MediaPlayer player = new MediaPlayer();
Uri path = new Uri(args[0]);
player.Open(path);
TimeSpan maxWaitTime = TimeSpan.FromSeconds(10);
DateTime end = DateTime.Now + maxWaitTime;
while (DateTime.Now < end)
{
System.Threading.Thread.Sleep(100);
Duration duration = player.NaturalDuration;
if (duration.HasTimeSpan)
{
Console.WriteLine(duration.TimeSpan.ToString());
break;
}
}
player.Close();
}
}
}
Вам, вероятно, просто нужно объявить
extern FILE * yyin;
Если это не решит проблему, сообщите полученное сообщение об ошибке.