首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MediaInfo动态链接库与C# DLLImport

使用MediaInfo动态链接库与C# DLLImport
EN

Stack Overflow用户
提问于 2019-10-22 21:23:35
回答 2查看 2.6K关注 0票数 2

使用MediaInfo DLL (64位),我试图获得提供mp4文件信息的标准文本输出。

要包装dll,我已经创建了一个MediaInfo类,它基于我(有限的) 快速启动指南的理解。

代码语言:javascript
复制
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);
    }
}

我使用下面的控制台应用程序调用这个类:

代码语言:javascript
复制
static void Main(string[] args)
    {
        var objMediaInfo = new MediaInfo();
        objMediaInfo.Open("test.mp4");
        string result = objMediaInfo.Inform();
        objMediaInfo.Close();

        Console.WriteLine(result);
        Console.ReadKey();
    }

然而,我只得到一个空字符串作为回报。我试过几个不同的媒体文件。

我知道已经有一个完全开发的包装,但我想保持这个简单和轻量级。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58512491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档