我正在远程检索SMPTE Timed Text xml文件,我需要解析这些文件并将其作为标题绘制到表面上。
完整的文件格式定义如下:
https://www.smpte.org/sites/default/files/st2052-1-2010.pdf
xml如下所示:
<tt xmlns="http://www.w3.org/ns/ttml">
<head>
...
</head>
<body>
<p begin="00:00:33:03" end="00:00:37:24" region="pop1" style="basic" tts:origin="20% 79.33%" tts:extent="60% 5.33%">It is on a little world,</p>
<p begin="00:01:29:23" end="00:01:31:10" region="pop2" style="basic" tts:origin="30% 84.67%" tts:extent="50% 5.33%">GIVING INSTRUCTIONS)</p>
...
</body>
</tt>基本上,每个p标记都定义了一个时间和位置以及一些要绘制的文本。我还没能在android上找到任何本地库或第三方库来帮助解决这个问题。
我正在寻找一个库,可以将xml文件读入某种有组织的数据结构中。如果需要的话,我可以从那里处理这幅画。
在我自己开始写它之前,任何指针都会很有帮助,因为考虑到所有不同的论点可能会变得相当复杂。
谢谢你。
发布于 2013-11-14 03:24:25
我能够使用simple库将其编组到以下类中。为简洁起见,删除了Setters和getter。在这一点上,代码只是一个概念的证明,但您得到了想法。
Caption.java
// single caption to display (from SMPE-TT file)
@Root (name="p", strict=false)
public class Caption
{
@Element (required = false, name = "font")
private String caption;
@Attribute
private String begin;
@Attribute
private String end;
@Attribute (required = false)
private String origin;
@Attribute (required = false)
private String style;
@Attribute (required = false)
private String space;
}TimedText.java
// class for marshalling the entire SMPE-TT file
@Root (name="tt")
public class TimedText
{
@Attribute (required=false)
private String lang;
@Element (required=false)
private String head;
@Element (name = "body")
private TTBody ttb;
}
class TTBody
{
@Element (name = "div")
private TTDiv ttd;
}
class TTDiv
{
@ElementList (inline = true)
private List<Caption> captionList;
}https://stackoverflow.com/questions/18112893
复制相似问题