Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有android库可以解析/显示SMPTE定时文本(字幕)xml文件?_Android_Xml_Captions_Closed Captions - Fatal编程技术网

是否有android库可以解析/显示SMPTE定时文本(字幕)xml文件?

是否有android库可以解析/显示SMPTE定时文本(字幕)xml文件?,android,xml,captions,closed-captions,Android,Xml,Captions,Closed Captions,我正在远程检索SMPTE定时文本xml文件,我需要解析这些文件并将其绘制到一个表面作为标题 此处定义了完整的文件格式: 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

我正在远程检索
SMPTE
定时文本xml文件,我需要解析这些文件并将其绘制到一个表面作为标题

此处定义了完整的文件格式:

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文件读入某种有组织的数据结构中。从那里我可以处理图纸,如果需要的话

在我开始自己写之前,任何指针都会很有帮助,因为考虑到所有不同的参数可能会变得非常复杂

谢谢。

我能够使用该库封送到以下类中。为简洁起见,删除了setter和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;
}
//用于编组整个SMPE-TT文件的类
@Root(name=“tt”)
公共类时间文本
{
@属性(必需=false)
私人串郎;
@元素(必需=false)
私用线头;
@元素(name=“body”)
私人ttb;
}
类TTBody
{
@元素(name=“div”)
私人TTDiv ttd;
}
类TTDiv
{
@ElementList(inline=true)
私人列表标题列表;
}