Android-MMS中彩信附件的格式及分析

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

在彩信中附件内容及播放方式是以 smil 文档格式表示的。下面是一个示例:

<smil >

<head >

<layout>

<root-layout width="320px" height="480px"/>

<region id="Image" left="0" top="0" width="320px" height="320px" fit="meet"/>

<region id="Text" left="0" top="320" width="320px" height="160px" fit="meet"/>

</layout>

</head>

<body>

<par dur="5000ms">

<img src="2010-07-24_11.24.23.jpg" region="Image"/>

<text src="text_0.txt" region="Text"/>

</par>

<par dur="4480ms">

<img src="2010-07-24_11.24.10.jpg"/>

<audio src="recording44285.amr" dur="4480ms"/>

</par>

</body>

</smil>

其中 root-layout 是附件播放时的布局大小,其中分为 Image/Text 两块布局,播放的时候显示图片和视频的大小是以 Image 布局为准,文字的大小以 Text 的布局为准,从 left top 的值可以看出上面布局的设置是文字在图片下面 (bottom)

body 中的每一个 par 元素显示为 Slideshow 的一个 slide ,其中可以包含多个基本元素 ( 图片、文字、视频、音频 ) ,在每一个 slide 中,视频和音频不能共存,图片和视频不能共存。

每一个 par 元素都有一个 dur 属性,指明此 slide 播放的时间。

当消息发送的时候附件被封装成 PDU(Protocol Data Units) 模型传递 ,MMS PDU 由消息头( Header )和消息体( Body )组成。 Header 具体描述了 PDU 的特定信息, Body 是消息的具体内容( Body 体是可选的)。大多数 MMS PDU 只含有 Header 域,用于建立和维持通信, Body 体只用在 M-Send.req M-Retrieve.conf 两个数据包中。下图是 MMS PDU 基本结构的示意图:

Android-MMS中彩信附件的格式及分析

消息头( Header ): 由一系列的域组成,包括 PDU 类型,接受方,发送方,发送时间等等。

消息体( Body ): 是多个不同类型的多媒体对象组成的,每个对象占据一个部分— Part ,消息的组装方式为 .application/vnd.wap. multipart.related ,此方式说明附件是存在相关顺序的。

最后采用 MIME 标准( Multipurpose Internet Mail Extensions - 多用途互联网邮件扩展 )将完整的 MM (包括: SMIL 、 文本、图像、声音、视频等各个独立部分)打包封装在一起,并发送。

你可能感兴趣的:(android)