Androidでmp4parserライブラリを使用しようとしていますが、いくつかの問題が発生しました。mp4parser は Java ベースのプロジェクトであり、まだ Android に適応していないためだと思います。
PS - mp4parser は世界中に広まり、Instagram でも使用されています。
次のコードに基づいて結論を下しています。
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を開始し、上記の PropertyBoxParserImpl() のようにロードすることはできません。
したがって、次の関数を変更するだけでよいと思いますが、mp4parser の使用中にこれらの問題に遭遇した人はいますか?