`
horizonhyg
  • 浏览: 58477 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JNative

    博客分类:
  • JAVA
阅读更多

使用了一下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下,持续更新中....

分享到:
评论
3 楼 nilm61 2011-07-27  
MediaInfo提供的源码中很多的Example 这些可以在那找到?
2 楼 horizonhyg 2010-09-11  
youli9056 写道
请问一下,这些个文件该怎么配置啊?还有好像文件名不可以命名为:MediaInfo.JNative.java这种中间有点的形式,这是怎么回事啊?

直接把那个点去了就行,反正你new的是类,没关系
1 楼 youli9056 2010-09-09  
请问一下,这些个文件该怎么配置啊?还有好像文件名不可以命名为:MediaInfo.JNative.java这种中间有点的形式,这是怎么回事啊?

相关推荐

    JNative v1.3 docs

    jnative包用于调用dll动态库,目前(2011-12-20)最新版本为1.4RC2,官方正式版本文档为1.3,详见官方地址: http://jnative.free.fr/docs/ 这是最新的帮助文档HTML离线包,希望对大家有帮助 Packages org.xvolks....

    org.xvolks.jnative 源码

    《深入解析org.xvolks.jnative源码》 在Java世界中,为了实现与本地代码的交互,开发者经常需要借助JNI(Java Native Interface)技术。然而,JNI的使用门槛相对较高,涉及到C/C++编程,这给许多Java开发者带来了...

    JNative.jar以及JNative源码

    《深入理解JNative:Java调用DLL的桥梁》 在Java世界中,由于其平台无关性的特性,直接调用本地动态链接库(DLL)并非易事。然而,JNative库的出现,为Java程序员提供了一个方便的解决方案,使得Java能够无缝地与C/...

    JNative Java调用动态链接库jar包

    JNative是一个Java库,它为Java程序员提供了一种直接调用这些本地代码的能力,无需通过JNI(Java Native Interface)的复杂过程。 JNative的核心思想是将Java方法与本地函数绑定,使得Java代码可以像调用普通Java...

    Jnative1.4_java调用动态库所需jar

    1. **导入JNative.jar**: 将`JNative.jar`添加到项目的类路径中,这样Java虚拟机(JVM)就能找到并加载这个库。 2. **声明本地方法**: 在Java类中使用`native`关键字声明本地方法。例如: ```java public class ...

    JNative api说明文档

    **JNative API说明文档** **一、JNative简介** JNative是Java平台上的一个库,它允许Java程序直接调用本地(C/C++)代码,实现了Java与原生代码的无缝交互。通过JNative,开发者可以利用Java的跨平台优势,同时...

    linux jnative 调用.so方法及附属全部库和源码

    JNative getstring = new JNative("libmylib.so", "getstring"); getstring.setRetVal(Type.STRING); getstring.invoke(); System.out.println(getstring.getRetVal()); } } 4.输出结果 this is in test_a.....

    JNative.jar和JNativeCpp.dll

    标题中的"JNative.jar"和"JNativeCpp.dll"是两个关键组件,分别代表Java和C++之间的交互层。在IT行业中,这样的组合通常用于实现Java应用与原生系统资源的紧密集成,例如调用操作系统底层功能或者加速计算密集型任务...

    Jnative资源包源码

    《Jnative资源包源码详解》 Jnative是一款强大的Java本地接口库,它允许Java程序直接调用C和C++的动态链接库(DLL或.so文件),极大地拓展了Java平台的功能。本文将深入探讨Jnative的核心概念、工作原理以及如何在...

    jnative

    这里我们关注的工具是`jnative`,它是一个Java本地接口(Java Native Interface,JNI)的实现,允许Java代码直接调用C++编写的动态链接库(DLL)或共享库(如libJNativeCpp.so在Linux系统中)。这个过程涉及的知识点...

    JNative完全自学手册

    JNative完全自学手册 本手册旨在帮助读者完全深度理解掌握JNative核心技术,通过实例众多的讲解,让读者快速掌握JNative技术。 JNative是Java Native Interface的缩写,允许Java程序调用本地函数库,实现Java程序...

    JNative综合学习资料

    《JNative综合学习指南》 在Java编程世界中,JNative是一个重要的工具,它允许Java程序直接调用本地(C/C++)代码,打破了Java原生的“一次编写,到处运行”的沙箱环境,为开发者提供了更强大的功能扩展能力。...

    jnative调用动态库

    标题中的“jnative调用动态库”指的是Java中使用JNative库来调用本地(操作系统级别的)动态链接库(DLL或SO文件)的技术。在Java中,为了与操作系统底层功能进行交互,比如调用C/C++编译的库,我们可以使用Java ...

    JNative.jar 包

    《JNative.jar包详解》 在Java编程领域,我们经常需要与本地代码进行交互,以利用C++或C等语言的高效性能或者调用特定的系统功能。这就是JNI(Java Native Interface)发挥作用的地方。JNative.jar包就是这样一个...

    在Java程序中使用JNative调用dll文件

    在Java程序中调用DLL(动态链接库)文件通常是通过JNI(Java Native Interface)来实现的,而JNative是JNI的一个封装库,它提供了一种更简洁的方式来调用C/C++编写的本地代码。这篇博客文章可能介绍了如何利用...

    JNative用java调用动态库VC++

    在这个场景中,我们关注的是JNative,一个简化Java调用C/C++库的开源库。 JNative 的优点在于它的易用性、数据类型处理的高效以及对回调函数的支持。在使用JNative之前,我们需要了解一些基本概念。例如,`...

    jnative简单的使用

    **JNative:Java与本地代码交互的桥梁** 在Java编程中,有时我们需要调用本地操作系统提供的功能,或者利用已有的C/C++库,这时就需要用到JNative这样的库。JNative是一个开源的Java本地接口(JNI)工具包,它简化...

    Java调用Win32获取窗口句柄JNative-1.3.2

    JNative库是实现这一目标的一种工具,它允许Java代码通过JNI(Java Native Interface)来调用C/C++编写的本地代码,进而调用Win32 API。JNative-1.3.2版本提供了对这一功能的支持。 首先,我们来理解一下Java ...

    jnative源码和文档,包含JNativeCpp.dll和libJNativeCpp.so

    《深入解析JNative:连接Java与C++的桥梁》 JNative,作为一款强大的库,为Java程序员提供了与C++代码交互的能力。它允许Java应用程序调用C++编写的动态链接库(DLL或.so),从而扩展了Java的功能,特别是在处理...

    JNative-1.3.2.zip

    《JNative:Java调用C++的桥梁》 在IT领域,跨语言通信是一个常见的需求,比如Java开发者可能需要调用C或C++编写的库来实现特定功能。JNative正是这样一个工具,它允许Java程序无缝地调用本地(Native)代码,尤其...

Global site tag (gtag.js) - Google Analytics