2013-10-29 13 views
3

我想在android中使用mp4parser庫,我遇到了一些困難。 我猜這是因爲mp4parser是一個基於java的項目,並沒有適應於android。是mp4parser java庫有Android版本

PS - mp4parser是世俗的蔓延,甚至正在使用Instagram的

我立足於下面的代碼PICE我的結論:

public PropertyBoxParserImpl(String... customProperties) { 
    InputStream is = getClass().getResourceAsStream("/assets/isoparser-default.properties"); 
    mapping = new Properties(); 
    try { 
     mapping.load(is); 
     Enumeration<URL> enumeration = Thread.currentThread().getContextClassLoader().getResources("isoparser-custom.properties"); 

     while (enumeration.hasMoreElements()) { 
      URL url = enumeration.nextElement(); 
      mapping.load(url.openStream()); 
     } 
     for (String customProperty : customProperties) { 
      mapping.load(getClass().getResourceAsStream(customProperty)); 
     } 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } 
} 

isoparser-default.properties是反光標識映射:

hint=com.coremedia.iso.boxes.TrackReferenceTypeBox(type) 
cdsc=com.coremedia.iso.boxes.TrackReferenceTypeBox(type) 
meta-ilst=com.coremedia.iso.boxes.apple.AppleItemListBox() 
-----name=com.coremedia.iso.boxes.apple.AppleNameBox() 
-----mean=com.coremedia.iso.boxes.apple.AppleMeanBox() 
-----data=com.coremedia.iso.boxes.apple.AppleDataBox() 
rmra=com.coremedia.iso.boxes.apple.AppleReferenceMovieBox() 
rmda=com.coremedia.iso.boxes.apple.AppleReferenceMovieDescriptorBox() 
rmdr=com.coremedia.iso.boxes.apple.AppleDataRateBox() 
rdrf=com.coremedia.iso.boxes.apple.AppleDataReferenceBox() 
在android系統

你不能開始帶有鏈接的url到本地類和mehod並加載它像 上述PropertyBoxParser Impl()的確如此。

所以我猜我只需要改變下面的功能,沒有人在使用mp4parser時遇到了這些問題?

+0

你有沒有設法修改呢? Mp4解析器在android上使用isoviewer-1.0-RC-35.jar工作,但如果使用這個庫,我不能使用Proguard,因爲它檢測到引用awt類的問題。 – PSIXO

+0

PSIXO我被設法使用它,但從來沒有試圖推動它。 awt類的引用是強制性的嗎?也許你應該嘗試改變它們到Android庫它可能 – Nativ

+0

謝謝你的建議。我有一個類似的想法(去除awt類),但後來遇到了問題,因爲許多庫部件都基於反射API。刪除這些對我來說似乎太複雜了,因爲通過這種方式完成了大量的映射。另一方面,這解決了問題,Proguard現在運行 -keep public class * implements com.coremedia.iso.boxes.Box – PSIXO

回答