JNative

使用了一下JNative,调用MediaInfo.dll的动态链接库。

MediaInfo提供的源码中很多的Example

其中有各类就是Mediainfo提供给用户用JNative调用的类,把它拷到项目下就行了叫做MediaInfoDLL.JNative.java

还有一个是交给我们怎么使用上面那个类的,做的真是周到,叫HowToUseDLL.jNative.java

可以通过这个来学习。

MediaInfo mi = new MediaInfo();
mi.Open(sourceFilePath);
mi.Option("Complete", "0");
format = mi.Get(MediaInfo.Stream_General, 0, "Format", MediaInfo.Info_Text, MediaInfo.Info_Name);
filesize = mi.Get(MediaInfo.Stream_General, 0, "FileSize", MediaInfo.Info_Text, MediaInfo.Info_Name);
duration1 = mi.Get(MediaInfo.Stream_General, 0, "Duration", MediaInfo.Info_Text, MediaInfo.Info_Name);
videoFormat = mi.Get(MediaInfo.Stream_Video, 0, "Format", MediaInfo.Info_Text, MediaInfo.Info_Name);
videoWidth = mi.Get(MediaInfo.Stream_Video, 0, "Width", MediaInfo.Info_Text, MediaInfo.Info_Name);
videoHeight = mi.Get(MediaInfo.Stream_Video, 0, "Height", MediaInfo.Info_Text, MediaInfo.Info_Name);
videoFrameRate = mi.Get(MediaInfo.Stream_Video, 0, "FrameRate", MediaInfo.Info_Text, MediaInfo.Info_Name);
audioFormat = mi.Get(MediaInfo.Stream_Audio, 0, "Format", MediaInfo.Info_Text, MediaInfo.Info_Name);
audioBitRate = mi.Get(MediaInfo.Stream_Audio, 0, "BitRate", MediaInfo.Info_Text, MediaInfo.Info_Name);

       上面的代码可以得到视频的General,Video,Audio的信息,比如大小,时长,帧率,码率,高宽等等。

 对于其中的参数"Format"等,可以用一下代码获得,其实是在HowToUseDLL.jNative.java这个文件中的,叫做Info_Parameters。

    String File_Name = "C:\\v\\content\\uploads\\admin\\shenqi.wmv";
    if (args.length > 0)
        File_Name = args[0];

    String To_Display = "";

    //Info about the library

   // To_Display += MediaInfo.Option_Static("Info_Version");

    To_Display += "\r\n\r\nInfo_Parameters\r\n";
    To_Display += MediaInfo.Option_Static("Info_Parameters");

    //To_Display += "\r\n\r\nInfo_Capacities\r\n";
    //To_Display += MediaInfo.Option_Static("Info_Capacities");

   // To_Display += "\r\n\r\nInfo_Codecs\r\n";
    //To_Display += MediaInfo.Option_Static("Info_Codecs");


    //An example of how to use the library

    MediaInfo MI = new MediaInfo();

    To_Display += "\r\n\r\nOpen\r\n";
    if (MI.Open(File_Name)>0)
            To_Display+="is OK\r\n";
    else
            To_Display+="has a problem\r\n";

    To_Display += "\r\n\r\nInform with Complete=false\r\n";
    MI.Option("Complete", "1");
    To_Display += MI.Inform();
    System.out.println(To_Display);

 我这个是在windows上的,MediaInfo.dll和JNativeCpp.dll文件放在了system32下面,不知道怎么能用在linux下,持续更新中....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值