使用MediaInfo DLL (64位),我试图获得提供mp4文件信息的标准文本输出。
要包装dll,我已经创建了一个MediaInfo类,它基于我(有限的) 快速启动指南的理解。
public class MediaInfo
{
[DllImport("MediaInfo.dll")]
private static extern IntPtr MediaInfo_New();
[DllImport("MediaInfo.dll")]
private static extern void MediaInfo_Open(string FileName);
[DllImport("MediaInfo.dll")]
private static extern IntPtr MediaInfo_Inform(IntPtr Handle);
[DllImport("MediaInfo.DLL")]
private static extern void MediaInfo_Close(IntPtr Handle);
IntPtr Handle;
public MediaInfo()
{
Handle = MediaInfo_New();
}
public void Open(string FileName)
{
MediaInfo_Open(FileName);
}
public string Inform()
{
return Marshal.PtrToStringUni(MediaInfo_Inform(Handle));
}
public void Close()
{
MediaInfo_Close(Handle);
}
}我使用下面的控制台应用程序调用这个类:
static void Main(string[] args)
{
var objMediaInfo = new MediaInfo();
objMediaInfo.Open("test.mp4");
string result = objMediaInfo.Inform();
objMediaInfo.Close();
Console.WriteLine(result);
Console.ReadKey();
}然而,我只得到一个空字符串作为回报。我试过几个不同的媒体文件。
我知道已经有一个完全开发的包装,但我想保持这个简单和轻量级。
https://stackoverflow.com/questions/58512491
复制相似问题