Попробуйте, это может работать для вас:
Изменения
[System.Runtime.InteropServices.DllImport("MediaInfo.DLL")]
private static extern UIntPtr MediaInfo_Open(IntPtr Handle, string FileName);
[System.Runtime.InteropServices.DllImport("MediaInfo.DLL")]
private static extern IntPtr MediaInfo_Inform(IntPtr Handle, UIntPtr Reserved);
public System.UIntPtr Open(string FileName)
{
return MediaInfo_Open(Handle, FileName);
}
public string Inform()
{
return Marshal.PtrToStringUni(MediaInfo_Inform(Handle, (UIntPtr)0));
}
Очистить
Не забудьтеудалить указатель (дескриптор), созданный _MediaInfo_New_. Вам нужно добавить:
[DllImport("MediaInfo.dll")]
private static extern void MediaInfo_Delete(IntPtr Handle);
Таким образом:
~MediaInfo() { if (Handle == (IntPtr)0) return; MediaInfo_Delete(Handle); }
Реализация
Затем в вашей реализации вы должны пройти полный путьфайл мультимедиа, а не только его имя:
static void Main(string[] args)
{
var objMediaInfo = new MediaInfo();
objMediaInfo.Open(@"TheFullPathOf\test.mp4");
string result = objMediaInfo.Inform();
objMediaInfo.Close();
Console.WriteLine(result);
Console.ReadKey();
}
Удачи.
Редактировать
Извините за неполный ответ. Я забыл указать в своем последнем сообщении, что вам также нужно установить параметр Inform через API MediaInfo_Option , это важный шаг для определения возвращаемых данных:
[System.Runtime.InteropServices.DllImport("MediaInfo.DLL")]
private static extern IntPtr MediaInfo_Option(IntPtr Handle, string option, string Value);
Создать для этого функцию:
public string Option(string option, string Value = "")
{
return Marshal.PtrToStringUni(MediaInfo_Option(Handle, option, Value));
}
Наконец, измените вашу реализацию:
static void Main(string[] args)
{
var objMediaInfo = new MediaInfo();
objMediaInfo.Open(@"TheFullPathOf\test.mp4");
objMediaInfo.Option("Complete"); //or mi.Option("Complete", "1") or mi.Option("Info_Parameters") try them..
string result = objMediaInfo.Inform();
objMediaInfo.Close();
Console.WriteLine(result);
Console.ReadKey();
}
Надеюсь, на этот раз это сработает.