日期:2014-05-17  浏览次数:20707 次

java调用dll文件获得视频信息——急!
小弟我找了很多例子,也下载了一些相关例子,如
public class CtrlFtpFile {  
  //读取Dll  
  static {  
  System.loadLibrary("GetPlayTime");  
  }  
  
  public native String getMediaTime(String arg);  
  
  public static void main(String[] args) {  
  
  CtrlFtpFile hw = new CtrlFtpFile();  
  System.out.println(hw.getMediaTime("file:///D:/data/AD/2012/06/20120620094946712.ts"));  
  //file:///G:\tomcat\apache-tomcat-6.0.18\webapps\mbs\ftp\0/real/B1224487037153.mpeg  
   
  }  
} 这个例子获得的长度一直为0,不知道为什么,然后下载一个GetPlayTime,里面有(GetPlayTime.dll;JNI.pas;JNI_MD.INC;MediaInfo.dll)这个该怎么用啊?不是只有dll就可以么,为什么还会有个inc和pas后缀文件呢?

------解决方案--------------------
JNI
------解决方案--------------------
又是jni的问题
GetPlayTime.dll是写例子的人自己开发的dll,提供给java端调用
MediaInfo.dll是获取媒体信息的dll,是写例子的人在自己的GetPlayTime.dll去调用,然后把调用结果返回给java,即
java --> GetPlayTime.dll --> MediaInfo.dll
这样的调用关系
java调用GetPlayTime.dll,GetPlayTime.dll调用MediaInfo.dll
GetPlayTime.dll就是通常所说的第二方dll,是自己开发的,MediaInfo.dll就是通常所说的第三方dll,由第三方提供的

至于JNI.pas;JNI_MD.INC这些文件,可能是开发第二方dll的时候需要的一些资源(头文件什么的).pas好像是pasacl语言,可能写例子的人用pascle写的第二方dll,.inc是C的

开发例子,LZ可以参考
http://topic.csdn.net/u/20120709/17/aee3b05b-af98-42ba-8c0b-c39ee5f79a18.html